chapter 4.更多的bash shell命令

監(jiān)測程序
查看進(jìn)程
ps  只顯示運行在當(dāng)前控制臺下的屬于當(dāng)前用戶的進(jìn)程

ps的輸出結(jié)果為:PID(Process ID)進(jìn)程ID轧铁、運行在的終端(TTY)别伏,以及進(jìn)程已用CPU時間,而不是進(jìn)程存在時間

對于Unix風(fēng)格的參數(shù)
-A  顯示所有進(jìn)程
-N  顯示所有與指定參數(shù)不符的所有進(jìn)程
-a  顯示除控制進(jìn)程(session leader)和無終端進(jìn)程外的所有進(jìn)程
-d  顯示除控制進(jìn)程外的所有進(jìn)程
-e  顯示所有進(jìn)程
-G grplist顯示組ID在grplist列表中的進(jìn)程
-F  顯示更多額外輸出(相較于-f參數(shù)而言)
-f  顯示完整格式的輸出
-H  用層級格式來顯示進(jìn)程

常用的命令組合如下:
ps -ef

  • UID:啟動該進(jìn)程的用戶
  • PID:進(jìn)程ID
  • PPID:父進(jìn)程的ID
  • C:進(jìn)程生命周期中的CPU利用率
  • STIME:進(jìn)程啟動時的系統(tǒng)時間
  • TTY:進(jìn)程啟動時的終端設(shè)備
  • TIME:進(jìn)程累計占用的CPU時間
  • CMD:啟動的程序名稱

ps -l

  • F:內(nèi)核分配給進(jìn)程的系統(tǒng)標(biāo)識
  • S:進(jìn)程狀態(tài)
    • O 正在運行
    • S 休眠
    • R 可運行(正等待運行)
    • Z 僵死(進(jìn)程已結(jié)束但父進(jìn)程已不存在)
    • T 停止
  • PRI:進(jìn)程優(yōu)先級(數(shù)字越大代表優(yōu)先級越低)
  • NI:謙讓度菌瘫,用來參與決定優(yōu)先級
  • ADDR:進(jìn)程的內(nèi)存地址
  • SZ:假如進(jìn)程被換出熊户,所需交換空間的大致大小
  • WCHAN:進(jìn)程休眠的內(nèi)核函數(shù)的地址

ps -ef --forest
顯示層級關(guān)系,類似圖表

實時監(jiān)測進(jìn)程
top 實時顯示

ps只能顯示某個特定時間點的信息验懊,不能進(jìn)行連續(xù)觀測擅羞,例如想觀察頻繁換進(jìn)換出內(nèi)存的進(jìn)程趨勢,需要使用top命令

  • 輸出的第一行:當(dāng)前時間义图、系統(tǒng)的運行時間减俏、登錄的用戶數(shù)、系統(tǒng)的平均負(fù)載碱工。系統(tǒng)的平均負(fù)載有三個值:最近一分鐘娃承、最近五分鐘、最近十五分鐘的平均負(fù)載怕篷,值越大說明系統(tǒng)負(fù)載越高(一般超過2就說明比較繁忙了)
  • 第二行:總共進(jìn)程历筝、運行狀態(tài)進(jìn)程、休眠匙头、停止漫谷、僵化。top命令輸出中將進(jìn)程成為任務(wù)(task)
  • 第三行:(對于多核CPU蹂析,可能有多個第三行)us:用戶進(jìn)程占用CPU百分比舔示;sy:系統(tǒng)進(jìn)程占用CPU百分比;ni:用戶進(jìn)程中改變過優(yōu)先級的占用CPU百分比电抚;id:空閑CPU百分比惕稻;wa:等待輸入輸出的CPU時間百分比
  • 第四行:系統(tǒng)物理內(nèi)存
  • 第五行:系統(tǒng)交換區(qū)空間
  • 最后一部分:
    • PID:進(jìn)程ID
    • USER:進(jìn)程屬主名字
    • PR:進(jìn)程優(yōu)先級
    • NI:進(jìn)程謙讓度值
    • VIRT:進(jìn)程占用的虛擬內(nèi)存總量
    • RES:進(jìn)程占用的物理內(nèi)存總量
    • SHR:進(jìn)程和其他進(jìn)程共享的內(nèi)存總量
    • S:進(jìn)程的狀態(tài)
      • D:可中斷的休眠狀態(tài)
      • R:運行狀態(tài)
      • S:休眠狀態(tài)
      • T:跟蹤狀態(tài)或停止?fàn)顟B(tài)
      • Z: 僵化狀態(tài)
    • %CPU:進(jìn)程使用的CPU時間比例
    • %MEM:進(jìn)程使用的內(nèi)存占可用內(nèi)存的比例
    • TIME+:自進(jìn)程啟動到目前為止的CPU時間總量
    • COMMAND:進(jìn)程名

