欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)管理常用命令介紹

 更新時(shí)間:2025年06月03日 10:05:13   作者:SevenCoder  
find命令的功能是根據(jù)給定的路徑和條件查找相關(guān)文件或目錄,其參數(shù)靈活方便,且支持正則表達(dá)式,結(jié)合管道符后能夠?qū)崿F(xiàn)更加復(fù)雜的功能,是Linux系統(tǒng)運(yùn)維人員必須掌握的命令之一,這篇文章主要介紹了Linux系統(tǒng)管理常用命令介紹,需要的朋友可以參考下

find命令 - 根據(jù)路徑和條件搜索指定文件

find命令的功能是根據(jù)給定的路徑和條件查找相關(guān)文件或目錄,其參數(shù)靈活方便,且支持正則表達(dá)式,結(jié)合管道符后能夠?qū)崿F(xiàn)更加復(fù)雜的功能,是Linux系統(tǒng)運(yùn)維人員必須掌握的命令之一。

find命令通常進(jìn)行的是從根目錄(/)開始的全盤搜索,有別于whereis、which、locate等有條件或部分文件的搜索。對(duì)于服務(wù)器負(fù)載較高的情況,建議不要在高峰時(shí)期使用find命令的模糊搜索,這會(huì)相對(duì)消耗較多的系統(tǒng)資源。

語法格式

find [路徑] [匹配條件] [動(dòng)作]

參數(shù)說明 :

路徑 是要查找的目錄路徑,可以是一個(gè)目錄或文件名,也可以是多個(gè)路徑,多個(gè)路徑之間用空格分隔,如果未指定路徑,則默認(rèn)為當(dāng)前目錄。

expression 是可選參數(shù),用于指定查找的條件,可以是文件名、文件類型、文件大小等等。

匹配條件 中可使用的選項(xiàng)有二三十個(gè)之多,以下列出最常用的部份:

  • -name pattern:按文件名查找,支持使用通配符 * 和 ?。
  • -type type:按文件類型查找,可以是 f(普通文件)、d(目錄)、l(符號(hào)鏈接)等。
  • -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,單位可以是 c(字節(jié))、w(字?jǐn)?shù))、b(塊數(shù))、k(KB)、M(MB)或 G(GB)。
  • -mtime days:按修改時(shí)間查找,支持使用 + 或 - 表示在指定天數(shù)前或后,days 是一個(gè)整數(shù)表示天數(shù)。
  • -user username:按文件所有者查找。
  • -group groupname:按文件所屬組查找。

動(dòng)作: 可選的,用于對(duì)匹配到的文件執(zhí)行操作,比如刪除、復(fù)制等。

find 命令中用于時(shí)間的參數(shù)如下:

  • -amin n:查找在 n 分鐘內(nèi)被訪問過的文件。
  • -atime n:查找在 n*24 小時(shí)內(nèi)被訪問過的文件。
  • -cmin n:查找在 n 分鐘內(nèi)狀態(tài)發(fā)生變化的文件(例如權(quán)限)。
  • -ctime n:查找在 n*24 小時(shí)內(nèi)狀態(tài)發(fā)生變化的文件(例如權(quán)限)。
  • -mmin n:查找在 n 分鐘內(nèi)被修改過的文件。
  • -mtime n:查找在 n*24 小時(shí)內(nèi)被修改過的文件。

在這些參數(shù)中,n 可以是一個(gè)正數(shù)、負(fù)數(shù)或零。正數(shù)表示在指定的時(shí)間內(nèi)修改或訪問過的文件,負(fù)數(shù)表示在指定的時(shí)間之前修改或訪問過的文件,零表示在當(dāng)前時(shí)間點(diǎn)上修改或訪問過的文件。

正數(shù)應(yīng)該表示時(shí)間之前,負(fù)數(shù)表示時(shí)間之內(nèi)。

例如:-mtime 0 表示查找今天修改過的文件,-mtime -7 表示查找一周以前修改過的文件。

關(guān)于時(shí)間 n 參數(shù)的說明:

  • +n:查找比 n 天前更早的文件或目錄。
  • -n:查找在 n 天內(nèi)更改過屬性的文件或目錄。
  • n:查找在 n 天前(指定那一天)更改過屬性的文件或目錄。

實(shí)例

查找當(dāng)前目錄下名為 file.txt 的文件:

find . -name file.txt

將當(dāng)前目錄及其子目錄下所有文件后綴為 .c 的文件列出來:

find . -name "*.c"

將當(dāng)前目錄及其子目錄中的所有文件列出:

find . -type f

查找 /home 目錄下大于 1MB 的文件:

find /home -size +1M

查找 /var/log 目錄下在 7 天前修改過的文件:

find /var/log -mtime +7

查找過去 7 天內(nèi)被訪問的文件:

