日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 使用命令 lsof 查看某個端口的使用情況
  • 使用命令 netstat 查看某個端口的使用情況
  • 使用命令 ps 查看指定進程的信息
    • (一)命令:ps auwx | grep sshd
    • (二)命令:ps -ef | grep ssh
    • (三)命令:ps -Al | grep ssh
  • 使用命令 top 實時顯示進程狀態
  • 使用命令 kill 殺掉進程
  • 啟動/停止/重啟進程

使用命令 lsof 查看某個端口的使用情況

[~]$ sudo lsof -P -i tcp:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3933 liaowenxiong 50u IPv6 0x72b25e6efd433f4b 0t0 TCP *:8080 (LISTEN)[~]$ sudo lsof -P -i:8080 # COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3933 liaowenxiong 50u IPv6 0x72b25e6efd433f4b 0t0 TCP *:8080 (LISTEN)

選項說明:
sudo 表示以 root 的權限執行
-i 表示列出符合條件的且與網絡相關的進程
-P 表示不解析端口號,直接顯示端口號,而不是顯示端口名稱

字段說明:

字段名稱說明
COMMAND使用端口的進程的名稱,默認以 9 個字符長度顯示的命令名稱。可使用 +c 參數指定顯示的寬度,若 +c 后跟的參數為零,則顯示命令的全名。這個 +c 參數好像無效
PID進程標識符
PPID父進程標識符,父進程的IP號,默認不顯示,當使用 -R 參數可打開。
USER進程所有者,命令的執行 UID 或系統中登陸的用戶名稱。默認顯示為用戶名,當使用 -l 參數時,可顯示 UID。
PGID進程所屬組標識符,進程組的ID 編號,默認也不會顯示,當使用 -g 參數時可打開。
FDFile Descriptor Number,文件描述符,應用程序通過文件描述符識別文件,例如:cwd、txt 等
TYPE文件類型,例如: DIR、REG 等
DEVICE指定磁盤的名稱,以逗號分隔設備編號,使用character special、block special表示的設備號
SIZE文件的大小,如果不能用大小表示的,會留空。使用-s參數控制。
NODE索引節點(文件在磁盤上的標識),本地文件的node碼,或者協議,如TCP等
NAME打開文件的確切名稱,掛載點和文件的全路徑(鏈接會被解析為實際路徑),或者連接雙方的地址和端口、狀態等
LISTEN代表該進程正處于監聽狀態,即該進程處于活躍中

關于命令 lsof 的用法說明,請點擊查看文章《Linux 命令之 lsof – 列出當前系統已打開的文件列表》

使用命令 netstat 查看某個端口的使用情況

[~]$ netstat -nat | grep 8080 Proto Recv-Q Send-Q Local Address Foreign Address State tcp46 0 0 *.8080 *.* LISTEN [~]$ netstat -anp tcp | grep 8080 tcp46 0 0 *.8080 *.* LISTEN [~]$ netstat -AaLlnW Current listen queue sizes (qlen/incqlen/maxqlen) Socket Flowhash Listen Local Address 72b25e6ee785488b 0 0/0/128 *.56530 72b25e6ef1269023 0 0/0/128 *.56530 72b25e6ee7852d0b 0 0/0/1 127.0.0.1.8005 72b25e6efd433f4b 0 0/0/100 *.8080

選項說明:

-a 顯示所有連線中的 Socket 的狀態
-n 直接使用 ip 地址,而不通過域名服務器
-t 顯示 TCP 傳輸協議的連線狀況
-p 顯示正在使用 Socket 的程序識別碼和程序名稱
-A 默認顯示時,顯示與套接字關聯的任何協議控制塊的地址和流散列;用于調試。
-L 顯示各種偵聽隊列的大小。第一個計數顯示不可接受的連接數。第二個計數顯示不可接受的不完整連接的數量。第三個計數是排隊連接的最大數量。
-l 打印完整的IPv6地址。
-n 將網絡地址顯示為數字(通常netstat解釋地址并嘗試以符號方式顯示它們)。此選項可用于任何顯示格式。
-W 在某些顯示中,避免截斷地址,即使這會導致某些字段溢出。

列說明:

Proto 連接使用的協議
Recv-Q 和 Send-Q 指接收隊列和發送隊列,這些數字一般都應該是 0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。
Local Address 本地機器名和本地打開并用于連接的端口
Foreign Address 遠程機器名和端口
State 顯示套接口當前的狀態。

狀態說明
LISTEN偵聽來自遠方的TCP端口的連接請求
SYN-SENT再發送連接請求后等待匹配的連接請求(如果有大量這樣的狀態包,檢查是否中招了)
SYN-RECEIVED再收到和發送一個連接請求后等待對方對連接請求的確認(如有大量此狀態,估計被flood攻擊了)
ESTABLISHED代表一個打開的連接
FIN-WAIT-1等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN-WAIT-2從遠程TCP等待連接中斷請求
CLOSE-WAIT等待從本地用戶發來的連接中斷請求
CLOSING等待遠程TCP對連接中斷的確認
LAST-ACK等待原來的發向遠程TCP的連接中斷請求的確認(不是什么好東西,此項出現,檢查是否被攻擊)
TIME-WAIT等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
CLOSED沒有任何連接狀態

使用命令 ps 查看指定進程的信息

