10個 Linux/Unix下 Bash 和 KSH shell 的作業控制執行個體

來源:互聯網
上載者:User

Linux 和 Unix 屬於多任務的作業系統,也就是說一個系統在同一時間段內能運行多重任務(進程)。在這個新的部落格系列,我將會列出相關的 Linux 和 Unix 作業(job)控制的命令,你可以通過這些命令在 Bash 或 Korn 還有 POSIX shell 下實現執行多重任務。

什麼是作業控制?

作業控制不只是能夠停止/掛起(stop/suspend)正在執行的進程(命令),也可以繼續/喚醒(continue/resume)執行你需要的每一個進程。這完全可以用你的作業系統和 bash/ksh 之類的 shell 或 POSIX shell 完成。

誰給作業控制的提供了環境?

Bash / Korn shell,或者是 POSIX shell 提供給了作業控制的環境。

跟作業表打個招呼吧

你的 shell 會留有一張當前作業的表單,稱為作業表。當你鍵入命令時,shell 會給它分配一個 jobID(也稱作 JOBSPEC)。一個 jobID 或 JOBSPEC只是很小的整數數值。

#1: 建立你的首個 Linux/Unix 作業

我要運行一個名為 xeyes 的命令,它會在螢幕上顯示兩個橢圓的眼睛,輸入: $ xeyes &

輸出範例:

Fig.01: 在後台運行 xeyes 命令

我使用&符號讓一個 job 在後台運行。shell 會列印一行資訊類似如下:

  1. [1]6891

在這個例子中,有兩個數字輸出,分別表示:

  • 1 : 在後台執行的 xeyes 任務的作業號為 1。
  • 6891 : 作業1的進程ID。

我在多執行一些 job:

  1. ## 啟動一個文字編輯器,X 的系統負載顯示,和 sleep 命令 ##
  2. gedit /tmp/hello.c &
  3. xload &
  4. sleep 100000&
#2: 列出當前的作業

要查看當前 shell 的啟用的任務狀態,輸入:

  1. $ jobs
  2. $ jobs -l

輸出如下:

  1. [1]9379Running xeyes &
  2. [2]9380Running gedit /tmp/hello.c &
  3. [3]-9420Running xload &
  4. [4]+9421Running sleep 100000&

簡要描述如下:

欄位 描述 樣本
1 [1] jobID 或 JOB_SPEC - 工作號要與fg, bg, wait, kill和其他shell命令一起使用。你必須在工作號首碼添加一個百分比符號:(%)。
加號 (+) 標識著預設的或是現在的作業。
減號 (-) 標識著前一個作業。
%1
fg %1
kill %2
2 9379 進程 ID - 系統自動為每個進程建立並分配地專屬的身份標誌號。 kill 9379
3 Running 狀態 - 關於作業的狀態:
Running - 該 作業正在運行,還沒有被外部訊號掛起。
Stopped - 該作業已經被掛起。
N/A
4 xeyes & command - 由shell給出的命令。 script &
firefox url&

你也可以用 ps 命名列出當前系統正在啟動並執行進程:

  1. $ ps
#3: 停止或掛起正在啟動並執行作業

按下[Ctrl]-[Z]鍵或使用kill 命令,如下所示:

  1. kill -s stop PID

舉個例子,啟動ping 命令,然後用 Ctrl-Z 鍵來停止 ping 命令作業:

Animated gif 01: 掛起 ping 命令作業

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.