find /path/to/search -atime -7

在當(dāng)前目錄下查找最近 20 天內(nèi)狀態(tài)發(fā)生改變的文件和目錄:

find . -ctime  20

將當(dāng)前目錄及其子目錄下所有 20 天前及更早更新過的文件列出:

find . -ctime  +20

查找 /var/log 目錄中更改時(shí)間在 7 日以前的普通文件,并在刪除之前詢問它們:

find /var/log -type f -mtime +7 -ok rm {} \;

查找當(dāng)前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(quán)限的文件:

find . -type f -perm 644 -exec ls -l {} \;

查找系統(tǒng)中所有文件長度為 0 的普通文件,并列出它們的完整路徑:

find / -type f -size 0 -exec ls -l {} \;

找并執(zhí)行操作(例如刪除):

find /path/to/search -name "pattern" -exec rm {} \;

這個(gè)例子中,-exec 選項(xiàng)允許你執(zhí)行一個(gè)命令,{} 將會(huì)被匹配到的文件名替代,; 表示命令結(jié)束。

rpm命令 - RPM軟件包管理器

rpm命令來自英文詞組redhat package manager的縮寫,中文譯為“紅帽軟件包管理器”,其功能是在Linux系統(tǒng)下對(duì)軟件包進(jìn)行安裝、卸載、查詢、驗(yàn)證、升級(jí)等工作,常見的主流系統(tǒng)(如RHEL、CentOS、Fedora等)都采用這種軟件包管理器,推薦用固定搭配“rpm-ivh 軟件包名”安裝軟件,而卸載軟件則用固定搭配“rpm -evh 軟件包名”,簡(jiǎn)單好記又好用。

語法格式

rpm 參數(shù) 軟件包名

常用參數(shù)

  • -a :查詢所有套件。
  • -b<完成階段><套件檔>+或-t <完成階段><套件檔>+ :設(shè)置包裝套件的完成階段,并指定套件檔的文件名稱。
  • -c :只列出組態(tài)配置文件,本參數(shù)需配合"-l"參數(shù)使用。
  • -d :只列出文本文件,本參數(shù)需配合"-l"參數(shù)使用。
  • -e<套件檔>或--erase<套件檔> :刪除指定的套件。
  • -f<文件>+ :查詢擁有指定文件的套件。
  • -h或--hash :套件安裝時(shí)列出標(biāo)記。
  • -i :顯示套件的相關(guān)信息。
  • -i<套件檔>或--install<套件檔> :安裝指定的套件檔。
  • -l :顯示套件的文件列表。
  • -p<套件檔>+ :查詢指定的RPM套件檔。
  • -q :使用詢問模式,當(dāng)遇到任何問題時(shí),rpm指令會(huì)先詢問用戶。
  • -R :顯示套件的關(guān)聯(lián)性信息。
  • -s :顯示文件狀態(tài),本參數(shù)需配合"-l"參數(shù)使用。
  • -U<套件檔>或--upgrade<套件檔> :升級(jí)指定的套件檔。
  • -v :顯示指令執(zhí)行過程。
  • -vv :詳細(xì)顯示指令執(zhí)行過程,便于排錯(cuò)。

實(shí)例

安裝軟件

# rpm -hvi dejagnu-1.4.2-10.noarch.rpm 
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 簽名:NOKEY, key ID db42a60e
準(zhǔn)備...           
########################################### [100%]

顯示軟件安裝信息

# rpm -qi dejagnu-1.4.2-10.noarch.rpm
【第1次更新 教程、類似命令關(guān)聯(lián)】

ps命令 - 顯示進(jìn)程狀態(tài)

ps命令來自英文單詞process的縮寫,中文譯為“進(jìn)程”,其功能是顯示當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。使用ps命令可以查看到進(jìn)程的所有信息,例如進(jìn)程的號(hào)碼、發(fā)起者、系統(tǒng)資源(處理器與內(nèi)存)使用占比、運(yùn)行狀態(tài)等。ps命令可幫助我們及時(shí)發(fā)現(xiàn)哪些進(jìn)程出現(xiàn)“僵死”或“不可中斷”等異常情‍況。 ps命令經(jīng)常會(huì)與kill命令搭配使用,以中斷和刪除不必要的服務(wù)進(jìn)程,避免服務(wù)器的資源浪費(fèi)。

語法格式:

ps [options] [--help]

