1. 程式人生 > >UNIX/Linux 中的bg/fg/jobs命令解析

UNIX/Linux 中的bg/fg/jobs命令解析

為了方便使用者進行任務管理和控制,linux提供了bg/fg/jobs這幾條命令來輕鬆排程任務。

從以下命令執行來看,可以知道bg/fg/jobs這幾條命令都是linux shell的特殊內建命令。
所以在執行bg/fg/jobs這幾條命令時,當前shell能夠自己解釋而不需要額外建立兩個
child process來完成這件事。
$ which bg
$ which fg
$ which jobs
$ whereis bg
bg:
$ whereis fg
fg:
$ whereis jobs
jobs:
$ type bg
bg is a shell builtin
$ type fg
fg is a shell builtin
$ type jobs
jobs is a shell builtin

當你在linux shell下執行一條很耗時的命令或程式時,
比如使用grep命令全盤遞迴搜尋"strlen"這個字串,
$ grep -nrws "strlen" ./
這可能會導致linux shell被佔用很長時間,而此時如果使用者想要使用shell做另外一件事,
難道必須要等到上一件事做完?
針對這個問題,有兩種對應的辦法:
1. 使用組合鍵CTRL+Z將當前shell中正在進行的任務丟到後臺並暫停執行,這時使用者
可以重新得到shell;
^Z
[1]+ Stopped             grep --color -nrws "ooxx" ./
2. 在執行耗時的任務時,將任務直接放到後臺執行,
$ grep -nrws "strlen" ./ &
這樣任務就一直會在後臺執行。

問題1:使用的是grep命令,可是CTRL+Z暫停之後為什麼是grep --color?
猜測可能是別名的原因,使用alias命令檢視:
$ alias
...
alias grep='grep --color'
...
果然如猜測那樣。關於alias命令,可以參考下面這篇博文:
http://blog.csdn.net/boyxulin1986/article/details/11891067

2. 如何確認後臺中有哪些任務?
使用jobs命令可以檢視後臺中的任務:
$ jobs
[1]- Stopped             grep --color -nrws "ooxx" ./
[2]  Running             grep --color -nrws "ooxxx" ./
其中1/2是jobid,使用者可以根據jobid來控制指定的任務執行。
請特別注意,jobid與PID是兩個完全不相關的東西。

3. 後臺正在執行的任務可以被暫停嗎?
CTRL+Z無法暫停後臺正在執行的任務。使用者可以先將任務放到前臺,再使用CTRL+Z
將其暫停並放入後臺。
$ fg 2
grep --color -nrws "ooxxx" ./
^Z
[2]  Stopped             grep --color -nrws "ooxxx" ./
$ jobs
[1]- Stopped             grep --color -nrws "ooxx" ./
[2]+ Stopped             grep --color -nrws "ooxxx" ./

4. 如何執行暫停在後臺的任務?
如果你希望繼續在後臺執行任務,使用bg命令並指定jobid,
$ bg 2
[2]+ grep --color -nrws "ooxxx" ./
如果你希望將後臺任務(包括正在執行的任務和暫停的任務)放到前臺執行,
使用fg命令並指定jobid,
$ fg 2
grep --color -nrws "ooxxx" ./
此時shell就被你的前臺任務佔領了。

相關推薦

UNIX/Linux bg/fg/jobs命令解析

為了方便使用者進行任務管理和控制,linux提供了bg/fg/jobs這幾條命令來輕鬆排程任務。 從以下命令執行來看,可以知道bg/fg/jobs這幾條命令都是linux shell的特殊內建命令

linuxbgfg、ctrl+z、ctrl+d和ctrl+c的區別

fg、bg、jobs、&、ctrl + z都是跟系統任務有關的,雖然現在基本上不怎麼需要用到這些命令,但學會了也是很實用的 一。& 最經常被用到    這個用在一個命令的最後,可以把這個命令放到後臺執行 $ pct & 二。ctrl +

shell exec 和 source 命令解析

mage 開始 概念 繼續 uil target 緩沖區 mman bash內部命令 文章大部分來源於:http://www.cnblogs.com/zhaoyl/archive/2012/07/07/2580749.html 作為筆記留存博客備忘。 exec和source

Linux 別名、內部命令、外部命令、hash緩存表 系統調用時的優先級比較

別名、內部命令、外部命令、hash緩存表 Linux系統中別名、內部命令、外部命令、hash緩存表 優先級優先級比較 在我們平時使用Linux系統執行各種命令時,會發現命令在執行過程中會區分哪個優先執行,哪個其次執行,這裏我們來做個試驗證明一下。 別名:用a

linux輔助的一些命令

