一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

學(xué)習(xí)linux命令,看這篇2w多字的linux命令詳解

 昵稱9628936 2020-02-13

序言

?本篇文章主要講解了一些linux常用命令,主要講解模式是,命令介紹、命令參數(shù)格式、命令參數(shù)、命令常用參數(shù)示例。由于linux命令較多,我還特意選了一些日常使用較為頻繁的命令進(jìn)行講解,但還是免不了文章很長,建議大家收藏起來,用到的時候不會了再來閱讀。當(dāng)然學(xué)習(xí)linux命令最好的方法是學(xué)會使用linux自帶的man手冊,所有l(wèi)inux命令規(guī)范和使用細(xì)則都會在該手冊中講解的很清楚,我在書寫的過程中也是參考該手冊和日常使用情況。

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

Linux初級指令

ls ——List

ls 介紹

?這是我學(xué)Linux的第一個命令,相信也是很多人學(xué)習(xí)Linux的第一個命令。ls全稱list.

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

?官方的說的很清楚,默認(rèn)列出當(dāng)前目錄,所以可以列出其他目錄或者路徑下的文件信息或者目錄信息。

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

學(xué)習(xí)linux命令,看這篇2w多字的linux命令詳解

ls命令參數(shù)

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

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

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

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

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

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

-s 顯示每個文件實際使用的文件系統(tǒng)塊的數(shù)量,以512字節(jié)為單位,其中部分單元四舍五入為下一個整數(shù)值

-t 在按照字典順序?qū)Σ僮鲾?shù)排序之前,先按修改的時間排序(最近修改的是first)

-u 使用最后一次訪問的時間,而不是最后一次修改文件進(jìn)行排序

pwd介紹

?打印當(dāng)前工作目錄的完整路徑名。

touch (change file timestamps)

touch介紹

?將每個文件的訪問和修改時間更新為當(dāng)前時間。除非提供-c或-h,否則將不存在的FILE參數(shù)創(chuàng)建為空。

touch命令參數(shù)

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

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

-d 使用指定的日期時間,而非現(xiàn)在的時間。

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

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

-r 把指定文檔或目錄的日期時間,統(tǒng)統(tǒng)設(shè)成和參考文檔或目錄的日期時間相同。

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

將FILE或標(biāo)準(zhǔn)輸入連接到標(biāo)準(zhǔn)輸出。

cat命令參數(shù)

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

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

-e 等價于 -vE

-E, --show-ends 在每行結(jié)束處顯示

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

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

-t 與 -vT 等價

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

-u (被忽略)

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

$ tac test-e            等價于 -vE-b, --number-nonblank  對非空輸出行編號-A, --show-all      等價于 -vET

mkdir —— Make Directory

mkdir介紹

如果目錄不存在,則創(chuàng)建目錄。

mkdir命令參數(shù)

-m, --mode=模式,設(shè)定權(quán)限<模式> (類似 chmod),而不是 rwxrwxrwx 減 umask

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

-v, --verbose 每次創(chuàng)建新目錄都顯示信息

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

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

cd介紹

?切換當(dāng)前目錄至指定目錄

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

rm&rmdir —— Remove Directory

rm介紹

rm實用程序嘗試刪除命令行上指定的非目錄類型文件。 如果文件的權(quán)限不允許寫入,并且標(biāo)準(zhǔn)輸入設(shè)備是終端,則會提示用戶(在標(biāo)準(zhǔn)錯誤輸出上)進(jìn)行確認(rèn)。

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

rm命令參數(shù)

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

-i, --interactive 進(jìn)行交互式刪除

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

-d, --dir 刪除空目錄

mv —— Move

mv介紹

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

mv命令參數(shù)

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

-f :force 強制的意思,如果目標(biāo)文件已經(jīng)存在,不會詢問而直接覆蓋;

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

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

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

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

cp —— Copy

cp介紹

cp實用程序?qū)ource_file的內(nèi)容復(fù)制到target_file。 在第二個大綱格式中,每個命名的source_file的內(nèi)容都復(fù)制到目標(biāo)target_directory。 文件本身的名稱不會更改。 如果cp檢測到嘗試將文件復(fù)制到自身的嘗試,則復(fù)制將失敗。

命令參數(shù)

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