ps 的參數(shù)非常多, 在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義

  • -A:列出所有的進(jìn)程

  • -w :顯示加寬可以顯示較多的資訊

  • -au :顯示較詳細(xì)的資訊

  • -aux :顯示所有包含其他使用者的進(jìn)程,用標(biāo)準(zhǔn)格式輸出。

  • -ef:與aux一樣,但是是用bsd的格式輸出

    au(x) :輸出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME CMD
  • USER: 進(jìn)程擁有者
  • PID: pid,進(jìn)程ID
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的內(nèi)存使用率
  • VSZ: 占用的虛擬內(nèi)存大小,表示如果一個(gè)程序完全駐留在內(nèi)存的話需要占用多少內(nèi)存空間
  • RSS: 常駐集大小,指明了當(dāng)前實(shí)際占用了多少內(nèi)存
  • TTY: 終端的次要裝置號(hào)碼 (minor device number of tty)
  • STAT: 該行程的狀態(tài):
    • D: 無法中斷的休眠狀態(tài) (通常 IO 的進(jìn)程)
    • R: 正在執(zhí)行中
    • S: 靜止?fàn)顟B(tài)
    • T: 暫停執(zhí)行
    • Z: 不存在但暫時(shí)無法消除
    • W: 沒有足夠的記憶體分頁可分配
    • <: 高優(yōu)先序的行程
    • N: 低優(yōu)先序的行程
    • L: 有記憶體分頁分配并鎖在記憶體內(nèi) (實(shí)時(shí)系統(tǒng)或捱A I/O)
  • START: 進(jìn)程開始時(shí)間
  • TIME: 執(zhí)行的時(shí)間
  • COMMAND:所執(zhí)行的指令

實(shí)例

查找指定進(jìn)程格式:

ps -ef | grep 進(jìn)程關(guān)鍵字

例如顯示 php 的進(jìn)程:

# ps -ef | grep php
root       794     1  0  2020 ?        00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data   951   794  0  2020 ?        00:24:15 php-fpm: pool www
www-data   953   794  0  2020 ?        00:24:14 php-fpm: pool www
www-data   954   794  0  2020 ?        00:24:29 php-fpm: pool www
...

顯示進(jìn)程信息:

# ps -A 
PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
  17 ?    00:00:00 kacpi_notify
  18 ?    00:00:00 kacpi_hotplug
  19 ?    00:00:27 ata/0
……省略部分結(jié)果
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31396 pts/2  00:00:00 ps

顯示指定用戶信息

# ps -u root //顯示root進(jìn)程用戶信息
 PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
……省略部分結(jié)果
30487 ?    00:00:06 gnome-terminal
30488 ?    00:00:00 gnome-pty-helpe
30489 pts/0  00:00:00 bash
30670 ?    00:00:00 debconf-communi 
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31397 pts/2  00:00:00 ps

顯示所有進(jìn)程信息,連同命令行

# ps -ef //顯示所有命令,連帶命令行
UID    PID PPID C STIME TTY     TIME CMD
root     1   0 0 10:22 ?    00:00:02 /sbin/init
root     2   0 0 10:22 ?    00:00:00 [kthreadd]
root     3   2 0 10:22 ?    00:00:00 [migration/0]
root     4   2 0 10:22 ?    00:00:00 [ksoftirqd/0]
root     5   2 0 10:22 ?    00:00:00 [watchdog/0]
root     6   2 0 10:22 ?    /usr/lib/NetworkManager
……省略部分結(jié)果
root   31302 2095 0 17:42 ?    00:00:00 sshd: root@pts/2 
root   31374 31302 0 17:42 pts/2  00:00:00 -bash
root   31400   1 0 17:46 ?    00:00:00 /usr/bin/python /usr/sbin/aptd
root   31407 31374 0 17:48 pts/2  00:00:00 ps -ef

uname命令 - 顯示系統(tǒng)內(nèi)核信息

uname命令來自英文詞組UNIX name的縮寫,其功能是查看系統(tǒng)主機(jī)名、內(nèi)核及硬件架構(gòu)等信息。如果不加任何參數(shù),默認(rèn)僅顯示系統(tǒng)內(nèi)核名稱(相當(dāng)于-s參數(shù))的作用。

語法格式

uname [-amnrsv][--help][--version]

常用參數(shù):

  • -a 或--all  顯示全部的信息,包括內(nèi)核名稱、主機(jī)名、操作系統(tǒng)版本、處理器類型和硬件架構(gòu)等。。
  • -m 或--machine  顯示處理器類型。
  • -n 或--nodename  顯示主機(jī)名。
  • -r 或--release  顯示內(nèi)核版本號(hào)。
  • -s 或--sysname  顯示操作系統(tǒng)名稱。
  • -v  顯示操作系統(tǒng)的版本。
  • --help  顯示幫助。
  • --version  顯示版本信息。
  • -p 顯示處理器類型(與 -m 選項(xiàng)相同)。

實(shí)例

顯示系統(tǒng)信息:

uname -a
Linux iZbp19byk2t6khuqj437q6Z 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

顯示計(jì)算機(jī)類型:

uname -m
x86_64

顯示計(jì)算機(jī)名:

