Ubuntu桌面启动后自动执行指定的命令或程序的三种方法

 使用Ubuntu的过程中,经常会开机后执行一些固定的动作,每次手工操作很麻烦。其实Ubuntu有很多方法可以自动执行脚本和命令,先来介绍三种最简单的,文章最后会提到几种其他的方法。

一、基于图形桌面的方法

1、在Ubuntu主界面点“搜索”(Ubuntu18中是“显示应用程序”),然后输入“启动”,可以找到“启动应用程序”管理器,如下图所示。
Ubuntu桌面启动后自动执行指定的命令或程序的三种方法_第1张图片
2、打开“启动应用程序”管理器,里面可以添加要执行的命令,如下所示。
Ubuntu桌面启动后自动执行指定的命令或程序的三种方法_第2张图片
3、点击添加,比如我们要在启动后自动打开一个终端,添加一条命令/usr/bin/gnome-terminal,如下(这里以Ubuntu16.04为例,其他linux系统路径、名字可能不一样)。
Ubuntu桌面启动后自动执行指定的命令或程序的三种方法_第3张图片
4、如果是要添加的命令比较多,可以分成几次添加,或者你可以写一个脚本,然后直接把执行脚本的命令放在此处即可。

5、添加之后,关闭退出即可。

二、基于命令行profile文件的方法

1、基于命令行自动执行命令的方法有很多种,这里主要介绍两种。一种就是将相关命令放在/etc/profile中。
 但是要注意两点,

  • 1)/etc/profile文件是针对所有用户的,如果你只想让当前用户执行请使用~/.profile文件(当前用户的profile文件);
  • 2)有些涉及调整图形桌面相关的命令只能在图形桌面启动之后执行,这时将相关命令放在/etc/profile中很多版本是不能生效或者会导致其他异常

2、操作步骤。
打开配置文件。比如启动后自动给系统增加一个1920x1080的显示分辨率,打开终端输入:
sudo gedit /etc/profile

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
#上面是文件原来的内容,在后面加入:

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode Virtual1 "1920x1080_60.00"

保存退出。

3、想让/etc/profile文件修改后立即生效 ,可以使用如下命令:
source /etc/profile

4、你也可以输入reboot重启试试。重启后或立即生效后发现1920*1080的分辨率已经增加了。如下所示。

hzq@ubuntu:~$ xrandr
Screen 0: minimum 1 x 1, current 921 x 645, maximum 16384 x 16384
Virtual1 connected primary 921x645+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1920x1200     59.88  
   1024x768      60.00  
   800x600       60.32  
   1920x1080_60.00  59.96  
Virtual2 disconnected (normal left inverted right x axis y axis)
hzq@ubuntu:~$

三、基于命令行update-rc.d的方法

 把要执行的命令放到脚本文件中(比如:my.sh),然后把my.sh拷贝到/etc/init.d/中,主要步骤如下所示。

1、新建脚本文件my.sh

#!/bin/bash
#Description: self define auto start
date  &> 11.txt
exit 0
上面只是文件内容的例子,具体内容要自己编写!注意: 一定要将命令添加在 exit 0之前。

2、设置权限

sudo chmod 755 my.sh

3、把脚本放置到启动目录下

sudo mv my.sh /etc/init.d/

4、将脚本添加到启动模块

cd /etc/init.d/
sudo update-rc.d my.sh defaults 90
这里90表示一个优先级,越高表示优先级越低。

5、配置好重启后,可以看到上面的脚本命令已经执行,并自动生成了11.txt文件,文件里面是当前时间。如下图所示。
Ubuntu桌面启动后自动执行指定的命令或程序的三种方法_第4张图片
6、将脚本从启动模块移除的方法。

sudo update-rc.d -f my.sh remove

最后

 Ubuntu中自动执行命令和脚本还有很多其他的方法,这里简单说一下,比如:

  • 1、在/etc/ rc.local脚本里添加相关要执行的内容。
  • 2、使用rcconf,如果没有可以通过sudo apt-get install rcconf来安装。
  • 3、通过chkconfig来执行,这种方法在redhat,Debian里面也比较常用,Ubuntu里面也可以用的,不过容易出错。
  • 4、还有一些其他的方法这里就不一一列举了。

 欢迎交流分享,讨论补充~ ~

参考文章《VMware虚拟机安装Ubuntu16-18系统超详细过程(含下载地址)》
参考文章《怎么修改Ubuntu更新源服务器为国内地址》

转载请注明本文地址:https://blog.csdn.net/davidhzq/article/details/102725116

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