【筆記整理】CentOS常用指令整理( Q ~ T )

摘要:【筆記整理】CentOS常用指令整理( Q ~ T )

整理有關CentOS的相關指令,

基本上使用man來看會比較完整,下列只是一些簡單及常用的組合應用。

當然也會增加一些相關註解。

 

1. quota:顯示並限制帳號的磁碟用量

 a. quota:顯示自己的磁碟用量

 b. quota [-u] ghoseliang:顯示ghoseliang的磁碟用量

 c. quota -g:顯示群組的磁碟用量

 d. quota -l:只顯示本地端的檔案系統,不顯示網路連線的檔案系統(NFS)

 e. quota -s:顯示使用者的磁碟用量限制、已使用的空間、與inodes

 f. quota -v:顯示有設定磁碟容量限制的檔案系統

 

2. quotacheck:檢查帳號磁碟空間的限制

 a. quotacheck -a:檢查所有列在『/etc/fstab』中的檔案系統(不包含NFS)

 b. quotacheck -b:在寫入新資料前,強迫備份

 c. quotacheck -f:強迫檢查,並將容量記錄檔寫入

 d. quotacheck -v:列出顯示結果,預設是安靜模式

 

3. quotaoff:關閉帳號磁碟空間的限制

 a. quotaoff -a:將所有檔案系統的配額限制關閉

 

4. quotaon:開啟帳號磁碟空間的限制

 a. quotaon -a:將所有檔案系統的配額限制開啟

 

5. quotastats:顯示目前帳號磁碟空間的限制

 a. quotastats:顯示目前帳號磁碟空間的狀態

     註:以上關於Quota的設定我沒用過,但又覺得Windows也有Quota設定,因此算是實用,所以列出。

 

6. reboot:重新開機

 a. reboot:重新開機

 b. reboot -d:不寫入wtmp的記錄中

 c. reboot -f:強迫重新開機,不呼叫shutdown

 d. reboot -i:在重新開機前,先關閉所有網路介面

 e. reboot -n(or sync):在重新開機前,先將記憶體中的資料回存硬碟

 f. reboot -w:將記錄寫到wtmp的紀錄中,但不真的執行重新開機的動作

 

7. repquota:檢查磁碟空間限制的狀態

 a. repquota -a:列出所有定義quota在『/etc/motd』之中檔案系統的磁碟用量

     註:這是顯示磁碟空間限制的重要指令,會搭配quotacheckquotaonquotaoff來使用

 

8. resize2fs:重新調整檔案系統的大小

 

9. rm:刪除檔案或目錄

 a. rm -d 目錄:直接刪除目錄,而不刪除目錄下的檔案,這會造成其內檔案失去連結,並可能需透過『fsck』方能

     修復。

 b. rm -f 檔案或目錄:強制刪除

 c. rm -i 檔案或目錄:刪除前會先詢問使用者

 d. rm -r 檔案或目錄:將檔案或目錄底下的所有檔案與子目錄一起刪除

 

10. rmmod:移除載入的模組

 a. rmmod -w 模組名稱:等待該模組停止使用再移除

 

11. route:顯示並設定路由

 a. route:顯示路由表

 b. route -C:將核心的路由表由快取列出

 c. route -n:以數字顯示,不做DNS反查

 d. route -e:以netstat編排方式顯示路由狀態

 e. route add -net 192.168.74.0 netmask 255.255.255.0 dev eth0:透過eth0增加路由到192.168.74.0(Netmask:24)

 f. route add default gw 192.168.62.253 & route del default gw 192.168.62.253:增加或刪除Gateway

 

12. rpm(redhat package manager):管理rpm套件

     用法1:rpm [ -ivh ] package_name

     用法2:rpm [ -Uvh ] [ -Fvh ] package_name

     用法3:rpm -q[ acdfilR ] 已安裝的軟體名稱

     用法4:rpm -qp[ cdilR ] 未安裝的某個檔案名稱

     說明:

 01. rpm -ivh samba*:安裝『samba』所有相關套件(需事先下載相關的rpm)

     註:

 b. rpm -qi samba:顯示『samba』詳細的安裝資訊

 c. rpm -e samba:移除『samba』

     註:詳細用法與說明請參考http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php

 

13. runlevel:顯示目前的執行層級

 a. runlevel

     註:在『/etc/rc.d/』下可了解該執行等級會啟動哪些服務

 

