常用進程查看工具

進程是我們學習Linux中常常接觸的概念,他是程序被運行起來的一種表現形態。

了解進程的工作狀態,管理進程的工作狀態,可以讓我們更清楚的知道,系統正在做什么,整體的進度是怎么樣的。

想要了解進程的工作狀態,我們就需要借助一些常用的工具來查看,想要對進程進行管理,我們也需要工具來實現。下面我們一起來看一看常用的查看進程工具有哪些,這些工具是如何使用的,有什么特點等等。

常用的進程查看工具有以下幾種:

pstree ps pidof pkill  pgrep top htop  

首先要說的第一個就是pstree

這個命令最常用的方法就是pstree,后面不跟任何參數。這是一個將系統中的所有進程,以進程樹形態顯示出來的工具,讓我們可以擁有一個全局的眼光,去查看系統的進程。


常用進程查看工具



這就是pstree的顯示結果,相信通過以上這張圖,能讓我們對pstree的顯示方式有一個比較直觀的了解。我們可以很容易的了解到系統一共運行了哪些進程,各個進程分別 包含了哪些線程等等。

接下來介紹一下ps這個命令的使用。

這或許是我們使用頻率最高的查看進程的命令了。

需要注意的是,ps這個命令,工作方式有點類似“snapshot”,當我們每次執行一次ps的時候,ps命令就會將系統當前的進程的運行狀態做一個靜態“snapshot”,然后顯示給我們,這樣的結果就是,有可能我們每次執行ps的結果,都是不一樣的。

按我的理解,ps是將動態的系統的進程的狀態的某個時間點的狀態,靜態的顯示給我們。

來看看ps命令常跟的選項,以及各個選項分別是什么意思:

ps支持兩種風格的顯示方式,一種是BSD風格,一種是UNIX風格。

BSD風格的選項:

ps a 顯示所有與終端相關的進程

ps x 顯示所有與終端無關的進程

ps u 顯示進程所有者的相關信息

ps f 顯示進程的父進程

ps o options的意思,即有選擇性的顯示

 

其實這些選項都是組合著用的,最常見的組合方式有以下幾種:

ps aux

ps auxf

ps axo  [pid,euid,ruid,tty,ppid,%cpu,%mem]

 

ps aux 顯示結果:

常用進程查看工具


 

ps auxf 

常用進程查看工具


ps axo  定義要顯示的選項的顯示結果:

常用進程查看工具


 

說完BSD風格,再來說說UNIX風格的顯示。

ps  -e  e既是extend的意思,擴展顯示

ps  -f  顯示完整格式

ps  -F  顯示更完整的格式

ps  -H  hierarchy,以層級結構的方式顯示

ps  -U 顯示以指定的用戶運行的程序

 

其實這些選項也是組合著用的,最常用的莫過于

ps -eFH

 

常用進程查看工具


 

關于ps的顯示結果,在其第一行的各項參數,我們有必要了解一下,這樣我們才能對進程做更深入的理解。

UID: 進程的發起者

PID:通過此前的用戶管理章節的學習,我們已經知道,計算機是靠數字來標識這些不同的進程的,進程編號存在的意義也是一樣的,人能記住進程名,但計算機可記不住,它只能記數字。

PPID: 這個多出來的P就是parent的意思。

C: 即CPU,運行在哪顆CPU核心上。

%CPU: 分配到的CPU的時間片百分比

%MEM: 實際占用的內存百分比

VSZ:虛擬內存集

RSS:常駐內存集

START:啟動時間

TIME:運行占據CPU的累計時長

COMAND: 由哪個命令運行起來

STAT:進程的運行狀態

常見的進程的運行狀態有:

RRUNING

Sinterruptable sleep 可中斷睡眠

Duninterruptable sleep 不可中斷睡眠,(一般都是在等待IO結束發生)

TSTOP

Zzombie 僵尸進程

+:前臺運行的進程

l :多線程進程

N:低優先級進程

< :高優先級進程

s:創建會話者,通常都為bash程序

 

 

pidof  命令的使用:

從字面的意思即可以看出,這是一個獲取進程的PID的命令。后邊跟的參數當然是進程名啦。

我們可以根據一個進程的名字,得知這個進程的PID是多少,并且這個程序并發運行了多少個進程。

如下圖可以看出sshd這個服務端程序發起了兩個進程,分別為54221824

常用進程查看工具


 

再來說說pgreppkill

之所以放在一起說,是因為這兩個命令的使用幾乎一樣。

語法格式都為:

