12.29 學習linux命令,看這篇2w多字的linux命令詳解

序言

 本篇文章主要講解了一些linux常用命令,主要講解模式是,命令介紹、命令參數格式、命令參數、命令常用參數示例。由於linux命令較多,我還特意選了一些日常使用較為頻繁的命令進行講解,但還是免不了文章很長,建議大家收藏起來,用到的時候不會了再來閱讀。當然學習linux命令最好的方法是學會使用linux自帶的man手冊,所有linux命令規範和使用細則都會在該手冊中講解的很清楚,我在書寫的過程中也是參考該手冊和日常使用情況。

如果還有哪些是大家希望再補充的命令,可以留言給我,我會持續更新該文章,同時也作為我學習和工作的手冊。

Linux初級指令

ls ——List

ls 介紹

 這是我學Linux的第一個命令,相信也是很多人學習Linux的第一個命令。ls全稱list.

列出有關文件的信息(默認為當前目錄)。如果沒有指定-cftuvSUX或——Sort,則按字母順序排序。

 官方的說的很清楚,默認列出當前目錄,所以可以列出其他目錄或者路徑下的文件信息或者目錄信息。

 ls還可以列出指定目錄下的文件列表。

學習linux命令,看這篇2w多字的linux命令詳解

ls命令參數

-a 列出指定目錄下的所有文件,包括隱藏文件

-c 使用最後一次更改文件狀態以進行排序(-t)或長時間打印(-l)的時間

-h 與-l選項一起使用時,請使用單位後綴:Byte、Kilobyte、mete、gb、tb和Petabyte,以便使用以2為基數的大小將數字減少到3或更少

-l 長格式列表。(見下文)。如果輸出到終端,則所有文件大小的總和將輸出到長清單前面的一行中

-n 以數字形式顯示用戶和組id,而不是在長(-l)輸出中轉換為用戶或組名。這個選項默認打開-l選項

-o 以長格式列出,但省略組id

-s 顯示每個文件實際使用的文件系統塊的數量,以512字節為單位,其中部分單元四捨五入為下一個整數值

-t 在按照字典順序對操作數排序之前,先按修改的時間排序(最近修改的是first)

-u 使用最後一次訪問的時間,而不是最後一次修改文件進行排序

pwd介紹

 打印當前工作目錄的完整路徑名。


touch (change file timestamps)

touch介紹

 將每個文件的訪問和修改時間更新為當前時間。除非提供-c或-h,否則將不存在的FILE參數創建為空。

touch命令參數

-a 或--time=atime或--time=access或--time=use 只更改存取時間。

-c 或--no-create 不建立任何文檔。

-d 使用指定的日期時間,而非現在的時間。

-f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。

-m 或--time=mtime或--time=modify 只更改變動時間。

-r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。

-t 使用指定的日期時間,而非現在的時間。cat介紹

將FILE或標準輸入連接到標準輸出。

cat命令參數

-A, --show-all 等價於 -vET

-b, --number-nonblank 對非空輸出行編號

-e 等價於 -vE

-E, --show-ends 在每行結束處顯示

-n, --number 對輸出的所有行編號,由1開始對所有輸出的行數編號

-s, --squeeze-blank 有連續兩行以上的空白行,就代換為一行的空白行

-t 與 -vT 等價

-T, --show-tabs 將跳格字符顯示為 ^I

-u (被忽略)

-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

<code>
/<code>
<code>$tactest
-e等價於-vE
-b,--number-nonblank對非空輸出行編號
-A,--show-all等價於-vET
/<code>

mkdir —— Make Directory

mkdir介紹

如果目錄不存在,則創建目錄。

mkdir命令參數

-m, --mode=模式,設定權限 (類似 chmod),而不是 rwxrwxrwx 減 umask

-p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;

-v, --verbose 每次創建新目錄都顯示信息

--help 顯示此幫助信息並退出

--version 輸出版本信息並退出

cd介紹

 切換當前目錄至指定目錄

 cd命令沒什麼參數就是切換目錄到指定路徑下,較為簡單,但是使用評率極高。

rm&rmdir —— Remove Directory

rm介紹

rm實用程序嘗試刪除命令行上指定的非目錄類型文件。 如果文件的權限不允許寫入,並且標準輸入設備是終端,則會提示用戶(在標準錯誤輸出上)進行確認。

 rm命令使用時還是需要注意的,他的刪除恢復比較麻煩,有些系統會自帶-i參數,輸入命令之後還有一個確認步驟,有些是直接刪掉了,是真刪掉,從內存抹掉那種(其實底層是讓該文件指針不指向該文件的內存塊,內存上的內容原則上是存在的,但是恢復會比較複雜,需要掃描整塊內存塊才能拿到內容)。不要輕易刪掉你寫的重要代碼,hh。

rm命令參數

-f, --force 忽略不存在的文件,從不給出提示。

-i, --interactive 進行交互式刪除

-r, -R, --recursive 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。

-d, --dir 刪除空目錄

mv —— Move

mv介紹

就是移動目錄或者文件到置頂目錄下,同時具有重命名的功能。

mv命令參數

-b :若需覆蓋文件,則覆蓋前先行備份。

-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋

-n:不要覆蓋現有文件。 (-n選項將覆蓋以前的任何-f或-i選項。)

-u :若目標文件已經存在,且 source 比較新,才會更新(update)

 這個命令在寫makefile文件的時候用起來很舒服,可以把編譯的結果移到指定目錄並重命名。

cp —— Copy

cp介紹

cp實用程序將source_file的內容複製到target_file。 在第二個大綱格式中,每個命名的source_file的內容都複製到目標target_directory。 文件本身的名稱不會更改。 如果cp檢測到嘗試將文件複製到自身的嘗試,則複製將失敗。

命令參數

-a, --archive 等於-dR --preserve=all

