01 linux 命令

一、 查找命令

1 grep

1 grep 基礎(chǔ)

  • -C 關(guān)鍵字 上下行數(shù)

  • -A 關(guān)鍵字和后面的N行

  • -B 關(guān)鍵字和前面的N行

  • -n 顯示行號

  • -i 忽略大小寫

  • -c 只輸出 關(guān)鍵字出現(xiàn)的次數(shù)

  • -v 輸出沒有包含關(guān)鍵字內(nèi)容

  • --color=auto 關(guān)鍵字高亮

  • -m num 查詢最大數(shù)量, --max-count=num

  • 例子

tail -n 2000 server.log | grep sendAddPostCommentEvent -n -C 1 --color=a



2 并且查詢

  • F 參數(shù)強制不使用任何表達式
grep 5288490287094574636 server.log| grep broadcastPushToWeb|grep -F 'status\":2'

3 或者查詢

egrep  'broadcastPushToWeb|5236743288469332012' server.log
grep 'pattern1 \| pattern2' filename
grep -E 'pattern1|pattern2' filename

4 NOT,非查詢

grep -v 'broadcastPushToWeb' filename

5. 后面前面第一次出現(xiàn)

#最后一次
grep -C 100  'listMessageByTypes'  catalina.log | tail -200
# 最前面
grep -C 100  'listMessageByTypes'  catalina.log | head -200

二、系統(tǒng)信息命令

1. top命令

1. 語法

  • -和|是可選的
top -hv | -bcEeHiOSs1 -d secs -n max -u | U user -p pid(s) -o field -w [cols]

1.1 選項

選項 名稱 描述
-h 幫助 顯示命令幫助
-v 版本
-b 批處理方式 以批處理模式啟動 top,允許將命令的輸出發(fā)送到文件或其他程序。Top 不接受批處理模式下的輸入,并且一直運行到終止或者達到指定的迭代限制為止。
-c 切換命令行/程序名稱 反轉(zhuǎn)最后記住的 c 狀態(tài)。如果頂部顯示命令行,該字段現(xiàn)在顯示程序名稱,反之亦然。
-d [secs.tenths] 延遲時間間隔 提示您在更新屏幕之前指定延遲,并覆蓋默認(rèn)值。數(shù)值以秒為單位。該命令接受小數(shù)秒,但不接受負數(shù)。
-e [k / m /g / t / p] 切換任務(wù)內(nèi)存縮放 允許您更改top 任務(wù)區(qū)域內(nèi)存縮放。可用的縮放選項是k(kibibytes)、m(mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)。
-E [k / m / g / t / p / e] 切換摘要內(nèi)存縮放 允許您更改top摘要區(qū)域內(nèi)存縮放??捎玫目s放選項是k (kibibytes)、m (mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)、e(exbibytes)。
-H 線程模式操作 指定-H選項指示top 顯示單個線程而不是每個進程中所有線程的總和。
-i 空閑進程切換 反轉(zhuǎn)最后記住的i狀態(tài)。當(dāng)開關(guān)關(guān)閉時,top 不顯示自上次更新以來未使用 CPU 資源的任務(wù)。
-n 限制迭代次數(shù) top 指定結(jié)束前要生成的最大迭代次數(shù)。
-o [field name] 覆蓋排序字段 指定top 用于對任務(wù)進行排序的字段名稱。在字段名稱前加上一個+強制top 從高到低排序,同時在它前面加上-訂單任務(wù)從低到高。該-o選項主要支持自動批處理模式操作。
-O 輸出字段名稱 該-O選項補充了該-o選項,導(dǎo)致top 分別打印每個可用的字段名稱,然后退出。
-p [N1, N2...] 監(jiān)控進程 ID 模式 指示top 僅監(jiān)視具有指定進程 ID 的進程。當(dāng)與線程模式 ( -H) 結(jié)合使用時,top 顯示每個受監(jiān)視的 PID 線程組中的所有進程。PID 的最大數(shù)量為 20。指定 PID 值0被視為top 程序進程 ID。要恢復(fù)正常操作,請發(fā)出以下任何命令:=、u或U,因為它們是互斥的。
-s 安全模式操作 以安全模式啟動top ,即使是 root。
-S 累計時間切換 反轉(zhuǎn)最后記住的S狀態(tài)。當(dāng)累積時間切換為 ON 時,每個進程都會列出它已使用的 CPU 時間。
-u / -U [ID or name] 用戶過濾模式 僅顯示與指定用戶 ID 或用戶名匹配的進程。該-u選項僅匹配有效用戶,而該-U選項匹配任何用戶 - 真實、有效、已保存或文件系統(tǒng)。在用戶 ID 或用戶名前加上感嘆號 ( !) 會導(dǎo)致top 僅顯示與提供的進程不匹配的進程。
-w [number] 輸出寬度覆蓋 當(dāng)不帶參數(shù)使用時,-w指示top 使用COLUMNS=和LINES=環(huán)境變量格式化輸出(如果適用)。否則,寬度固定為最大 512 列。-w在行號不受限制的情況下,將參數(shù)附加到增加(最多 512)或減少輸出寬度。該程序永遠不會超過top 調(diào)用時的實際終端尺寸。
-1 單個/獨立 CPU 狀態(tài)切換 反轉(zhuǎn)最后記住的 CPU 狀態(tài)部分。根據(jù) NUMA 節(jié)點命令切換 ( 2) 狀態(tài),在一行中或單獨顯示所有 CPU 信息。

