1. 程式人生 > >Shell 命令之 jobs

Shell 命令之 jobs

Linux下使用Shell命令控制任務(Jobs)執行

下列命令可以用來操縱程序任務:
ps 列出系統中正在執行的程序
kill 傳送訊號給一個或多個程序(經常用來殺死一個程序)
jobs 列出屬於當前使用者的程序
bg 將程序搬到後臺執行(Background)
fg 將程序搬到前臺執行(Foreground)

將job轉移到後臺執行

如果你經常在X圖形下工作,你可能有這樣的經歷:通過終端命令執行一個GUI程式,GUI介面出來了,但是你的終端還停留在原地,你不能在shell中繼續執行其他命令了,除非將GUI程式關掉。

為了使程式執行後終端還能繼續接受命令,你可以將程序移到後臺執行,使用如下命令執行程式:  #假設要執行xmms
$xmms &


這樣開啟xmms後,終端的提示又回來了。現在xmms在後臺執行著呢(可以繼續工作和聽音樂了^_^)

但萬一你執行程式時忘記使用“&”了,又不想重新執行(Eclipse啟動速度太慢了,我不想重啟啊,:))。你可以先使用ctrl+z掛起程式,然後敲入bg命令,這樣程式就在後臺繼續運行了。

察看jobs

使用jobs或ps命令可以察看正在執行的jobs。(the two have a little diff. have a try ^_^)

kill a job

方法一:
通過jobs命令檢視job號(假設為num),然後執行kill %num
方法二:
通過ps命令檢視job的程序號(PID,假設為pid),然後執行kill pid

kill的其他作用

kill除了可以終止程序,還能給程序傳送其它訊號,使用kill -l 可以察看kill支援的訊號。

SIGTERM是不帶引數時kill傳送的訊號,意思是要程序終止執行,但執行與否還得看程序是否支援。如果程序還沒有終止,可以使用kill -SIGKILL pid,這是由核心來終止程序,程序不能監聽這個訊號。

-------------------------------------

Linux 前後臺程序切換

當你用shell啟動一個程式時,往往他是在前臺工作的。 例如經常用PUTTY連線到遠端伺服器執行指令碼的時候,如果本地網路中斷後,這個時候前臺程序就結束了,比較的懊惱,必須重新執行。因此有必要進行前後臺程序的切換。

例如直接在終端裡輸入firefox,那麼會開啟firefox,但當你關閉此終端或者ctrl+c強制終止時,firefox也隨機關閉了。你可以在執行時後面加一個&,這樣就在後臺工作了。

Shell支援作用控制,有以下命令:

1. command  & 讓程序在後臺執行

2. jobs –l 檢視後臺執行的程序

3. fg %n 讓後臺執行的程序n到前臺來

4. bg %n 讓程序n到後臺去;

PS:"n"為jobs檢視到的程序編號。

1、執行命令&切換至後臺

在Linux終端執行命令的時候,在命令末尾加上 & 符號,就可以讓程式在後臺執行

[email protected]$ ./tcpserv01&

2、切換正在執行的程式到後臺

如果程式正在前臺執行,可以使用 Ctrl+z 選項把程式暫停,然後用 bg %[number] 命令把這個程式放到後臺執行,這個步驟分為3步,如下:

2.1 暫停程式執行CTRL+Z

ctrl + z跟系統任務有關的,ctrl + z可以將一個正在前臺執行的命令放到後臺,並且暫停。

 [[email protected] ~]$ sh ins.sh

^Z

[1]+ Stopped                 ins.sh

2.2 檢視暫停的程式

察看jobs使用jobs或ps命令可以察看正在執行的jobs。

[[email protected] ~]$ jobs -l

[1]+  4524 Stopped            ins.sh

jobs命令執行的結果,+表示是一個當前的作業,減號表是是當前作業之後的一個作業。

jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated

2.3 切換程式至後臺

bg將一個在後臺暫停的命令,變成繼續執行如果後臺中有多個命令,可以用bg %jobnumber將選中的命令調出.

[[email protected] ~]$ bg %1

[[email protected] ~]$ jobs -l

[1]+  4524 Running           ins.sh

2.4 切換程式至前臺

也可以用 fg %[number] 指令把一個程式掉到前臺執行

[[email protected] ~]$ fg %1

./tcpserv01

2.5 終止後臺程式

也可以直接終止後臺執行的程式,使用 kill 命令

[[email protected] ~]$ kill %1

但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的程序標識;也就是說,jobs命令顯示的是當前shell環境中所起的後臺正在執行或者被掛起的任務資訊。

相關推薦

Shell 命令 jobs

Linux下使用Shell命令控制任務(Jobs)執行 下列命令可以用來操縱程序任務: ps 列出系統中正在執行的程序 kill 傳送訊號給一個或多個程序(經常用來殺死一個程序) jobs 列出屬於當前使用者的程序 bg 將程序搬到後臺執行(Background) fg

python調用shell命令三慷慨法

ech ces nds 不用 準備 每一個 popen函數 通信 hello preface: 忙於近期的任務,須要用到libsvm的一些命令。如在終端執行javasvm_train train_file model_file. pythonsubset.py file t

shell命令巧用cut