--backup[=CONTROL 為每個已存在的目標(biāo)文件創(chuàng)建備份

-b 類似--backup 但不接受參數(shù)

--copy-contents 在遞歸處理是復(fù)制特殊文件內(nèi)容

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

-f, --force 如果目標(biāo)文件無法打開則將其移除并重試(當(dāng) -n 選項

存在時則不需再選此項)

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

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

-l, --link 鏈接文件而不復(fù)制

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

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

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

-p 等于--preserve=模式,所有權(quán),時間戳

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

可能保持附加屬性:環(huán)境、鏈接、xattr 等

-R, -r, --recursive 復(fù)制目錄及目錄內(nèi)的所有項目

echo

echo介紹

echo實用程序?qū)⑷魏沃付ǖ牟僮鲾?shù)寫入標(biāo)準(zhǔn)輸出,這些操作數(shù)由單個空格()字符分隔,后跟換行符(\ n')字符。

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

$PWD 是取當(dāng)前路徑,然后echo到標(biāo)準(zhǔn)輸出,一般echo $name 用來查看某個環(huán)境變量的值

head&tail

head介紹

此過濾器顯示每個指定文件或標(biāo)準(zhǔn)輸入(如果未指定文件)的前幾行或字節(jié)。

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

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

-f 循環(huán)讀取

-q 不顯示處理信息

-v 顯示詳細(xì)的處理信息

-c<數(shù)目> 顯示的字節(jié)數(shù)

-n<行數(shù)> 顯示行數(shù)

--pid=PID 與-f合用,表示在進(jìn)程ID,PID死掉之后結(jié)束.

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

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

tail和head命令經(jīng)常用來查看日志,像我現(xiàn)在基本每天都會用,我的日志文件沒辦法用vim或者cat這樣去看(因為我負(fù)責(zé)的業(yè)務(wù)日志量每天都是幾十個G),要么用tail,要么用more&less(下面會講)。

more&less

more介紹

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

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

more命令參數(shù)

+n 從笫n行開始顯示

-n 定義屏幕大小為n行

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

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

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

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

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

-s 把連續(xù)的多個空行顯示為一行

-u 把文件內(nèi)容中的下畫線去掉

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

wc

wc介紹

wc實用程序顯示每個輸入文件或標(biāo)準(zhǔn)輸入(如果未指定文件)中每個輸入文件中包含的行數(shù),字?jǐn)?shù)和字節(jié)數(shù)。 一行定義為由字符分隔的字符串。 最后一個字符之后的字符將不包括在行數(shù)中。

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

wc命令參數(shù)

-c 統(tǒng)計字節(jié)數(shù)。

-l 統(tǒng)計行數(shù)。

-m 統(tǒng)計字符數(shù)。這個標(biāo)志不能與 -c 標(biāo)志一起使用。

-w 統(tǒng)計字?jǐn)?shù)。一個字被定義為由空白、跳格或換行字符分隔的字符串。

-L 打印最長行的長度。

date & cal

date介紹

當(dāng)不帶參數(shù)調(diào)用時,date實用程序?qū)@示當(dāng)前日期和時間。 否則,根據(jù)指定的選項,日期將設(shè)置日期和時間或以用戶定義的方式打印日期和時間。

date實用程序顯示從內(nèi)核時鐘讀取的日期和時間。 當(dāng)用于設(shè)置日期和時間時,內(nèi)核時鐘和硬件時鐘都將更新。

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

date命令參數(shù)

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

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

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

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

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

%P AM或PM。

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

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

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

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

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

%Z 市區(qū)。

%a 星期的縮寫。

%A 星期的完整名稱。

%b 月份英文名的縮寫。

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

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

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

%D 日期(含年月日)。

%j 該年中的第幾天。

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

%U 該年中的周數(shù)。

%w 該周的天數(shù),0代表周日,1代表周一,異詞類推。

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

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

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

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

%t 在顯示時,插入tab。

MM 月份(必要)

DD 日期(必要)

hh 小時(必要)

mm 分鐘(必要)

ss 秒(選擇性)

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

-s<字符串> 根據(jù)字符串來設(shè)置日期與時間。字符串前后必須加上雙引號。

-u 顯示GMT。

cal介紹

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

cal命令參數(shù)

-1 顯示一個月的月歷

-3 顯示系統(tǒng)前一個月,當(dāng)前月,下一個月的月歷

-s 顯示星期天為一個星期的第一天,默認(rèn)的格式

-m 顯示星期一為一個星期的第一天-j 顯示在當(dāng)年中的第幾天(一年日期按天算,從1月1號算起,默認(rèn)顯示當(dāng)前月在一年中的天數(shù))-y 顯示當(dāng)前年份的日歷

which

which介紹

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

whereis

whereis介紹

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

whereis參數(shù)格式

whereis [program ...]

whereis命令參數(shù)

-b 定位可執(zhí)行文件。

-m 定位幫助文件。

-s 定位源代碼文件。

-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。

-B 指定搜索可執(zhí)行文件的路徑。

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

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

nl

nl介紹

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

nl命令參數(shù)

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

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

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

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

-n ln :行號在螢?zāi)坏淖钭蠓斤@示;

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

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

-w :行號欄位的占用的位數(shù)。

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

ps

ps介紹

ps實用程序顯示標(biāo)題行,其后是包含有關(guān)具有控制終端的所有進(jìn)程的信息的行。

ps命令參數(shù)

a 顯示所有進(jìn)程

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

-A 顯示所有進(jìn)程

c 顯示進(jìn)程的真實名稱

-N 反向選擇

-e 等于“-A”

e 顯示環(huán)境變量

f 顯示程序間的關(guān)系

-H 顯示樹狀結(jié)構(gòu)

r 顯示當(dāng)前終端的進(jìn)程

T 顯示當(dāng)前終端的所有程序

u 指定用戶的所有進(jìn)程

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

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

-C<命令> 列出指定命令的狀況

--lines<行數(shù)> 每頁顯示的行數(shù)

--width<字符數(shù)> 每頁顯示的字符數(shù)

kill&killall

kill介紹

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

kill命令參數(shù)

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

-a 當(dāng)處理當(dāng)前進(jìn)程時,不限制命令名和進(jìn)程號的對應(yīng)關(guān)系

-p 指定kill 命令只打印相關(guān)進(jìn)程的進(jìn)程號,而不發(fā)送任何信號

