管道符和作業控制

管道符和作業控制

1、管道符

管道符之前介紹過,它表示把一個文件的輸出內容傳遞給後面的命令。舉個例子,見下圖,
管道符和作業控制
關於管道符,有很多命令是可以用的,就是把前面命令輸出的結果,交給後面的命令。後面會經常用到。

2、作業控制

之前說過一個快捷鍵,ctrl + z ,表示暫停一個任務。見下圖,
管道符和作業控制
輸入命令 vim 1.txt ,回車,進入文件 1.txt 編輯。這時候想暫時退出來做其他事情的話,就可以使用 ctrl +z 命令來停止,這時候就可以退出來回到命令窗口,做其他的事情。那麼 vim 這個命令其實還在後臺,怎麼再調出來呢?輸入命令 fg ,回車,見下圖,
管道符和作業控制
又進入 vim 1.txt 這個頁面裏。fg 就是 front ground ,到前面來的意思。
管道符和作業控制
後臺的運行文件可以有多個,注意上圖中的數字序號,命令 jobs 可以列出後臺運行的任務信息。現在要把後臺運行的任務調出來的話,命令 fg 後面就要加上 id 號,例如 fg 1 或是 fg 2 。若直接輸入 fg 的話,默認是跳出最後執行的一個任務。

既然有 front ground ,也就有 back ground ,命令爲 bg ,調到後臺去。見下圖,
管道符和作業控制
將 vim a.txt 任務調到後臺去,就變成上圖紅色框框的內容,相當於在後臺運行。一般使用 vim 命令是達不到這種效果的,
現在運行命令 vmstat 1 ,這個命令後面會講到,它會自帶的顯示系統的狀態,而且是不停的顯示。按住 ctrl + z ,就可以停止命令,然後輸入 fg 命令,就可以把它調回來,接着按住 ctrl + z ,就可以停止命令,再輸入 bg ,
管道符和作業控制
就可以讓它在後臺運行,在運行的過程中,也可以運行其他命令,命令輸入正確即可,即使被打斷了也沒有關係。見下圖,
管道符和作業控制
可以看到 vmstat 1 在運行中。接着見下圖,
管道符和作業控制
輸入 fg ,可以進入 vim 1.txt ,進去之後,vmstat 1 還在一直運行,輸入 :q! ,強制退出,然後輸入 jobs ,可以看到,只有一個任務運行。
管道符和作業控制
目前爲止, vmstat 1 還在後臺運行,把它調到前臺,輸入 fg 命令,回車,就進入前臺執行命令。這時候,輸入其他命令就不管用了。可以按住 ctrl + c ,直接結束命令。執行命令 jobs ,就可以看到沒有任務了。
管道符和作業控制

剛纔說到一個觀點,運行一條像 vmstat 1 這樣的命令時,使用 bg 命令把它調到後臺去,顯示成運行中,還是會運行的。但是這邊 vim 的命令是不算的,因爲停止一條 vim 命令,不管是在前臺還是後臺,都是不會運行、停止的狀態。

接着介紹一個命令 sleep ,sleep 1000 表示暫停1000秒,整個工作暫停運行,1000秒之後纔會恢復。見下圖,
管道符和作業控制
bg 就是把一條命令調到後臺去運行。還有一個命令,可以不用先運行命令,就能直接在後臺運行,加一個 & ,見下圖,
管道符和作業控制
這邊說一下 xshell ,如果另外打開一個終端,運行 jobs 命令,是看不到命令的。意思就是這個終端看不到另外一個終端後臺運行的命令,但是可以看到進程,輸入命令 ps aux |grep sleep ,回車,
管道符和作業控制
關於 ps 命令,後面還會說到。

總結:
ctrl + z 暫停一個命令
fg 調出一個命令到前臺
bg 將一個命令調到後臺並運行
& 在一條命令後面加上這個符號,可以直接將命令調到後臺運行
sleep +時間 暫停系統多少秒
vmstat 1 不停的顯示系統狀態命令

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