使用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