默認(rèn)情況下,top按照%CPU值來進(jìn)行排序蝙叛,可以通過鍵入f進(jìn)行自定義排序(有的Linux主機(jī)需要shift+f俺祠,然后鍵入對應(yīng)字母進(jìn)行自定義排序),鍵入d修改輪詢時間借帘,q退出

結(jié)束進(jìn)程
kill pid 殺死為pid的進(jìn)程
killall processA 殺死名為processA的所有進(jìn)程蜘渣,支持通配符

在Linux系統(tǒng)中,進(jìn)程之間通過信號進(jìn)行通信的肺然,信號值9為KILL(無條件終止)蔫缸,11為SEGV(段錯誤)
kill
<code>kill pid</code>會告訴進(jìn)程如果可能的話停止,進(jìn)程可自行忽略該請求际起,不停止拾碌。如果要強(qiáng)制停止吐葱,需要使用-s參數(shù)來指定信號(使用信號名或者信號值)
<code>kill -s KILL pid
kill -s 9 pid 或者 kill -9 pid</code>
killall
<code>killall</code>會按照進(jìn)程名而不是進(jìn)程ID來結(jié)束進(jìn)程

監(jiān)測磁盤空間
掛載存儲媒體
mount
umount
查看磁盤剩余空間
df

df命令顯示信息如下:

  • 設(shè)備的設(shè)備文件位置
  • 能容納多少個1024字節(jié)大小的塊
  • 已用多少個塊
  • 還能用多少個塊
  • 已用空間所在百分比
  • 設(shè)備掛載點
    df -h會格式化輸出
查看磁盤使用空間
du

常見參數(shù):
<code>-c:會在最后顯示所有已列出的文件總大小
-h:按照用戶易讀格式輸出
-s:顯示每個輸出參數(shù)總計,如du -sh pathName 顯示pathName的大小</code>

處理數(shù)據(jù)文件

sort對數(shù)據(jù)進(jìn)行排序呢校翔,默認(rèn)會按照回話指定的默認(rèn)語言的排序規(guī)則對文本中數(shù)據(jù)行排序弟跑。
1. sort -n fileName 按數(shù)字值進(jìn)行排序,而不是按照字符
2. sort -M fileName 按月排序
3. sort -f fileName 忽略大小寫
4. sort -R fileName 按隨機(jī)生成的散列表的鍵值排序
5. sort -r fileName 反向排序
6. sort -k pos1[, pos2] 從域1開始排序防症,如果域2存在孟辑,則排序到域2結(jié)束
7. sort -t sep 指定一個用來區(qū)分鍵位置的字符sep

sort -t ':' -k 3 -n /etc/passwd
du -sh * | sort -nr

grep在指定的文件中查找包含指定字符的行,并返回該行告希,衍生包括egrep扑浸、fgrep烧给。
1. grep pattern fileName
2. grep -v pattern fileName 反向搜索:輸出不匹配該pattern的行
3. grep -n pattern fileName 輸出該pattern所在行號
4. grep -c pattern fileName 輸出共匹配行數(shù)(相當(dāng)于count)
5. grep -e pattern1 -e pattern2 fileName 指定多個patterns
6. grep [ab] fileName 使用正則表達(dá)式查找a或b的行(注意正則表達(dá)式要用[])</code>

