开机自启动

方法很多,测试了一下,在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 开机启动 终端python ubuntu开机打开终端_bash


得到

ubuntu 开机启动 终端python ubuntu开机打开终端_linux_02

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

完事儿~

ubuntu 开机启动 终端python ubuntu开机打开终端_重启_03

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

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

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

重启Ubuntu系统即可远程成功