Ubuntu22.04超简单自启动脚本程序代码命令配置(附shell脚本创建写作及一些问题)(以逐曦2024自瞄代码自启动配置为例)(逐曦算法组零碎知识学习1)
GenTiCc 2024-06-27 16:37:09 阅读 53
本文创建自启动程序的整体思路是利用ubuntu系统自带的自启动软件,启动应用程序,在应用程序中放置需要自启动的脚本。
创建思路是 shell脚本文件--->自启动配置
一、自启动脚本文件
1、创建
终端进入你要创建脚本的文件夹 创建脚本文件
touch autoaim.sh
使用vi/nano/gedit编辑器,也可以直接点开创建的文件记事本里编辑。
2、插入一个shell介绍
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
总而言之,shell文件就是一个用C语言编写的可运行的应用程序,我们平时运行的很多配置后缀为.bash和.sh的文件就是shell文件,文件将执行其所包括的shell脚本代码。
接下来就正式开始编辑这个脚本文件。
3、编写shell脚本
第一行
#!/bin/bash
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即 使用哪一种 Shell。
Linux 的 Shell 种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/usr/bin/csh)K Shell(/usr/bin/ksh)Shell for Root(/sbin/sh)……
所以上述代码也可以使用 #!/bin/sh
编写自启动脚本
如果只是一个能在终端中启动的脚本,那么可以直接把终端里要执行的命令放在脚本里,如下一整个指令
#!/bin/bash
PASSWORD="123456"
echo $PASSWORD | sudo chmod 777 ttyAM0
cd /home/onzonzonz/ws_autoaim/
source install/setup.bash
ros2 launch autoaim_main autoaim_main autoaim_main_launch.py
其中有一点,因为使用sudo权限需要输入密码,所以须在前面加密码指令
开权限
chmod +x autoaim.sh
终端进入放着这个文件的文件夹运行程序试试
./autoaim.sh
成功运行,编写完成。
4、另一个shell脚本
但是,为了开机后运行的命令打开终端执行,你需要写一段打开终端并执行命令的代码,并把上述所有命令放进去,像下面这样。
但是,因为我有一个启动管理员权限的指令,密码输入会不正确,所以最后选择了另开一个启动脚本来启动终端和上一个配置脚本。
保持上述autoaim.sh脚本不变,创建另一个.sh文件“zimain.sh”内容如下
#!/bin/bash
gnome-terminal -- /bin/bash -c '/home/onzonzonz/sh/autoaim.sh ; exec bash'
前半句命令的意思是打开一个新的终端,运行程序
exec命令放到一个子shell脚本中,在父sehll中调用这个子shell脚本,调用处可以用bash xx.sh(xx.sh为存放exec命令的脚本),这样会为xx.sh建立一个子shell去执行,当执行exec后该子shell进程就被替换成相应的exec的命令。
再开权限
chmod +x zimain.sh
再测试一下
./zimain.sh
成功运行 脚本制作完毕
二、自启动设置
设置系统启动项的步骤都有点复杂,但使用用户自启动有很简单的方法。
在桌面上找到“自启动应用”或者“Startup Applications”这个应用。
如果应用程序列表中没有开机自动启动应用这个app,那么使用组合键Alt+F2
,输入gnome-session-properties
亦可打开同样的界面。
点击“Add”,把所写的第二个启动文件的路径填到“Command”里即可。(可以直接点右边"browse..."选中启动文件)
关机重启 程序成功运行
下一篇: 【Linux详解】缓冲区优化 | 进度条的实现 | Linux下git 的上传
本文标签
Ubuntu22.04超简单自启动脚本程序代码命令配置(附shell脚本创建写作及一些问题)(以逐曦2024自瞄代码自启动配置为例)(逐曦算法组零碎知识学习1)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。