-s 指定發(fā)送信號

-u 指定用戶

解釋

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

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

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


Linux進(jìn)階指令

find

find介紹

find實用程序?qū)α谐龅拿總€路徑遞歸地遍歷目錄樹,根據(jù)樹中的每個文件計算表達(dá)式(由下面列出的“初選”和“操作數(shù)”組成)。

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

find命令參數(shù)

-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。

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

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

-perm 按照文件權(quán)限來查找文件。

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

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

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

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

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

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

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

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

  • b - 塊設(shè)備文件。

  • d - 目錄。

  • c - 字符設(shè)備文件。

  • p - 管道文件。

  • l - 符號鏈接文件。

  • f - 普通文件。

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

-fstype:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募?etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。

-mount:在查找文件時不跨越文件系統(tǒng)mount點。

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

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

另外,下面三個的區(qū)別:

-amin n 查找系統(tǒng)中最后N分鐘訪問的文件

-atime n 查找系統(tǒng)中最后n*24小時訪問的文件

-cmin n 查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件

-ctime n 查找系統(tǒng)中最后n*24小時被改變文件狀態(tài)的文件

-mmin n 查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件

-mtime n 查找系統(tǒng)中最后n*24小時被改變文件數(shù)據(jù)的文件

find常用參數(shù)示例

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

學(xué)習(xí)linux命令,看這篇2w多字的linux命令詳解

-exec 參數(shù)后面跟的是command,它的終止是以;為結(jié)束標(biāo)志的,所以這句命令后面的分號是不可缺少的,考慮到各個系統(tǒng)中分號會有不同的意義,所以前面加反斜杠。

舉一個我在工作中經(jīng)常用到的例子,我有個日志目錄,我系統(tǒng)的所有日志都會打到這個目錄,目錄的日志文件命名很隨意,我沒辦法說根據(jù)名字刪除,于是我想到用日期的方式刪除,保存一個月的日志即可。

$find /home/midou/logs// -mtime +30 -name '*.log.gz' -exec rm -rf {} \;# {} 這個是語法不能丟了 ,還有結(jié)尾的 ; 也不能丟了。

其實我把這個命令放在我的一個系統(tǒng)crontab文件里面,每天執(zhí)行一次,這樣我的日志目錄就不用了手動清理。corntab使用詳解在后面的命令中會講到。

?-exec 后面可以接任何命令,你可以靈活運用,再結(jié)合到前面的-name參數(shù),可以玩出花來。

grep

grep介紹

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

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

grep命令參數(shù)

-a --text 不要忽略二進(jìn)制的數(shù)據(jù)。

-A<顯示行數(shù)> --after-context=<顯示行數(shù)> #除了顯示符合范本樣式的那一列之外,并顯示該行之后的內(nèi)容。

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

-B<顯示行數(shù)> --before-context=<顯示行數(shù)> #除了顯示符合樣式的那一行之外,并顯示該行之前的內(nèi)容。

-c --count #計算符合樣式的列數(shù)。

-C<顯示行數(shù)> --context=<顯示行數(shù)>或-<顯示行數(shù)> #除了顯示符合樣式的那一行之外,并顯示該行之前后的內(nèi)容。

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

-e<范本樣式> --regexp=<范本樣式> #指定字符串做為查找文件內(nèi)容的樣式。

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

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

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

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

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

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

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

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

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

-n --line-number #在顯示符合樣式的那一行之前,標(biāo)示出該行的列數(shù)編號。

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

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

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

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

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

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

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

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

?掌握grep的常用參數(shù),會讓你查找日志或者內(nèi)容非常輕松。特別是當(dāng)你數(shù)據(jù)量很大的時候,沒辦法使用vi或者vim打開的情況下。

cut

cut介紹

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

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

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

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

cut命令參數(shù)

-b:僅顯示行中指定直接范圍的內(nèi)容;

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

-d:指定字段的分隔符,默認(rèn)的字段分隔符為“TAB”;

-f:顯示指定字段的內(nèi)容;

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

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

--out-delimiter=<字段分隔符>:指定輸出內(nèi)容是的字段分割符;

diff

diff介紹

比較兩個文件的不同

diff命令參數(shù)

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

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

-c 顯示全部內(nèi)文,并標(biāo)出不同之處。

-C或--context 與執(zhí)行'-c-'指令相同。

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

-D或ifdef 此參數(shù)的輸出格式可用于前置處理器巨集。

-e或--ed 此參數(shù)的輸出格式可用于ed的script文件。

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

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

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

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

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

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

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

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

-P或--unidirectional-new-file 與-N類似,但只有當(dāng)?shù)诙€目錄包含了一個第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較。

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

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

-s或--report-identical-files 若沒有發(fā)現(xiàn)任何差異,仍然顯示信息。

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

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

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

-u,-U或--unified= 以合并的方式來顯示文件內(nèi)容的不同。

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

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

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

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

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

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

tar&gzip

tar介紹

用來壓縮和解壓文件。tar本身不具有壓縮功能。他是調(diào)用壓縮功能實現(xiàn)的

tar命令參數(shù)

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

-B 設(shè)置區(qū)塊大小

-c 建立新的壓縮文件

-d 記錄文件的差別

-r 添加文件到已經(jīng)壓縮的文件

