Linux關(guān)鍵命令

文件系統(tǒng)相關(guān)

  1. ==ls---list==:指定要顯示列表的目錄社搅,也可以是具體的文件。
  • -a(all, 列出全部文件乳规,包含隱藏文件)
  • -l(list, 輸出格式為長格式形葬,文件的詳情)


    ls-al.png

第一列第一位表示文件的類型
c:字符文件,s:socket文件暮的,-:普通文件笙以,d:目錄文件,l:鏈接文件
第一列第二位到第十位表示文件的讀寫執(zhí)行權(quán)限位冻辩,前三位為當(dāng)前文件所屬用戶的權(quán)限猖腕,中間三位為該用戶所在的用戶組的權(quán)限,后三位為其他用戶的權(quán)限恨闪。
第二列:代表文件或者目錄的鏈接數(shù)倘感,即目錄或者文件下還包含幾個目錄或者文件數(shù)

下面圖片來源于網(wǎng)絡(luò),解釋的較為清晰:


ls.png
  • -i(inode, 顯示文件的inode值)
  • -n(--numeric-uid-gid凛剥,list numeric user and group IDs)
inode.png
  • 思考:將一個目錄的權(quán)限設(shè)置為rw侠仇,是否可以進(jìn)入目錄;將一個目錄的權(quán)限設(shè)置為x,是否可以在該目錄下建立新文件犁珠?
  1. 文件的創(chuàng)建:==touch filename==;文件夾的創(chuàng)建==mkdir -p filename/1/2==

  2. 設(shè)置創(chuàng)建文件的指定權(quán)限掩碼:==umask nnn== or ==umask u=,g=w,o=rwo==

利用umask命令可以指定哪些權(quán)限將在新文件的默認(rèn)權(quán)限中被刪除。例如互亮,可以使用下面的命令創(chuàng)建掩碼犁享,使得組用戶的寫權(quán)限,其他用戶的讀豹休、寫和執(zhí)行權(quán)限都被取消:
例如:==umask 002==:所對應(yīng)的文件和目錄創(chuàng)建缺省權(quán)限分別為6 6 4和7 7 5

umask.png

==umask (-S)==:查看當(dāng)前的權(quán)限掩碼

  1. 變更文件(目錄)的權(quán)限:==chmod==

常見的兩種命令形式:==chmod u+x,o-x filename==; ==chmod 664 filename==

  1. 變更文件(目錄)的所有者和所屬組:==chown -R new的所屬者 filename==

-R : 對目前目錄下的所有檔案與子目錄進(jìn)行相同的擁有者變更(即以遞回的方式逐個變更)

  1. 查看文件內(nèi)容:==cat/less/more/head/tail filename==

查看文件的第4行到7行之間的內(nèi)容:head -n 7 filename | tail -n 4
==cat >> filename==:向文件后面追加內(nèi)容

  1. 查找文件:==locate which find==

==locate==:locate命令其實是find -name的另一種寫法炊昆,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫/var/lib/locatedb凤巨,這個數(shù)據(jù)庫中含有本地所有文件信息视乐。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次敢茁,所以使用locate命令查不到最新變動過的文件佑淀。為了避免這種情況,可以在使用locate之前彰檬,先使用==updatedb==命令伸刃,手動更新數(shù)據(jù)庫。
==which==:用于查找并顯示給定命令的絕對路徑,==which ls==
==find==:在指定的目錄查找文件逢倍,用法較廣捧颅,不細(xì)說。==find /home -name "*.txt"==

  1. 其他常見的命令:

刪除:==rm==较雕,一旦刪除了一個文件碉哑,就無法再恢復(fù)它
拷貝:==cp==;==scp==(遠(yuǎn)程拷貝)
移動位置:==mv== , 也可以重命名。
==tree==:以樹形結(jié)構(gòu)顯示當(dāng)前目錄下的文件;==pstree==:打印進(jìn)程關(guān)系樹

9.壓縮與解壓縮命令:

10.重要工具==lsof==(list open file)

網(wǎng)絡(luò)相關(guān)的命令

  1. 假設(shè)場景為通過ssh登錄失敗如何排查