2. 示例

2.1 top

  • 輸出
    • image.png
    • 輸出顯示摘要區(qū)域(具有資源使用統(tǒng)計信息的儀表板)和任務(wù)區(qū)域(所有進程的列表)
    • top默認(rèn)情況下每三秒更新一次信息。
  1. 操作
  • 如果進程列表很長,請使用向上和向下箭頭以及Page Up和Page Down鍵滾動瀏覽它。要退出top,請按q。
  • 發(fā)送信號
    • 使用該top命令向正在運行的進程發(fā)送任何信號。按k鍵并輸入過程 PID。top讓您有機會鍵入要發(fā)送的信號。不輸入特定信號會終止進程。
    • image.png

2.2 X 次重復(fù)后退出

  • 語法
    • 對于[X],指定要top刷新輸出的次數(shù)。
top -n [X]

2.3 排序進程

  • 排序關(guān)鍵字
    • M. Sort by the %MEM column.
    • N. Sort by PID column.
    • T. Sort by the TIME+ column.
    • P. Sort by the %CPU column.

2.4 按特定用戶過濾進程

  • -u選項允許您顯示所有用戶特定的進程。在運行時按u鍵top或使用以下語法:
top -u [user name]
  • 輸出
    • image.png

2.5 更改顯示單位

  • 語法

    • 使用E鍵選擇要top用于顯示內(nèi)存值的單位。
    • 按小寫字母e選擇在進程列表中顯示值的單位。
  • 可用的選項是

    • kibibytes (KiB)
    • mebibytes (MiB)
    • gibibytes (GiB)
    • tebibytes (TiB)
    • pebibytes (PiB)
    • exbibytes (EiB - applies only for memory values)
  • 輸出

    • image.png

2.5 更改輸出內(nèi)容

  • 默認(rèn)top輸出包含大量信息,可能看起來很混亂。通過幾次按鍵調(diào)整內(nèi)容,找到您需要的信息,或從摘要中刪除某些部分。
  1. 單個 CPU 核心統(tǒng)計數(shù)據(jù)
  • 語法
    • 按鍵盤上的1可以查看每個 CPU 內(nèi)核的單獨統(tǒng)計信息。反復(fù)按1切換核心統(tǒng)計數(shù)據(jù)。
  • 輸出
    • image.png
  1. CPU 使用圖
  • top支持基本的 ASCII 圖,表示每個 CPU 內(nèi)核的使用情況。按t打開或關(guān)閉圖表。

    • 第一次按t 顯示條紋進度
    • 第二次按t 顯示實心進度
    • 第三次按t刪除 CPU 顯示和任務(wù)摘要部分。
  • 輸出

    • image.png
    • 按t 變成實心
      • image.png
  1. 內(nèi)存使用圖
  • 該命令還支持內(nèi)存和交換內(nèi)存行的圖形顯示選項。要獲得內(nèi)存使用情況的直觀表示,請按m。再次按m刪除線條。
  1. 更改文字顏色
  • 通過向輸出添加顏色來強調(diào)輸出中的信息。按z鍵為顯示添加顏色:

  • 輸出

    • image.png
  • 自定義顯示元素并選擇不同的顏色

    1. 按Z打開顏色設(shè)置頁面。
      • 按以下鍵選擇要更改的顯示元素:
        • S。摘要數(shù)據(jù)區(qū)域。
        • M。消息和提示。
        • H。列標(biāo)題。
        • T。進程列表中的任務(wù)信息。
      • 按Enter確認(rèn)選擇。
    2. 使用以下鍵之一為所選元素選擇顏色:
      • 0。黑色的。
      • 1 . 紅色的。
      • 2 . 綠色的。
      • 3 . 黃色。
      • 4 . 藍色的。
      • 5 . 品紅。
      • 6 . 青色。
      • 7 . 白色的。
    3. 按Enter確認(rèn)選擇。

