Linux通常被廣泛應用于服務器操作系統領域,絕大多數Linux服務器操作系統默認不提供圖形用戶界面。服務器管理員需通過命令行界面與Linux服務器進行交互。本文將為您介紹Linux系統中的常用命令。
管理進程
ps
命令介紹
ps命令是Process Status的縮寫,用來查看當前系統中正在運行的進程信息快照。
常用參數說明
參數 | 含義 |
-A | 顯示所有程序。 |
-a | 顯示現行終端機下的所有程序。 |
-e | 此選項的效果和指定“A”選項相同。 |
-f | 顯示UID、PPIP、C與STIME欄位。 |
-u | 以用戶為主的格式來顯示程序狀況。 |
-U | 列出屬于該用戶的程序的狀態,也可以使用用戶名來指定。 |
-x | 顯示所有程序,不以終端機來區分。 |
更多參數說明,可運行man ps
進行查看。
使用示例
查看所有進程信息。
ps -ef
通過程序名稱關鍵字查找程序進程信息(指定-e、-f參數)。
ps -ef | grep <key_word>
請將上述命令中的
<key_word>
替換為您指定的關鍵字。通過程序名稱關鍵字查找程序進程信息(指定-a、-u、-x參數)。
ps -aux | grep <key_word>
請將上述命令中的
<key_word>
替換為您指定的關鍵字。查看進程樹信息。
ps -ejH
查看包含線程數據的進程信息。
ps -eLf
使用自定義字段格式展示線程信息。
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
查看指定PID指定指標的信息,示例中PID為1,指標信息為comm=。
ps -q 1 -o comm=
top
命令介紹
top命令為Linux系統運行中的進程提供了動態實時視圖,可以顯示系統的概覽信息及Linux內核當前管理的進程列表。
常用參數說明
參數選項 | 說明 |
-d | 指定top命令刷新頻率。 |
-p | 指定PID以監控指定進程的狀態。 |
-s | 在安全模式下運行top命令,此模式下將去除交互模式帶來的潛在危險。 |
-i | 使top不顯示任何閑置或者僵死進程。 |
-c | 顯示完整命令而不是只顯示命令名稱。 |
資源監控字段說明
下圖展示了部分監控字段及其數值,具體數值會因采樣周期的不同而有所變化。該圖僅供參考,具體數據應以您的實際數據為準。
主要參數說明如下
系統摘要信息字段說明
參數(行) | 說明 |
top | 主機名、信息采樣日期和時間點。
|
Tasks | 各種狀態的進程的統計信息。
|
%Cpu(s) | cpu使用率情況。
|
MiB Mem | 內存使用量統計。
|
MiB Swap | 交換分區使用量統計。
|
進程列表指標信息字段說明
參數(列) | 說明 |
PID | 進程的ID |
USER | 進程所屬用戶 |
PR | 進程的優先級別,越小越優先被執行 |
NI | 進程優先值 |
VIRT | 進程占用的虛擬內存。 |
RES | 進程占用的物理內存 |
SHR | 進程使用的共享內存 |
S | 進程的狀態。
|
%CPU | 進程占用CPU的使用率 |
%MEM | 進程使用的物理內存和總內存的百分比 |
TIME+ | 該進程啟動后占用的總的CPU時間,即占用CPU使用時間的累加值。 |
COMMAND | 進程啟動命令名稱 |
使用示例
按指定采集頻率查看系統指標
運行如下命令,按指定采集頻率展示系統指標。示例中指定采集頻率為3 秒一次。
top 3
說明執行top命令,默認會以5s的采集頻率展示系統指標。
定制top命令指標展示界面
默認情況下top命令展示的指標如系統摘要信息及進程指標監控字段說明所示。如需修改展示的指標界面,您可以在top交互式命令界面下按
f
鍵,以便篩選您需要的指標視圖。在視圖字段管理界面,相關操作,請參見下表。
按鍵
說明
↑,↓
進行字段選擇。
→
選擇整列,之后可以使用上下鍵移動整列的顯示位置。
空格
選擇隱藏還是顯示該字段,帶*的為顯示。
s
將當前光標所在列設置為排序列。
q
退出視圖字段管理界面。
使用top命令的交互模式
運行top命令后,系統將進入交互模式。在該模式下,用戶可以通過按鍵與命令進行交互。有關交互模式所支持的命令,請參見下表。
按鍵
說明
1
展示每個邏輯CPU的指標狀況。
u
按u鍵之后,輸入Linux系統用戶名,可以查看該用戶相關的進程。
E
切換內存指標的計量單位,在Kib、MiB、GiB、TiB、PiB、EiB之間切換。
x
顯示排序列。
y
顯示運行中的進程。
?
顯示幫助信息。
kill
命令介紹
kill命令用于在Linux中手動結束進程。
常用參數說明
參數 | 說明 |
-l | 列出可用的信號的名稱。 |
-L | 在表格中列出信號名稱。 |
使用示例
殺死所有可以殺死的進程。
sudo kill -9 -1
顯示信號編號 11 所代表的信號名稱。
sudo kill -l 11
在表格中列出所有可用的信號。
sudo kill -L
結束指定PID的進程。
sudo kill -9 <PID>
請將上述命令中的
<PID>
替換為您指定的進程PID。
killall
命令介紹
killall
命令用于在Linux中通過進程名稱結束進程。
常用參數說明
參數 | 說明 |
-g | 殺死屬于該進程組的進程。 |
-i | 交互模式,殺死進程前會征求確認信息。 |
-v | 報告信號是否成功發送。 |
使用示例
殺死top進程。
sudo killall top
查看系統信息
在使用Linux實例過程中,可以使用uname命令查詢系統信息。
uname
命令介紹
uname
命令用于輸出系統信息。
常用參數說明
選項 | 說明 |
-a | 輸出全部信息。 |
-s | 輸出內核名稱。 |
-n | 輸出網絡節點主機名。 |
-r | 輸出內核發行版本。 |
-v | 輸出內核版本信息。 |
-m | 輸出機器硬件名稱。 |
-P | 輸出處理器類型。 |
-i | 輸出硬件平臺信息。 |
-o | 輸出操作系統信息。 |
使用示例
查看全部系統信息。
uname -a
查看管理磁盤
df
命令介紹
df
命令用于報告文件系統磁盤空間使用情況。
常用參數說明
選項 | 說明 |
-a | 包含偽(pseudo)、重復和無法訪問的文件系統。 |
-B | 輸出前將塊大小轉換為指定大小。 |
-h | 以 1024 為冪顯示大小(例如,1023M)。 |
-H | 以 1000 為冪輸出大小(例,1.1G)。 |
-k | 等效于 --block-size=1K。 |
-l | 僅列出本地的文件系統。 |
-t | 只顯示指定類型的文件系統信息。 |
使用示例
查看磁盤空間使用情況,結果以MB為單位。
df -BM
回顯結果示例如下。
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 742M 22M 721M 3% /run
/dev/vda3 39943M 2542M 35556M 7% /
tmpfs 3708M 0M 3708M 0% /dev/shm
tmpfs 5M 0M 5M 0% /run/lock
tmpfs 742M 1M 742M 1% /run/user/0
lsblk
命令介紹
lsblk
命令用于列出塊設備信息。
常用參數說明
參數 | 說明 |
-a | 列出所有設備,包含空設備及內存盤設備。 |
-b | SIZE列使用bytes作為輸出。 |
-f | 輸出信息中包含文件系統。 |
使用示例
查看塊設備信息,包含文件系統信息。
lsblk -f
回顯結果示例如下。
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
vda
|-vda1
|-vda2 vfat FAT32 6175-F96E
`-vda3 ext4 1.0 df02e0a1-d28d-41b1-99c2-58f2b684cc79 34.7G 6% /
blkid
命令介紹
blkid
命令用于查看塊設備屬性信息。
使用示例
查看塊設備屬性信息
blkid /dev/vda
回顯結果示例如下。
/dev/vda: PTUUID="bdee1c7f-46fc-4838-9a74-9exxxxxxxxaf" PTTYPE="gpt"
fdisk
命令介紹
fdisk
命令是Linux分區表操作工具。
常用參數說明
參數 | 說明 |
-l | 列出指定設備的分區表信息。 |
-u | 以扇區數而不是以柱面數的形式顯示分區表中各分區的信息。 |
使用示例
查看設備分區情況。
sudo fdisk -lu
回顯結果示例如下。
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BDEE1C7F-46FC-4838-9A74-9E57F8FD63AF
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 413695 409600 200M EFI System
/dev/vda3 413696 83886046 83472351 39.8G Linux filesystem
mount
命令介紹
mount
命令用于掛載一個文件系統。
常用參數說明
參數 | 說明 |
-a | 掛載所有在 |
-L | 以給定的標簽掛載分區。 |
-r | 以只讀模式掛載文件系統。 |
-w | 以讀寫模式掛載文件系統。 |
-U | 以指定的 |
使用示例
掛載fstab中配置的所有文件系統。
sudo mount -a
以讀寫模式掛載指定文件系統。
sudo mount -w /dev/vdb1 /mnt
umount
命令介紹
umount
命令用于卸載一個文件系統。
常用參數說明
參數 | 說明 |
-r | 如果卸載失敗,試圖以只讀方式重新掛載。 |
-a | 卸載所有在 |
-t | 只卸載指定類型的文件系統。如果要一次指定多個文件系統, 可以用逗號分隔。 |
-f | 強制卸載。 |
使用示例
強制卸載指定分區。
sudo umount -f /dev/vdb1
管理服務
systemctl
命令介紹
systemctl
命令用于服務管理。
常用參數說明
參數 | 說明 |
-a | 表示列出所有已加載的單元或者屬性。 |
常用單元命令
命令 | 說明 |
start | 啟動指定的已加載單元。 |
stop | 停止指定的已加載單元。 |
restart | 重新啟動指定的已加載單元。 |
reload | 要求指定的單元重新加載它們的配置。 |
status | 顯示指定單元的運行時狀態信息。常見的服務運行狀態如下所示。
|
常用單元文件命令
命令 | 說明 |
enable | 啟用指定的單元或單元實例。 |
disable | 停用指定的單元或單元實例。 |
使用示例
重新啟動
nginx
服務。sudo systemctl restart nginx
查看
nginx
服務狀態。sudo systemctl status nginx
設置
nginx
服務開機啟動。sudo systemctl enable nginx
管理資源占用
lsof
命令介紹
lsof
命令用于列出打開的文件。
如果您使用的Linux發行版沒有預裝lsof工具,您可以使用對應的軟件包管理工具進行安裝。
Alibaba Cloud Linux、CentOS、RHEL:
sudo yum install lsof
。Ubuntu、Debian:
sudo apt install lsof
。
常用參數說明
參數 | 說明 |
-p | 輸出指定進程打開的文件。 |
-l | 輸出中使用ID代替用戶名。 |
-u | 輸出指定用戶打開的文件。 |
-c | 輸出 |
-d | 輸出包含指定描述符的項。 |
-i | 輸出符合指定條件的項。可選參數如下:
|
回顯信息說明
運行lsof命令后的回顯信息示例如下:
相關參數說明如下。
參數 | 說明 |
COMMAND | 命令名稱。 |
PID | 進程ID。 |
TID | 線程ID,如果為空代表列出的是進程。 |
TASKCMD | 任務名稱,通常與 COMMAND 相同。 |
USER | 用戶ID號或登錄名。 |
FD | 文件描述符。 |
TYPE | 與文件關聯節點的類型。 |
DEVICE | 設備號。 |
SIZE/OFF | 文件大小/偏移量,以字節為單位。 |
NODE | 文件結點。 |
NAME | 文件掛載點和文件所在的系統。 |
使用示例
列出指定進程打開的文件
sudo lsof -p 1
請將上述命令中的
1
進程PID替換為您指定的進程PID。查看指定用戶相關進程打開的文件
sudo lsof -u <user-name>
請將上述命令中的
<user-name>
替換為您指定的Linux系統用戶名。查看打開指定文件的相關進程信息
sudo lsof <file-name>
請將上述命令中的
<file-name>
替換為您指定的文件名。輸出 TYPE 為 IPv4 的所有項
sudo lsof -i 4
netstat
命令介紹
netstat
命令用于顯示 tcp,udp 的端口和進程等相關情況。
常用參數說明
參數 | 說明 |
-t | 僅顯示tcp相關選項。 |
-u | 僅顯示udp相關選項。 |
-i | 顯示網卡列表。 |
-n | 拒絕顯示別名,能顯示數字的全部轉化為數字。 |
-l | 僅列出在Listen(監聽)的服務狀態。 |
-p | 顯示建立相關鏈接的程序名。 |
-s | 顯示網絡統計信息。 |
使用示例
查看8000端口的占用情況。
netstat -tunlp | grep 8000
請將上述命令中的
8000
端口替換為您指定的進程PID。查看所有TCP端口使用情況。
netstat -ntlp