uname -n
runoob-linux

顯示操作系統(tǒng)發(fā)行編號(hào):

uname -r
4.11.0-14-generic

顯示操作系統(tǒng)名稱:

uname -s
Linux

顯示系統(tǒng)版本與時(shí)間:

uname -v
#20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017

kill命令 - 殺死進(jìn)程

kill命令的功能是殺死(結(jié)束)進(jìn)程。Linux系統(tǒng)中如需結(jié)束某個(gè)進(jìn)程,既可以使用如service或systemctl這樣的管理命令來結(jié)束服務(wù),也可以使用kill命令直接結(jié)束進(jìn)程信息。 如使用kill命令后進(jìn)程并沒有結(jié)束,則可以使用信號(hào)9進(jìn)行強(qiáng)制殺死動(dòng)作。

語法格式

kill [options] <PID>

常用參數(shù):

  • -l:列出所有可用的信號(hào)。
  • -<signal>:發(fā)送特定的信號(hào)給目標(biāo)進(jìn)程,如 -9 表示發(fā)送 KILL 信號(hào),即強(qiáng)制終止進(jìn)程。

實(shí)例

終止進(jìn)程:默認(rèn)情況下,kill命令發(fā)送SIGTERM(信號(hào)15),這可以請(qǐng)求進(jìn)程終止。如果進(jìn)程沒有捕獲這個(gè)信號(hào),它將被終止。

kill PID

其中 PID 是進(jìn)程的 ID。

發(fā)送指定信號(hào):通過 -s 選項(xiàng)可以發(fā)送指定的信號(hào)。

kill -s SIGNAL PID

例如,發(fā)送 SIGKILL(信號(hào)9)將立即結(jié)束進(jìn)程,不能被忽略或捕獲。

kill -9 PID

殺死進(jìn)程組:使用 -9 選項(xiàng)可以殺死整個(gè)進(jìn)程組。

kill -9 -PID

使用 kill -l 命令列出所有可用信號(hào)。

最常用的信號(hào)是:

  • SIGKILL(信號(hào)9):立即結(jié)束進(jìn)程,不能被捕獲或忽略。
  • SIGTERM(信號(hào)15):正常結(jié)束進(jìn)程,可以被捕獲或忽略。
  • SIGSTOP(信號(hào)19):暫停進(jìn)程,不能被捕獲、忽略或結(jié)束。
  • SIGCONT(信號(hào)18):繼續(xù)執(zhí)行被暫停的進(jìn)程。
  • SIGINT(信號(hào)2):通常是Ctrl+C產(chǎn)生的信號(hào),可以被進(jìn)程捕獲或忽略。

如:

終止 PID 為 1234 的進(jìn)程:

kill 1234

強(qiáng)制終止 PID 為 1234 的進(jìn)程:

kill -9 1234

向 PID 為 1234 的進(jìn)程發(fā)送 SIGSTOP:

kill -s SIGSTOP 1234

顯示信號(hào)

# kill -l
1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

殺死指定用戶所有進(jìn)程:

kill -9 $(ps -ef | grep hnlinux) //方法一 過濾出hnlinux用戶進(jìn)程 
kill -u hnlinux //方法二

注意事項(xiàng):

  • 在使用 kill 命令時(shí),需要具有相應(yīng)的權(quán)限,否則可能無法終止進(jìn)程。
  • 某些進(jìn)程可能需要發(fā)送多次信號(hào)才能終止,比如一些守護(hù)進(jìn)程。
  • 強(qiáng)制殺死進(jìn)程可能會(huì)導(dǎo)致數(shù)據(jù)丟失或其他副作用,因此應(yīng)謹(jǐn)慎使用。

top命令 - 實(shí)時(shí)監(jiān)控

Linux top 是一個(gè)在 Linux 和其他類 Unix 系統(tǒng)上常用的實(shí)時(shí)系統(tǒng)監(jiān)控工具。它提供了一個(gè)動(dòng)態(tài)的、交互式的實(shí)時(shí)視圖,顯示系統(tǒng)的整體性能信息以及正在運(yùn)行的進(jìn)程的相關(guān)信息。。

語法格式

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

參數(shù)說明

  • -d <秒數(shù)>:指定 top 命令的刷新時(shí)間間隔,單位為秒。
  • -n <次數(shù)>:指定 top 命令運(yùn)行的次數(shù)后自動(dòng)退出。
  • -p <進(jìn)程ID>:僅顯示指定進(jìn)程ID的信息。
  • -u <用戶名>:僅顯示指定用戶名的進(jìn)程信息。
  • -H:在進(jìn)程信息中顯示線程詳細(xì)信息。
  • -i:不顯示閑置(idle)或無用的進(jìn)程。
  • -b:以批處理(batch)模式運(yùn)行,直接將結(jié)果輸出到文件。
  • -c:顯示完整的命令行而不截?cái)唷?/li>
  • -S:累計(jì)顯示進(jìn)程的 CPU 使用時(shí)間。