pgrep  [options]  pattern

pkill   [options]  pattern

常見選項:

pgrep | pkill

-u  uid  實際運行的用戶

-U  uid  真實生效的用戶

-t  terminal   顯示指定終端相關的進程

 

pgrep  -l  顯示出進程名

pgrep  -a  顯示完整格式的進程名

 

 

 

接下來要說的就是top命令了。top的顯示結果非常強大,信息非常豐富。

并且,之前說的pstree , ps , pidof ,pgrep ,pkill 都是靜態顯示,而top卻是動態顯示。

 

常用進程查看工具

 

信息有夠豐富!

相信剛才對顯示的參數的介紹,大家也能觸類旁通的理解top顯示的參數分別是什么意思了。

我們挑兩個重要的來說一說。

load vaerage:  這個選項顯示的是過去1分鐘,五分鐘,十五分鐘系統的負載,是一個衡量系統負載是否正常的非常重要的參數。當然啦,uptime命令也能顯示類似的信息。

CPUs)相關的參數的解析;

us:用戶空間程序占據的CPU百分比

sy: 內核空間程序占據的CPU百分比

ni: 調整NICE值占據的時間

id:空閑比例

wa:等待IO完成的時間

hi: 硬中斷,通常由磁盤這個硬件發起

si: 軟中斷,通過由軟件發起

st:被虛擬化技術偷走的時間

top工具的使用:

默認情況下,這個工具是按占據CPU的百分比排序的。

top  -d 調整刷新間隔

top  -n  顯示多當次后退出

當然啦,top雖然已經夠強大,但黑白看著未免單調,于是誕生了一個界面相對比較“華麗”的htop,參數與top大同小異。

可以看看htop的效果圖,要顯眼許多。

常用進程查看工具

 

 

當然啦,無論工具界面如何,我們都無需太過在意,畢竟linux大多數情況下都是比較單調,強調實用的,能將任何一款工具用得熟練,獲得我們想要的信息,才是最重要的。

以上是常見的進程的查看工具的使用,希望對大家有些幫助。

原創文章,作者:old_radish,如若轉載,請注明出處:http://www.www58058.com/75090

(0)
old_radishold_radish
上一篇 2017-05-08
下一篇 2017-05-09

相關推薦

  • Week9’s homework

    Week9's homework 1、寫一個腳本(1)判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin)(2)分別統計兩類用戶的個數;通過字符串比較來實現。 #!/bin/bash # for i in $(cat /etc/passwd |…

    Linux干貨 2016-12-24
  • N25-第五周作業

    第五周作業 1、顯示當前系統上root、fedora或user1用戶的默認shell; grep "^\(root|fedora|user1\)" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(); grep "…

    Linux干貨 2017-02-14
  • 系統基礎之shell腳本編程詳解及練習題

    shell腳本編程: 編程基礎  程序:指令+數據 編程語言的分類:根據運行方式    編譯運行:源代碼–>編譯器(編譯)–>程序文件    解釋運行:源代碼–>運行時啟動解釋器,由解釋器邊解釋邊運行; 根據其編程過程中功能的實現是調用庫還是調用外部的程序…

    Linux干貨 2016-08-15
  • Net25 第二周作業

    一、Linux上的文件管理類命令,其常用的使用方法和相關示例 1、ls:查看文件與目錄 作用:ls命令用于顯示目錄內容,類似于DOS下的dir命令,它的使用權限是所有用戶。 用法:ls [選項]…[文件]… 主要選項如下: -a:全部的文件,連同隱藏文件(開頭為 .的文件)一起列出來 -A:列出全部的文件(連同隱藏文件,但不…

    系統運維 2016-12-11
  • CentOS啟動流程及Shell腳本編程練習

    一、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 第一步:POST加電自檢 主要實現的功能是檢測各個外圍硬件設備是否存在而且能夠正常運行起來,實現這一自檢功能的是固化在主板上的ROM(主要代表為CMOS)芯片上的BIOS(Basic Input/Output System)程序。 第二步:Boot Sequence(選擇啟動設備以加…

    2017-11-26
  • linux 第二周

     一. 文件管理       文件被組織到文件系統(file system)中,通常會成為一個樹狀(tree)結構。Linux有一個根目錄/, 也就是樹狀結構的最頂端。這個樹的分叉的最末端都代表一個文件,而這個樹的分叉處則是一個目錄(directory, 相當于我們在windows界面中看到的文件夾)。在圖1…

    Linux干貨 2017-05-29
欧美性久久久久