Linux &用法和jobs命令

Linux 命令放入後臺的方法有兩種,分別介紹如下


第一種把命令放入後臺的方法是在命令後面加入 空格 &。使用這種方法放入後臺的命令,在後臺處於執行狀態

注意,放入後臺執行的命令不能與前臺有交互,否則這個命令是不能在後臺執行的。例如:

[root@localhost ~]#find / -name install.log &
[1] 1920
#[工作號] 進程號
#把find命令放入後臺執行,每個後臺命令會被分配一個工作號。命令既然可以執行,就會有進程產生,所以也會有進程號

這樣,雖然 find 命令在執行,但在當前終端仍然可以執行其他操作。如果在終端上出現如下信息:

[1]+ Done find / -name install.log

證明後臺的這個命令已經完成了。當然,命令如果有執行結果,則也會顯示到操作終端上。其中,[1] 是這個命令的工作號,"+"代表這個命令是最近一個被放入後臺的。

命令執行過裎中按 Ctrl+Z 快捷鍵,命令在後臺處於暫停狀態,使用這種方法放入後臺的命令,就算不和前臺有交互,能在後臺執行,也處於暫停狀態,因爲 Ctrl+Z 快捷鍵就是暫停的快捷鍵

 

【例 1】

[root@localhost ~]#top
#在top命令執行的過程中,按下Ctrl+Z快捷鍵
[1]+ Stopped top
#top命令被放入後臺,工作號是1,狀態是暫停。而且,雖然top命令沒有結束,但也能取得控制檯權限

【例 2】

[root@localhost ~]# tar -zcf etc.tar.gz /etc
#壓縮一下/etc/目錄
tar:從成員名中刪除開頭的"/"
tar:從硬鏈接目標中刪除開頭的"/"
^Z
#在執行過程中,按下Ctrl+Z快捷鍵
[2]+ Stopped tar-zcf etc.tar.gz/etc
#tar命令被放入後臺,工作號是2,狀態是暫停

每個被放入後臺的命令都會被分配一個工作號。第一個被放入後臺的命令,工作號是 1;第二個被放入後臺的命令,工作號是 2,以此類推。

 

jobs 命令


jobs 命令可以用來查看當前終端放入後臺的工作,工作管理的名字也來源於 jobs 命令。jobs 命令的基本格式如下:

[root@localhost ~]#jobs [選項]

表 1 羅列了 jobs 命令常用的選項及含義。

表 1 jobs 命令常用選項及含義、
選項 含義
-l(L 的小寫) 列出進程的 PID 號。
-n 只列出上次發出通知後改變了狀態的進程。
-p 只列出進程的 PID 號。
-r 只列出運行中的進程。
-s 只列出已停止的進程。


例如:

[root@localhost ~]#jobs -l
[1]- 2023 Stopped top
[2]+ 2034 Stopped tar -zcf etc.tar.gz /etc

可以看到,當前終端有兩個後臺工作:一個是 top 命令,工作號爲 1,狀態是暫停,標誌是"-";另一個是 tar 命令,工作號爲 2,狀態是暫停,標誌是"+"。"+"號代表最近一個放入後臺的工作,也是工作恢復時默認恢復的工作。"-"號代表倒數第二個放入後臺的工作,而第三個以後的工作就沒有"+-"標誌了。

一旦當前的默認工作處理完成,則帶減號的工作就會自動成爲新的默認工作,換句話說,不管此時有多少正在運行的工作,任何時間都會有且僅有一個帶加號的工作和一個帶減號的工作。

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