輔助blkid /dev/sd2:用於查看這個分區的類型,還有UUID號,卷標e2labe /dev/sd2:專門用於查看ext類型的分區的卷標fsck -a /dev/sd2:檢測並自動修復linux文件系統mount掛載的磁盤,下次開機時會取消掛載。我們采用對/etc/fstab按照上述格式進行編輯,第一

Linuxmore和less命令用法

時間 quit ron 忽略 分頁 page tab 易用 linux中 一、more命令 more功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按

Linux如何恢復rm命令誤刪除的文件之extundelete編譯安裝及使用

可用 並且 地址 cat inode res 丟失 lin 所在 1、下載extundelete包,安裝依賴 我用的是Centos系統,在安裝extundelete之前需要安裝e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。 yum in

Linux常用的基礎命令

命令 基礎 Linux常用的命令的使用方法:1.echo (printf)echo - display a line of text 常用選項: -n:不換行; -e:使用\所引導的轉義序列生效; \n:換行 \t

Linuxtop和free命令(6/15)

都是 常見 disk 效率 傳輸數據 alt 提高 需要 讀寫 top:命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表. 該命令可以按CPU使用.內存使用和執行時間對任務進行排序; 而且該命令的很多特性都可以通過交互式命令或者在個人定制文件

Linux實現DNS正反向解析

圖片 行編輯 正反向解析 name 反向 技術分享 aec roc 結束 實驗環境:RHEL6.5版本一臺。 ---------------------------------操作步驟---------------------------------------- 一、安裝

Linuxtop和free命令詳解(轉)

機器 負載 選擇 就會 image 的區別 包括 linux中 占用內存 top:命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表. 該命令可以按CPU使用.內存使用和執行時間對任務進行排序; 而且該命令的很多特性都可以通過交互式命令或者在個

Linux系統狀態檢測命令

輸出 硬件 height 操作系統 alt page 不顯示 etc 多個進程 1.ifconfig用於獲取網卡配置與網絡狀態等信息,格式為:ifconfig [網絡設備] [參數] 2.uname命令用於查看系統內核版本等信息,格式為:uname [-a] 查看系統的內

Linux 常用的基礎命令

pts con 執行 div where x86 每次 屏幕 buildid 1、目錄相關命令的使用 pwd(printing working directory) 顯示當前工作目錄 ? pwd命令相關的環境變量: ?? PWD??保存了當前工作目錄路徑

linux如何新增dns反向解析資料

問:什麼是dns反向解析呢? 答:DNS的反向解析式將IP地址轉化為域名   這個實驗示在我上個文章,做完dns正向解析以後做的,所以這裡我只需要做如下操作 ps:如果不知道dns正向解析是怎麼做的,可以去看我前幾篇部落格 vim /etc/named.rfc1912.

linux如何新增dns正向解析資料

問:什麼是dns正向解析呢 答:就是將域名轉化為IP地址   我這裡的環境是已經配置好了dns快取記憶體服務 再此基礎上,我想做這個實驗,只需要將虛擬機器中/etc/named.conf第18行內容註釋掉,如下圖 然後開啟/etc/name.rfc1912.zon

Linux/etc/passwd檔案詳細解析

在Linux /etc/passwd檔案中每個使用者都有一個對應的記錄行,它記錄了這個使用者的一些基本屬性。系統管理員經常會接觸到這個檔案的修改以完成對使用者的管理工作。 它的內容類似下面的例子: 從上面的例子我們可以看到,/etc/passwd中一行記錄對應著一個使用者,每行記錄又被冒號(:)分隔為

python在Linux實現GRPC簡單命令

先確認安裝python3後安裝gRPC: pip install grpcio pip install protobuf pip install grpcio-tools 2.編輯或使用服務方提供的 proto檔名.proto 檔案 3.編譯 proto檔名.pr

Linuxbash的一些命令

Linux——bash的簡單使用 bash及其特性: 1、bash實質上是一個可執行的程式,一個使用者的工作環境。 2、每一個shell下可以再開啟一個shell,新開啟的shell稱為子shell,每一個shell之間相互獨立。 3、可以使用pstree命令檢視當前shell下的子shell個數

教你一些Linux隱藏bash歷史命令的小技巧

導讀 如果你登入過 Linux 系統,並敲過一些命令,那你應該知道,bash history 會記錄你輸入的所有命令。這個操作其實是有一定風險的。 我個人經常使用 Linux,所以我想著研究一番,看看如何隱藏 bash history。下

linux如何實現動態域名解析

1.什麼是動態域名解析 動態域名解析服務,是將使用者的動態IP地址對映到一個固定的域名解析服務上,使用者每次連線網路的時候,客戶端程式就會通過資訊傳遞把該主機的動態IP地址傳送給位於服務商主機上的伺服器程式,服務程式負責提供DNS服務並實現動態域名解析。就是說DDNS捕獲使用者每次變化的IP地址