14. scp:使用加密連線遠端複製檔案

 a. scp [files] [[帳號@]主機:]:基本複製檔案至遠端主機用法

 b. scp -i 身分檔(private key):指定身分確認檔private key

     註:scp是ssh下常見的複製指令,可以遠端複製檔案,不過因為經過加密解密,因此速度會較一般FTP慢。

 

15. sed:檔案內容修改

     說明:sed』為一種在線編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區內,稱為

     『模式空間(Pattern Space)』,接著用『sed』命令處理緩衝區內的內容,處理完成後,將緩衝區的內容顯示在

     螢幕上,然後處理下一行,直到文件尾端。文件內容並沒有改變,除非使用使用重定向儲存輸出。『sed』主要用

     來自動編輯一個或多個文件,簡化對文件的反覆操作,編寫轉換程序等。

     『sed』可以通過定址來定位所希望編輯的行,該地址用數字構成,用逗號分隔的兩個行數表示以這兩行作為起止

     的行的範圍(含行數表示的那兩行)。如:『1, 3』表示『1, 2, 3』行;符號『$』表示最後一行。範圍可通過數據、

     正規表示法或兩者結合的方式確定。

     用法1:sed [ options ] 'command' file

     用法2:sed -f scriptfile file

 01. sed '4,5d' sed.txt | head -n 10:將檔案『sed.txt』的4~5行刪除

 02. nl sed.txt | sed '4,$d':將檔案『sed.txt』從第四行到文件尾端的行數全刪除

 03. nl sed.txt | sed '2a drink tea':參數『a』為往後新增行,參數後面指定新增的內容。

     此處範例為在第二行後(第三行),加上內容『drink tea』。

 04. nl sed.txt | sed '2i drink tea, coffee or.......\water ? \haha....':參數『i』為往前插入行,參數後面指定插入

     的內容;而『\』為可增加多行,每欲多加一行則在文末加上『\』,當不欲增加行時,則在文末加上

     單引號『'』。

 05. nl sed.txt | sed '2,5c 2-5 Line':參數『c』為取代行,範例為在第『2-5』行中加入取代的內容『2-5 Line

 06. nl sed.txt | sed -n '2,5p':參數『p』為列印(顯示)行,將選擇的範圍內列印(顯示)出來。一般與參數『-n』搭配

     ,否則會重複輸出並顯示其他行列。參數『-n』為安靜模式(silent),加入此參數後,則只有經過『sed』特殊處

     理的才會被顯示出來。

     註:同指令『nl sed.txt | head -n 5 | tail -n 4

 07. ifconfig | grep 'inet addr' | sed 's/:/;/g':參數『s』為取代行,可直接進行取代。參數『g』為每行內全取代

     ,則每行內符合條件的皆進行取代;若未加參數『g』,則只有每行第一個符合條件進行取代。

     用法:sed 's/要被取代的字串/新的字串/g'

 08. ifconfig | grep 'Bc' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g':『sed』與『正規表示法』的綜合應用,

     取得『IP Address

     註:同指令『ifconfig | grep 'Bc' | cut -f2 -d: | cut -f1 -d' '

 09. sed 's#root#ghose#g' sed.txt:不管什麼字符,緊跟著參數『s』都被認為新的分隔符,

     所以『#』代替了默認的『/』。

 10. nl sed.txt | sed '1,10y/abcdefg/ABCDEFG/' | head -n 10:參數『y』為取代行,通常用於大小寫轉換

     要求長度一致,功能與參數『s』基本一致,但不可與『正規表示法符號』一起使用。

 11. nl sed.txt | sed '/1:1/,/5:0/p' | head -n 10:逗號『』為指定行範圍,在指定範圍行內皆會列出。一般與

     參數『-n』搭配,否則會重複輸出並顯示其他行列。

 12. sed -e '1,5d' -e 's/^.*//' sed.txt:參數『-e』為多次編輯,其允許同一行內執行多條命令。

 13. sed '/root/r test1' sed.txt | head -n 10:對應條件後,在其後讀入文件

 14. sed '/root/w test1' sed.txt | head -n 10:對應條件後,將該行列寫入文件中

 15. sed -i '$a This is Test' sed.txt:參數『i』為插入,在參數『i』後加入字串,範例為在最後一行加入字串。

     註:參數『i』可直接修改檔案內容,所以使用時需要小心注意

 16. sed -i 's/\:/\~/g' sed.txt:將所有的『:』取代為『~

     註:部分相關應用說明( 1 - 3 )可參考最下方的『備註』

     參考來源

     http://www.ipcpu.com/2011/07/linux-sed-basic/

     http://www.phpufo.com/?p=468

     http://linux.vbird.org/linux_basic/0330regularex.php#sed

 