-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件

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

-t 顯示壓縮文件的內(nèi)容

-z 支持gzip解壓文件

-j 支持bzip2解壓文件

-Z 支持compress解壓文件

-v 顯示操作過程

-l 文件系統(tǒng)邊界設(shè)置

-k 保留原有文件不覆蓋

-m 保留文件不被覆蓋

-W 確認(rèn)壓縮文件的正確性

-b 設(shè)置區(qū)塊數(shù)目

-C 切換到指定目錄

-f 指定壓縮文件

du

du介紹

du實用程序顯示每個文件自變量以及以每個目錄自變量為根的文件層次結(jié)構(gòu)中每個目錄的文件系統(tǒng)塊使用情況。如果未指定文件,則顯示以當(dāng)前目錄為根的層次結(jié)構(gòu)的塊使用情況。

du命令參數(shù)

-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 以一開始處理時的文件系統(tǒng)為準(zhǔn),若遇上其它不同的文件系統(tǒng)目錄則略過。

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

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

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

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

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

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

-l或--count-links 重復(fù)計算硬件鏈接的文件。

df

df介紹

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

df命令參數(shù)

-a 全部文件系統(tǒng)列表

-h 方便閱讀方式顯示

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

-i 顯示inode信息

-k 區(qū)塊為1024字節(jié)

-l 只顯示本地文件系統(tǒng)

-m 區(qū)塊為1048576字節(jié)

--no-sync 忽略 sync 命令

-P 輸出格式為POSIX

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

-T 文件系統(tǒng)類型

--block-size=<區(qū)塊大小> 指定區(qū)塊大小

-t<文件系統(tǒng)類型> 只顯示選定文件系統(tǒng)的磁盤信息

-x<文件系統(tǒng)類型> 不顯示選定文件系統(tǒng)的磁盤信息

lsof

lsof介紹

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

lsof可以打開的文件包括:

1.普通文件

2.目錄

3.網(wǎng)絡(luò)文件系統(tǒng)的文件

4.字符或設(shè)備文件

5.(函數(shù))共享庫

6.管道,命名管道

7.符號鏈接

8.網(wǎng)絡(luò)文件(例如:NFS file、網(wǎng)絡(luò)socket,unix域名socket)

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

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

lsof命令參數(shù)

-a 列出打開文件存在的進(jìn)程

-c<進(jìn)程名> 列出指定進(jìn)程所打開的文件

-g 列出GID號進(jìn)程詳情

-d<文件號> 列出占用該文件號的進(jìn)程

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

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

-n<目錄> 列出使用NFS的文件

-i<條件> 列出符合條件的進(jìn)程。(4、6、協(xié)議、:端口、 @ip )

-p<進(jìn)程號> 列出指定進(jìn)程號所打開的文件

-u 列出UID號進(jìn)程詳情

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

COMMAND:進(jìn)程的名稱

PID:進(jìn)程標(biāo)識符

PPID:父進(jìn)程標(biāo)識符(需要指定-R參數(shù))

USER:進(jìn)程所有者

PGID:進(jìn)程所屬組

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

ping

ping介紹

將ICMP ECHO_REQUEST數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)主機(jī)

ping命令參數(shù)

-d 使用Socket的SO_DEBUG功能。

-f 極限檢測。大量且快速地送網(wǎng)絡(luò)封包給一臺機(jī)器,看它的回應(yīng)。

-n 只輸出數(shù)值。

-q 不顯示任何傳送封包的信息,只顯示最后的結(jié)果。

-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。通常是查看本機(jī)的網(wǎng)絡(luò)接口是否有問題。

-R 記錄路由過程。

-v 詳細(xì)顯示指令的執(zhí)行過程。

-c 數(shù)目:在發(fā)送指定數(shù)目的包后停止。

-i 秒數(shù):設(shè)定間隔幾秒送一個網(wǎng)絡(luò)封包給一臺機(jī)器,預(yù)設(shè)值是一秒送一次。

-I 網(wǎng)絡(luò)界面:使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。

-l 前置載入:設(shè)置在送出要求信息之前,先行發(fā)出的數(shù)據(jù)包。

-p 范本樣式:設(shè)置填滿數(shù)據(jù)包的范本樣式。

-s 字節(jié)數(shù):指定發(fā)送的數(shù)據(jù)字節(jié)數(shù),預(yù)設(shè)值是56,加上8字節(jié)的ICMP頭,一共是64ICMP數(shù)據(jù)字節(jié)。

-t 存活數(shù)值:設(shè)置存活數(shù)值TTL的大小。

ping,在日常工作中都是簡單的用來測試本機(jī)與其他機(jī)器之間的網(wǎng)絡(luò)通信,當(dāng)然如果了解這些參數(shù)的話,會有更多的用法。

ping命令參數(shù)

#檢測網(wǎng)絡(luò)情況$ping host#ping網(wǎng)關(guān)$ping -b host#ping指定次數(shù)$ping -c 10 host#ping指定時間間隔和次數(shù)限制$ping -c 10 -i 0.5 host#通過域名ping公網(wǎng)上的站點

netstat

netstat介紹

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