--backup[=CONTROL 為每個已存在的目標文件創建備份

-b 類似--backup 但不接受參數

--copy-contents 在遞歸處理是複製特殊文件內容

-d 等於--no-dereference --preserve=links

-f, --force 如果目標文件無法打開則將其移除並重試(當 -n 選項

​ 存在時則不需再選此項)

-i, --interactive 覆蓋前詢問(使前面的 -n 選項失效)

-H 跟隨源文件中的命令行符號鏈接

-l, --link 鏈接文件而不復制

-L, --dereference 總是跟隨符號鏈接

-n, --no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項失效)

-P, --no-dereference 不跟隨源文件中的符號鏈接

-p 等於--preserve=模式,所有權,時間戳

--preserve[=屬性列表 保持指定的屬性(默認:模式,所有權,時間戳),如果

​ 可能保持附加屬性:環境、鏈接、xattr 等

-R, -r, --recursive 複製目錄及目錄內的所有項目

echo

echo介紹

echo實用程序將任何指定的操作數寫入標準輸出,這些操作數由單個空格()字符分隔,後跟換行符(\\ n')字符。

這條命令較為簡單,常用來打印變量、文本內容到

$PWD 是取當前路徑,然後echo到標準輸出,一般echo $name 用來查看某個環境變量的值

head&tail

head介紹

此過濾器顯示每個指定文件或標準輸入(如果未指定文件)的前幾行或字節。

如果省略count,則默認為10.如果指定了多個文件,則每個文件的頭均由字符串==> XXX <==''組成,其中XXX''為文件名 文件。

tail命令完全和他相反,是從尾部開始展示文本,但是他的參數用法更多。

-f 循環讀取

-q 不顯示處理信息

-v 顯示詳細的處理信息

-c 顯示的字節數

-n 顯示行數

--pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.

-q, --quiet, --silent 從不輸出給出文件名的首部

-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

tail和head命令經常用來查看日誌,像我現在基本每天都會用,我的日誌文件沒辦法用vim或者cat這樣去看(因為我負責的業務日誌量每天都是幾十個G),要麼用tail,要麼用more&less(下面會講)。

more&less

more介紹

more每次打開文件不是全部把文件讀入內存而是流式讀取,不會因為vi|vim某個大文件而造成系統oom。

more&less最重要的一點就是流式讀取,支持翻頁,像cat命令是全部讀取輸出到標準輸出,如果文件太大會把屏幕刷滿的,根本沒辦法看。

more命令參數

+n 從笫n行開始顯示

-n 定義屏幕大小為n行

+/pattern 在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示

-c 從頂部清屏,然後顯示

-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能

-l 忽略Ctrl+l(換頁)字符

-p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似

-s 把連續的多個空行顯示為一行

-u 把文件內容中的下畫線去掉

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會加載整個文件

wc

wc介紹

wc實用程序顯示每個輸入文件或標準輸入(如果未指定文件)中每個輸入文件中包含的行數,字數和字節數。 一行定義為由字符分隔的字符串。 最後一個字符之後的字符將不包括在行數中。

這條命令對我來說還是比較深刻的,我剛學習編程不久的時候,我感覺我寫的代碼很多了,那個時候我就很想知道我寫了多少行代碼了,一時興起,說幹就幹,直接寫了個程序去統計了一把,寫完之後還感覺自己蠻厲害的,誰知道之後學習到這個wc,然後就覺得自己還是嫩了點,還是要多學習。

wc命令參數

-c 統計字節數。

-l 統計行數。

-m 統計字符數。這個標誌不能與 -c 標誌一起使用。

-w 統計字數。一個字被定義為由空白、跳格或換行字符分隔的字符串。

-L 打印最長行的長度。

date & cal

date介紹

當不帶參數調用時,date實用程序將顯示當前日期和時間。 否則,根據指定的選項,日期將設置日期和時間或以用戶定義的方式打印日期和時間。

date實用程序顯示從內核時鐘讀取的日期和時間。 當用於設置日期和時間時,內核時鐘和硬件時鐘都將更新。

只有超級用戶可以設置日期,並且如果系統安全級別(請參閱securelevel(7))大於1,則時間更改不得超過1秒。

date命令參數

%H 小時(以00-23來表示)。

%I 小時(以01-12來表示)。

%K 小時(以0-23來表示)。

%l 小時(以0-12來表示)。

%M 分鐘(以00-59來表示)。

%P AM或PM。

%r 時間(含時分秒,小時以12小時AM/PM來表示)。

%s 總秒數。起算時間為1970-01-01 00:00:00 UTC。

%S 秒(以本地的慣用法來表示)。

%T 時間(含時分秒,小時以24小時制來表示)。

%X 時間(以本地的慣用法來表示)。

%Z 市區。

%a 星期的縮寫。

%A 星期的完整名稱。

%b 月份英文名的縮寫。

%B 月份的完整英文名稱。

%c 日期與時間。只輸入date指令也會顯示同樣的結果。

%d 日期(以01-31來表示)。

%D 日期(含年月日)。

%j 該年中的第幾天。

%m 月份(以01-12來表示)。

%U 該年中的週數。

%w 該周的天數,0代表週日,1代表週一,異詞類推。

%x 日期(以本地的慣用法來表示)。

%y 年份(以00-99來表示)。

%Y 年份(以四位數來表示)。

%n 在顯示時,插入新的一行。

%t 在顯示時,插入tab。

MM 月份(必要)

DD 日期(必要)

hh 小時(必要)

mm 分鐘(必要)

ss 秒(選擇性)

-d 顯示字符串所指的日期與時間。字符串前後必須加上雙引號。

-s 根據字符串來設置日期與時間。字符串前後必須加上雙引號。

-u 顯示GMT。

cal介紹

cal命令可以用來顯示公曆(陽曆)日曆。

cal命令參數

-1 顯示一個月的月曆

-3 顯示系統前一個月,當前月,下一個月的月曆

-s 顯示星期天為一個星期的第一天,默認的格式

-m 顯示星期一為一個星期的第一天


-j 顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示當前月在一年中的天數)
-y 顯示當前年份的日曆

which

which介紹

which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

whereis

whereis介紹

whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

whereis參數格式

whereis [program ...]

whereis命令參數

-b 定位可執行文件。

-m 定位幫助文件。

-s 定位源代碼文件。

-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。

-B 指定搜索可執行文件的路徑。

-M 指定搜索幫助文件的路徑。

-S 指定搜索源代碼文件的路徑。

nl

nl介紹

nl命令在linux系統中用來計算文件中行號。nl 可以將輸出的文件內容自動的加上行號!其默認的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。

nl命令參數

-b :指定行號指定的方式,主要有兩種:

-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);

