netstat
netstat 命令應用是比較頻繁的,比如查看端口占用啦,查看端口進程啦,這些時候都是有必要的。
netstat命令各個參數說明如下:
-t : 指明顯示TCP端口
-u : 指明顯示UDP端口
-l : 僅顯示監聽套接字(所謂套接字就是使應用程序能夠讀寫與收發通訊協議(protocol)與資料的程序)
-p : 顯示進程標識符和程序名稱,每一個套接字/端口都屬於一個程序。
-n : 不進行DNS輪詢,顯示IP(可以加速操作)
舉栗子:
查看所有TCP端口
[root@hserver1 ~]# netstat -ntlp
查看所有8088端口
[root@hserver1 ~]# netstat -ntulp | grep 8088
tcp6 0 0 :::8088 :::* LISTEN 23147/./wstack-meta
查看服務器上所有的服務跟端口
[root@hserver1 ~]# netstat -anlp
查看某服務占用的端口情況,比如:nginx
[root@hserver1 ~]# netstat -ntulp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4504/nginx: master
查看指定端口的連接數量,比如:80
[root@hserver1 ~]# netstat -pnt |grep :80 |wc
17 119 1717
lsof
lsof 可以用來查看指定端口所運行的程序,當前netstat也是可以的,只是這個更清晰一點。
[root@hserver1 ~]# lsof -i :8088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
wstack-me 23147 root 9u IPv6 3282730103 0t0 TCP *:radan-http (LISTEN)
ps
ps 是LINUX下最常用的也是非常強大的進程查看命令
下面對命令選項進行說明:
-e 顯示所有進程。
-f 全格式。
舉栗子:
ps e 列出程序時,顯示每個程序所使用的環境變量。
ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系
查看某進程是否存在
[root@hserver1 ~]# ps -ef | grep nginx
當然,加上f會看到很多信息,會比較亂,有時候也可以直接:
[root@hserver1 ~]# ps -e | grep nginx
4504 ? 00:00:00 nginx
4505 ? 00:00:00 nginx
以上