2.6 顯示進程命令行

  • 語法

    • top -c
    • 進入 top 按c
  • image.png

2.7 流程層次結(jié)構(gòu)

  • 要查看哪些進程已啟動或由其他進程生成,請按V鍵。
    • 當(dāng)想查看系統(tǒng)上的子-父進程層次結(jié)構(gòu)時,樹視圖很有用。
  • 輸出
    • image.png

2.8 顯示活動任務(wù)

  • 按I鍵 ,要過濾輸出并僅顯示活動任務(wù)
    • 輸出隱藏了自上次更新以來未使用任何 CPU 資源的任務(wù)。
  • 輸出
    • image.png

2.9 限制進程數(shù)

  • 按n鍵限制輸出中的進程數(shù)。無論活動進程的數(shù)量如何。top提示輸入要查看的進程數(shù)
  • 例如,我們只想顯示前 3 個進程:
    • image.png

2.10 更改進程優(yōu)先級

  1. 過程
    • 運行top并按r鍵
    • 出現(xiàn)提示時,輸入進程 ID 并按Enter 鍵。
    • 輸入 PID 后,程序會提示輸入一個新的 nice 值。輸入新值并按Enter 鍵。
  • 負 nice 值表示更高的進程優(yōu)先級。

  • 更改PID 28 優(yōu)先級 為 12

    • image.png

2.10 過濾進程

  • 過濾器top功能允許使用過濾器表達式來限制在列表中查看哪些進程。按o鍵激活過濾器選項。該程序會提示您輸入過濾器表達式。
  1. 例子
  • 顯示 %MEM > 0.2 的
    • image.png

三、網(wǎng)絡(luò)相關(guān)

1. netstat 用于顯示網(wǎng)絡(luò)狀態(tài)

1. 語法

netstat [-acCeFghilMnNoprstuvVwx][-A<網(wǎng)絡(luò)類型>][--ip]

1.1 參數(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 顯示多重廣播功能群組組員名單。
  • -h或--help 在線幫助。
  • -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è)備的符號連接名稱。
  • -o或--timers 顯示計時器。
  • -p或--programs 顯示正在使用Socket的程序識別碼和程序名稱。
  • -r或--route 顯示Routing Table。
  • -s或--statistics 顯示網(wǎng)絡(luò)工作信息統(tǒng)計表。
  • -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ù)相同。

1.2 列頭信息

  • Proto
    • 套接字使用的協(xié)議(tcp、udp、raw)。
  • Recv-Q
    • 連接到此套接字的用戶程序未復(fù)制的字節(jié)數(shù)。
    • 這些數(shù)字一般都應(yīng)該是0,如果不是則表示軟件包正在隊列中堆積,這種情況是非常少見的
  • Send-Q
    • 遠程主機未確認(rèn)的字節(jié)數(shù)。
  • Local Address
    • 套接字本端的地址和端口號。除非指定--numeric ( -n ) 選項,否則套接字地址會解析為其規(guī)范主機名 (FQDN),而端口號會轉(zhuǎn)換為相應(yīng)的服務(wù)名稱。
    • 本地計算機的 IP 地址和正在使用的端口號。除非指定-n參數(shù),否則顯示與 IP 地址和端口名稱對應(yīng)的本地計算機的名稱。如果端口尚未建立,則端口號顯示為星號 (*)。
  • Foreign Address
    • 套接字所連接的遠程計算機的 IP 地址和端口號。除非指定-n參數(shù),否則將顯示對應(yīng)于 IP 地址和端口的名稱。如果端口尚未建立,則端口號顯示為星號 (*)。
  • State
    • 指示TCP連接的狀態(tài),
      • ESTABLISHED 套接字已建立連接。
      • SYN_SENT 套接字正在主動嘗試建立連接。
      • SYN_RECV 已從網(wǎng)絡(luò)收到連接請求。
      • FIN_WAIT1 套接字已關(guān)閉,連接正在關(guān)閉。
      • FIN_WAIT2 連接已關(guān)閉,套接字正在等待來自遠程端的關(guān)閉。
      • TIME_WAIT 套接字在關(guān)閉后等待處理仍在網(wǎng)絡(luò)中的數(shù)據(jù)包。
      • CLOSED 套接字未被使用。
      • CLOSE_WAIT 遠程端已關(guān)閉,等待套接字關(guān)閉。
      • LAST_ACK 遠程端已關(guān)閉,套接字已關(guān)閉。等待確認(rèn)。
      • LISTEN 套接字正在偵聽傳入連接。此類套接字不會包含在輸出中,除非您指定--listening ( -l ) 或 --all ( -a ) 選項。
      • CLOSING 兩個套接字都已關(guān)閉,但我們?nèi)匀粵]有發(fā)送所有數(shù)據(jù)。
      • UNKNOWN 套接字的狀態(tài)未知。
  • PID/Program name
    • 擁有套接字的進程的進程 ID (PID) 和進程名稱的斜線分隔對。--program導(dǎo)致包含此列。您還需要超級用戶權(quán)限才能在不屬于您的套接字上查看此信息。此標(biāo)識信息尚不可用于 IPX 套接字。

