運行快捷鍵命令大全,運行命令怎麼調出來

通常,當您在終端中運行命令時,必須等到命令完成後才能輸入另一個命令。這稱為在前台或前台進程中運行命令。當某個進程在前台運行時,它將佔用您的shell,並且您可以使用輸入設備與之交互。

如果命令需要很長時間才能完成,而同時又要運行其他命令怎麼辦?您有幾種選擇可以使用。最明顯和直接的選擇是啟動一個新的Shell會話並在其中運行命令。另一種選擇是在後台運行命令。

後台進程是從終端啟動並在後台運行而無需用戶交互的進程/命令。

在本文中,我們將討論Linux後台進程。我們將向您展示如何在後台啟動命令以及如何在Shell會話關閉後保持進程運行。

在後台運行Linux命令

要在後台運行命令,請在命令末尾添加「&」符號(&):

command &

Shell作業ID(用括弧括起來)和進程ID將列印在終端上:

[1] 25177

您可以同時在後台運行多個進程。

後台進程將繼續向您從中調用命令的終端寫入消息。要禁止顯示stdout和stderr消息,請使用以下語法:

command > /dev/null 2>&1 & 

>/dev/null 2>&1表示將stdout重定向到/dev/null,將stderr重定向到stdout。

使用jobs 命令顯示當前shell會話中所有已停止和後台進程的狀態:

jobs -l

輸出包括作業編號,進程ID,進程狀態以及啟動該進程的命令:

[1]+ 25177 Running                 ping google.com &

要將後台進程置於前台,請使用fg命令:

fg

如果您有多個後台作業,請在命令後添加%和作業ID:

fg %1

要終止後台進程,請使用 kill 命令,後跟進程ID:

kill -9 25177

將前台進程移至後台

要在後台移動正在運行的前台進程:

  1. 通過鍵入Ctrl+Z停止進程。
  2. 通過鍵入bg將停止的進程移至後台。

在Shell退出後保持後台進程運行

如果連接斷開或退出Shell會話,則後台進程將終止。在互動式shell會話結束後,有幾種方法可以使進程保持運行。

一種方法是使用內置的disown shell從shell的作業控制項中刪除作業:

disown

如果您有多個後台作業,請在命令後添加%和作業ID:

disown %1

確認使用jobs -l命令從活動作業表中刪除了該作業。要列出所有正在運行的進程,包括未運行的進程,請使用 ps aux 命令。

使進程退出Shell後仍保持運行的另一種方法是使用nohup。

nohup 命令執行另一個指定為其參數的程序,並忽略所有SIGHUP(掛斷)信號。 SIGHUP是在其控制終端關閉時發送到進程的信號。

要使用nohup命令在後台運行命令,請鍵入:

nohup command &

命令輸出重定向到nohup.out文件。

nohup: ignoring input and appending output to 'nohup.out'

如果您註銷或關閉終端,則該過程不會終止。

替代品

有許多程序可讓您同時進行多個互動會話。

屏幕

Screen 或GNU Screen是一個終端多路復用器程序,可讓您啟動屏幕會話並在該會話內打開任意數量的窗口(虛擬終端)。即使您已斷開連接,在Screen中運行的進程也將繼續運行,即使它們的窗口不可見。

Tmux

Tmux 是GNU Screen的現代替代方案。使用Tmux,您還可以創建一個會話並在該會話中打開多個窗口。 Tmux會話是持久性的,這意味著即使您關閉終端,在Tmux中運行的程序仍會繼續運行。

結論

要在後台運行命令,請在命令末尾包含&。當您在後台運行命令時,不必等到命令完成就可以執行另一條命令。

如果您有任何問題或反饋,請隨時發表評論。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230040.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 13:17
下一篇 2024-12-10 13:17

相關推薦

發表回復

登錄後才能評論