16. service:開啟或關閉服務

 a. service 服務批次檔(ex.iptables) 伺服器指令(ex.stop or start):基本開關服務指令

     註:『服務批次檔』位於『/etc/init.d/』之下,為啟動伺服器的Shell Script。常用的指令包括start(啟動)

     stop(關閉)restart(重新啟動)

 b. service iptables status:顯示目前iptables的狀態

 c. service --status-all:顯示目前所有服務執行的狀態

 

17. sestatus:顯示SELinux的狀態

 a. sestatus:顯示目前SELinux的狀態

 b. sestatus -b:顯示SELinux中布林值的狀態

 

18. set:設定變數

 a. set:顯示目前變數設定

 b. set -o:列出所有功能

 c. set -o 項目名稱:開啟對應功能,ex. set -o vi

 d. set +o 項目名稱:關閉對應功能

     註:詳細用法請參考:http://linux.vbird.org/linux_basic/0320bash.php

 

19. setenforce:強制啟動或停止SELinux

 a. setenforce 0:強制停止SELinux

 b. setenforce 1:啟動SELinux

 

20. showmount:顯示NFS伺服器的掛接訊息

 a. showmount -a:列出所有掛接的主機名稱與目錄名稱

 b. showmount -d [主機]:只列出目錄名稱

 c. showmount -e [主機]:顯示NFS伺服器的分享清單

 

21. shutdown:關機

 01. shutdown -r 0:重新開機

 02. shutdown -r now:立刻重新開機

 03. shutdown -k 0:僅顯示警告訊息,而不是真的關機

 04. shutdown -h now:立刻關機

 05. shutdown 0 -h:立刻關機。關機後關閉電源,此功能需硬體與作業系統支援。

 06. shutdown -h 15:30:今天15:30關機

 07. shutdown -h +5:5分鐘後關機

 08. shutdown 1 -h 'ha!ha!':一分鐘後關機,並在每個終端機視窗上顯示『ha!ha!』

 

22. sort:排序命令,可對檔案內容進行排序並將結果顯示於標準輸出(STDOUT),

     但不會改變其內容

     用法:sort [ -fbMnrtuk ] file

 01. sort test1:排序檔案『test1』內容

 02. sort -f file:將小寫字母視為大寫字母,亦為忽略大小寫

 03. sort -b file:忽略最前面的空白字元部份

 04. sort -M test1:依照月份的縮寫進行排序

 05. cat /etc/passwd | sort -t ':' -k 3 -n | head -n 5:排序檔案『/etc/passwd』。參數『-t』,以冒號『:』為

     分隔符號(預設為『Tab』);參數『-k』,以第『3』個區間進行排序,因為第三個區間為『數字』,所以需

     加上參數『-n』才能進行排序(預設為『文字型態』)。

 06. sort -r test1:反向排序

 07. sort -u test1 test2:參數『-u』為uniq的意思,即相同資料中僅出現一行,亦為重複的只會出現一個

     註:有時會加上指令『uniq -c』來計算重複次數

 

23. ssh:遠端加密連線

 a. ssh root@192.168.28.129:透過ssh連線到192.168.28.129

 b. ssh 192.168.28.129 -p 22 -l ghoseliang:使用帳號ghoseliang透過端口22連線到192.168.28.129

     註:詳細用法請參考http://linux.vbird.org/linux_server/0310telnetssh.php#ssh

 

24. stat:顯示檔案或檔案系統狀態訊息

     用法:stat [ -ft ] file or file system

 01. stat test.z:顯示『test.z』相關訊息。如:『GID』、『UID』、權限的八進位表示形式『0644』及

     時間(存取、修改、變更)。

     註:除了通常的文件大小外,還有該文件佔用的區塊,通常的Linux區塊大小為512 Byte,因此『test.z』將佔用

     ( 268186/512= )523.80區塊,由於區塊都是完整佔用,因此此文件使用一些整數的區塊。

 02. stat -f test.z:顯示『test.z』文件系統相關訊息

 03. stat -t test.z:簡單顯示『test.z』相關訊息。以一行顯示。

 