顯示信息

top 命令的一些常用功能和顯示信息:

總體系統(tǒng)信息

  • 第一行信息:

    • 當(dāng)前時(shí)間:15:08:39
    • 系統(tǒng)遠(yuǎn)行時(shí)間:28天5時(shí)35分
    • 當(dāng)前登陸用戶數(shù): 1
    • 系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長度。 三個(gè)數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值
  • 第二行信息:

    • 進(jìn)程總數(shù):527
    • 正在運(yùn)行的進(jìn)程數(shù):2
    • 睡眠的進(jìn)程數(shù):525
    • 停止的進(jìn)程數(shù):0
    • 僵尸進(jìn)程數(shù):0
  • 第三行信息:

    • us:用戶空間占用CPU百分比
    • sy:內(nèi)核空間占用CPU百分比
    • ni:用戶進(jìn)程空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU百分比
    • id:空閑CPU百分比
    • wa:等待輸入輸出的CPU時(shí)間百分比
    • hi:硬中斷(Hardware IRQ)占用CPU的百分比
    • si:軟中斷(Software Interrupts)占用CPU的百分比
    • st:用于有虛擬cpu的情況,用來指示被虛擬機(jī)偷掉的cpu時(shí)間
  • 第四行信息:

    • 物理內(nèi)存總量
    • 使用的物理內(nèi)存總量
    • 空閑內(nèi)存總量
    • 用作內(nèi)核緩存的內(nèi)存量
  • 第五行信息:

    • 交換區(qū)總量
    • 使用的交換區(qū)總量
    • 空閑交換區(qū)總量
    • 緩沖的交換區(qū)總量

系統(tǒng)負(fù)載load average的含義

load average顯示的是最近1分鐘、5分鐘和15分鐘的系統(tǒng)平均負(fù)載。系統(tǒng)平均負(fù)載被定義為在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中(在CPU上運(yùn)行或者等待運(yùn)行多少進(jìn)程)的平均進(jìn)程數(shù)。load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),然后按特定算法計(jì)算出的數(shù)值。

如果一個(gè)進(jìn)程滿足以下條件則其就會(huì)位于運(yùn)行隊(duì)列中:

  • 它沒有在等待I/O操作的結(jié)果
  • 它沒有主動(dòng)進(jìn)入等待狀態(tài)(也就是沒有調(diào)用’wait’)
  • 沒有被停止(例如:等待終止)

Update:在Linux中,進(jìn)程分為三種狀態(tài),一種是阻塞的進(jìn)程blocked process,一種是可運(yùn)行的進(jìn)程runnable process,另外就是正在運(yùn)行的進(jìn)程running process。當(dāng)進(jìn)程阻塞時(shí),進(jìn)程會(huì)等待I/O設(shè)備的數(shù)據(jù)或者系統(tǒng)調(diào)用。

進(jìn)程可運(yùn)行狀態(tài)時(shí),它處在一個(gè)運(yùn)行隊(duì)列run queue中,與其他可運(yùn)行進(jìn)程爭(zhēng)奪CPU時(shí)間。 系統(tǒng)的load是指正在運(yùn)行running one和準(zhǔn)備好運(yùn)行runnable one的進(jìn)程的總數(shù)。比如現(xiàn)在系統(tǒng)有2個(gè)正在運(yùn)行的進(jìn)程,3個(gè)可運(yùn)行進(jìn)程,那么系統(tǒng)的load就是5。load average就是一定時(shí)間內(nèi)的load數(shù)量。

一般來說只要每個(gè)CPU的當(dāng)前活動(dòng)進(jìn)程數(shù)不大于3那么系統(tǒng)的性能就是良好的,如果這個(gè)數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。假設(shè)系統(tǒng)有兩個(gè)CPU,load average為8.13,那么其每個(gè)CPU的當(dāng)前任務(wù)數(shù)為:8.13/2=4.065。這表示該系統(tǒng)的性能是可以接受的。

這個(gè)具體場(chǎng)景具體分析。也有很多地方認(rèn)為每個(gè)CPU滿載是1,1是理想狀態(tài),只有負(fù)載小等于1 才認(rèn)為系統(tǒng)性能是健康的。