查看當(dāng)前網(wǎng)卡的狀態(tài):==ifconfig==
查看網(wǎng)絡(luò)的聯(lián)通性:==ping host/域名/ip==
查看是否是因為22端口否開放,可以先嘗試?yán)?=telnet ip==遠(yuǎn)程登錄亮蒋,==telnet==采用明文傳送報文谭梗,安全性不好。
正常的ssh登錄一般命令:==ssh user@host -p 22==

  1. 網(wǎng)絡(luò)抓包:==tcpdump==

實例利用tcpdump分析三次握手宛蚓,四次揮手過程

  1. 網(wǎng)絡(luò)系統(tǒng)的狀態(tài)信息:==netstat==

-c或--continuous:持續(xù)列出網(wǎng)絡(luò)狀態(tài)
-s或--statistice:顯示網(wǎng)絡(luò)工作信息統(tǒng)計表
-t或--tcp:顯示TCP傳輸協(xié)議的連線狀況
-l或--listening:顯示監(jiān)控中的服務(wù)器的Socket

實例利用netstat分析TIME_WAIT狀態(tài)

  1. 用來顯示處于活動狀態(tài)的套接字信息:==ss==

-l:顯示處于監(jiān)聽狀態(tài)的套接字;-t:只顯示tcp套接字;-n:不解析服務(wù)名稱激捏,以數(shù)字方式顯示

ss.png

由Recv-Q和Send-Q狀態(tài)的含義引發(fā)的思考,==ss==獲取到的 ==Recv-Q/Send-Q== 在 LISTEN 狀態(tài)以及非 LISTEN 狀態(tài)所表達(dá)的含義是不同:

  • 當(dāng)socket處于listen狀態(tài)的時候

Recv-Q:表示全連接隊列當(dāng)前使用了多少凄吏,即當(dāng)前等待服務(wù)器調(diào)用accept()取出的連接數(shù)量远舅。
Send-Q:表示全連接隊列的最大值,由min(backlog,somaxconn)決定

  • 當(dāng)socket處于其它狀態(tài)的時候

Recv-Q:網(wǎng)絡(luò)接受隊列痕钢,表示接受到的數(shù)據(jù)己經(jīng)在本地接收緩存了图柏,但是還有多少沒有被進(jìn)程取走,recv()任连。如果Recv-Q一直不為0蚤吹,說明可能遭受了拒絕服務(wù) denial-of-service 攻擊
Send-Q:網(wǎng)絡(luò)發(fā)送隊列,表示數(shù)據(jù)已經(jīng)被進(jìn)程下發(fā)随抠,但是對方并未返回ACK的數(shù)據(jù)包裁着,要先保存在本地發(fā)送緩存區(qū),send()拱她。

  1. 查看查詢arp緩沖區(qū)中指定主機(jī)的arp條目:==arp==
  2. 路由相關(guān)的協(xié)議:==route==;==tracepath==;

進(jìn)程相關(guān)的命令

案例分析:當(dāng)服務(wù)器出現(xiàn)卡噸二驰,如何排查問題?{進(jìn)程占用cpu和內(nèi)存問題}

  1. ==top==:多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具
cpu.png

==top==顯示的區(qū)域分為統(tǒng)計信息區(qū)和進(jìn)程信息區(qū)秉沼。
統(tǒng)計信息區(qū)的說明
第一行:任務(wù)隊列信息桶雀,與==uptime==命令執(zhí)行的結(jié)果一致
依次為:系統(tǒng)當(dāng)前時間矿酵;主機(jī)已經(jīng)運行的時間;用戶連接數(shù)(==who==);
系統(tǒng)的平均負(fù)載矗积,統(tǒng)計最近1,5,15分鐘的系統(tǒng)平均負(fù)載全肮。(如果高于邏輯cpu的數(shù)目就會超負(fù)載)
第二行:進(jìn)程信息,依次為:進(jìn)程總數(shù)棘捣;正在運行的進(jìn)程辜腺;睡眠的進(jìn)程;停止的進(jìn)程數(shù)柱锹;僵尸進(jìn)程數(shù)哪自。
第三行:cpu信息
==us==:用戶空間占用cpu的百分比
==sy==:內(nèi)核空間占用cpu的百分比
==ni==:用戶進(jìn)程空間內(nèi)改變進(jìn)程的優(yōu)先級的進(jìn)程占用cpu的百分比。
==id==:空閑cpu的百分比
==wa==:IO等待占用CPU的百分比
==hi==:硬中斷(Hardware IRQ)占用CPU的百分比
==si==:軟中斷(Software Interrupts)占用CPU的百分比
==st==:這個虛擬機(jī)被hypervisor偷去的CPU時間(譯注:如果當(dāng)前處于一個hypervisor下的vm禁熏,實際上hypervisor也是要消耗一部分CPU處理時間的)
第四壤巷、五行物理內(nèi)存和swap的使用情況(==free==)

  1. swap行中的used值在不斷變化時,說明物理內(nèi)存正在與swap交換數(shù)據(jù)瞧毙,這時候真的內(nèi)存出現(xiàn)了不夠用情況胧华。==avail==和==free==和==buff/cache==解釋參考
  2. ==cat /proc/meminfo==可以查看更詳細(xì)的內(nèi)存信息
  3. ==vmstat==:虛擬內(nèi)存狀態(tài)(“Viryual Memor Statics”),同樣可以顯示內(nèi)存,I/O宙彪,cpu的使用情況矩动。

進(jìn)程信息區(qū)的說明:
==PID==:進(jìn)程ID,進(jìn)程的唯一標(biāo)識符
==USER==:進(jìn)程所有者的實際用戶名释漆。
==PR==:進(jìn)程的調(diào)度優(yōu)先級悲没。這個字段的一些值是'rt'。這意味這這些進(jìn)程運行在實時態(tài)男图。
==NI==:進(jìn)程的nice值(優(yōu)先級)示姿。越小的值意味著越高的優(yōu)先級。負(fù)值表示高優(yōu)先級逊笆,正值表示低優(yōu)先級
==VIRT==:進(jìn)程使用的虛擬內(nèi)存栈戳。進(jìn)程使用的虛擬內(nèi)存總量,單位kb难裆。VIRT=SWAP+RES
==RES==:駐留內(nèi)存大小子檀。駐留內(nèi)存是任務(wù)使用的非交換物理內(nèi)存大小。進(jìn)程使用的乃戈、未被換出的物理內(nèi)存大小褂痰,單位kb。RES=CODE+DATA
==SHR==:SHR是進(jìn)程使用的共享內(nèi)存偏化。共享內(nèi)存大小脐恩,單位kb
==S==:這個是進(jìn)程的狀態(tài)(需要詳細(xì)了解)。它有以下不同的值:

D - 不可中斷的睡眠態(tài)侦讨。
R – 運行態(tài)
S – 睡眠態(tài)
T – 被跟蹤或已停止
Z – 僵尸態(tài)

==%CPU==自從上一次更新時到現(xiàn)在任務(wù)所使用的CPU時間百分比驶冒。
==%MEM==:進(jìn)程使用的可用物理內(nèi)存百分比。
==TIME+==:任務(wù)啟動后到現(xiàn)在所使用的全部CPU時間韵卤,精確到百分之一秒骗污。
==COMMAND==:運行進(jìn)程所使用的命令。進(jìn)程名稱(命令名/命令行)

備注:==top==使用過程中常用的技術(shù)

  1. 輸入1:列出全部的CPU使用情況
  2. 輸入P:根據(jù)CPU使用百分比大小進(jìn)行排序沈条;
  3. 輸入M:根據(jù)駐留內(nèi)存大小進(jìn)行排序需忿;
  4. 輸入f:從當(dāng)前顯示中添加或者刪除項目

更厲害的工具==dstat==:結(jié)合的==vmstat==和==iostat==,還有網(wǎng)絡(luò)蜡歹。


dstat.png

更厲害的工具==htop==:友好美觀的界面屋厘,吸引人。


htop.png
  1. ==ps==:查看當(dāng)前系統(tǒng)的進(jìn)程相關(guān)信息
    常用的命令為==ps -aux==和==ps -ef==

  2. ==kill==:向進(jìn)程發(fā)生信號月而,==kill -l==:顯示信號的類型汗洒;==kill -9 pid==:無條件的殺死pid進(jìn)程。

  3. 重寫 ==/proc/sys/vm/drop-caches==釋放內(nèi)存資源父款,(釋放內(nèi)存前的一個好習(xí)慣是將當(dāng)前緩存同步到磁盤==sync==)

  4. cpu親和技術(shù)

  5. ==oom killer==

  6. 調(diào)整進(jìn)程優(yōu)先級==nice==;==renice==

  7. ==pstack pid==:跟蹤進(jìn)程椧绨空間,ubuntu系統(tǒng)安裝可能會出現(xiàn)可執(zhí)行文件==/usr/bin/pstack==出現(xiàn)亂碼憨攒,需要手動更改該文件世杀。

  8. ==strace==:跟蹤進(jìn)程執(zhí)行時的系統(tǒng)調(diào)用和所接收的信號

strace.png

每一行都是一條系統(tǒng)調(diào)用,strace可以跟蹤到一個進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù)肝集,返回值瞻坝,執(zhí)行消耗的時間⌒诱埃可以利用==pstack== 和==strace==分析程序在哪里耗時

磁盤相關(guān)的命令

  1. 報告文件系統(tǒng)整個磁盤空間的使用情況==df -mh==
df.png

更多的信息參考==cat /proc/diskstats==

  1. 對文件和目錄磁盤使用的空間的查看==du filename==

==sudo du -smh /tmp/*== 以易讀的形式顯示文件夾占用磁盤空間的總和所刀。

  1. 測試磁盤讀寫速度
    ==iostat -x==:顯示當(dāng)前系統(tǒng)磁盤IO情況。
    參數(shù)詳解
iostat.png

==dd==:測試磁盤讀寫的速度

測試磁盤寫:==sudo time dd if=/dev/zero of=/tmp/test bs=50K count=12000==

測試磁盤讀:==sudo time dd if=/dev/sda1 of=/dev/null bs=50K count=12000==

同時測試磁盤讀寫:==sudo time dd if=/dev/sda1 of=/tmp/text2 bs=50K count=12000==

  1. linux中的磁盤調(diào)度算法以及調(diào)優(yōu)

  2. 硬鏈接和軟鏈接的區(qū)別

參看Linux Tools Quick Tutorial

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伐憾,一起剝皮案震驚了整個濱河市勉痴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌树肃,老刑警劉巖蒸矛,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胸嘴,居然都是意外死亡雏掠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門劣像,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乡话,“玉大人,你說我怎么就攤上這事耳奕“笄啵” “怎么了诬像?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闸婴。 經(jīng)常有香客問我坏挠,道長,這世上最難降的妖魔是什么邪乍? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任降狠,我火速辦了婚禮,結(jié)果婚禮上庇楞,老公的妹妹穿的比我還像新娘榜配。我一直安慰自己,他們只是感情好吕晌,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布蛋褥。 她就那樣靜靜地躺著,像睡著了一般聂使。 火紅的嫁衣襯著肌膚如雪壁拉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天柏靶,我揣著相機(jī)與錄音弃理,去河邊找鬼。 笑死屎蜓,一個胖子當(dāng)著我的面吹牛痘昌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炬转,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼辆苔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扼劈?” 一聲冷哼從身側(cè)響起驻啤,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荐吵,沒想到半個月后骑冗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡先煎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年贼涩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薯蝎。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡遥倦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出占锯,到底是詐尸還是另有隱情袒哥,我是刑警寧澤缩筛,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站统诺,受9級特大地震影響歪脏,放射性物質(zhì)發(fā)生泄漏疑俭。R本人自食惡果不足惜粮呢,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钞艇。 院中可真熱鬧啄寡,春花似錦、人聲如沸哩照。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽飘弧。三九已至识藤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間次伶,已是汗流浹背痴昧。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留冠王,地道東北人赶撰。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像柱彻,于是被迫代替她去往敵國和親豪娜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,146評論 2 34
  • 內(nèi)核的引導(dǎo)(BIOS OS Read /boot 內(nèi)核文件) - 運行init(所有進(jìn)程的父進(jìn)程 /etc/ini...
    時待吾閱讀 590評論 0 1
  • Ubuntu的發(fā)音 Ubuntu鸣奔,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音磨镶。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,203評論 9 467
  • 昨天下午召集部門人員開會琳猫,20分鐘會議伟叛,主要說考核,會后請大家去吃飯脐嫂。 少不了喝酒统刮,目的是給大家聯(lián)絡(luò)感情紊遵,鼓勵大家...
    雪木912閱讀 610評論 0 0
  • 小明:女的,她也不知道為什么叫小明侥蒙,反正就成了小明小新:男的暗膜,嘴毒,專門插刀小白:男的鞭衩,在國外念書学搜,不常回來 小明...
    無言ai閱讀 119評論 0 0