2. 案例

1. 查看端口端口

  1. netstat -anp 查看所有端口
root@DESKTOP-2L5PHTK:/etc# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      103/sshd
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      343/docker-proxy
tcp        0      0 127.0.0.1:3306          127.0.0.1:33320         ESTABLISHED 343/docker-proxy
tcp        0      0 172.17.0.1:49888        172.17.0.2:3306         ESTABLISHED 343/docker-proxy
tcp        0      0 127.0.0.1:33320         127.0.0.1:3306          ESTABLISHED -
tcp6       0      0 :::22                   :::*                    LISTEN      103/sshd
tcp6       0      0 :::2375                 :::*                    LISTEN      153/dockerd
tcp6       0      0 :::3306                 :::*                    LISTEN      351/docker-proxy
tcp6       0      0 172.20.116.187:2375     172.20.112.1:61782      ESTABLISHED 153/dockerd
tcp6       0      0 172.20.116.187:2375     172.20.112.1:61768      ESTABLISHED 153/dockerd
  1. 找出程序運行的端口
  • netstat -ap | grep ssh
root@DESKTOP-2L5PHTK:/etc# netstat -ap | grep ssh
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      103/sshd
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      103/sshd

2. tcp/ip

1.查看tcp所有端口

  • netstat -antp
root@DESKTOP-2L5PHTK:/etc# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      103/sshd
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      343/docker-proxy
tcp        0      0 127.0.0.1:3306          127.0.0.1:33320         ESTABLISHED 343/docker-proxy
tcp        0      0 172.17.0.1:49888        172.17.0.2:3306         ESTABLISHED 343/docker-proxy
tcp        0      0 127.0.0.1:33320         127.0.0.1:3306          ESTABLISHED -
tcp6       0      0 :::22                   :::*                    LISTEN      103/sshd
tcp6       0      0 :::2375                 :::*                    LISTEN      153/dockerd
tcp6       0      0 :::3306                 :::*                    LISTEN      351/docker-proxy
tcp6       0      0 172.20.116.187:2375     172.20.112.1:61782      ESTABLISHED 153/dockerd
tcp6       0      0 172.20.116.187:2375     172.20.112.1:61768      ESTABLISHED 153/dockerd
  1. TCP各種狀態(tài)列表并統(tǒng)計排序
  • netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
root@DESKTOP-2L5PHTK:/etc# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
      5 LISTEN
      5 ESTABLISHED
      1 established)
      1 Foreign
  1. TCP 長連接
  • netstat —f inet
    • 這個— 是中文的-
root@DESKTOP-2L5PHTK:/etc# netstat –f inet
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:mysql         localhost:33320         ESTABLISHED
tcp        0      0 172.17.0.1:49888        172.17.0.2:mysql        ESTABLISHED
tcp        0      0 localhost:33320         localhost:mysql         ESTABLISHED
tcp6       0      0 172.20.116.187:2375     DESKTOP-2L5PHTK:61782   ESTABLISHED
tcp6       0      0 172.20.116.187:2375     DESKTOP-2L5PHTK:61768   ESTABLISHED
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、常見關(guān)機&重啟命令 不管是重啟系統(tǒng)還是關(guān)閉系統(tǒng),通常先要要運行 sync 命令,把內(nèi)存中的數(shù)據(jù)寫到磁盤中 二 ...
    小白1號閱讀 139評論 0 0
  • 登錄 完整的遠程登錄方式:ssh -p 端口號 用戶名:用戶密碼@服務(wù)器地址注:其中的端口號默認(rèn)是22,默認(rèn)值可以...
    簡公孫策閱讀 462評論 0 0
  • 簡明 VIM 練級攻略搜索文件夾下是否包含某個字符串systemctl鳥哥的 Linux 私房菜學(xué)習(xí)總結(jié)(超贊!!...
    _fhs閱讀 417評論 0 0
  • ps -ef指令(重點) 指令:ps作用:主要是查案服務(wù)器的進程信息選項含義:-e:等價于“-A”,此傲視李處全部...
    測試員閱讀 625評論 1 0
  • 4.1.1 ps 命令探查進程 當(dāng)程序運行在 Linux 中時,被稱為 進程( Process ) ps 命令可以...
    夕顏00閱讀 840評論 0 0

友情鏈接更多精彩內(nèi)容