文件名 取出 排序 統計 bsp int shell 一個 -c 需求:取出日誌中ip字段,並進行統計排序 .一般用用awk命令 假如ip地址為第一個字段 那麽 awk ‘{print $1}’ 文件名 |sort |uniq -c|sort-nr 那如果不是第一個字段而且

Linux 進程管理命令jobs

Linux jobs命令的簡單操作作業分為前臺作業和後臺作業前臺作業(foreground) 通過終端啟動,且啟動會一直占據終端。比如vim、cp後臺作業(background)可以通過終端啟動,如何讓作業運行於後臺?1、如果作業已經運行,可以使用ctl+z,但是這個命令會使得作業停止。使用kill -s 1

shell命令read

shell readread:簡介:read命令從鍵盤讀取變量的值,通常用在shell腳本中與用戶進行交互的場合。該命令可以一次讀取多個變量的值,變量和輸入的值都需要使用空格隔開。在read命令後面,如果沒有指定變量名,讀取的數據將被自動賦值給特定的變量REPLY。語法read(選項)(參數選項Read可以帶

Hive Shell 命令二(表中資料的操作,出自Hive程式設計指南)

一、 互動模式: show tables; #檢視所有表名 show tables  'ad*'  #檢視以'ad'開頭的表名 set 命令 #設定變數與檢視變數; set -v #檢視所有的變數 set hive.stats.atomic #檢視hive.sta

shell命令tr

先看看tr的幫助文件: tr命令就是對標準輸入進行翻譯、壓縮、刪除等操作 舉個栗子: #!/usr/bin/env bash #replace echo "Hello Tr" |tr "HT" "ht" # replace H to h,T to t. #output hel

shell命令檔案壓縮與解壓(常用)

.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是壓縮!) .gz 解壓1:gunzip FileName.gz 解壓2:gzip -d Fil

shell命令cp

作業系統為 macOS 10.12.4 cp 為複製命令,實際中分為檔案間的複製,目錄間的複製,檔案到目錄的複製以及連結的複製。 檔案間的複製 cp file1 file2 如果 file2 不存在,就先建立 file2 ,然後把 fi

linux-shell命令mkdir(make dir)【建立目錄】

功能說明: 建立目錄。 語法介紹: mkdir [-p][--help][--version][-m <目錄屬性>][目錄名稱]。 補充說明: mkdir 可建立目錄並同時設定目錄的許可權。 引數說明: -m<目錄屬性> 或 --m

shell命令scp

scp即secure copy,主要用於遠端檔案拷貝。用法如下: scp [-option] [[[email protected]]host1:]file1 ... [[[email&

linux-shell命令chgrp(change group)【更改群組】

功能說明:變更檔案或目錄的所屬群組。 語法介紹:chgrp [-cfhRv][--help][--version][所屬群組][檔案或目錄...] 或 chgrp [-cfhRv][--help] [--reference =<參考檔案或目錄>][--ver

linux-shell命令rm(remove)【刪除檔案或目錄】

功能說明:刪除檔案或目錄。 語法介紹:rm [-dfirv][--help][--version][檔案或目錄...] 補充說明:執行rm指令可刪除檔案或目錄,如欲刪除目錄必須加上引數"-r",否則僅會刪除檔案。  引數說明: -d或--directory

shell命令---檢測磁盤空間

mtab ext2 -- del ble proc 媒體 ont directory 目錄   1、掛載存儲媒體   2、使用df命令   3、使用du命令 1、掛載存儲媒體 mount命令   Linux上用來掛載媒體的命令叫作mount

Shell命令文本操作

官方文檔 args 管道 shel find 忽略大小寫 忽略 rgs 處理 前言 在Linux中,文本處理操作是最常見的,應用非常廣泛,如果能熟練掌握,可以大大提高開發效率。 awk/sed/grep是文本操作領域的“三劍客”,學會了這3個命令

awk命令 - 統計/etc/passwd文件中各用戶所使用的shell類型及出現次數

linux 命令 awk 統計/etc/passwd文件中各用戶所使用的shell類型及出現次數awk -F: ‘BEGIN{printf"%-15s\t%s\n","ShellType","Count"}{shellType[$NF]++}END{for(i in shellType)print

python執行shell命令

python[[email protected]/* */ ~]# python Python 2.7.5 (default, Sep 15 2016, 22:37:39) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help",

Shell-2-命令

xargs img 錄制 mysql -type linux 批量 pre 所有權 1.cat (1)基本用法 [[email protected]/* */ tmp]# cat 1.txt 2.txt this is a test1 this is a

Linux 定時執行shell腳本命令crontab

定時備份 star art www. 服務器 啟動 and .sh 日誌 crontab可以在指定的時間執行一個shell腳本以及執行一系列Linux命令 例如:服務器管理員定時備份數據庫數據、日誌等 詳解: 常用命令: crontab –e

shell學習locate和find命令

2linux系統中有幾個關於文件搜索的命令,例如:locate,wheris以及find在工作中比較常用到。. 1.locate命令:locate查找文件是基於/var/lib/mlocate數據庫,該數據庫包含所有的本地文件信息,Linux系統自動創建這個數據庫,並且每天自動更新一次。本地剛創建一個文件,但