netstat命令參數(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 顯示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或–statistice 顯示網(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ù)相同。

ifconfig

ifconfig介紹

Ifconfig用于配置內(nèi)核駐留的網(wǎng)絡(luò)接口。 它在引導(dǎo)時用于根據(jù)需要設(shè)置接口。 之后,通常僅在調(diào)試或需要系統(tǒng)調(diào)整時才需要它。

ifconfig命令參數(shù)

up 啟動指定網(wǎng)絡(luò)設(shè)備/網(wǎng)卡。

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

arp 設(shè)置指定網(wǎng)卡是否支持ARP協(xié)議。

-promisc 設(shè)置是否支持網(wǎng)卡的promiscuous模式,如果選擇此參數(shù),網(wǎng)卡將接收網(wǎng)絡(luò)中發(fā)給它所有的數(shù)據(jù)包

-allmulti 設(shè)置是否支持多播模式,如果選擇此參數(shù),網(wǎng)卡將接收網(wǎng)絡(luò)中所有的多播數(shù)據(jù)包

-a 顯示全部接口信息

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

add 給指定網(wǎng)卡配置IPv6地址

del 刪除指定網(wǎng)卡的IPv6地址

<硬件地址> 配置網(wǎng)卡最大的傳輸單元

mtu<字節(jié)數(shù)> 設(shè)置網(wǎng)卡的最大傳輸單元 (bytes)

netmask<子網(wǎng)掩碼> 設(shè)置網(wǎng)卡的子網(wǎng)掩碼。掩碼可以是有前綴0x的32位十六進(jìn)制數(shù),也可以是用點分開的4個十進(jìn)制數(shù)。如果不打算將網(wǎng)絡(luò)分成子網(wǎng),可以不管這一選項;如果要使用子網(wǎng),那么請記住,網(wǎng)絡(luò)中每一個系統(tǒng)必須有相同子網(wǎng)掩碼。

tunel 建立隧道

dstaddr 設(shè)定一個遠(yuǎn)端地址,建立點對點通信

-broadcast<地址> 為指定網(wǎng)卡設(shè)置廣播協(xié)議

-pointtopoint<地址> 為網(wǎng)卡設(shè)置點對點通訊協(xié)議

multicast 為網(wǎng)卡設(shè)置組播標(biāo)志

address 為網(wǎng)卡設(shè)置IPv4地址

txqueuelen<長度> 為網(wǎng)卡設(shè)置傳輸列隊的長度

解釋
  • eth0 表示第一塊網(wǎng)卡, 其中 HWaddr 表示網(wǎng)卡的物理地址

  • inet addr 用來表示網(wǎng)卡的IP地址

  • lo 是表示主機(jī)的回壞地址,這個一般是用來測試一個網(wǎng)絡(luò)程序,但又不想讓局域網(wǎng)或外網(wǎng)的用戶能夠查看,只能在此臺主機(jī)上運行和查看所用的網(wǎng)絡(luò)接口。

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

第二行:網(wǎng)卡的IP地址、子網(wǎng)、掩碼

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

第四、五行:接收、發(fā)送數(shù)據(jù)包情況統(tǒng)計

第七行:接收、發(fā)送數(shù)據(jù)字節(jié)數(shù)統(tǒng)計信息。

hostname

hostname介紹

主機(jī)名用于顯示系統(tǒng)的DNS名稱,并顯示或設(shè)置其主機(jī)名或NIS域名。

hostname命令參數(shù)

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

traceroute

traceroute介紹

traceroute跟蹤從IP網(wǎng)絡(luò)獲取到給定主機(jī)的路由信息包。 它利用IP協(xié)議的生存時間(TTL)字段并嘗試從每個網(wǎng)關(guān)到主機(jī)的路徑引發(fā)ICMP TIME_EXCEEDED響應(yīng)。

traceroute命令參數(shù)

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

-f 設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。

-F 設(shè)置勿離斷位。

-g 設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個。

-i 使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。

-I 使用ICMP回應(yīng)取代UDP資料信息。

-m 設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。

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

-p 設(shè)置UDP傳輸協(xié)議的通信端口。

-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。

-s 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。

-t 設(shè)置檢測數(shù)據(jù)包的TOS數(shù)值。

-v 詳細(xì)顯示指令的執(zhí)行過程。

-w 設(shè)置等待遠(yuǎn)端主機(jī)回報的時間。

-x 開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗。

解釋

記錄按序列號從1開始,每行紀(jì)錄就是一跳 ,每跳表示一個網(wǎng)關(guān),我們看到每行有三個時間,單位是 ms,其實就是-q的默認(rèn)參數(shù)。探測數(shù)據(jù)包向每個網(wǎng)關(guān)發(fā)送三個數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時間;如果您用 traceroute -q 10 www.baidu.com,表示向每個網(wǎng)關(guān)發(fā)送10個數(shù)據(jù)包。

有時我們traceroute 一臺主機(jī)時,會看到有一些行是以星號表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回數(shù)據(jù)。

route

route介紹

Route操縱內(nèi)核的IP路由表。 它的主要用途是在使用ifconfig(8)程序?qū)ζ溥M(jìn)行配置后,通過接口設(shè)置到特定主機(jī)或網(wǎng)絡(luò)的靜態(tài)路由。

route命令參數(shù)

-c 顯示更多信息

-n 不解析名字

-v 顯示詳細(xì)的處理信息

-F 顯示發(fā)送信息

-C 顯示路由緩存

