fg(前台執行) frontground
bg(背景執行) background
linux提供的fg和bg指令,可以讓我們輕松排程正在運作的任務
假如你發現運作的一個程式需要很長的時間,但是需要幹别的事情,你就可以用ctrl-z挂起這個程式,然後可以看到系統的提示:
[1]+ Stopped /root/bin/rsync.sh
然後我們可以把程式排程到背景執行:(bg 作業号)
#bg 1
[1]+ /root/bin/rsync.sh &
(fg指令不加參數時,使用效果就是讓剛才最近被你挂起的程序傳回前台執行)
用jobs指令檢視任務
#jobs
[1]+ Running /root/bin/rsync.sh &
把它調回到控制台運作
#fg 1
/root/bin/rsync.sh
這樣,你這控制台上就隻有等待這個任務完成了。
fg、bg、jobs、&、 ctrl+z都是跟系統任務有關的,學會了相當的實用
一、&最經常被用到
這個用在一個指令的最後,可以把這個指令放到背景執行
二、ctrl + z (挂起) Ctrl+c (強制中斷) Ctrl+d
ctrl + z 可以将一個正在前台執行的指令放到背景,并且暫停
Ctrl+c和ctrl+z都是中斷指令,但是他們的作用卻不一樣.
Ctrl+c是強制中斷程式的執行。
Ctrl+z的是将任務中斷,但是此任務并沒有結束,他仍然在程序中他隻是維持挂起的狀态。
例如:當你vi一個檔案時,如果需要用shell執行别的操作,但是你又不打算關閉vi,因為你得存盤推出,你可以簡單的按下Ctrl+z,shell會将vi程序挂起~,當你結束了那個shell操作之後,你可以用fg指令繼續vi你的檔案。
Ctrl+d 不是發送信号,而是表示一個特殊的二進制值,表示 EOF。
鍵盤和shell的互動:
Ctrl-c Kill foreground process 常用
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell 常用 有時也會使程式退出,例如沒有參數的cat指令,從終端讀一行顯示一行,知道Ctrl+D終結輸入并終結程序
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l Clear screen
控制字元都是可以用(stty指令)更改的。可以用stty -a看看終端配置。
但實驗指導書中:我們可以通過鍵盤發鍵盤中斷信号來喚醒
pctl 父子程序繼續執行,輸入 ctrl+c
三、jobs
檢視目前有多少在背景運作的指令
四、fg
将背景中的指令調至前台繼續運作
如果背景有多個指令,可以用fg %jobnumber将選中的指令調出,%jobnumber是通過jobs指令查到的背景正在執行的指令的序号(不是pid)
五、bg
将一個在背景暫停的指令,變成繼續執行
如果背景有多個指令,可以用bg %jobnumber将選中的指令調出,%jobnumber是通過jobs指令查到的背景正在執行的指令的序号(不是pid)
總結:
一般指令在前台執行(fg),執行完畢後,控制傳回給使用者。
在指令後面加上&,它會在背景執行(bg),并将特殊的環境變量$!設定為該任務的程序ID。這時shell可以并發執行其他指令。
按Ctrl+z可以挂起前台運作的程式
挂起的程式可以用fg恢複到前台,或者用bg恢複到背景
背景程式試圖寫入資料到終端裝置時(與寫入标準輸出不同)可能被阻塞。
shell可以等待一個背景任務執行完成,隻需使用wait指令,加上程序ID或者任務序号;也可以等待所有的背景任務,隻需使用不加參數的wait
程序管理
Bash有兩種執行指令的模式:批處理模式、并發模式。
要以批處理模式執行指令(即按照順序),必須用;分隔
command1 ; command2
eg: mkdir demo ; cd demo
[[email protected] demo]$
在這個例子中,當command1執行完畢,即執行command2
要并發執行兩個指令,它們必須用&分隔
command1 & command2
在這種情況下,command1 在背景執行(通過&),進而立即将控制傳回到shell,以執行command2
參考來源:
https://www.cnblogs.com/suixingc/p/shell-zhong-defg-ming-ling.html
https://www.cnblogs.com/chjbbs/p/6307333.html
https://blog.csdn.net/qq_42914528/article/details/81913482
https://blog.csdn.net/hellocsz/article/details/82085761