gzip用來壓縮文件燕偶,壓縮后綴為.gz
gzcat用來查看壓縮過的文本文件內(nèi)容,有的系統(tǒng)為zcat
gunzip用來解壓.gz文件

tar歸檔础嫡,在Unix與Linux上使用較gzip廣泛指么,能夠?qū)⒄麄€目錄都?xì)w檔到單個文件中,方便數(shù)據(jù)遷移

-A  將一個已有tar歸檔文件追加到另一個已有tar歸檔文件
-c  創(chuàng)建一個新的tar歸檔文件
-t  列出已有tar歸檔內(nèi)容
-f  fileName 輸出結(jié)果到文件中
-x  從已有tar歸檔文件中提取文件
-v  在處理文件時顯示文件
-z  將輸出重定向給gzip命令來壓縮內(nèi)容

tar -cvf  test.tar test1/ test2/  將test1和test2目錄內(nèi)容歸檔到test.tar中
tar -tf test.tar 列出test.tar中內(nèi)容榴鼎,但并不提取
tar -xvf 提取
tar -zxvf 解壓用gzip壓縮過的tar文件伯诬,通常以.tgz結(jié)尾

參考文章

Linux Command Line and Shell Scripting Bible
該系列其他文章請查看:
Linux命令行與shell腳本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市巫财,隨后出現(xiàn)的幾起案子盗似,更是在濱河造成了極大的恐慌,老刑警劉巖平项,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赫舒,死亡現(xiàn)場離奇詭異,居然都是意外死亡闽瓢,警方通過查閱死者的電腦和手機(jī)接癌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扣讼,“玉大人缺猛,你說我怎么就攤上這事⊥址” “怎么了荔燎?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長销钝。 經(jīng)常有香客問我有咨,道長,這世上最難降的妖魔是什么曙搬? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任摔吏,我火速辦了婚禮鸽嫂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘征讲。我一直安慰自己据某,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布诗箍。 她就那樣靜靜地躺著癣籽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪滤祖。 梳的紋絲不亂的頭發(fā)上筷狼,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機(jī)與錄音匠童,去河邊找鬼埂材。 笑死,一個胖子當(dāng)著我的面吹牛汤求,可吹牛的內(nèi)容都是我干的俏险。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼扬绪,長吁一口氣:“原來是場噩夢啊……” “哼竖独!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挤牛,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤莹痢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后墓赴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竞膳,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年竣蹦,在試婚紗的時候發(fā)現(xiàn)自己被綠了顶猜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡痘括,死狀恐怖长窄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纲菌,我是刑警寧澤挠日,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站翰舌,受9級特大地震影響嚣潜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜椅贱,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一懂算、第九天 我趴在偏房一處隱蔽的房頂上張望只冻。 院中可真熱鬧,春花似錦计技、人聲如沸喜德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舍悯。三九已至,卻和暖如春睡雇,著一層夾襖步出監(jiān)牢的瞬間萌衬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工它抱, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秕豫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓抗愁,卻偏偏與公主長得像馁蒂,于是被迫代替她去往敵國和親呵晚。 傳聞我的和親對象是個殘疾皇子蜘腌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu金矛,源于非洲祖魯人和科薩人的語言芯急,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,202評論 9 467
  • 《Linux命令行與shell腳本編程大全》讀書筆記 檢測程序 探查進(jìn)程命令ps Linux使用的GNUps命令支...
    lsh的學(xué)習(xí)筆記閱讀 264評論 0 0
  • 又來到了一個老生常談的問題驶俊,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢娶耍? 今天就這個問題開始,來談?wù)劜?..
    tangsl閱讀 4,098評論 0 23
  • 通過將某個函數(shù)成員聲明為 static饼酿,我們將使該函數(shù)獨立于本類的任何具體對象榕酒。從靜態(tài)函數(shù)內(nèi)引用類成員,必須使用限...
    趙者也閱讀 762評論 3 0
  • 如今的生活為什么會這么的枯燥乏味故俐,人與人之間的關(guān)系也越來越疏遠(yuǎn)淡泊想鹰,我想應(yīng)該是社會給予可我們種種制約,程序药版,規(guī)則辑舷。...
    de1689a5e712閱讀 146評論 0 0