-b t :如果有空行,空的那一行不要列出行號(默認值);

-n :列出行號表示的方法,主要有三種:

-n ln :行號在螢幕的最左方顯示;

-n rn :行號在自己欄位的最右方顯示,且不加 0 ;

-n rz :行號在自己欄位的最右方顯示,且加 0 ;

-w :行號欄位的佔用的位數。

-p 在邏輯定界符處不重新開始計算。

ps

ps介紹

ps實用程序顯示標題行,其後是包含有關具有控制終端的所有進程的信息的行。

ps命令參數

a 顯示所有進程

-a 顯示同一終端下的所有程序

-A 顯示所有進程

c 顯示進程的真實名稱

-N 反向選擇

-e 等於“-A”

e 顯示環境變量

f 顯示程序間的關係

-H 顯示樹狀結構

r 顯示當前終端的進程

T 顯示當前終端的所有程序

u 指定用戶的所有進程

-au 顯示較詳細的資訊

-aux 顯示所有包含其他使用者的行程

-C 列出指定命令的狀況

--lines 每頁顯示的行數

--width 每頁顯示的字符數

kill&killall

kill介紹

命令kill將指定的信號發送到指定的進程或進程組。 如果未指定信號,則發送TERM信號。 TERM信號將殺死不捕獲該信號的進程。 對於其他過程,可能需要使用KILL(9)信號,因為無法捕獲該信號。

kill命令參數

-l 信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱

-a 當處理當前進程時,不限制命令名和進程號的對應關係

-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號

-s 指定發送信號

-u 指定用戶

解釋

HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \\)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)

kill -9 是我們使用的最多的信號,其實這種方式一點也不優雅,應該使用kill -15信號,大部分程序接收到SIGTERM信號後,會先釋放自己的資源,然後再停止。但是也有程序可能接收信號後,做一些其他的事情(如果程序正在等待IO,可能就不會立馬做出響應,等到io完成後在結束),也就是說,SIGTERM多半是會被阻塞的。

講到這裡,linux基本指令差不多了夠用了,差不多可以上你的服務器上隨便搞搞了。但是也只是簡單看看,更多的操作指令請看進階部分。


Linux進階指令

find

find介紹

find實用程序對列出的每個路徑遞歸地遍歷目錄樹,根據樹中的每個文件計算表達式(由下面列出的“初選”和“操作數”組成)。

這個命令使用頻率極高,如果對這個命令瞭解很透徹,在日常工作中可以事半功倍。這個命令的參數較多,常用的參數我會在下面常用參數示例講清楚

find命令參數

-print: find命令將匹配的文件輸出到標準輸出。

-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \\;,注意{ }和\\;之間的空格。

-name 按照文件名查找文件。

-perm 按照文件權限來查找文件。

-prune 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find命令忽略。

-user 按照文件屬主來查找文件。

-group 按照文件所屬的組來查找文件。

-mtime -n +n 按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。

-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。

-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。

-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。

-type 查找某一類型的文件,諸如:

  • b - 塊設備文件。
  • d - 目錄。
  • c - 字符設備文件。
  • p - 管道文件。
  • l - 符號鏈接文件。
  • f - 普通文件。

-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節計。-depth:在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找。

-fstype:查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。

-mount:在查找文件時不跨越文件系統mount點。

-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。

-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。

另外,下面三個的區別:

-amin n 查找系統中最後N分鐘訪問的文件

-atime n 查找系統中最後n*24小時訪問的文件

-cmin n 查找系統中最後N分鐘被改變文件狀態的文件

-ctime n 查找系統中最後n*24小時被改變文件狀態的文件

-mmin n 查找系統中最後N分鐘被改變文件數據的文件

-mtime n 查找系統中最後n*24小時被改變文件數據的文件

find常用參數示例

-name參數常用參數示例 查找/user目錄下所有以.log結尾的文件

學習linux命令,看這篇2w多字的linux命令詳解

-exec 參數後面跟的是command,它的終止是以;為結束標誌的,所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜槓。

舉一個我在工作中經常用到的例子,我有個日誌目錄,我係統的所有日誌都會打到這個目錄,目錄的日誌文件命名很隨意,我沒辦法說根據名字刪除,於是我想到用日期的方式刪除,保存一個月的日誌即可。

<code>$find/home/midou/logs//-mtime+30-name"*.log.gz"-execrm-rf{}\\;
#{}這個是語法不能丟了,還有結尾的;也不能丟了。
/<code>

其實我把這個命令放在我的一個系統crontab文件裡面,每天執行一次,這樣我的日誌目錄就不用了手動清理。corntab使用詳解在後面的命令中會講到。

 -exec 後面可以接任何命令,你可以靈活運用,再結合到前面的-name參數,可以玩出花來。

grep

grep介紹

grep實用程序搜索任何給定的輸入文件,選擇與一個或多個模式匹配的行。 默認情況下,如果模式中的正則表達式(RE)匹配輸入行而沒有尾隨換行符,則該模式會匹配輸入行。 空表達式匹配每行。 與至少一種模式匹配的每條輸入線均寫入標準輸出

 這是個我每天都會用到的命令,我是做基礎服務的,用我服務的人不免會遇到問題,這時候我就去要去看日誌了,日誌都是G級別的,當然不能用vim打開去搜索,會把系統掛掉,vim是全部文檔加載到內存。這時候就需要使用grep命令去根據一些關鍵信息匹配查找了。(當然有些同學可能會說,既然經常查日誌的話,就不能把日誌接入到ElasticSearch這種可搜索的組建中,很好,用技術去解決實際問題。我們也是這樣做的,但總免不了還是會去服務器上查一下日誌,學會這個命令沒錯的)