進(jìn)程信息

  • PID:進(jìn)程的標(biāo)識(shí)符。
  • USER:運(yùn)行進(jìn)程的用戶名。
  • PR(優(yōu)先級(jí)):進(jìn)程的優(yōu)先級(jí)。
  • NI(Nice值):進(jìn)程的優(yōu)先級(jí)調(diào)整值。
  • VIRT(虛擬內(nèi)存):進(jìn)程使用的虛擬內(nèi)存大小。
  • RES(常駐內(nèi)存):進(jìn)程實(shí)際使用的物理內(nèi)存大小。
  • SHR(共享內(nèi)存):進(jìn)程共享的內(nèi)存大小。
  • %CPU:進(jìn)程占用 CPU 的使用率。
  • %MEM:進(jìn)程占用內(nèi)存的使用率。
  • TIME+:進(jìn)程的累計(jì) CPU 時(shí)間。

功能和交互操作

在 top 運(yùn)行時(shí)可以使用一些按鍵命令進(jìn)行操作如按下 "k" 可以終止一個(gè)進(jìn)程,按下 "h" 可以顯示幫助信息等。

  • 排序:可以按照 CPU 使用率、內(nèi)存使用率、進(jìn)程 ID 等對(duì)進(jìn)程進(jìn)行排序。
    • P:以CPU的使用資源排序顯示
    • M:以內(nèi)存的使用資源排序顯示
    • N:以pid排序顯示
    • ‘x’ 打開/關(guān)閉排序列的加亮效果,可以按”shift+>”或者”shift+<”左右改變排序序列
  • 刷新頻率:可以設(shè)置 top 的刷新頻率,以便動(dòng)態(tài)查看系統(tǒng)信息。
  • 按鍵盤數(shù)字“1”可以監(jiān)控每個(gè)邏輯CPU的狀況
  • 按鍵盤字母“b" 打開關(guān)閉加亮效果,也可以按 ‘y’ 來打開或者關(guān)閉運(yùn)行態(tài)進(jìn)程的加亮效果

實(shí)例

顯示進(jìn)程信息

top

顯示完整命令

top -c

以批處理模式顯示程序信息

top -b

以累積模式顯示程序信息

top -S

設(shè)置信息更新次數(shù)

top -n 2
//表示更新兩次后終止更新顯示

設(shè)置信息更新時(shí)間

top -d 3
//表示更新周期為3秒

顯示指定的進(jìn)程信息

top -p 139
//顯示進(jìn)程號(hào)為139的進(jìn)程信息,CPU、內(nèi)存占用率等

顯示更新十次后退出

top -n 10

使用者將不能利用交談式指令來對(duì)行程下命令

top -s

netstat命令 - 顯示網(wǎng)絡(luò)狀態(tài)

netstat命令來自英文詞組network statistics的縮寫,其功能是顯示各種網(wǎng)絡(luò)相關(guān)信息,例如網(wǎng)絡(luò)連接狀態(tài)、路由表信息、接口狀態(tài)、NAT、多播成員等。

netstat命令不僅應(yīng)用于Linux系統(tǒng),而且Windows XP、Windows 7、Windows 10及Windows 11均已默認(rèn)支持,并且可用參數(shù)也相同。

語法格式

netstat 參數(shù)

常用參數(shù):

  • -a或--all :顯示所有連線中的Socket。
  • -A<網(wǎng)絡(luò)類型>或--<網(wǎng)絡(luò)類型> :列出該網(wǎng)絡(luò)類型連線中的相關(guān)地址。
  • -c或--continuous :持續(xù)列出網(wǎng)絡(luò)狀態(tài)。
  • -C或--cache :顯示路由器配置的快取信息。
  • -e或--extend :顯示網(wǎng)絡(luò)其他相關(guān)信息。
  • -F或--fib :顯示路由緩存。
  • -g或--groups :顯示多重廣播功能群組組員名單。
  • -i或--interfaces :顯示網(wǎng)絡(luò)界面信息表單。
  • -l或--listening :顯示監(jiān)控中的服務(wù)器的Socket。
  • -M或--masquerade :顯示偽裝的網(wǎng)絡(luò)連線。
  • -n或--numeric :直接使用IP地址,而不通過域名服務(wù)器。
  • -N或--netlink或--symbolic :顯示網(wǎng)絡(luò)硬件外圍設(shè)備的符號(hào)連接名稱。
  • -o或--timers :顯示計(jì)時(shí)器。
  • -p或--programs :顯示正在使用Socket的程序識(shí)別碼和程序名稱。
  • -r或--route :顯示Routing Table。
  • -s或--statistics :顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表。
  • -t或--tcp :顯示TCP傳輸協(xié)議的連線狀況。
  • -u或--udp :顯示UDP傳輸協(xié)議的連線狀況。
  • -v或--verbose :顯示指令執(zhí)行過程。
  • -V或--version :顯示版本信息。
  • -w或--raw :顯示RAW傳輸協(xié)議的連線狀況。
  • -x或--unix :此參數(shù)的效果和指定"-A unix"參數(shù)相同。
  • --ip或--inet :此參數(shù)的效果和指定"-A inet"參數(shù)相同。