-f 清除所有網(wǎng)關(guān)入口的路由表。

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

add:添加一條新路由。

del:刪除一條路由。

-net:目標(biāo)地址是一個網(wǎng)絡(luò)。

-host:目標(biāo)地址是一個主機(jī)。

wget

wget介紹

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

wget命令參數(shù)

啟動:  -V,  --version           顯示 Wget 的版本信息并退出。  -h,  --help              打印此幫助。  -b,  --background        啟動后轉(zhuǎn)入后臺。  -e,  --execute=COMMAND   運行一個“.wgetrc”風(fēng)格的命令。日志和輸入文件:  -o,  --output-file=FILE    將日志信息寫入 FILE。  -a,  --append-output=FILE  將信息添加至 FILE。  -d,  --debug               打印大量調(diào)試信息。  -q,  --quiet               安靜模式 (無信息輸出)。  -v,  --verbose             詳盡的輸出 (此為默認(rèn)值)。  -nv, --no-verbose          關(guān)閉詳盡輸出,但不進(jìn)入安靜模式。  -i,  --input-file=FILE     下載本地或外部 FILE 中的 URLs。  -F,  --force-html          把輸入文件當(dāng)成 HTML 文件。  -B,  --base=URL            解析與 URL 相關(guān)的                             HTML 輸入文件 (由 -i -F 選項指定)。       --config=FILE         Specify config file to use.下載:  -t,  --tries=NUMBER            設(shè)置重試次數(shù)為 NUMBER (0 代表無限制)。       --retry-connrefused       即使拒絕連接也是重試。  -O,  --output-document=FILE    將文檔寫入 FILE。  -nc, --no-clobber              skip downloads that would download to                                 existing files (overwriting them).  -c,  --continue                斷點續(xù)傳下載文件。       --progress=TYPE           選擇進(jìn)度條類型。  -N,  --timestamping            只獲取比本地文件新的文件。  --no-use-server-timestamps     不用服務(wù)器上的時間戳來設(shè)置本地文件。  -S,  --server-response         打印服務(wù)器響應(yīng)。       --spider                  不下載任何文件。  -T,  --timeout=SECONDS         將所有超時設(shè)為 SECONDS 秒。       --dns-timeout=SECS        設(shè)置 DNS 查尋超時為 SECS 秒。       --connect-timeout=SECS    設(shè)置連接超時為 SECS 秒。       --read-timeout=SECS       設(shè)置讀取超時為 SECS 秒。  -w,  --wait=SECONDS            等待間隔為 SECONDS 秒。       --waitretry=SECONDS       在獲取文件的重試期間等待 1..SECONDS 秒。       --random-wait             獲取多個文件時,每次隨機(jī)等待間隔                                 0.5*WAIT...1.5*WAIT 秒。       --no-proxy                禁止使用代理。  -Q,  --quota=NUMBER            設(shè)置獲取配額為 NUMBER 字節(jié)。       --bind-address=ADDRESS    綁定至本地主機(jī)上的 ADDRESS (主機(jī)名或是 IP)。       --limit-rate=RATE         限制下載速率為 RATE。       --no-dns-cache            關(guān)閉 DNS 查尋緩存。       --restrict-file-names=OS  限定文件名中的字符為 OS 允許的字符。       --ignore-case             匹配文件/目錄時忽略大小寫。  -4,  --inet4-only              僅連接至 IPv4 地址。  -6,  --inet6-only              僅連接至 IPv6 地址。       --prefer-family=FAMILY    首先連接至指定協(xié)議的地址                                 FAMILY 為 IPv6,IPv4 或是 none。       --user=USER               將 ftp 和 http 的用戶名均設(shè)置為 USER。       --password=PASS           將 ftp 和 http 的密碼均設(shè)置為 PASS。       --ask-password            提示輸入密碼。       --no-iri                  關(guān)閉 IRI 支持。       --local-encoding=ENC      IRI (國際化資源標(biāo)識符) 使用 ENC 作為本地編碼。       --remote-encoding=ENC     使用 ENC 作為默認(rèn)遠(yuǎn)程編碼。       --unlink                  remove file before clobber.目錄:  -nd, --no-directories           不創(chuàng)建目錄。  -x,  --force-directories        強制創(chuàng)建目錄。  -nH, --no-host-directories      不要創(chuàng)建主目錄。       --protocol-directories     在目錄中使用協(xié)議名稱。  -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件       --cut-dirs=NUMBER          忽略遠(yuǎn)程目錄中 NUMBER 個目錄層。HTTP 選項:       --http-user=USER        設(shè)置 http 用戶名為 USER。       --http-password=PASS    設(shè)置 http 密碼為 PASS。       --no-cache              不在服務(wù)器上緩存數(shù)據(jù)。       --default-page=NAME     改變默認(rèn)頁                               (默認(rèn)頁通常是“index.html”)。  -E,  --adjust-extension      以合適的擴(kuò)展名保存 HTML/CSS 文檔。       --ignore-length         忽略頭部的‘Content-Length’區(qū)域。       --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      標(biāo)識為 AGENT 而不是 Wget/VERSION。       --no-http-keep-alive    禁用 HTTP keep-alive (永久連接)。       --no-cookies            不使用 cookies。       --load-cookies=FILE     會話開始前從 FILE 中載入 cookies。       --save-cookies=FILE     會話結(jié)束后保存 cookies 至 FILE。       --keep-session-cookies  載入并保存會話 (非永久) cookies。       --post-data=STRING      使用 POST 方式;把 STRING 作為數(shù)據(jù)發(fā)送。       --post-file=FILE        使用 POST 方式;發(fā)送 FILE 內(nèi)容。       --content-disposition   當(dāng)選中本地文件名時                               允許 Content-Disposition 頭部 (尚在實驗)。       --auth-no-challenge     發(fā)送不含服務(wù)器詢問的首次等待                               的基本 HTTP 驗證信息。HTTPS (SSL/TLS) 選項:       --secure-protocol=PR     選擇安全協(xié)議,可以是 auto、SSLv2、                                SSLv3 或是 TLSv1 中的一個。       --no-check-certificate   不要驗證服務(wù)器的證書。       --certificate=FILE       客戶端證書文件。       --certificate-type=TYPE  客戶端證書類型,PEM 或 DER。       --private-key=FILE       私鑰文件。       --private-key-type=TYPE  私鑰文件類型,PEM 或 DER。       --ca-certificate=FILE    帶有一組 CA 認(rèn)證的文件。       --ca-directory=DIR       保存 CA 認(rèn)證的哈希列表的目錄。       --random-file=FILE       帶有生成 SSL PRNG 的隨機(jī)數(shù)據(jù)的文件。       --egd-file=FILE          用于命名帶有隨機(jī)數(shù)據(jù)的 EGD 套接字的文件。FTP 選項:       --ftp-user=USER         設(shè)置 ftp 用戶名為 USER。       --ftp-password=PASS     設(shè)置 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   在轉(zhuǎn)換文件 X 前先將它備份為 X.orig。  -m,  --mirror             -N -r -l inf --no-remove-listing 的縮寫形式。  -p,  --page-requisites    下載所有用于顯示 HTML 頁面的圖片之類的元素。       --strict-comments    用嚴(yán)格方式 (SGML) 處理 HTML 注釋。遞歸接受/拒絕:  -A,  --accept=LIST               逗號分隔的可接受的擴(kuò)展名列表。  -R,  --reject=LIST               逗號分隔的要拒絕的擴(kuò)展名列表。  -D,  --domains=LIST              逗號分隔的可接受的域列表。       --exclude-domains=LIST      逗號分隔的要拒絕的域列表。       --follow-ftp                跟蹤 HTML 文檔中的 FTP 鏈接。       --follow-tags=LIST          逗號分隔的跟蹤的 HTML 標(biāo)識列表。       --ignore-tags=LIST          逗號分隔的忽略的 HTML 標(biāo)識列表。  -H,  --span-hosts                遞歸時轉(zhuǎn)向外部主機(jī)。  -L,  --relative                  只跟蹤有關(guān)系的鏈接。  -I,  --include-directories=LIST  允許目錄的列表。  --trust-server-names             use the name specified by the redirection                                   url last component.  -X,  --exclude-directories=LIST  排除目錄的列表。  -np, --no-parent                 不追溯至父目錄。