25. su:切換帳號

 a. su - root

 b. su - ghoseliang

 

26. sudo:使用指定的帳號權限執行程式

 a. sudo -u ghoseliang vi /tmp/test1.txt:使用『ghoseliang』的身分編輯『/tmp/test1.txt』

 

27. sysctl:設定核心的參數

 a. sysctl -a:列出目前正在使用的核心參數

 b. sysctl -w net.ipv4.ip_forward=1:將net.ipv4.ip_forward設為1

     註:另一相同指令『echo "1" > /proc/sys/net/ipv4/ip_forward

     註:或直接編輯『/etc/sysctl.conf』,完成後輸入指令『sysctl -p /etc/sysctl.conf』,套用更改過的設定檔。

 

28. sync:將記憶體中的資料回存硬碟中 

 

29. tac:從尾到頭顯示檔案內容

 a. tac test.c

 b. tac -b test.c:將間隔字元放在檔案記錄前面

 

30. tail:顯示檔案最後面的部份

 a. tail -f /var/log/messages:持續讀取檔案最後面的資料,通常用於記錄檔的監控

     註:按『Ctrl』+『C』為停止

 b. tail -n 10 /var/log/messages:顯示檔案最後10行的資料

     註:預設為顯示最後的10行

 

31. tar:備份與壓縮-包裝檔案

 a. tar -cvf a.tar ~/a.out:將『~/』下的檔案『a.out』,包裝為『a.tar』

 b. tar -xvf ~/a.tar:將『a.tar』解開到目前的目錄之下

 c. tar -xvf ~/a.tar -C /tmp/:將『a.tar』解開到『/tmp』下

     註1:搭配參數『-z』為gzip格式,參數『-j』為bzip2格式

     註2:詳細用法可參考http://linux.vbird.org/linux_basic/0240tarcompress.php#tar

 

32. tcpdump:顯示網路上TCP的連線狀態

 a. tcpdump -i eth0:顯示介面eth0的封包狀態

     註:個人覺得不太好用

 

33. tee:雙向重導向,多目標轉移

     註:請參考『http://www.dotblogs.com.tw/ghoseliang/archive/2013/05/29/105049.aspx

 

34. telnet:遠端連線程式

     註:相關用法很多,所以請自行於網路上查找

 

35. tftp:檔案傳輸

     註:相關用法很多,所以請自行於網路上查找

 

36. top:即時顯示目前的程序狀態及各種資源佔用狀態

 01. top

     說明:

     統計訊息區:前五行為當前系統情況整體統計訊息

     第一行:任務隊列訊息,同『uptime』執行結果

     

:系統現在時間

     

:系統已運行時間,若重啟,時間會重置

     

:目前多少使用者登入系統

     

:三個數字分別為1分鐘、5分鐘、15分鐘的負載情況。

     『Load Average』為每隔五秒檢查一次活躍的程序數,然後按照特定算法計算出的數值,這個數值再除以

     邏輯CPU的數量,若結果大於5,即表示系統為超負荷運作中。

     第二行:任務(程序)

     

     目前共96個程序,1個正在運行,95個休眠,0個停止,0個殭屍

     第三行:CPU狀態訊息

     

:沒有經過優先級調整的用戶程序所佔用cpu百分比

     

:內核程序所佔用CPU百分比

     

:經過優先級調整的用戶程序所佔用CPU百分比

     

:CPU空閒百分比

     

:IO等待佔用CPU百分比

     

:硬體中斷(Hardware IRQ)佔用CPU百分比

     

:軟體中斷(Software IRQ)佔用CPU百分比

     

:虛擬CPU等待實體CPU處理的百分比

     第四行:記憶體訊息

     

     『used』為現在系統內核控制的記憶體數,『free』是內核還未納入其管控範圍的數量。納入內核管理的記憶體

     不一定都在使用中,還包括過去使用過的,而現在可以被重複利用的記憶體,內核並不把這些可被重新使用的

     記憶體交還到『free』中,因此在系統上『free』記憶體會越來越少,是不用擔心的。

     若要計算可用記憶體數:『free』+『buffers』+『cached

     第五行:SWAP訊息

     

     對於記憶體監控,我們要時常監控『used』,如果這個數值不斷變化,表示內核正在不斷進行『記憶體』和

     『SWAP』的數據交換,這是真正的記憶體不夠用了。

     第七行:各程序(任務)的狀態監控

     

     PID:程序ID

     USER:程序使用者

     PR:優先級

     NI:NICE值,負數表示優先級越高,正數表示優先級越低,『0』表示程序調度後,優先級不會被調整

     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:程序名稱(命令名/命令行)

 

 02. top -u ghoseliang:顯示使用者ghoseliang目前所執行的程序狀態

 03. top -d 5:設定每5秒更新一次

 04. top -n 5:設定更新5次

 05. top -c:顯示完整命令(COMMAND)

 06. top -p PID:顯示指定PID的狀態訊息

 07. 在『top』中按『1』,可顯示每個CPU(core)的狀態

      註:使用工具『putty』會有個限制,超過一定數的CPUs,必須放大視窗才能顯示。

 

37. touch:更改檔案的時間標記

     用法:touch [ -acdmt ] filename

 01. touch test1:touch主要是更改檔案的時間標記,若檔案不存在,則會新增一個時間標記為現在的檔案

 02. touch [filename]:更改已存在檔案的時間標記

 03. touch -a anaconda-ks.cfg:改變檔案的讀取時間(access time)紀錄

     註1:ll anaconda-ks.cfg』顯示的時間為『modification time(mtime)

     註2:ll --time=atime anaconda-ks.cfg』顯示的時間為『access time(atime)

     註3:ll --time=ctime anaconda-ks.cfg』顯示的時間為『status time(ctime)

 04. touch -c anaconda-ks.cfg:僅修改檔案時間

     註:若檔案不存在,則不會建立新檔案

 05. touch -d "2 days ago" anaconda-ks.cfg:修改時間和日期,也可以使用『--date="日期或時間"』

     註:時間可使用不同格式,如:『5:30pm』、『05/23/2013』、『5:30pm 05/23/2013』

 06. touch -m install.log:僅修改檔案的修改時間(mtime)記錄

 07. touch -t 1501010000 bashrc:修改檔案時間,格式為『YYMMDDhhmm』

 08. touch { 1,2 } { a,b,c } ; ls -l:一次產出多個檔案

     註:除了上述的修改時間,一般使用最多的就是拿來產出新檔案

 

38. tr:字串處理,字元轉換與刪除

     用法:tr [ -ds ] SET1 ...

 01. tr 'a-z' 'A-Z' < .bash_profile:將檔案『.bash_profile』轉換大小寫後輸出至螢幕上

 02. ifconfig | tr -d ':':將『ifconfig』輸出後訊息中的冒號『:』刪除

 03. tr -s 'cat' 'you' < .bash_history:將檔案『.bash_history』訊息中的『cat』三個字元各別取代成

     『you』三個字元

     註:tr』數據由『STDIN』輸入後,經由指令參數的指定轉換後,再導向『STDOUT

 

39. tracepath:追蹤網路連線的路徑

 

40. traceroute:追蹤網路連線所經過的路由器

 

備註

1. 萬用字元

 01. . :任何單一字元

 02. [abc]:此指定英文字元名單中即符合條件(即 a,b,c 只要其一符合即可)

 03. [0-9]:此指定數字區段中即符合條件(即 0,1,2,3,4,5,6,7,8,9 只要其一符合即可)

 04. [^abc]:排除此指定英文字元名單中即符合條件(即不要 a,b,c 其一即可)

 05. [^a-c]:排除此指定的範圍內及符合條件

 

2. Modifies

 01. * :零個多個字元即符合條件

 02. ?:任何單一字元即符合條件

 03. \? :任何一個字元以上即符合條件

 04. \+ :至少一個字元

 05. \{i\} :『i』個前面的字元。範例為重複字元『a』,3個

 06. \{i,\} :至少『i』個前面的字元。範例為重複字元『a』,至少3個

 07. \{i,j\}:至少『i』個最多『j』個前面的字元。範例為重複字元『a』,至少『3』個,最多『5』個

 

3.定錨點

 01. ^ :行的起始。範例為搜尋每行『al』開頭的字串

 02. $ :行的結束(尾端)。範例為搜尋每行『y』結尾的字串

 03. \< :字的起始。範例為搜尋含有『a』開頭的字串

 04. \> :字的結束(尾端)。範例為搜尋含有『 bad』結尾的字串

 

 

 

<......不定時更新、修改、增加中......>

參考

https://app.shopback.com/RBANl9P3Ysb