UBUNTU 18.04开机自启动脚本实现--打开终端、执行命令及终端输入文字

开机自启动

方法很多,测试了一下,在18.04中最方便的方法如下:

  1. 新建sh脚本
touch xxx.sh
gedit xxx.h

然后输入:

 #!/bin/bash
 #
 # xxx.sh
 #
 # 你的代码
 #
 exit 0

保存后退出,并在终端继续执行:

chmod a+x xxx.sh
  1. 通过“基于图形桌面的方法”添加开机自启动
    打开终端输入:
gnome-session-properties

打开图形界面,然后 点击添加输入
名称:自定义
命令:sh xxx.sh (注意路径或者bash xxx,sh)
注释:可不填

重启开机即可。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关于sh脚本内容:

  • >>> 打开终端并执行命令
 gnome-terminal -- bash -c "你要执行的命令; 命令第二条;...;exec bash"
  • >>> 打开终端预输入文字但不执行
    这里用到expect,需要安装:

使用以下代码检测expect是否已经安装:
ls /usr/bin | grep expect
如果显示为空,则使用以下命令安装:
sudo apt-get install tcl tk expect

安装完成后打开终端构建一个expect 的脚本,后缀sh即可

touch myprompt.sh
gedit myprompt.sh

文件中输入如下代码:

#!/usr/bin/expect

#trap sigwinch and pass it to the child we spawned
#this allows the gnome-terminal window to be resized
trap {
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

set arg1 [lindex $argv 0]

# Get a Bash shell
spawn -noecho bash

# Wait for a prompt
expect "$ "

# Type something
send $arg1

# Hand over control to the user
interact

exit

保存后退出(这里不记得是否需要输入 chmod a+x myprompt.sh了,下一步测试没成功再执行该语句)

打开之前的开机启动脚本xxx.sh
添加如下语句调用以上脚本程序实现与内核交互的文字预输入

 gnome-terminal -e "./myprompt.sh \"你要预先在终端输入的文字或命令\""

整个xxx.sh脚本中的代码如下:

 #!/bin/bash
 #
 # xxx.sh
 #
 gnome-terminal -- bash -c "cd ./xxx/xxx(命令1); usrp_find_devices(命令2); exec bash"
 gnome-terminal -e "./myprompt.sh \"你要预先在终端输入的文字或命令\""

 exit 0

保存退出即可
以上代码的实现测试是否能用很简单,写完后保存,并终端输入

sh xxx.sh

看是否执行正确即可

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这里我还没实现一个终端内执行完一个命令后实现预输入,所以我现选择打开两个窗口,为了美观,我将两个窗口并排,这里需要对第二个终端窗口实现一个位置的修改如下:

 #!/bin/bash
 #
 # xxx.sh
 #
 gnome-terminal -- bash -c "cd ./xxx/xxx(命令1); usrp_find_devices(命令2); exec bash"
 gnome-terminal --geometry 80×24+885+107 -e "./myprompt.sh \"你要预先在终端输入的文字或命令\""
 exit 0

关于如何确定窗口位置80×24+885+107 。方法如下:
打开新终端,拖动至你想要放置的位置,然后输入

xwininfo

鼠标变为十字架,然后在当前终端窗口内任意地方单击鼠标
UBUNTU 18.04开机自启动脚本实现--打开终端、执行命令及终端输入文字_第1张图片
得到
UBUNTU 18.04开机自启动脚本实现--打开终端、执行命令及终端输入文字_第2张图片

最后一行的数据即为窗口的位置。

完事儿~

UBUNTU 18.04开机自启动脚本实现--打开终端、执行命令及终端输入文字_第3张图片

对了,还要记录一下,windows向日葵控制linux时候linux自动掉线的问题

参考:

https://blog.csdn.net/weixin_45085810/article/details/105574360

简单来说就是linux中打开向日葵打开终端,安装显示管理器,执行

sudo apt-get update
sudo apt-get upgrade
sudo install lightdm

重启Ubuntu系统即可远程成功

你可能感兴趣的:(ubuntu,linux)