點擊上方“程序員大白”,選擇“星標”公眾號
重磅干貨,第一時間送達

來源:Linux迷
原文鏈接:https://www.linuxmi.com/linux-mingling-houtai-yunxing.html
Linux 命令是使用終端與系統(tǒng)交互的好方法。但是,有時可能需要一段時間才能完成手頭的任務(wù)。這迫使用戶等待相當(dāng)長的時間或完全生成一個新的 shell。
幸運的是,您可以通過一些簡單的方法在后臺運行 Linux 命令。本文的其余部分說明了其中一些方法。運行 Linux 后臺命令的最簡單方法是在命令后添加與號 (&)。例如,如果從終端啟動 gedit 文本編輯器,則在關(guān)閉編輯器之前無法使用 shell。但是,當(dāng)您在命令中添加額外的 & 時,您將能夠立即使用 shell。對于需要長時間執(zhí)行的任務(wù),&符號可以使當(dāng)前終端窗口不被占用,這樣就能繼續(xù)在同一個終端上工作,甚至關(guān)閉終端窗口也不會影響任務(wù)的正常執(zhí)行。不過需要注意的是,如果要求這個任務(wù)輸出內(nèi)容到標準輸出中(例如 echo 或 ls),即便使用了 &,也會等待這些輸出任務(wù)在前臺運行完畢;當(dāng)使用 &將一個進程放置到后臺運行的時候,Bash 會提示這個進程的進程 ID。在 Linux 系統(tǒng)中運行的每一個進程都有一個唯一的進程 ID,我們可以使用進程 ID 來暫停、恢復(fù)或者終止對應(yīng)的進程。有時您運行一個命令,卻發(fā)現(xiàn)它需要很長的時間才能完成。通過按Ctrl + Z鍵,可以將一個正在前臺執(zhí)行的命令放到后臺,并且暫停。您可以通過 在終端中輸入jobs來查看所有后臺任務(wù)的列表。使用fg命令將后臺中的命令調(diào)至前臺繼續(xù)運行。您可以通過 在終端中輸入jobs來查看所有后臺任務(wù)的列表。使用fg命令將后臺中的命令調(diào)至前臺繼續(xù)運行。然后使用bg命令,將一個在后臺暫停的命令,變成繼續(xù)執(zhí)行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺正在執(zhí)行的命令的序號(不是pid)Linux 中 的nohup命令允許管理員運行不受掛斷(Hang Up)信號影響的終端命令。您可以使用 nohup 在后臺運行 Linux 命令。nohup sudo nmap -sS --top-ports=15 192.168.150.1/24nohup 的一個主要好處是,即使您退出 shell,您的命令也會運行。此外,它會生成執(zhí)行的日志文件。在當(dāng)前目錄或 $HOME 中查找nohup.out。您還可以使用系統(tǒng)重定向在 Linux 中運行后臺命令。例如,如果您運行以下ping命令,您的 shell 將在后臺運行它并立即返回終端提示。ping -c5 8.8.8.8 >Linuxmi.com.log 2>&1 &這里 ping 命令的輸出被重定向到output.log文件。如果你想丟棄結(jié)果,你可以用/dev/null替換它。的2>&1是告訴bash到任何錯誤重定向到相同的文件。最后的&指示 bash 在后臺運行此命令。5.、使用 disown 將 Linux 命令設(shè)置為后臺運行Linux 中 的disown命令可以輕松地在后臺運行命令。首先,您需要使用& 運算符在后臺發(fā)送任務(wù)。然后,鍵入disown以將其與shell分離。disown 的一個主要優(yōu)點是,與 nohup 一樣,當(dāng)您關(guān)閉 shell 或注銷時,系統(tǒng)不會終止您的任務(wù)。Tmux 是一個強大的多路復(fù)用器,它允許我們在單個窗口中運行多個終端會話。對于不熟悉它的人來說,學(xué)習(xí) tmux 是一個很好的選擇。Tmux 使在 Linux 中運行后臺命令毫不費力。tmux new -d 'ping -c 10 8.8.8.8 > www.linuxmi.com.log'當(dāng)您運行上述tmux命令時,它將在單獨的 shell 中執(zhí)行ping命令并將其保留在后臺。您可以使用此方法在后臺執(zhí)行任何 Linux 命令。能夠在后臺運行命令使系統(tǒng)管理對管理員來說更有效率。您可以通過多種方式為您的任務(wù)做背景。像&和Ctrl + Z這樣的 Bash 功能很方便,但系統(tǒng)會在 shell 關(guān)閉時終止后臺作業(yè)。另一方面,即使您注銷或終止 shell ,諸如nohup和disown 之類的工具也會使您的命令保持運行。如果您將程序長時間留在后臺,如果編碼不當(dāng),它們可能會變成僵尸進程。這些過程會顯著降低系統(tǒng)速度。因此,請確保每隔一段時間識別并殺死僵尸進程。
推薦閱讀
國產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(后續(xù))
年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了
中國聯(lián)通官網(wǎng)被發(fā)現(xiàn)含木馬腳本,可向用戶推廣色情APP
張一鳴:每個逆襲的年輕人,都具備的底層能力
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運營維護的號,大家樂于分享高質(zhì)量文章,喜歡總結(jié)知識,歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進步!