關注Linux的系統狀態,主要從兩個角度出發:
一個角度是系統正在運行什么服務(ps命令);
另外一個就是有什么連接或服務可用(netstat命令)。
netstat還可以顯示ps無法顯示的、從inetd或xinetd中運行的服務,比如telnet等。
一、ps -ef 命令和ps -aux命令
1.1、ps -ef | grep詳解
ps命令將某個進程顯示出來
grep命令是查找
中間的|是管道命令 是指ps命令與grep同時執行
PS是LINUX下最常用的也是非常強大的進程查看命令
ps -e 此參數的效果和指定"A"參數相同。
ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
grep命令是查找,是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。
以下這條命令是檢查java 進程是否存在:ps -ef |grep java
字段含義如下:
UID PID PPID C STIME TTY TIME CMD
zzw 14124 13991 0 00:38 pts/0 00:00:00 grep --color=auto dae
UID :程序被該 UID 所擁有
PID :就是這個程序的 ID
PPID :則是其上級父程序的ID
C :CPU使用的資源百分比
STIME :系統啟動時間
TTY :登入者的終端機位置
TIME :使用掉的CPU時間。
CMD :所下達的是什么指令
1.2 ps -aux | grep命令
ps是顯示當前狀態處於running的進程,grep表示在這些里搜索,而ps aux是顯示所有進程和其狀態。
$ ps aux | grep amoeba 查到amoeba的進程
ps aux輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式說明:
USER: 行程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態,linux的進程有5種狀態:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它狀態還包括W(無駐留頁), <(高優先級進程), N(低優先級進程), L(內存鎖頁).
START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
1) ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
2)ps -A 顯示所有程序。
3)ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
7)ps -H 顯示樹狀結構,表示程序間的相互關系。
8)ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
9)ps s 采用程序信號的格式顯示程序狀況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t 指定終端機編號,並列出屬於該終端機的程序的狀況。
12)ps u 以用戶為主的格式來顯示程序狀況。
13)ps x 顯示所有程序,不以終端機來區分。
二、netstat -apn命令
netstat -anp查看端口占用情況
-a,顯示所有
-n,不用別名顯示,只用數字顯示
-p,顯示進程號和進程名