开机自启动
方法很多,测试了一下,在18.04中最方便的方法如下:
- 新建sh脚本
touch xxx.sh
gedit xxx.h
然后输入:
#!/bin/bash
#
# xxx.sh
#
# 你的代码
#
exit 0
保存后退出,并在终端继续执行:
chmod a+x xxx.sh
- 通过“基于图形桌面的方法”添加开机自启动
打开终端输入:
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
鼠标变为十字架,然后在当前终端窗口内任意地方单击鼠标
得到
最后一行的数据即为窗口的位置。
完事儿~
对了,还要记录一下,windows向日葵控制linux时候linux自动掉线的问题
简单来说就是linux中打开向日葵
、打开终端
,安装显示管理器,执行
sudo apt-get update
sudo apt-get upgrade
sudo install lightdm
重启Ubuntu系统即可远程成功