grep命令參數

-a --text 不要忽略二進制的數據。

-A --after-context= #除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。

-b --byte-offset #在顯示符合樣式的那一行之前,標示出該行第一個字符的編號。

-B --before-context= #除了顯示符合樣式的那一行之外,並顯示該行之前的內容。

-c --count #計算符合樣式的列數。

-C --context=或- #除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。

-d --directories= #當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。

-e --regexp= #指定字符串做為查找文件內容的樣式。

-E --extended-regexp #將樣式為延伸的普通表示法來使用。

-f --file= #指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式為每行一個規則樣式。

-F --fixed-regexp #將樣式視為固定字符串的列表。

-G --basic-regexp #將樣式視為普通的表示法來使用。

-h --no-filename #在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。

-H --with-filename #在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。

-i --ignore-case #忽略字符大小寫的差別。

-l --file-with-matches #列出文件內容符合指定的樣式的文件名稱。

-L --files-without-match #列出文件內容不符合指定的樣式的文件名稱。

-n --line-number #在顯示符合樣式的那一行之前,標示出該行的列數編號。

-q --quiet或--silent #不顯示任何信息。

-r --recursive #此參數的效果和指定“-d recurse”參數相同。

-s --no-messages #不顯示錯誤信息。

-v --revert-match #顯示不包含匹配文本的所有行。

-V --version #顯示版本信息。

-w --word-regexp #只顯示全字符合的列。

-x --line-regexp #只顯示全列符合的列。

-y 此參數的效果和指定“-i”參數相同。

 掌握grep的常用參數,會讓你查找日誌或者內容非常輕鬆。特別是當你數據量很大的時候,沒辦法使用vi或者vim打開的情況下。

cut

cut介紹

 這個命令對我來說很有故事,當時我在學完C語言,簡單瞭解了些linux上的基本命令,有次實習面試,面試官問我linux系統用過麼,我斬釘截鐵的說用過,面試官簡單的用vim寫了一行hello world。對我說,你怎樣通過linux命令吧這個文本里面的hello world搞成十行,並且取出每一列的第七個字符。

當時的我真的是心裡一群草泥馬跑過,這可難道我了,我沉思了片刻,說只要十行麼?多點行麼?。當然不行,只要十行,取每行的第七個字符續沉思了片刻,拿起面試官的電腦就是一頓操作,於是有了我記憶深刻的下面這一行命令。

 面試官一看,微微點了下頭(肯定在心裡默唸,小夥子,不錯啊)。所以這個命令我印象蠻深刻的。當然還要其他方式實現面試官的要求,比如cut第七個地府,寫個循環重定向到管道,再到原文件。

cut實用程序從每個文件中剪切出每行的選定部分(由列表指定),並將它們寫入標準輸出。 如果未指定文件參數,或者文件參數為單破折號(-),則從標準輸入中讀取內容。 列表指定的項目可以是列位置,也可以是由特殊字符分隔的字段。 列編號從1開始。

cut命令參數

-b:僅顯示行中指定直接範圍的內容;

-c:僅顯示行中指定範圍的字符;

-d:指定字段的分隔符,默認的字段分隔符為“TAB”;

-f:顯示指定字段的內容;

-n:與“-b”選項連用,不分割多字節字符;

--complement:補足被選擇的字節、字符或字段;

--out-delimiter=:指定輸出內容是的字段分割符;

diff

diff介紹

比較兩個文件的不同

diff命令參數

-b或--ignore-space-change 不檢查空格字符的不同。

-B或--ignore-blank-lines 不檢查空白行。

-c 顯示全部內文,並標出不同之處。

-C或--context 與執行"-c-"指令相同。

-d或--minimal 使用不同的演算法,以較小的單位來做比較。

-D或ifdef 此參數的輸出格式可用於前置處理器巨集。

-e或--ed 此參數的輸出格式可用於ed的script文件。

-f或-forward-ed 輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處。

-H或--speed-large-files 比較大文件時,可加快速度。

-l或--ignore-matching-lines 若兩個文件在某幾行有所不同,而這幾行同時都包含了選項中指定的字符或字符串,則不顯示這兩個文件的差異。

-i或--ignore-case 不檢查大小寫的不同。

-l或--paginate 將結果交由pr程序來分頁。

-n或--rcs 將比較結果以RCS的格式來顯示。

-N或--new-file 在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:Only in目錄:文件A若使用-N參數,則diff會將文件A與一個空白的文件比較。

-p 若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱。

-P或--unidirectional-new-file 與-N類似,但只有當第二個目錄包含了一個第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較。

-q或--brief 僅顯示有無差異,不顯示詳細的信息。

-r或--recursive 比較子目錄中的文件。

-s或--report-identical-files 若沒有發現任何差異,仍然顯示信息。

-S或--starting-file 在比較目錄時,從指定的文件開始比較。

-t或--expand-tabs 在輸出時,將tab字符展開。

-T或--initial-tab 在每行前面加上tab字符以便對齊。

-u,-U或--unified= 以合併的方式來顯示文件內容的不同。

-v或--version 顯示版本信息。

-w或--ignore-all-space 忽略全部的空格字符。

-W或--width 在使用-y參數時,指定欄寬。

-x或--exclude 不比較選項中所指定的文件或目錄。

-X或--exclude-from 您可以將文件或目錄類型存成文本文件,然後在=中指定此文本文件。

-y或--side-by-side 以並列的方式顯示文件的異同之處。

tar&gzip

tar介紹

用來壓縮和解壓文件。tar本身不具有壓縮功能。他是調用壓縮功能實現的

tar命令參數

-A 新增壓縮文件到已存在的壓縮

-B 設置區塊大小

-c 建立新的壓縮文件

-d 記錄文件的差別

-r 添加文件到已經壓縮的文件

-u 添加改變了和現有的文件到已經存在的壓縮文件

-x 從壓縮的文件中提取文件

-t 顯示壓縮文件的內容

-z 支持gzip解壓文件

-j 支持bzip2解壓文件

-Z 支持compress解壓文件

-v 顯示操作過程

