天天看點

Linux程序管理指令ps、pgrep、pkill、top、lsof、kill等詳細說明

作者:運維木子李

ps指令:

  • ps指令用于顯示目前系統中的程序狀态。
  • 示例應用:
  • 顯示所有程序的詳細資訊:
ps aux           
  • 顯示指定使用者的程序:
ps -u username           
  • 顯示指定程序ID的程序:
ps -p PID           
  • 自定義輸出格式,隻顯示程序ID和指令:
ps -o pid,cmd           

pgrep指令:

  • pgrep指令用于根據程序名或其他條件查找程序的PID。
  • 示例應用:
  • 查找名為sshd的程序的PID:
pgrep sshd           
  • 查找名為nginx的程序的PID:
pgrep nginx           
  • 查找名為httpd并屬于指定使用者的程序的PID:
pgrep -u username httpd           

pkill指令:

  • pkill指令用于根據程序名或其他條件終止程序。
  • 示例應用:
  • 終止名為sshd的程序:
pkill sshd           
  • 終止名為nginx的程序:
pkill nginx           
  • 終止名為httpd并屬于指定使用者的程序:
pkill -u username httpd           

uptime指令:

  • uptime指令用于顯示系統的負載平均值和運作時間。
  • 示例應用:
  • 顯示系統的負載平均值和運作時間:
uptime           

top指令:

  • top是一個實時程序螢幕,顯示系統的整體狀态和正在運作的程序清單。
  • 示例應用:
  • 運作top指令後,可以檢視程序的CPU使用率、記憶體占用、程序ID等資訊。
  • 使用方向鍵進行導航,使用空格鍵切換排序方式,使用q鍵退出top指令。

htop指令:

  • htop是一個互動式的程序螢幕,類似于top指令,但提供了更多的功能和更友好的使用者界面。
  • 示例應用:
  • 運作htop指令後,可以顯示程序的CPU使用率、記憶體占用、程序樹結構等資訊。
  • 使用方向鍵和Enter鍵進行導航和選擇操作,使用F鍵進行排序,使用k鍵終止程序。

vmstat指令:

  • vmstat指令用于顯示系統的虛拟記憶體、程序、CPU和IO統計資訊。
  • 示例應用:
  • 顯示系統的虛拟記憶體、程序、CPU和IO統計資訊:
vmstat           
  • 每隔一段時間顯示一次統計資訊:
vmstat 2           

lsof指令:

  • lsof指令用于列出打開的檔案和相關程序。
  • 示例應用:
  • 列出所有打開的檔案:
lsof           
  • 列出某個程序打開的檔案:
lsof -p PID           
  • 列出某個使用者打開的檔案:
lsof -u username           

lsof -i指令用于列出在網絡上活動的程序和打開的網絡連接配接。

以下是lsof -i指令的一些常見用法和示例:

列出所有活動的網絡連接配接:

lsof -i #列出所有在網絡上活動的程序和打開的網絡連接配接           

列出指定端口上的活動連接配接:

lsof -i :port #列出指定端口上的活動連接配接。
lsof -i :80  #将列出在端口80上活動的連接配接           

列出指定協定的活動連接配接:

lsof -i protocol  #列出指定協定的活動連接配接。

lsof -i tcp #将列出使用TCP協定的活動連接配接           

列出指定主機的活動連接配接:

lsof -i @[hostname|ip]  #列出與指定主機或IP位址之間的活動連接配接。
lsof -i @example.com   #将列出與example.com之間的活動連接配接           

列出指定程序使用的網絡連接配接:

lsof -i -p PID  #列出指定PID的程序所使用的網絡連接配接

lsof -i -p 1234  #将列出PID為1234的程序的網絡連接配接           

需要注意的是,lsof -i指令需要以root使用者或具有足夠權限的使用者身份運作,以便顯示所有程序和連接配接的詳細資訊。

這些指令提供了對Linux系統中程序和系統性能的監控和管理。您可以根據具體需求使用适當的指令來擷取所需的資訊或執行操作。

kill指令:

kill指令用于向程序發送信号,可以用來終止或操作程序。以下是kill指令的一些常見用法和示例:

終止程序:

kill PID  #向指定PID的程序發送預設的終止信号(SIGTERM)
kill -9 PID #向指定PID的程序發送強制終止信号(SIGKILL)           

發送其他信号:

kill -SIGNAL PID #向指定PID的程序發送指定的信号
kill -HUP PID  #向程序發送挂起信号(SIGHUP)           

使用程序名稱終止程序:

pkill process_name  #終止所有名稱為process_name的程序。
pkill -u username process_name  #終止屬于指定使用者的名稱為process_name的程序           

檢視可用的信号:

kill -l  #列出所有可用的信号           

需要注意的是,向程序發送信号并不一定會立即終止程序,程序可以選擇如何處理接收到的信号。一般而言,程序會優先處理某些信号(如SIGTERM),如果程序不響應,則可以使用強制終止信号(SIGKILL)來強制終止程序。

在使用kill指令時,請確定您有足夠的權限來操作目标程序。