Ubuntu桌面啓動後自動執行指定的命令或程序的三種方法

 使用Ubuntu的過程中,經常會開機後執行一些固定的動作,每次手工操作很麻煩。其實Ubuntu有很多方法可以自動執行腳本和命令,先來介紹三種最簡單的,文章最後會提到幾種其他的方法。

一、基於圖形桌面的方法

1、在Ubuntu主界面點“搜索”(Ubuntu18中是“顯示應用程序”),然後輸入“啓動”,可以找到“啓動應用程序”管理器,如下圖所示。
在這裏插入圖片描述
2、打開“啓動應用程序”管理器,裏面可以添加要執行的命令,如下所示。
在這裏插入圖片描述
3、點擊添加,比如我們要在啓動後自動打開一個終端,添加一條命令/usr/bin/gnome-terminal,如下(這裏以Ubuntu16.04爲例,其他linux系統路徑、名字可能不一樣)。
在這裏插入圖片描述
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文件,文件裏面是當前時間。如下圖所示。
在這裏插入圖片描述
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章