-l 文件系統邊界設置

-k 保留原有文件不覆蓋

-m 保留文件不被覆蓋

-W 確認壓縮文件的正確性

-b 設置區塊數目

-C 切換到指定目錄

-f 指定壓縮文件

du

du介紹

du實用程序顯示每個文件自變量以及以每個目錄自變量為根的文件層次結構中每個目錄的文件系統塊使用情況。如果未指定文件,則顯示以當前目錄為根的層次結構的塊使用情況。

du命令參數

-a或-all 顯示目錄中個別文件的大小。

-b或-bytes 顯示目錄或文件大小時,以byte為單位。

-c或--total 除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。

-k或--kilobytes 以KB(1024bytes)為單位輸出。

-m或--megabytes 以MB為單位輸出。

-s或--summarize 僅顯示總計,只列出最後加總的值。

-h或--human-readable 以K,M,G為單位,提高信息的可讀性。

-x或--one-file-xystem 以一開始處理時的文件系統為準,若遇上其它不同的文件系統目錄則略過。

-L或--dereference 顯示選項中所指定符號鏈接的源文件大小。

-S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。

-X或--exclude-from= 在指定目錄或文件。

--exclude= 略過指定的目錄或文件。

-D或--dereference-args 顯示指定符號鏈接的源文件大小。

-H或--si 與-h參數相同,但是K,M,G是以1000為換算單位。

-l或--count-links 重複計算硬件鏈接的文件。

df

df介紹

df實用程序顯示有關指定文件系統或其中一部分文件的文件系統上的可用磁盤空間量的統計信息。 值以每塊計數512字節的形式顯示。 如果未指定文件或文件系統操作數,則將顯示所有已掛載文件系統的統計信息(受下面的-t選項約束)。

df命令參數

-a 全部文件系統列表

-h 方便閱讀方式顯示

-H 等於“-h”,但是計算式,1K=1000,而不是1K=1024

-i 顯示inode信息

-k 區塊為1024字節

-l 只顯示本地文件系統

-m 區塊為1048576字節

--no-sync 忽略 sync 命令

-P 輸出格式為POSIX

--sync 在取得磁盤信息前,先執行sync命令

-T 文件系統類型

--block-size= 指定區塊大小

-t 只顯示選定文件系統的磁盤信息

-x 不顯示選定文件系統的磁盤信息

lsof

lsof介紹

lsof(list open files)是一個列出當前系統打開文件的工具。(在linux環境下,任何事物都以文件的形式存在)

lsof可以打開的文件包括:

1.普通文件

2.目錄

3.網絡文件系統的文件

4.字符或設備文件

5.(函數)共享庫

6.管道,命名管道

7.符號鏈接

8.網絡文件(例如:NFS file、網絡socket,unix域名socket)

9.還有其它類型的文件,等等

這個命令在我日常工作中使用場景很多,使用範圍很廣。

lsof命令參數

-a 列出打開文件存在的進程

-c 列出指定進程所打開的文件

-g 列出GID號進程詳情

-d 列出佔用該文件號的進程

+d 列出目錄下被打開的文件

+D 遞歸列出目錄下被打開的文件

-n 列出使用NFS的文件

-i 列出符合條件的進程。(4、6、協議、:端口、 @ip )

-p 列出指定進程號所打開的文件

-u 列出UID號進程詳情

lsof輸出各列信息的意義如下:

COMMAND:進程的名稱

PID:進程標識符

PPID:父進程標識符(需要指定-R參數)

USER:進程所有者

PGID:進程所屬組

FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等

ping

ping介紹

將ICMP ECHO_REQUEST數據包發送到網絡主機

ping命令參數

-d 使用Socket的SO_DEBUG功能。

-f 極限檢測。大量且快速地送網絡封包給一臺機器,看它的回應。

-n 只輸出數值。

-q 不顯示任何傳送封包的信息,只顯示最後的結果。

-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網絡接口是否有問題。

-R 記錄路由過程。

-v 詳細顯示指令的執行過程。

-c 數目:在發送指定數目的包後停止。

-i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。

-I 網絡界面:使用指定的網絡界面送出數據包。

-l 前置載入:設置在送出要求信息之前,先行發出的數據包。

-p 範本樣式:設置填滿數據包的範本樣式。

-s 字節數:指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。

-t 存活數值:設置存活數值TTL的大小。

ping,在日常工作中都是簡單的用來測試本機與其他機器之間的網絡通信,當然如果瞭解這些參數的話,會有更多的用法。

ping命令參數

<code>#檢測網絡情況
$pinghost
#ping網關
$ping-bhost
#ping指定次數
$ping-c10host
#ping指定時間間隔和次數限制
$ping-c10-i0.5host
#通過域名ping公網上的站點
/<code>

netstat

netstat介紹

netstat命令以符號形式顯示各種與網絡相關的數據結構的內容。有多種輸出格式,具體取決於顯示信息的選項。該命令的第一種形式顯示每個協議的活動套接字列表。第二種形式根據選擇的選項顯示其他網絡數據結構之一的內容。使用第三種形式,並指定等待間隔,netstat將在配置的網絡接口上連續顯示有關數據包流量的信息。第四種形式顯示指定協議或地址族的統計信息。如果指定了等待間隔,將顯示最近間隔秒的協議信息。第五種形式顯示指定協議或地址族的每個接口的統計信息。第六種形式顯示mbuf(9)統計信息。第七種形式顯示指定地址系列的路由表。第八種形式顯示路由統計信息。

netstat命令參數

-a或–all 顯示所有連線中的Socket。

-A或– 列出該網絡類型連線中的相關地址。

-c或–continuous 持續列出網絡狀態。

-C或–cache 顯示路由器配置的快取信息。

-e或–extend 顯示網絡其他相關信息。

-F或–fib 顯示FIB。

-g或–groups 顯示多重廣播功能群組組員名單。

-h或–help 在線幫助。

-i或–interfaces 顯示網絡界面信息表單。

-l或–listening 顯示監控中的服務器的Socket。

-M或–masquerade 顯示偽裝的網絡連線。