實(shí)例

系統(tǒng)網(wǎng)絡(luò)狀態(tài)中的所有連接信息:

highlighter-

netstat -a

顯示當(dāng)前用戶UDP連接狀況

highlighter-

netstat -nu

顯示UDP端口號(hào)的使用情況

highlighter- Markdown

# netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address        Foreign Address       State    PID/Program name  
udp    0   0 *:32768           *:*                   -          
udp    0   0 *:nfs            *:*                   -          
udp    0   0 *:641            *:*                   3006/rpc.statd   
udp    0   0 192.168.0.3:netbios-ns   *:*                   3537/nmbd      
udp    0   0 *:netbios-ns        *:*                   3537/nmbd      
udp    0   0 192.168.0.3:netbios-dgm   *:*                   3537/nmbd      
udp    0   0 *:netbios-dgm        *:*                   3537/nmbd      
udp    0   0 *:tftp           *:*                   3346/xinetd     
udp    0   0 *:999            *:*                   3366/rpc.rquotad  
udp    0   0 *:sunrpc          *:*                   2986/portmap    
udp    0   0 *:ipp            *:*                   6938/cupsd     
udp    0   0 *:1022           *:*                   3392/rpc.mountd   
udp    0   0 *:638            *:*                   3006/rpc.statd

顯示網(wǎng)卡列表

highlighter- Markdown

# netstat -i
Kernel Interface table
Iface    MTU Met  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0    1500  0  181864   0   0   0  141278   0   0   0 BMRU
lo    16436  0   3362   0   0   0   3362   0   0   0 LRU

顯示網(wǎng)絡(luò)路由表狀態(tài)信息:

# netstat -r 
Kernel IP routing table 
Destination Gateway Genmask Flags MSS Window irtt Iface 
default _gateway 0.0.0.0 UG 0 0 0 eth0 
192.168.10.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0

顯示組播組的關(guān)系

highlighter- SQL

# netstat -g
IPv6/IPv4 Group Memberships
Interface    RefCnt Group
--------------- ------ ---------------------
lo       1   ALL-SYSTEMS.MCAST.NET
eth0      1   ALL-SYSTEMS.MCAST.NET
lo       1   ff02::1
eth0      1   ff02::1:ff0a:b0c
eth0      1   ff02::1

只列出監(jiān)聽中的連接:任何網(wǎng)絡(luò)服務(wù)的后臺(tái)進(jìn)程都會(huì)打開一個(gè)端口,用于監(jiān)聽接入的請(qǐng)求。這些正在監(jiān)聽的套接字也和連接的套接字一樣,也能被 netstat 列出來。使用 -l 選項(xiàng)列出正在監(jiān)聽的套接字。

highlighter- SQL

$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN

獲取進(jìn)程名、進(jìn)程號(hào)以及用戶 ID:

使用 -p 選項(xiàng)查看進(jìn)程信息。但使用 -p 選項(xiàng)時(shí),netstat 必須運(yùn)行在 root 權(quán)限之下,不然它就不能得到運(yùn)行在 root 權(quán)限下的進(jìn)程名,而很多服務(wù)包括 http 和 ftp 都運(yùn)行在 root 權(quán)限之下。

highlighter- SQL

$ sudo netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1144/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      661/cupsd  tcp6       0      0 ::1:631                 :::*                    LISTEN      661/c

如果想找出特定端口(例如端口 21)的進(jìn)程名稱,則添加:| grep -w ':21'

ss命令 - 網(wǎng)絡(luò)狀態(tài)工具

ss命令用來顯示處于活動(dòng)狀態(tài)的套接字信息。ss命令可以用來獲取socket統(tǒng)計(jì)信息,它可以顯示和 netstat 類似的內(nèi)容。但ss的優(yōu)勢(shì)在于它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。

當(dāng)服務(wù)器的socket連接數(shù)量變得非常大時(shí),無論是使用netstat命令還是直接 cat /proc/net/tcp,執(zhí)行速度都會(huì)很慢。

ss快的秘訣在于,它利用到了TCP協(xié)議棧中tcp_diag。tcp_diag是一個(gè)用于分析統(tǒng)計(jì)的模塊,可以獲得Linux 內(nèi)核中第一手的信息,這就確保了ss的快捷高效。當(dāng)然,如果你的系統(tǒng)中沒有tcp_diag,ss也可以正常運(yùn)行,只是效率會(huì)變得稍慢。

語法格式

ss [option]

