運維工程師必會的109個Linux命令(4)
1 進程管理
1.1 crontab
1.1.1 功能說明
設置計時器。
1.1.2 語法
crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]
1.1.3 補充說明
cron是一個常駐服務,它提供計時器的功能,讓用戶在特定的時間得以執行預設的指令或程序。只要用戶會編輯計時器的配置文件,就可以使用計時器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
1.1.4 參數
-e 編輯該用戶的計時器設置。
-l 列出該用戶的計時器設置。
-r 刪除該用戶的計時器設置。
-u<用戶名稱> 指定要設定計時器的用戶名稱。
1.2 kill
1.2.1 功能說明
刪除執行中的程序或工作。
1.2.2 語法
kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>]
1.2.3 補充說明
kill可將指定的信息送至程序。預設的信息為SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。程序或工作的編號可利用ps指令或jobs指令查看。
1.2.4 參數
-l <信息編號> 若不加<信息編號>選項,則-l參數會列出全部的信息名稱。
-s <信息名稱或編號> 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作編號。
1.3 nohup
1.3.1 功能說明
不掛斷地運行命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。
1.3.2 語法
nohup Command [ Arg ... ] [ & ]
nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在註銷後使用 nohup 命令運行後臺中的程序。要運行後臺中的 nohup 命令,添加&( 表示“and”的符號)到命令的尾部。
無論是否將 nohup 命令的輸出復位向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出復位向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開以用於追加,那麽 Command 參數指定的命令不可調用。如果標準錯誤是一個終端,那麽把指定的命令寫給標準錯誤的所有輸出作為標準輸出復位向到相同的文件描述符。
退出狀態:該命令返回下列出口值:
126 可以查找但不能調用 Command 參數指定的命令。
127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。
否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。
如果使用nohup命令提交作業,那麽在缺省情況下該作業的所有輸出都被復位向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&1 &在上面的例子中,輸出被復位向到myout.file文件中。
1.3.3 例子
我們有個test.php需要在後臺運行,並且希望在後臺能夠定期運行,那麽就使用nohup:
nohup /root/test.php &
(nohup sh make.sh &)
1.4 ps
1.4.1 功能說明
報告程序狀況。
1.4.2 語法
ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名稱>][-g <群組名稱>][-G <群組識別碼>][-p <程序識別碼>][p <程序識別碼>][-s <階段作業>][-t <終端機編號>][t <終端機編號>][-u <用戶識別碼>][-U <用戶識別碼>][U <用戶名稱>][-<程序識別碼>][--cols <每列字符數>][--columns <每列字符數>][--cumulative][--deselect][--forest][--headers][--help][--info][--lines <顯示列數>][--no-headers][--group <群組名稱>][-Group <群組識別碼>][--pid <程序識別碼>][--rows <顯示列數>][--sid <階段作業>][--tty <終端機編號>][--user <用戶名稱>][--User <用戶識別碼>][--version][--width <每列字符數>]
1.4.3 補充說明
ps是用來報告程序執行狀況的指令,您可以搭配kill指令隨時中斷,刪除不必要的程序。
1.4.4 參數
-a 顯示所有終端機下執行的程序,除了階段作業領導者之外。
a 顯示現行終端機下的所有程序,包括其他用戶的程序。
-A 顯示所有程序。
-c 顯示CLS和PRI欄位。
c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
-C<指令名稱> 指定執行指令的名稱,並列出該指令的程序的狀況。
-d 顯示所有程序,但不包括階段作業領導者的程序。
-e 此參數的效果和指定"A"參數相同。
e 列出程序時,顯示每個程序所使用的環境變量。
-f 顯示UID,PPIP,C與STIME欄位。
f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
-g<群組名稱> 此參數的效果和指定"-G"參數相同,當亦能使用階段作業領導者的名稱來指定。
g 顯示現行終端機下的所有程序,包括群組領導者的程序。
-G<群組識別碼> 列出屬於該群組的程序的狀況,也可使用群組名稱來指定。
h 不顯示標題列。
-H 顯示樹狀結構,表示程序間的相互關系。
-j或j 采用工作控制的格式顯示程序狀況。
-l或l 采用詳細的格式來顯示程序狀況。
L 列出欄位的相關信息。
-m或m 顯示所有的執行緒。
n 以數字來表示USER和WCHAN欄位。
-N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
-p<程序識別碼> 指定程序識別碼,並列出該程序的狀況。
p<程序識別碼> 此參數的效果和指定"-p"參數相同,只在列表格式方面稍有差異。
r 只列出現行終端機正在執行中的程序。
-s<階段作業> 指定階段作業的程序識別碼,並列出隸屬該階段作業的程序的狀況。
s 采用程序信號的格式顯示程序狀況。
S 列出程序時,包括已中斷的子程序資料。
-t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
t<終端機編號> 此參數的效果和指定"-t"參數相同,只在列表格式方面稍有差異。
-T 顯示現行終端機下的所有程序。
-u<用戶識別碼> 此參數的效果和指定"-U"參數相同。
u 以用戶為主的格式來顯示程序狀況。
-U<用戶識別碼> 列出屬於該用戶的程序的狀況,也可使用用戶名稱來指定。
U<用戶名稱> 列出屬於該用戶的程序的狀況。
v 采用虛擬內存的格式顯示程序狀況。
-V或V 顯示版本信息。
-w或w 采用寬闊的格式來顯示程序狀況。
x 顯示所有程序,不以終端機來區分。
X 采用舊式的Linux i386登陸格式顯示程序狀況。
-y 配合參數"-l"使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位 。
-<程序識別碼> 此參數的效果和指定"p"參數相同。
--cols<每列字符數> 設置每列的最大字符數。
--columns<每列字符數> 此參數的效果和指定"--cols"參數相同。
--cumulative 此參數的效果和指定"S"參數相同。
--deselect 此參數的效果和指定"-N"參數相同。
--forest 此參數的效果和指定"f"參數相同。
--headers 重復顯示標題列。
--help 在線幫助。
--info 顯示排錯信息。
--lines<顯示列數> 設置顯示畫面的列數。
--no-headers 此參數的效果和指定"h"參數相同,只在列表格式方面稍有差異。
--group<群組名稱> 此參數的效果和指定"-G"參數相同。
--Group<群組識別碼> 此參數的效果和指定"-G"參數相同。
--pid<程序識別碼> 此參數的效果和指定"-p"參數相同。
--rows<顯示列數> 此參數的效果和指定"--lines"參數相同。
--sid<階段作業> 此參數的效果和指定"-s"參數相同。
--tty<終端機編號> 此參數的效果和指定"-t"參數相同。
--user<用戶名稱> 此參數的效果和指定"-U"參數相同。
--User<用戶識別碼> 此參數的效果和指定"-U"參數相同。
--version 此參數的效果和指定"-V"參數相同。
--widty<每列字符數> 此參數的效果和指定"-cols"參數相同。
運維工程師必會的109個Linux命令(4)