-n或–numeric 直接使用IP地址,而不通過域名服務器。

-N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號連接名稱。

-o或–timers 顯示計時器。

-p或–programs 顯示正在使用Socket的程序識別碼和程序名稱。

-r或–route 顯示Routing Table。

-s或–statistice 顯示網絡工作信息統計表。

-t或–tcp 顯示TCP傳輸協議的連線狀況。

-u或–udp 顯示UDP傳輸協議的連線狀況。

-v或–verbose 顯示指令執行過程。

-V或–version 顯示版本信息。

-w或–raw 顯示RAW傳輸協議的連線狀況。

-x或–unix 此參數的效果和指定”-A unix”參數相同。

–ip或–inet 此參數的效果和指定”-A inet”參數相同。

ifconfig

ifconfig介紹

Ifconfig用於配置內核駐留的網絡接口。 它在引導時用於根據需要設置接口。 之後,通常僅在調試或需要系統調整時才需要它。

ifconfig命令參數

up 啟動指定網絡設備/網卡。

down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。

arp 設置指定網卡是否支持ARP協議。

-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包

-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包

-a 顯示全部接口信息

-s 顯示摘要信息(類似於 netstat -i)

add 給指定網卡配置IPv6地址

del 刪除指定網卡的IPv6地址

配置網卡最大的傳輸單元

mtu 設置網卡的最大傳輸單元 (bytes)

netmask 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那麼請記住,網絡中每一個系統必須有相同子網掩碼。

tunel 建立隧道

dstaddr 設定一個遠端地址,建立點對點通信

-broadcast 為指定網卡設置廣播協議

-pointtopoint 為網卡設置點對點通訊協議

multicast 為網卡設置組播標誌

address 為網卡設置IPv4地址

txqueuelen 為網卡設置傳輸列隊的長度

解釋
  • eth0 表示第一塊網卡, 其中 HWaddr 表示網卡的物理地址
  • inet addr 用來表示網卡的IP地址
  • lo 是表示主機的回壞地址,這個一般是用來測試一個網絡程序,但又不想讓局域網或外網的用戶能夠查看,只能在此臺主機上運行和查看所用的網絡接口。

第一行:連接類型:Ethernet(以太網)HWaddr(硬件mac地址)

第二行:網卡的IP地址、子網、掩碼

第三行:UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500字節

第四、五行:接收、發送數據包情況統計

第七行:接收、發送數據字節數統計信息。

hostname

hostname介紹

主機名用於顯示系統的DNS名稱,並顯示或設置其主機名或NIS域名。

hostname命令參數

<code>-v:詳細信息模式;
-a:顯示主機別名;
-d:顯示DNS域名;
-f:顯示FQDN名稱;
-i:顯示主機的ip地址;
-s:顯示短主機名稱,在第一個點處截斷;
-y:顯示NIS域名。
/<code>

traceroute

traceroute介紹

traceroute跟蹤從IP網絡獲取到給定主機的路由信息包。 它利用IP協議的生存時間(TTL)字段並嘗試從每個網關到主機的路徑引發ICMP TIME_EXCEEDED響應。

traceroute命令參數

-d 使用Socket層級的排錯功能。

-f 設置第一個檢測數據包的存活數值TTL的大小。

-F 設置勿離斷位。

-g 設置來源路由網關,最多可設置8個。

-i 使用指定的網絡界面送出數據包。

-I 使用ICMP回應取代UDP資料信息。

-m 設置檢測數據包的最大存活數值TTL的大小。

-n 直接使用IP地址而非主機名稱。

-p 設置UDP傳輸協議的通信端口。

-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。

-s 設置本地主機送出數據包的IP地址。

-t 設置檢測數據包的TOS數值。

-v 詳細顯示指令的執行過程。

-w 設置等待遠端主機回報的時間。

-x 開啟或關閉數據包的正確性檢驗。

解釋

記錄按序列號從1開始,每行紀錄就是一跳 ,每跳錶示一個網關,我們看到每行有三個時間,單位是 ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包後,網關響應後返回的時間;如果您用 traceroute -q 10 www.baidu.com,表示向每個網關發送10個數據包。

有時我們traceroute 一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。

route

route介紹

Route操縱內核的IP路由表。 它的主要用途是在使用ifconfig(8)程序對其進行配置後,通過接口設置到特定主機或網絡的靜態路由。


route命令參數

-c 顯示更多信息

-n 不解析名字

-v 顯示詳細的處理信息

-F 顯示發送信息

-C 顯示路由緩存

-f 清除所有網關入口的路由表。

-p 與 add 命令一起使用時使路由具有永久性。

add:添加一條新路由。

del:刪除一條路由。

-net:目標地址是一個網絡。

-host:目標地址是一個主機。

wget

wget介紹

GNU Wget是一個免費實用程序,用於從Web非交互式下載文件。 它支持HTTP,HTTPS和FTP協議,以及通過HTTP代理進行檢索。

wget命令參數

<code>啟動:
-V,--version顯示Wget的版本信息並退出。
-h,--help打印此幫助。
-b,--background啟動後轉入後臺。
-e,--execute=COMMAND運行一個“.wgetrc”風格的命令。

日誌和輸入文件:
-o,--output-file=FILE將日誌信息寫入FILE。
-a,--append-output=FILE將信息添加至FILE。
-d,--debug打印大量調試信息。
-q,--quiet安靜模式(無信息輸出)。
-v,--verbose詳盡的輸出(此為默認值)。
-nv,--no-verbose關閉詳盡輸出,但不進入安靜模式。
-i,--input-file=FILE下載本地或外部FILE中的URLs。
-F,--force-html把輸入文件當成HTML文件。
-B,--base=URL解析與URL相關的
HTML輸入文件(由-i-F選項指定)。

--config=FILESpecifyconfigfiletouse.