常用參數(shù):

  • -h:顯示幫助信息;
  • -V:顯示指令版本信息;
  • -n:不解析服務(wù)名稱,以數(shù)字方式顯示;
  • -a:顯示所有的套接字;
  • -l:顯示處于監(jiān)聽狀態(tài)的套接字;
  • -o:顯示計(jì)時(shí)器信息;
  • -m:顯示套接字的內(nèi)存使用情況;
  • -p:顯示使用套接字的進(jìn)程信息;
  • -i:顯示內(nèi)部的TCP信息;
  • -4:只顯示ipv4的套接字;
  • -6:只顯示ipv6的套接字;
  • -t:只顯示tcp套接字;
  • -u:只顯示udp套接字;
  • -d:只顯示DCCP套接字;
  • -w:僅顯示RAW套接字;
  • -x:僅顯示UNIX域套接字。

實(shí)例

只顯示監(jiān)聽的套接字

ss -lnt

不解析主機(jī)名

ss -nt

打印進(jìn)程名和進(jìn)程號(hào)

ss -ltp

僅顯示IPv4 或 IPv6 連接

ss -tl -f inet 或 ss -tl6

列出處在 time-wait 狀態(tài)的 IPv4 套接字

ss -t4 state time-wait

注意: 狀態(tài)可以是以下任意一種

stablished 
yn-sent 
yn-recv 
in-wait-1 
in-wait-2 
ime-wait 
losed 
lose-wait 
ast-ack 
closing 
all – All of the above states 
connected – All the states except for listen and closed 
synchronized – All the connected states except for syn-sent 
bucket – Show states, which are maintained as minisockets, i.e. time-wait and syn-recv. 
big – Opposite to bucket state.

顯示所有源端口或目的端口為 ssh 的套接字

ss -at '( dport = :ssh or sport = :ssh )'

顯示目的端口是443或80的套接字

ss -nt '( dst :443 or dst :80 )'

對(duì)地址和端口過濾

ss -nt dst 103.245.222.184:80

僅過濾端口

ss -nt dport = :80

顯示對(duì)方端口號(hào)小于100的套接字

ss -nt dport \< :100

顯示端口號(hào)大于1024的套接字

sudo ss -nt sport gt :1024

顯示對(duì)方端口是 80的套接字

sudo ss -nt state connected dport = :80

顯示TCP連接

[root@localhost ~]# ss -t -a
State       Recv-Q Send-Q                            Local Address:Port                                Peer Address:Port   
LISTEN      0      0                                             *:3306                                           *:*       
LISTEN      0      0                                             *:http                                           *:*       
LISTEN      0      0                                             *:ssh                                            *:*       
LISTEN      0      0                                     127.0.0.1:smtp                                           *:*       
ESTAB       0      0                                112.124.15.130:42071                              42.156.166.25:http    
ESTAB       0      0                                112.124.15.130:ssh                              121.229.196.235:33398

顯示 Sockets 摘要

[root@localhost ~]# ss -s
Total: 172 (kernel 189)
TCP:   10 (estab 2, closed 4, orphaned 0, synrecv 0, timewait 0/0), ports 5
Transport Total     ip        IPv6
*         189       -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       6         6         0        
INET      11        11        0        
FRAG      0         0         0

列出當(dāng)前的established, closed, orphaned and waiting TCP sockets

列出所有打開的網(wǎng)絡(luò)連接端口

[root@localhost ~]# ss -l
Recv-Q Send-Q                                 Local Address:Port                                     Peer Address:Port   
0      0                                                  *:3306                                                *:*       
0      0                                                  *:http                                                *:*       
0      0                                                  *:ssh                                                 *:*       
0      0                                          127.0.0.1:smtp                                                *:*

查看進(jìn)程使用的socket

[root@localhost ~]# ss -pl
Recv-Q Send-Q                                          Local Address:Port                                              Peer Address:Port   
0      0                                                           *:3306                                                         *:*        users:(("mysqld",1718,10))
0      0                                                           *:http                                                         *:*        users:(("nginx",13312,5),("nginx",13333,5))
0      0                                                           *:ssh                                                          *:*        users:(("sshd",1379,3))
0      0                                                   127.0.0.1:smtp                                                         *:*        us

找出打開套接字/端口應(yīng)用程序

[root@localhost ~]# ss -pl | grep 3306
0      0                            *:3306                          *:*        users:(("mysqld",1718,10))

顯示所有UDP Sockets 或 ss -aA udp

[root@localhost ~]# ss -u -a
State       Recv-Q Send-Q                                     Local Address:Port                                         Peer Address:Port   
UNCONN      0      0                                                      *:syslog                                                  *:*       
UNCONN      0      0                                         112.124.15.130:ntp                                                     *:*       
UNCONN      0      0                                            10.160.7.81:ntp                                                     *:*       
UNCONN      0      0                                              127.0.0.1:ntp                                                     *:*       
UNCONN      0      0                                                      *:ntp

到此這篇關(guān)于Linux系統(tǒng)管理常用命令介紹的文章就介紹到這了,更多相關(guān)linux系統(tǒng)常用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論