(一)命令:ps auwx | grep sshd

查看 sshd 相關的進程:

liaowenongdeair:etc root# ps auwx|grep sshd root 1987 1.0 0.0 4285816 724 s000 S+ 2:37下午 0:00.00 grep sshdliaowenongdeair:etc root# ps auwx|grep ssh root 2158 0.0 0.0 4259000 228 s000 R+ 3:30下午 0:00.00 grep ssh root 1982 0.0 0.0 4280264 192 ?? Ss 2:35下午 0:00.00 ssh-agent liaowenxiong 934 0.0 0.0 4289736 1336 ?? S 8:49上午 0:00.04 /usr/bin/ssh-agent -l

從結果來看,根本查找不到 sshd 進程。

命令說明:

  • a 顯示現行終端機下的所有程序,包括其他用戶的程序
  • u 以用戶為主的格式來顯示程序狀況
  • w 采用寬闊的格式來顯示程序狀況
  • x 顯示所有程序,不以終端機來區分
  • 結果說明:
    第 1 列:進程所屬用戶,列名:USER,-- root
    第 2 列:進程號,列名:PID,-- 1987
    第 3 列:使用掉的 CPU 資源百分比,列名:%CPU,-- 1.0
    第 4 列:所占用的物理內存百分比,列名:%MEM,-- 0.0
    第 5 列:使用掉的虛擬內存量,列名:VSZ,-- 4285816
    第 6 列:固定占用的內存量,列名:RSS,-- 724
    第 7 列:登陸者的終端機位置,列名:TTY,-- s000
    第 8 列:進程目前的狀態,列名:STAT,-- S+,后面的加號 + 說明進程是“在前臺進程組”,也就是進程可以使用鍵盤輸出
    第 9 列:進程被觸發啟動的時間,列名:START,-- 2:37下午
    第 10 列:進程實際使用 CPU 運作的時間,列名:TIME,-- 0:00.00
    第 11 列:該進程實際的命令,列名:COMMAND,-- grep sshd

    liaowenxiongdeMacBook-Air:~ liaowenxiong$ ps -ef | grep ssh501 934 1 0 六08上午 ?? 0:00.05 /usr/bin/ssh-agent -l0 1982 1 0 六02下午 ?? 0:00.00 ssh-agent501 22930 22923 0 四03下午 ttys000 0:01.99 ssh root@47.114.59.224501 27379 27219 0 5:47下午 ttys001 0:00.00 grep ssh

    (二)命令:ps -ef | grep ssh

    查看 ssh 相關的進程:

    liaowenongdeair:etc root# ps -ef|grep ssh501 934 1 0 8:49上午 ?? 0:00.04 /usr/bin/ssh-agent -l0 1982 1 0 2:35下午 ?? 0:00.00 ssh-agent

    命令說明:

  • -e 顯示所有進程
  • -f 顯示 uid,ppip,c 與 stime 欄位
  • 結果說明:
    第 1 列:進程所屬用戶的 ID,列名:UID
    第 2 列:進程 ID,列名:PID
    第 3 列:父進程的 ID,列名:PPID
    第 4 列:CPU 資源使用百分比,列名:C
    第 5 列:進程被觸發啟動的時間,列名:STIME
    第 6 列:啟動進程的終端機位置,列名:TTY,? 表示與終端機無關
    第 7 列:實際使用 CPU 運作的時間,單位秒,列明:TIME
    第 8 列:進程的命令,列名:COMMAND

    (三)命令:ps -Al | grep ssh

    查看與 ssh 相關的進程的詳細信息:

    liaowenongdeair:bin root# ps -Al | grep ssh501 934 1 4144 0 20 0 4289736 948 - S 0 ?? 0:00.04 /usr/bin/ssh-agent -l0 1982 1 44 0 31 0 4280264 160 - Ss 0 ?? 0:00.00 ssh-agent0 15372 1638 4006 0 31 0 4268408 684 - S+ 0 ttys000 0:00.00 grep ssh501 9961 6327 4006 0 31 0 4298388 1904 - S+ 0 ttys001 0:02.80 ssh root@47.114.59.224

    說明:

  • -l 采用詳細的格式來顯示程序狀況
  • -A 顯示所有程序,和選項 -e 相同
  • 預知更多關于命令 ps 的使用介紹,請點擊查看文章《Linux 命令之 ps – 顯示進程狀態》

    疑問:在 MacOS 下使用命令 ps,根本無法得知進程是否啟動,因為看不到相關進程的信息。奇怪!!!

    使用命令 top 實時顯示進程狀態

    使用命令 top 可以查看所有進程的實時狀態,關于命令 top 的用法說明,請點擊查看文章《Linux 命令之 top 命令-實時顯示進程動態》

    關于排序:

    先輸入 o,然后輸入 cpu 則按 cpu 使用量排序,輸入 rsize 則按內存使用量排序。

    使用命令 kill 殺掉進程

    liaowenxiongdeMacBook-Air:~ liaowenxiong$ sudo kill -9 PID

    說明:-9 表示強制殺掉進程

    關于命令 kill 的用法說明,請點擊查看文章《Linux 命令之 kill – 殺死進程》

    啟動/停止/重啟進程

    請查看文章《MacOS 關于啟動/停止/重啟進程的命令》

    總結

    以上是生活随笔為你收集整理的MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。