下載:
-t,--tries=NUMBER設置重試次數為NUMBER(0代表無限制)。
--retry-connrefused即使拒絕連接也是重試。
-O,--output-document=FILE將文檔寫入FILE。
-nc,--no-clobberskipdownloadsthatwoulddownloadto
existingfiles(overwritingthem).
-c,--continue斷點續傳下載文件。
--progress=TYPE選擇進度條類型。
-N,--timestamping只獲取比本地文件新的文件。
--no-use-server-timestamps不用服務器上的時間戳來設置本地文件。
-S,--server-response打印服務器響應。
--spider不下載任何文件。
-T,--timeout=SECONDS將所有超時設為SECONDS秒。
--dns-timeout=SECS設置DNS查尋超時為SECS秒。
--connect-timeout=SECS設置連接超時為SECS秒。
--read-timeout=SECS設置讀取超時為SECS秒。
-w,--wait=SECONDS等待間隔為SECONDS秒。
--waitretry=SECONDS在獲取文件的重試期間等待1..SECONDS秒。
--random-wait獲取多個文件時,每次隨機等待間隔
0.5*WAIT...1.5*WAIT秒。
--no-proxy禁止使用代理。
-Q,--quota=NUMBER設置獲取配額為NUMBER字節。
--bind-address=ADDRESS綁定至本地主機上的ADDRESS(主機名或是IP)。
--limit-rate=RATE限制下載速率為RATE。
--no-dns-cache關閉DNS查尋緩存。
--restrict-file-names=OS限定文件名中的字符為OS允許的字符。

--ignore-case匹配文件/目錄時忽略大小寫。
-4,--inet4-only僅連接至IPv4地址。
-6,--inet6-only僅連接至IPv6地址。
--prefer-family=FAMILY首先連接至指定協議的地址
FAMILY為IPv6,IPv4或是none。
--user=USER將ftp和http的用戶名均設置為USER。
--password=PASS將ftp和http的密碼均設置為PASS。
--ask-password提示輸入密碼。
--no-iri關閉IRI支持。
--local-encoding=ENCIRI(國際化資源標識符)使用ENC作為本地編碼。
--remote-encoding=ENC使用ENC作為默認遠程編碼。
--unlinkremovefilebeforeclobber.

目錄:
-nd,--no-directories不創建目錄。
-x,--force-directories強制創建目錄。
-nH,--no-host-directories不要創建主目錄。
--protocol-directories在目錄中使用協議名稱。
-P,--directory-prefix=PREFIX以PREFIX/...保存文件
--cut-dirs=NUMBER忽略遠程目錄中NUMBER個目錄層。

HTTP選項:
--http-user=USER設置http用戶名為USER。
--http-password=PASS設置http密碼為PASS。
--no-cache不在服務器上緩存數據。
--default-page=NAME改變默認頁
(默認頁通常是“index.html”)。
-E,--adjust-extension以合適的擴展名保存HTML/CSS文檔。
--ignore-length忽略頭部的‘Content-Length’區域。

--header=STRING在頭部插入STRING。
--max-redirect每頁所允許的最大重定向。
--proxy-user=USER使用USER作為代理用戶名。
--proxy-password=PASS使用PASS作為代理密碼。
--referer=URL在HTTP請求頭包含‘Referer:URL’。
--save-headers將HTTP頭保存至文件。
-U,--user-agent=AGENT標識為AGENT而不是Wget/VERSION。
--no-http-keep-alive禁用HTTPkeep-alive(永久連接)。
--no-cookies不使用cookies。
--load-cookies=FILE會話開始前從FILE中載入cookies。
--save-cookies=FILE會話結束後保存cookies至FILE。
--keep-session-cookies載入並保存會話(非永久)cookies。
--post-data=STRING使用POST方式;把STRING作為數據發送。
--post-file=FILE使用POST方式;發送FILE內容。
--content-disposition當選中本地文件名時
允許Content-Disposition頭部(尚在實驗)。
--auth-no-challenge發送不含服務器詢問的首次等待
的基本HTTP驗證信息。

HTTPS(SSL/TLS)選項:
--secure-protocol=PR選擇安全協議,可以是auto、SSLv2、
SSLv3或是TLSv1中的一個。
--no-check-certificate不要驗證服務器的證書。
--certificate=FILE客戶端證書文件。
--certificate-type=TYPE客戶端證書類型,PEM或DER。
--private-key=FILE私鑰文件。
--private-key-type=TYPE私鑰文件類型,PEM或DER。
--ca-certificate=FILE帶有一組CA認證的文件。

--ca-directory=DIR保存CA認證的哈希列表的目錄。
--random-file=FILE帶有生成SSLPRNG的隨機數據的文件。
--egd-file=FILE用於命名帶有隨機數據的EGD套接字的文件。

FTP選項:
--ftp-user=USER設置ftp用戶名為USER。
--ftp-password=PASS設置ftp密碼為PASS。
--no-remove-listing不要刪除‘.listing’文件。
--no-glob不在FTP文件名中使用通配符展開。
--no-passive-ftp禁用“passive”傳輸模式。
--retr-symlinks遞歸目錄時,獲取鏈接的文件(而非目錄)。

遞歸下載:
-r,--recursive指定遞歸下載。
-l,--level=NUMBER最大遞歸深度(inf或0代表無限制,即全部下載)。
--delete-after下載完成後刪除本地文件。
-k,--convert-links讓下載得到的HTML或CSS中的鏈接指向本地文件。
-K,--backup-converted在轉換文件X前先將它備份為X.orig。
-m,--mirror-N-r-linf--no-remove-listing的縮寫形式。
-p,--page-requisites下載所有用於顯示HTML頁面的圖片之類的元素。
--strict-comments用嚴格方式(SGML)處理HTML註釋。

遞歸接受/拒絕:
-A,--accept=LIST逗號分隔的可接受的擴展名列表。
-R,--reject=LIST逗號分隔的要拒絕的擴展名列表。

