一篇講明白監控運維命令
監控類命令
watch命令
watch命令是一個用于在命令行界面下執行指定命令或腳本,并周期性地顯示其輸出結果的實用程序。它可以幫助你監視命令的實時輸出,以便持續跟蹤命令的執行情況。
watch命令的常見語法如下:
watch [選項] 命令
其支持的選項如下:
- -n:指定刷新間隔,即執行命令的時間間隔。例如,watch -n 5表示每隔5秒執行一次命令,默認值為2秒。
- -d:高亮顯示輸出結果中發生變化的部分。這可以幫助你快速注意到輸出結果的變化。
- -t:在輸出結果的頂部顯示當前時間。
- -c:清除屏幕上的輸出結果,每次刷新時都會清除屏幕并顯示最新的輸出。
- -b:以批處理模式運行watch命令,即不接受輸入并將其輸出寫入文件。這在將watch命令與其他命令或腳本結合使用時很有用。
- --color:強制顯示輸出結果的顏色。這對于支持顏色的命令或腳本很有用。
通過使用watch命令,你可以方便地監視系統狀態、實時查看日志文件的變化、觀察進程的運行情況等。它在調試和監控系統時非常有用,以及在需要持續追蹤某些命令輸出的情況下使用。
后面跟雙引號
如果連接的命令比較長,可以使用雙引號括起來的方式 例如:
watch -n 5 -d "ps -aux | grep java"
ps命令
ps命令是一個用于查看當前正在運行的進程信息的實用程序。它提供了多種用法和選項,以下是一些常見的用法:
- 顯示當前用戶的所有進程:
ps
- 顯示所有進程的詳細信息:
ps -ef
- 顯示當前用戶的所有進程及其層次結構(樹狀顯示):
ps -ef --forest
- 以樹狀結構顯示指定進程及其子進程:
ps -f --forest -p <PID>
- 顯示所有進程的信息,包括進程的狀態、占用的CPU和內存等:
ps aux
- 僅顯示當前用戶的進程,并以用戶為單位進行分組:
ps ux
- 以持續更新的方式顯示進程信息:
ps -ef --forest --forest
- 查找指定進程名的進程:
ps -ef | grep <進程名>
- 查看指定用戶的進程:
ps -u <用戶名>
pstree命令
pstree命令是一個用于以樹狀結構顯示進程層次關系的實用程序。它以可讀性較好的方式顯示進程之間的父子關系,幫助用戶更好地理解和分析系統中的進程結構。
pstree命令通常在Linux和Unix系統中預裝,無需額外安裝。你可以直接在終端中使用該命令。下面是使用pstree命令的基本語法:
pstree [選項]
一般情況下,你可以直接運行pstree命令來顯示當前用戶的所有進程及其層次關系。它會以樹狀結構的形式輸出進程層次,并標示進程之間的父子關系。
pstree命令還提供一些選項來定制其行為,例如:
- -p:顯示進程的PID(進程ID)。
- -u:顯示進程的所有者。
- -h:高亮顯示當前進程及其祖先進程。
- -a:顯示進程的命令行參數。
你可以組合使用這些選項來滿足你的需求,例如:pstree -p -h會顯示進程的PID,并以高亮方式突出顯示當前進程及其祖先進程。
需要注意的是,pstree命令可能需要以超級用戶(root)權限運行,以顯示所有進程的完整層次結構。你可以使用sudo pstree命令來獲取完整的進程層次信息。
free 命令
free命令用于顯示系統的內存使用情況和交換空間(swap)情況。下面是free命令的詳細用法:
free [選項]
常用的選項包括:
- -h:以人類可讀的方式顯示內存大小,使用K、M、G等單位。
- -b:以字節(Bytes)為單位顯示內存大小。
- -k:以千字節(Kilobytes)為單位顯示內存大小(默認選項)。
- -m:以兆字節(Megabytes)為單位顯示內存大小。
- -g:以吉字節(Gigabytes)為單位顯示內存大小。
- -s <間隔秒數>:連續顯示內存使用情況,并指定刷新間隔。
- -c <次數>:指定連續顯示內存使用情況的次數。
以下是一些常用的示例:
- 顯示內存和交換空間的使用情況:
free
- 以人類可讀的方式顯示內存和交換空間的使用情況:
free -h
- 每隔5秒連續顯示內存和交換空間的使用情況:
free -s 5
- 顯示內存和交換空間的詳細信息,包括內存總量、已用內存、空閑內存等:
free -b
free命令的輸出結果包括以下字段:
- total:總內存量。
- used:已使用的內存量。
- free:可用的內存量。
- shared:被共享的內存量。
- buffers:被緩沖的內存量。
- cached:被緩存的內存量。
- Swap:交換空間的總量、已使用量和空閑量。
這些字段描述了系統內存的不同方面和用途。以下是這些字段之間的關系:
- total:表示系統中的總內存量,包括物理內存和交換空間。
- used:表示已被系統和進程使用的內存量,包括正在使用的物理內存和交換空間。
- free:表示當前未被使用的內存量,包括未被系統和進程使用的物理內存和交換空間。
- shared:表示被多個進程共享的內存量。這包括通過共享內存機制分配的內存,例如共享庫、共享內存段等。
- buffers:表示被內核用于緩沖數據的內存量。這些緩沖區用于加速磁盤讀寫操作,以提高系統性能。
- cached:表示被內核緩存的文件數據的內存量。當文件被讀取時,內核會將數據緩存到內存中,以便更快地響應后續讀取請求。
- Swap:表示交換空間的相關信息,包括總交換空間量、已使用的交換空間量和可用的交換空間量。交換空間用于在物理內存不足時暫時存儲和交換出不常用的內存頁。
總體上,used 包括了 shared、buffers、cached 和實際被進程使用的內存。而 free 則表示未被系統和進程使用的內存,包括未被緩沖和緩存的空閑內存。
需要注意的是,這些值是基于當前時刻的快照,內存使用情況是動態變化的,因此在不同時間查詢時,這些值可能會有所不同。
df命令、du命令和fdisk命令
這三個命令都是查看硬盤使用情況的命令
df命令
df命令用于顯示文件系統的磁盤空間使用情況。它提供了多種選項,用于定制輸出的格式和內容。以下是一些常用的選項:
- -h:以人類可讀的方式顯示磁盤空間大小,使用K、M、G等單位。
- -k:以千字節(Kilobytes)為單位顯示磁盤空間大小。
- -m:以兆字節(Megabytes)為單位顯示磁盤空間大小。
- -g:以吉字節(Gigabytes)為單位顯示磁盤空間大小。
- -i:顯示inode的使用情況(文件系統索引節點)。
- -T:顯示文件系統的類型。
- -t <文件系統類型>:只顯示指定類型的文件系統。
- -x <文件系統類型>:排除指定類型的文件系統。
- --total:在最后一行顯示總計的磁盤使用情況。
- --exclude-type <文件系統類型>:排除指定類型的文件系統。
- --help:顯示df命令的幫助信息。
可以使用這些選項的組合來滿足特定的需求。例如:
- 顯示人類可讀的磁盤空間使用情況,并排除特定類型的文件系統:
df -h -x <文件系統類型>
- 顯示inode的使用情況,并在最后一行顯示總計的磁盤使用情況:
df -i --total
請注意,<文件系統類型>是指文件系統的標識,如ext4、ntfs、vfat等。你可以通過df --help命令獲取完整的選項列表和用法說明。
du命令
du命令用于顯示目錄或文件的磁盤空間使用情況。它可以幫助你確定文件和目錄所占用的磁盤空間大小。以下是一些常用的du命令選項:
- -h:以人類可讀的方式顯示磁盤空間大小,使用K、M、G等單位。
- -k:以千字節(Kilobytes)為單位顯示磁盤空間大小(默認選項)。
- -m:以兆字節(Megabytes)為單位顯示磁盤空間大小。
- -g:以吉字節(Gigabytes)為單位顯示磁盤空間大小。
- -s:只顯示總計的磁盤空間使用情況,而不顯示每個文件和目錄的詳細信息。
- -c:在最后一行顯示總計的磁盤空間使用情況。
- -a:顯示所有文件和目錄的磁盤空間使用情況,而不僅限于目錄的總計。
- --exclude=<模式>:排除符合指定模式的文件或目錄。
- --max-depth=<層級>:限制顯示的層級深度。
你可以使用這些選項的組合來滿足不同的需求。以下是一些示例:
- 顯示目錄或文件的磁盤空間使用情況,并以人類可讀的方式顯示大小:
du -h <目錄或文件>
- 只顯示目錄的總計磁盤空間使用情況:
du -sh <目錄>
- 顯示所有文件和目錄的磁盤空間使用情況,包括子目錄的詳細信息:
du -a <目錄>
- 顯示指定層級深度的磁盤空間使用情況:
du --max-depth=2 <目錄>
請注意,<目錄或文件>是指要查看磁盤空間使用情況的目錄路徑或文件路徑。你可以通過du --help命令獲取完整的選項列表和用法說明。
fdisk命令
fdisk命令是一個用于查看和管理磁盤分區的命令行工具。它可以幫助你查看磁盤的分區信息、創建新的分區、刪除分區等。以下是一些常用的 fdisk 命令選項:
- -l:列出系統中的所有磁盤和分區的信息。
fdisk -l
- /dev/<磁盤設備名>:指定要操作的磁盤設備,例如/dev/sda。
fdisk /dev/sda
- n:創建一個新的分區。
- d:刪除一個分區。
- p:顯示分區表的信息。
- w:將所做的更改寫入磁盤并退出 fdisk。
- q:不保存更改并退出 fdisk。
請注意,使用 fdisk 命令進行分區操作需要以超級用戶(root)權限運行。此外,對磁盤進行分區操作是一個潛在的危險操作,請確保在進行分區操作之前備份重要的數據。
以下是一個簡單的分區操作示例:
- 列出系統中的所有磁盤和分區信息:
fdisk -l
- 選擇要操作的磁盤設備,例如/dev/sda:
fdisk /dev/sda
- 在 fdisk 的交互式界面中,使用命令 n 創建一個新的分區,然后按照提示進行分區類型、起始位置和大小的設置。
- 使用命令 p 顯示分區表信息,確認分區已創建。
- 使用命令 w 將更改寫入磁盤并退出 fdisk。
查看cpu情況
top命令
Tasks: 292 total, 1 running, 291 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.8 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 31662.0 total, 4555.1 free, 26599.6 used, 507.3 buff/cache MiB Swap: 975.0 total, 113.4 free, 861.6 used. 4554.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1692815 root 20 0 17.7g 1.5g 20264 S 6.3 4.7 5:53.00 java
以上是top命令的一個結果,我們來簡單解讀一下:
- 第一行:顯示了任務(進程)的總數和狀態信息。
- Tasks: 292 total:系統中的任務總數。
- 1 running:正在運行的任務數。
- 291 sleeping:睡眠(等待)的任務數。
- 0 stopped:停止的任務數。
- 0 zombie:僵尸(已結束但未被父進程回收)任務數。
- 第二行:顯示了 CPU 的使用情況。
- %Cpu(s):CPU 使用率的統計信息。
- 0.7 us:用戶空間占用 CPU 的百分比。
- 0.8 sy:系統內核占用 CPU 的百分比。
- 0.0 ni:用戶進程以調整優先級方式占用 CPU 的百分比。
- 98.5 id:CPU 空閑的百分比。
- 0.0 wa:等待磁盤 I/O 的百分比。
- 0.0 hi:硬件中斷(高優先級)占用 CPU 的百分比。
- 0.0 si:軟件中斷(低優先級)占用 CPU 的百分比。
- 0.0 st:被虛擬化偷取的 CPU 時間的百分比。
- 第三行:顯示了內存的使用情況。
- MiB Mem:物理內存的統計信息。
- 31662.0 total:總的物理內存大小。
- 4555.1 free:可用的物理內存大小。
- 26599.6 used:已使用的物理內存大小。
- 507.3 buff/cache:用于緩存的物理內存大小。
- 第四行:顯示了交換空間(Swap)的使用情況。
- MiB Swap:交換空間的統計信息。
- 975.0 total:總的交換空間大小。
- 113.4 free:可用的交換空間大小。
- 861.6 used:已使用的交換空間大小。
- 4554.9 avail Mem:可用于新進程的內存大小。
- 接下來的行:顯示了每個任務(進程)的詳細信息。
- PID:任務的進程ID。
- USER:任務的所有者。
- PR:任務的優先級。
- NI:任務的優先級調整值。
- VIRT:任務占用的虛擬內存大小。
- RES:任務占用的物理內存大小。
- SHR:任務共享的內存大小。
- S:任務的狀態(R:運行,S:睡眠,Z:僵尸等)。
- %CPU:任務占用的CPU使用率。
- `%MEM
`:任務占用的內存百分比。
- TIME+:任務已運行的總時間。
- COMMAND:任務的命令名稱。
以上是對top命令結果的詳細解釋,它提供了關于系統任務、CPU、內存和進程的重要信息。top命令有許多選項可以用于定制輸出和控制顯示的內容。以下是一些常用的top命令選項:
- -d <秒數>:指定更新顯示的時間間隔。
- -n <次數>:指定顯示信息的刷新次數后退出top。
- -b:以批處理模式運行top,將結果輸出到標準輸出而不是交互式界面。
- -c:顯示命令的完整路徑而不僅僅是命令名稱。
- -i:忽略或顯示空閑的進程。
- -s <字段>:以指定的字段進行排序,例如-s %CPU按照CPU使用率排序。
- -u <用戶名>:僅顯示屬于指定用戶的進程。
- -p <進程ID>:僅顯示指定進程ID的信息。
- -H:以線程的方式顯示進程的信息。
- 1:切換到顯示每個CPU核心的詳細信息。
- t:切換到顯示進程和CPU的信息。
mpstat命令
下面是該命令的一次結果
Linux 5.10.0-15-amd64 (debian-2) 06/07/2023 x86_64 (16 CPU) 03:01:22 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:01:22 PM all 0.22 0.00 0.19 0.00 0.00 0.00 0.00 0.00 0.00 99.59
簡單解讀一下
- 03:01:22 PM:報告生成的時間。
下面是每一列的含義:
- CPU:顯示 CPU 的標識。
- %usr:用戶空間程序使用 CPU 的百分比。
- %nice:以調整優先級方式運行的用戶進程使用 CPU 的百分比。
- %sys:內核空間程序使用 CPU 的百分比。
- %iowait:等待 I/O 完成而處于空閑狀態的 CPU 百分比。
- %irq:服務硬件中斷請求的 CPU 百分比。
- %soft:服務軟件中斷請求的 CPU 百分比。
- %steal:被其他虛擬化實例“偷取”的 CPU 百分比。
- %guest:運行虛擬化客戶機的 CPU 百分比。
- %gnice:以調整優先級方式運行的虛擬化客戶機的 CPU 百分比。
- %idle:處于空閑狀態的 CPU 百分比。
對于示例中的數據行:
- all:表示所有 CPU 的統計數據,表示所有 CPU 的平均值。
- %usr:用戶空間程序使用 CPU 的百分比為 0.22%。
- %nice:以調整優先級方式運行的用戶進程使用 CPU 的百分比為 0%。
- %sys:內核空間程序使用 CPU 的百分比為 0.19%。
- %iowait:等待 I/O 完成而處于空閑狀態的 CPU 百分比為 0%。
- %irq、%soft、%steal、%guest、%gnice:都是 0%,表示沒有相關的活動。
- %idle:處于空閑狀態的 CPU 百分比為 99.59%。
這些統計信息顯示了在報告生成的時間點上,系統中的 CPU 使用情況。
下面是一些常用的mpstat命令選項:
- -P <CPU列表>:指定要顯示統計信息的特定 CPU 列表。例如,mpstat -P 0,2將僅顯示CPU 0和CPU 2的統計信息。
- -u:顯示 CPU 使用率的統計信息。
- -I <中斷類型>:顯示指定類型的中斷信息。可用的中斷類型包括 CPU、IRQ、NMI 和 SERR。
- -V:顯示 mpstat 命令的版本信息。
- -P ALL:顯示每個 CPU 的統計信息。
- -I ALL:顯示所有中斷類型的統計信息。
- -A:顯示所有可用的統計信息。
- -I SUM:顯示中斷摘要的統計信息。
- -I SUM -p ALL:顯示中斷匯總信息,包括每個 CPU 的統計信息。
查看網絡情況
netstat命令
netstat命令有多個選項,可以根據需要來顯示網絡連接、路由表和網絡統計信息。以下是一些常用的netstat命令選項:
- -a:顯示所有的網絡連接和監聽端口。
- -t:僅顯示 TCP 協議相關的網絡連接。
- -u:僅顯示 UDP 協議相關的網絡連接。
- -n:以數字形式顯示 IP 地址和端口號,而不進行主機和服務名稱解析。
- -p:顯示與每個網絡連接關聯的進程/程序的PID和名稱。
- -r:顯示系統的路由表信息。
- -s:顯示網絡統計信息,如傳輸層統計和協議統計。
- -l:僅顯示監聽狀態的網絡連接。
- -e:顯示擴展信息,如用戶、inode、計時器信息等。
- -c:連續顯示網絡連接信息,不斷刷新顯示。
- -i:顯示網絡接口的信息和統計。
下面是一個結果
Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ] DGRAM 579005 26313/systemd /run/user/0/systemd/notify unix 2 [ ACC ] STREAM LISTENING 13693 1228/zabbix_server /run/zabbix/zabbix_server_rtc.sock
逐行進行分析:
- unix 2 [ ] DGRAM 579005 26313/systemd /run/user/0/systemd/notify
- Proto:協議類型,這里是UNIX。
- RefCnt:引用計數,表示當前連接的引用數量。
- Flags:標志位,這里為空。
- Type:連接的類型,這里是DGRAM(數據報套接字)。
- State:連接的狀態,這里沒有顯示具體狀態。
- I-Node:連接關聯的I-Node(索引節點)號。
- PID/Program name:關聯的進程ID和程序名稱,這里是26313/systemd。
- Path:連接關聯的路徑,這里是/run/user/0/systemd/notify。
- unix 2 [ ACC ] STREAM LISTENING 13693 1228/zabbix_server /run/zabbix/zabbix_server_rtc.sock
- Proto:協議類型,這里是UNIX。
- RefCnt:引用計數,表示當前連接的引用數量。
- Flags:標志位,這里是[ ACC ],表示連接處于"已接受"狀態。
- Type:連接的類型,這里是STREAM(流套接字)。
- State:連接的狀態,這里是LISTENING(監聽狀態)。
- I-Node:連接關聯的I-Node(索引節點)號。
- PID/Program name:關聯的進程ID和程序名稱,這里是1228/zabbix_server。
- Path:連接關聯的路徑,這里是/run/zabbix/zabbix_server_rtc.sock。
這些信息提供了關于網絡連接的詳細信息,包括連接類型、狀態、進程關聯和相關路徑。
ss命令
ss命令是用于查看套接字(socket)信息的工具,具有比netstat更快速和更強大的功能。以下是一些常用的ss命令選項:
- -t:僅顯示 TCP 協議相關的套接字信息。
- -u:僅顯示 UDP 協議相關的套接字信息。
- -w:僅顯示 RAW 協議相關的套接字信息。
- -x:僅顯示 UNIX 域套接字信息。
- -a:顯示所有的套接字信息,包括監聽和非監聽狀態。
- -l:僅顯示監聽狀態的套接字信息。
- -o:顯示計時器信息。
- -e:顯示詳細的套接字信息,包括用戶、inode、計時器等。
- -i:顯示網絡接口的信息和統計。
- -p:顯示與每個套接字關聯的進程/程序的PID和名稱。
- -n:以數字形式顯示 IP 地址和端口號,而不進行主機和服務名稱解析。
- -r:顯示路由表信息。
- -s:顯示網絡統計信息,如傳輸層統計和協議統計。
- -4:僅顯示 IPv4 套接字信息。
- -6:僅顯示 IPv6 套接字信息。
看看例子
State Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessESTAB 0 0 20.20.40.232:ssh 10.110.0.9:23033CLOSE-WAIT 32 0 xxx.xxx.xxx.xxx:58836 xxx.xxx.xxx.xxx:https
逐行分析為: 根據提供的ss命令結果,逐行進行分析:
- ESTAB 0 0 20.20.40.232:ssh 10.110.0.9:23033
- State:套接字的狀態,這里是ESTAB,表示連接已建立。
- Recv-Q:接收隊列中的數據大小,這里是0。
- Send-Q:發送隊列中的數據大小,這里是0。
- Local Address:Port:本地地址和端口,這里是20.20.40.232:ssh。
- Peer Address:Port:對等端(遠程主機)地址和端口,這里是10.110.0.9:23033。
- CLOSE-WAIT 32 0 20.20.40.232:58836 xxx.xxx.xxx.xxx:https
- State:套接字的狀態,這里是CLOSE-WAIT,表示本地端已關閉,但遠程端尚未關閉連接。
- Recv-Q:接收隊列中的數據大小,這里是32。
- Send-Q:發送隊列中的數據大小,這里是0。
- Local Address:Port:本地地址和端口,這里是20.20.40.232:58836。
- Peer Address:Port:對等端(遠程主機)地址和端口,這里是xxx.xxx.xxx.xxx:https。
這些信息提供了關于套接字的詳細信息,包括套接字狀態、數據隊列大小和本地/遠程地址與端口。
traceroute命令
traceroute命令用于跟蹤數據包從本地主機到目標主機的路徑。它通過發送一系列的數據包,逐跳地測量和顯示每個跳點的延遲和路徑信息。以下是一些常用的traceroute命令選項:
- -I:使用ICMP Echo請求(類似于ping)進行跟蹤,默認使用UDP。
- -T:使用TCP SYN請求進行跟蹤。
- -U:使用UDP數據包進行跟蹤,默認使用UDP。
- -n:以數字形式顯示IP地址,而不進行主機名稱解析。
- -q <次數>:設置每個跳點發送的數據包數量。
- -w <超時時間>:設置等待響應的超時時間。
- -m <跳數>:設置跟蹤的最大跳數。
- -p <端口號>:指定使用的端口號。
- -r:忽略路由表,直接發送數據包到目標主機。
- -s <源IP>:設置源IP地址。
- -z <等待時間>:設置每個發送數據包之間的等待時間。
- -f <生存時間>:設置第一個TTL(生存時間)的值。
- -l:在最后一個跳點顯示主機名稱。
- -a:使用AS(自治系統)號替代IP地址進行顯示。
- -A:顯示ASN(自治系統號)信息。
- -w:顯示每個跳點的時延信息。
traceroute命令的結果通常會顯示每個跳點的信息,包括跳點的序號、IP地址、主機名(如果可解析)、延遲和躍點數(TTL)。以下是traceroute命令可能顯示的一些常見結果:
- 跳點的序號:每個跳點都會顯示一個序號,表示數據包通過的躍點數。序號從1開始遞增。
- IP地址:每個跳點的IP地址將顯示出來。這是數據包到達該跳點的網絡設備的IP地址。
- 主機名:如果IP地址可解析為主機名,則可能會顯示主機名。這需要進行反向DNS解析,因此不是每個跳點都會顯示主機名。
- 延遲:每個跳點的延遲時間(通常以毫秒為單位)會顯示出來。它表示數據包從本地主機發送到該跳點并返回的往返時間。
- 躍點數(TTL):躍點數表示數據包到達目標所經過的跳點數量。每個數據包在經過一個跳點后,躍點數會遞減,直到達到目標或躍點數為零。
- 完成標志:當數據包到達目標主機時,會顯示一個完成標志,表示traceroute已經到達目標并完成跟蹤。
需要注意的是,由于網絡環境的變化和路由策略的差異,不同跟蹤的結果可能會有所不同。
當traceroute命令的結果中,IP地址列顯示為星號(*)時,表示無法獲得該跳點的IP地址信息。這通常是因為網絡設備或防火墻配置的原因,導致無法獲取到該跳點的準確IP地址。這種情況下,traceroute無法確定經過的網絡節點具體的IP地址。可能的原因包括:
- 路由器或防火墻配置了規則,不允許traceroute請求通過,并且返回的ICMP回復中不包含IP地址信息。
- 跳點設備的配置問題,導致無法返回準確的IP地址信息。
- 路由器或防火墻對traceroute請求進行了過濾或屏蔽。
在這種情況下,traceroute仍然會顯示其他可用信息,如跳點的序號、延遲時間和躍點數(TTL),但無法提供具體的IP地址。
telnet命令
telnet命令是一個用于遠程登錄或測試網絡連接的工具。以下是telnet命令的一些常見選項:
- -l <username>:指定要用于登錄的用戶名。
- -p <port>:指定要連接的目標端口號。
- -4:強制使用 IPv4 地址。
- -6:強制使用 IPv6 地址。
- -a:嘗試自動登錄(自動模式)。
- -E:在發送環境變量之前不等待遠程主機的確認。
- -e <escape character>:指定用于發送命令的轉義字符。
- -k <realm>:使用 Kerberos 5 認證,并指定領域。
- -L:啟用加密模式。
- -r:在連接建立后立即打開記錄文件。
- -x:使用加密傳輸模式。
- -v:顯示詳細的調試信息。
和traceroute類似
ifconfig命令
ifconfig命令用于查看和配置網絡接口的信息,包括IP地址、網絡掩碼、MAC地址等。以下是一些常見的ifconfig命令選項:
- <interface>:指定要查看或配置的網絡接口名稱,如eth0、wlan0等。
- up:激活指定的網絡接口。
- down:停用指定的網絡接口。
- promisc:將指定的網絡接口設置為混雜模式,使其能夠捕獲經過該接口的所有數據包。
- hw <MAC address>:設置指定網絡接口的物理地址(MAC地址)。
- inet <IP address> [<netmask>]:配置指定網絡接口的IPv4地址和可選的網絡掩碼。
- inet6 <IPv6 address>/<prefix length>:配置指定網絡接口的IPv6地址和前綴長度。
- mtu <value>:設置指定網絡接口的最大傳輸單元大小。
- broadcast <IP address>:設置指定網絡接口的廣播地址。
- netmask <netmask>:設置指定網絡接口的網絡掩碼。
- metric <value>:設置指定網絡接口的路由度量值。
- txqueuelen <value>:設置指定網絡接口的傳輸隊列長度。
這些只是ifconfig命令的一些常用選項,實際上還有更多選項和功能可用。為了獲取詳細的選項列表和用法說明,您可以在命令行中輸入man ifconfig以查看ifconfig命令的手冊頁。請注意,ifconfig在一些新的Linux發行版中已被ip命令所取代,因此建議盡量使用ip命令進行網絡接口的配置和管理。
來看一個例子
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 20.20.40.232 netmask 255.255.248.0 broadcast 20.20.47.255 inet6 fe80::2eea:7fff:fe93:ef5e prefixlen 64 scopeid 0x20 ether 2c:ea:7f:93:ef:5e txqueuelen 1000 (Ethernet) RX packets 39320669 bytes 46025532065 (42.8 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 40037370 bytes 5499509583 (5.1 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 17lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10loop txqueuelen 1000 (Local Loopback) RX packets 5399237 bytes 819904930 (781.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5399237 bytes 819904930 (781.9 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
根據提供的輸出,我們可以分析兩個網絡接口:eno1和lo。
- eno1接口:
- flags=4163<UP,BROADCAST,RUNNING,MULTICAST>:指示該接口處于啟用狀態,可以進行廣播和多播通信。
- mtu 1500:指定該接口的最大傳輸單元大小為1500字節。
- inet 20.20.40.232:指定該接口的IPv4地址為20.20.40.232。
- netmask 255.255.248.0:指定該接口的IPv4網絡掩碼為255.255.248.0。
- broadcast 20.20.47.255:指定該接口的IPv4廣播地址為20.20.47.255。
- inet6 fe80::2eea:7fff:fe93:ef5e:指定該接口的IPv6地址為fe80::2eea:7fff:fe93:ef5e。
- prefixlen 64:指定該接口的IPv6前綴長度為64。
- ether 2c:ea:7f:93:ef:5e:指定該接口的物理地址(MAC地址)為2c:ea:7f:93:ef:5e。
- txqueuelen 1000:指定該接口的傳輸隊列長度為1000。
- RX packets和TX packets:指示該接口接收和發送的數據包數量。
- bytes:指示該接口接收和發送的總字節數。
- RX errors和TX errors:指示該接口接收和發送的錯誤數據包數量。
- device interrupt 17:指示該接口使用的設備中斷號為17。
- lo接口:
- flags=73<UP,LOOPBACK,RUNNING>:指示該接口處于啟用狀態,并支持環回(loopback)通信。
- mtu 65536:指定該接口的最大傳輸單元大小為65536字節。
- inet 127.0.0.1:指定該接口的IPv4地址為127.0.0.1,即本地環回地址。
- netmask 255.0.0.0:指定該接口的IPv4網絡掩碼為255.0.0.0。
- inet6 ::1:指定該接口的IPv6地址為::1,即本地環回地址。
- prefixlen 128:指定該接口的IPv6前綴長度為128。
- loop:指示該接口是一個本地環回接口。
- txqueuelen 1000:指定該接口的傳輸隊列長度為1000。
- RX packets和TX packets:指示該接口接收和發送的數據包數量。
- bytes:指示該接口接收和發送的總字節數。
- RX errors和TX errors:指示該接口接收和發送的錯誤數據包數量。
綜上所述,eno1是一個活動的以太網接口,具有IPv4和IPv6地址,而lo是一個本地環回接口,用于在本地進行回環測試和通信。
殺死進程的kill命令
kill命令可以發送不同的信號給進程,以便控制其行為。以下是一些常見的kill命令信號及其對應的編號:
- SIGTERM (15):默認的終止信號,請求進程正常終止。
- SIGHUP (1):終端掛起信號,通常用于通知進程重新加載配置文件或重新啟動。
- SIGINT (2):終端中斷信號,通常由Ctrl+C鍵觸發,用于中斷正在運行的進程。
- SIGKILL (9):強制終止信號,立即終止進程,無法捕獲或忽略。該信號無法被阻塞、處理或忽略,是一種"殺手锏"。
- SIGSTOP (19):停止信號,暫停進程的執行。類似于Ctrl+Z鍵觸發的暫停操作。
- SIGCONT (18):繼續信號,恢復被暫停的進程的執行。
除了上述常見的信號外,還有其他信號可供使用,具體的信號列表可以通過kill -l命令查看。該命令會列出系統支持的所有信號及其對應的編號。
例如,可以通過以下命令查看信號列表:
kill -l
殺死某個名稱的進程
ps -aux | grep 'python3 main.py' | awk '{print $2}' | xargs kill -9
kill、pkill和killall命令
kill、pkill和killall命令都用于終止正在運行的進程,但它們在使用方式和作用范圍上有所不同。
- kill命令:
- -l:列出所有可用的信號。
- -s <信號>:指定要發送的信號。
- 作用:向指定進程發送信號以終止它。
- 語法:kill [選項] <進程ID>
常用選項:
- 示例:kill -9 1234(發送強制終止信號9給進程ID為1234的進程)。
- pkill命令:
- -f:使用進程的完整命令行匹配。
- -u <用戶名>:根據用戶名選擇進程。
- 作用:根據進程名或其他屬性選擇并終止進程。
- 語法:pkill [選項] <進程名>
- 常用選項:
- 示例:pkill -f nginx(終止所有包含"nginx"關鍵字的進程)。
- killall命令:
- -e:精確匹配進程名。
- -u <用戶名>:根據用戶名選擇進程。
- 作用:根據進程名終止進程。
- 語法:killall [選項] <進程名>
- 常用選項:
- 示例:killall -e firefox(終止所有名為"firefox"的進程)。
需要注意的是,使用這些命令時要小心確認要終止的進程,以免意外關閉重要的進程。在使用強制終止信號(如9號信號)時,進程可能無法進行正常的清理操作,因此建議在必要時使用,并確保備份數據。