參數(shù)有點多,沒關(guān)系,常用的掌握,其他的用的時候再查

vmstat

vmstat介紹

vmstat報告有關(guān)進(jìn)程,內(nèi)存,頁面調(diào)度,塊IO,陷阱,磁盤和cpu活動的信息。

vmstat命令參數(shù)

-a:顯示活躍和非活躍內(nèi)存

-f:顯示從系統(tǒng)啟動至今的fork數(shù)量 。

-m:顯示slabinfo

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

-s:顯示內(nèi)存相關(guān)統(tǒng)計信息及多種系統(tǒng)活動數(shù)量。

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

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

-d:顯示磁盤相關(guān)統(tǒng)計信息。

-p:顯示指定磁盤分區(qū)統(tǒng)計信息

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

解釋

Procs(進(jìn)程):

r: 運行隊列中進(jìn)程數(shù)量

b: 等待IO的進(jìn)程數(shù)量

Memory(內(nèi)存):

swpd: 使用虛擬內(nèi)存大小

free: 可用內(nèi)存大小

buff: 用作緩沖的內(nèi)存大小

cache: 用作緩存的內(nèi)存大小

Swap:

si: 每秒從交換區(qū)寫到內(nèi)存的大小

so: 每秒寫入交換區(qū)的內(nèi)存大小

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

bi: 每秒讀取的塊數(shù)

bo: 每秒寫入的塊數(shù)

系統(tǒng):

in: 每秒中斷數(shù),包括時鐘中斷。

cs: 每秒上下文切換數(shù)。

CPU(以百分比表示):

us: 用戶進(jìn)程執(zhí)行時間(user time)

sy: 系統(tǒng)進(jìn)程執(zhí)行時間(system time)

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

wa: 等待IO時間

free

free介紹

free顯示系統(tǒng)中可用和可用的物理內(nèi)存和交換內(nèi)存的總量,以及內(nèi)核使用的緩沖區(qū)和高速緩存。

free命令參數(shù)

-b 以Byte為單位顯示內(nèi)存使用情況。

-k 以KB為單位顯示內(nèi)存使用情況。

-m 以MB為單位顯示內(nèi)存使用情況。

-g 以GB為單位顯示內(nèi)存使用情況。

-o 不顯示緩沖區(qū)調(diào)節(jié)列。

-s<間隔秒數(shù)> 持續(xù)觀察內(nèi)存使用狀況。

-t 顯示內(nèi)存總和列。

解釋

total:總計物理內(nèi)存的大小。

used:已使用多大。

free:可用有多少。

Shared:多個進(jìn)程共享的內(nèi)存總額。

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

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

used:已使用多大。

free:可用有多少。

top

top介紹

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

top命令參數(shù)

-b 批處理

-c 顯示完整的治命令

-I 忽略失效過程

-s 保密模式

-S 累積模式

-i<時間> 設(shè)置間隔時間

-u<用戶名> 指定用戶名

-p<進(jìn)程號> 指定進(jìn)程

-n<次數(shù)> 循環(huán)顯示的次數(shù)

解釋

第一行,任務(wù)隊列信息,同 uptime 命令的執(zhí)行結(jié)果,具體參數(shù)說明情況如下:

00:56:07 — 當(dāng)前系統(tǒng)時間

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

1users — 當(dāng)前有1個用戶登錄系統(tǒng)

load average: 0.00, 0.02, 0.05 — load average后面的三個數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。

load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),然后按特定算法計算出的數(shù)值。如果這個數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時候就表明系統(tǒng)在超負(fù)荷運轉(zhuǎn)了。

第二行,Tasks — 任務(wù)(進(jìn)程)

系統(tǒng)現(xiàn)在共有254個進(jìn)程,其中處于運行中的有1個,253個在休眠(sleep),stoped狀態(tài)的有0個,zombie狀態(tài)(僵尸)的有0個。

第三行,cpu狀態(tài)信息

%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 — 內(nèi)核空間占用CPU的百分比。

0.0 ni — 改變過優(yōu)先級的進(jìn)程占用CPU的百分比

98.3 id — 空閑CPU百分比

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

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

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

第四行,內(nèi)存狀態(tài)

65808884 total 物理內(nèi)存總量

23749772 free 使用中的內(nèi)存總量

4586160 used 空閑內(nèi)存總量

37472952 buff/cache 緩存的內(nèi)存量

第五行,swap交換分區(qū)信息

0 total 交換區(qū)總量

0 use 使用的交換區(qū)總量

0 free 空閑交換區(qū)總量

60909608 avail Mem 可用交換區(qū)總量

第七行以下:各進(jìn)程(任務(wù))的狀態(tài)監(jiān)控

PID — 進(jìn)程id

USER — 進(jìn)程所有者

PR — 進(jìn)程優(yōu)先級

NI — nice值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級

VIRT — 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES

RES — 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA

SHR — 共享內(nèi)存大小,單位kb

S — 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程

%CPU — 上次更新到現(xiàn)在的CPU時間占用百分比

%MEM — 進(jìn)程使用的物理內(nèi)存百分比

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

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

sar

sar介紹

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

sar命令參數(shù)

-A:所有報告的總和

-u:輸出CPU使用情況的統(tǒng)計信息

-v:輸出inode、文件和其他內(nèi)核表的統(tǒng)計信息

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

-r:輸出內(nèi)存和交換空間的統(tǒng)計信息

-b:顯示I/O和傳送速率的統(tǒng)計信息

-a:文件讀寫情況

-c:輸出進(jìn)程統(tǒng)計信息,每秒創(chuàng)建的進(jìn)程數(shù)

-R:輸出內(nèi)存頁面的統(tǒng)計信息

-y:終端設(shè)備活動情況

-w:輸出系統(tǒng)交換活動信息

最后,小編想說:我是一名python開發(fā)工程師,整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,想要這些資料的可以關(guān)注私信小編“01”即可,希望能對你有所幫助。

內(nèi)容來自今日頭條

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产亚洲精品俞拍视频福利区| 欧美av人人妻av人人爽蜜桃| 国产女高清在线看免费观看| 日韩一级毛一欧美一级乱| 欧美日韩欧美国产另类| 欧美精品久久一二三区| 国产精品日韩精品最新| 99国产一区在线播放| 国产又色又粗又黄又爽| 国产成人免费激情视频| 亚洲国产成人精品福利| 精品人妻精品一区二区三区| 久久国产亚洲精品赲碰热| 精品人妻少妇二区三区| 欧美不卡高清一区二区三区| 中日韩免费一区二区三区| 太香蕉久久国产精品视频| 亚洲精品中文字幕一二三| 久草精品视频精品视频精品| 在线免费不卡亚洲国产| 成人午夜在线视频观看| 精品午夜福利无人区乱码| 亚洲综合色在线视频香蕉视频| 亚洲综合精品天堂夜夜| 亚洲欧洲一区二区中文字幕| 日韩精品综合福利在线观看| 国产综合香蕉五月婷在线| 欧美黄色黑人一区二区| 在线免费看国产精品黄片| 国产精品日本女优在线观看| 91精品国产品国语在线不卡| 大尺度激情福利视频在线观看| 亚洲男人的天堂就去爱| 国产传媒精品视频一区| 丁香七月啪啪激情综合| 国产高清视频一区不卡| 欧美中文字幕一区在线| 丰满少妇被猛烈插入在线观看| 国产精品丝袜一二三区| 日本二区三区在线播放| 欧美午夜一级特黄大片|