-D,--domains=LIST逗號分隔的可接受的域列表。
--exclude-domains=LIST逗號分隔的要拒絕的域列表。
--follow-ftp跟蹤HTML文檔中的FTP鏈接。
--follow-tags=LIST逗號分隔的跟蹤的HTML標識列表。
--ignore-tags=LIST逗號分隔的忽略的HTML標識列表。
-H,--span-hosts遞歸時轉向外部主機。
-L,--relative只跟蹤有關係的鏈接。
-I,--include-directories=LIST允許目錄的列表。
--trust-server-namesusethenamespecifiedbytheredirection
urllastcomponent.
-X,--exclude-directories=LIST排除目錄的列表。
-np,--no-parent不追溯至父目錄。
/<code>

參數有點多,沒關係,常用的掌握,其他的用的時候再查

vmstat

vmstat介紹

vmstat報告有關進程,內存,頁面調度,塊IO,陷阱,磁盤和cpu活動的信息。

vmstat命令參數

-a:顯示活躍和非活躍內存

-f:顯示從系統啟動至今的fork數量 。

-m:顯示slabinfo

-n:只在開始時顯示一次各字段名稱。

-s:顯示內存相關統計信息及多種系統活動數量。

delay:刷新時間間隔。如果不指定,只顯示一條結果。

count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數為無窮。

-d:顯示磁盤相關統計信息。

-p:顯示指定磁盤分區統計信息

-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位為K(1024 bytes)

解釋

Procs(進程):

r: 運行隊列中進程數量

b: 等待IO的進程數量

Memory(內存):

swpd: 使用虛擬內存大小

free: 可用內存大小

buff: 用作緩衝的內存大小

cache: 用作緩存的內存大小

Swap:

si: 每秒從交換區寫到內存的大小

so: 每秒寫入交換區的內存大小

IO:(現在的Linux版本塊的大小為1024bytes)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

系統:

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

CPU(以百分比表示):

us: 用戶進程執行時間(user time)

sy: 系統進程執行時間(system time)

id: 空閒時間(包括IO等待時間),中央處理器的空閒時間 。以百分比表示。

wa: 等待IO時間

free

free介紹

free顯示系統中可用和可用的物理內存和交換內存的總量,以及內核使用的緩衝區和高速緩存。

free命令參數

-b 以Byte為單位顯示內存使用情況。

-k 以KB為單位顯示內存使用情況。

-m 以MB為單位顯示內存使用情況。

-g 以GB為單位顯示內存使用情況。

-o 不顯示緩衝區調節列。

-s 持續觀察內存使用狀況。

-t 顯示內存總和列。

解釋

total:總計物理內存的大小。

used:已使用多大。

free:可用有多少。

Shared:多個進程共享的內存總額。

Buffers/cached:磁盤緩存的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

top

top介紹

​ top程序提供正在運行的系統的動態實時視圖。 它可以顯示系統摘要信息以及Linux內核當前正在管理的進程或線程的列表。 所顯示的系統摘要信息的類型以及為進程顯示的信息的類型,順序和大小都是用戶可配置的,並且可以使配置在重新啟動後保持不變。
​ 該程序為流程操作提供了一個有限的交互式界面,併為個人配置提供了更為廣泛的界面-涵蓋了其操作的各個方面。 儘管在本文檔中始終引用top,但是您可以隨意為程序命名。 然後,該新名稱(可能是別名)將反映在頂部的顯示屏上,並在讀寫配置文件時使用。

top命令參數

-b 批處理

-c 顯示完整的治命令

-I 忽略失效過程

-s 保密模式

-S 累積模式

-i 設置間隔時間

-u 指定用戶名

-p 指定進程

-n 循環顯示的次數

解釋

第一行,任務隊列信息,同 uptime 命令的執行結果,具體參數說明情況如下:

00:56:07 — 當前系統時間

up 149 days, 14:40 — 系統已經運行了149天14小時40分鐘(在這期間系統沒有重啟過的)

1users — 當前有1個用戶登錄系統

load average: 0.00, 0.02, 0.05 — load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。

load average數據是每隔5秒鐘檢查一次活躍的進程數,然後按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。

第二行,Tasks — 任務(進程)

系統現在共有254個進程,其中處於運行中的有1個,253個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。

第三行,cpu狀態信息

%Cpu(s): 1.4 us, 0.3 sy, 0.0 ni, 98.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

1.4 us — 用戶空間佔用CPU的百分比。

0.3 sy — 內核空間佔用CPU的百分比。

0.0 ni — 改變過優先級的進程佔用CPU的百分比

98.3 id — 空閒CPU百分比

0.1 wa — IO等待佔用CPU的百分比

0.0 hi — 硬中斷(Hardware IRQ)佔用CPU的百分比

0.0 si — 軟中斷(Software Interrupts)佔用CPU的百分比

第四行,內存狀態

65808884 total 物理內存總量

23749772 free 使用中的內存總量

4586160 used 空閒內存總量

37472952 buff/cache 緩存的內存量

第五行,swap交換分區信息

0 total 交換區總量

0 use 使用的交換區總量

0 free 空閒交換區總量

60909608 avail Mem 可用交換區總量

第七行以下:各進程(任務)的狀態監控

PID — 進程id

USER — 進程所有者

PR — 進程優先級

NI — nice值。負值表示高優先級,正值表示低優先級

VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES

RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA

SHR — 共享內存大小,單位kb

S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程

%CPU — 上次更新到現在的CPU時間佔用百分比

%MEM — 進程使用的物理內存百分比

TIME+ — 進程使用的CPU時間總計,單位1/100秒

COMMAND — 進程名稱(命令名/命令行)

sar

sar介紹

sar(System Activity Reporter系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、 系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。

sar命令參數

-A:所有報告的總和

-u:輸出CPU使用情況的統計信息

-v:輸出inode、文件和其他內核表的統計信息

-d:輸出每一個塊設備的活動信息

-r:輸出內存和交換空間的統計信息

-b:顯示I/O和傳送速率的統計信息

-a:文件讀寫情況

-c:輸出進程統計信息,每秒創建的進程數

-R:輸出內存頁面的統計信息

-y:終端設備活動情況

-w:輸出系統交換活動信息

最後,小編想說:我是一名python開發工程師,整理了一套最新的python系統學習教程,想要這些資料的可以關注私信小編“01”即可,希望能對你有所幫助。


分享到:


相關文章: