转自https://dotblogs.com.tw/ghoseliang/archive/2012/11/13/82929.aspx
1. adduser:新增系統上的帳號
a. adduser -g 20 -G 1001 -m ghoseliang:建立帳號『ghoseliang』,並指定主群組ID『20』及次群組ID『1001』
註:群組必須存在;次群組可指定多組
b. adduser -D:顯示建立帳號時的預設值
2. arch:列出處理器的類型,等同執行『uname -m』
3. arp:網路硬體位址對應
a. arp -a:列出『arp』的訊息
4. awk:文字資料的進階處理
a. awk -F"字元":以指定的『字元』作為分隔欄位
b. awk -F":" '{ print $1 $6 }' /etc/passwd:將『/etc/passwd』的內容以冒號『:』為分隔,取出第一位及第六位
c. awk -F":" '{ print "user:" $1 "\t home=" $6 }' /etc/passwd:將『/etc/passwd』當中的內容以冒號『:』為分隔,
取出第一位及第六位。在第一位前面加上『"user:"』,第一位與第六位之間以『Tab』鍵區隔,
並在第六位前加上『home=』。
5. badblocks:檢查磁碟中毀損的區塊
01. badblocks -b blocksize:指定硬碟區塊大小,預設為『4K』。
02. badblocks -c blocks_at_once:每個區塊檢查次數,預設為『16』次。
03. badblocks -f:強制在一個已經掛載的設備上進行讀寫或非破壞性的寫測試操作(可能會有毀損的風險)
04. badblocks -w:對每個區塊都寫入,然後再讀取訊息。(可能會有毀損的風險)
05. badblocks -s:將檢測的壞磁區顯示在螢幕上。
06. badblocks -i input_file:略過不檢測『input_file』中已知的『badblocks』,這些已知的『badblocks』同樣
不會顯示在檢測結果中。
07. badblocks -o output_file:將檢測出的『badblocks』寫入『output_file』。
08. badblocks -v /dev/sdb1:檢查毀損的區塊,並顯示詳細的訊息。
6. cat:列出檔案內容
a. cat -b /etc/hosts.allow:顯示『hosts.allow』的內容,並在非空白列上標示編號
b. cat /etc/hosts.allow /etc/hosts.deny > /etc/hosts.abc:結合『hosts.allow』與『hosts.deny』的內容,
並輸出到『hosts.abc』。
7. chage:改變密碼的有效期
用法:chage [ -ldEImMW ] username
01. chage ghoseliang:簡單的設定方式,不需輸入參數
02. chage -l ghoseliang:顯示使用者的密碼設定
03. chage -d 0 ghoseliang:指定上次更改密碼的天數,設定為『0』,時間會更改為『1970/1/1』,
因此會變成過期狀態,所以系統會要求使用者登入後需立即變更密碼。
04. chage -E 2012-11-14 ghoseliang:設定使用者密碼於哪時到期,即修改『/etc/shadow』第八欄位
05. chage -I 5 ghoseliang:限定密碼過期多少天後將該使用者帳號停用(鎖定),即『/etc/shadow』第七欄位
06. chage -m 30 ghoseliang:設定使用者需要更改密碼的最短天數,即『/etc/shadow』第四欄位
註:設為『0』表示永不過期
07. chage -M 45 ghoseliang:設定使用者密碼最長的有效天數,即『/etc/shadow』的第五欄位
08. chage -W 3 ghoseliang:設定密碼過期前要警告使用者的天數,即『/etc/shadow』第六欄位
註:有關『/etc/passwd』、『/etc/group』、『/etc/shadow』請參考
『http://www.dotblogs.com.tw/ghoseliang/archive/2013/03/13/96543.aspx』最下方備註的( 1 - 3 )
8. chattr:設定檔案隱藏屬性
用法:chattr [-RVf ] [ +-=ASacdijstu ] [ -v version ] 檔案或目錄
01. chattr +參數 檔案或目錄:在原有參數設定基礎上,增加參數
02. chattr -參數 檔案或目錄:在原有參數設定基礎上,移除參數
03. chattr =參數 檔案或目錄:更新為指定的參數。
註:不適用在『ext4』文件系統,會出現錯誤訊息『chattr: Clearing extent flag not supported on filename』
04. chattr A 檔案或目錄:檔案或目錄的『access time(atime)』不可被修改,可避免I/O較慢的機器過度存取磁碟
05. chattr S 檔案或目錄:磁碟I/O同步,與sync類似。一般檔案是非同步寫入磁碟,使用此屬性,當進行任何檔案的
修改,更動會『同步』寫入磁碟中。
06. chattr a 檔案或目錄:即『append』,檔案或目錄只能增加資料,而不能刪除也不能修改資料,多用於日誌檔案
註:只有『root』才能設定
07. chattr c 檔案或目錄:即『compress』,設定後會自動將檔案壓縮,讀取時會自動解壓縮,但在儲存時,將會先
進行壓縮後再儲存。
08. chattr d 檔案或目錄:即『no dump』,設定檔案不會被dump備份。
09. chattr i 檔案或目錄:讓檔案不能被刪除、改名、設定連結,也無法寫入或新增資料
註:只有『superuser(root)』或具有『CAP_LINUX_IMMUTABLE』處理能力的程序才能設定
10. chattr j 檔案或目錄:即『journal』,設定此參數使用當通過參數『mount』:『data=ordered』或者
『data=writeback』掛載的檔案系統,檔案在寫入時會先被記錄在『journal』中。如果『filesystem』
被設定參數為『 data=journal』,則該參數自動失效。
11. chattr s 檔案或目錄:該檔案被刪除後,將完全移除出磁碟空間。所以若誤刪,將無法救回。
12. chattr u 檔案或目錄:與『s』相反。刪除後,資料內容仍存於磁碟中,可用於『undeletion』。
註1:『chattr』修改屬性能夠提供系統的安全性,但並不適合所有目錄,如:『/』、『/dev』、『/tmp』、
『/var』。
註2:與指令『lsattr』配合,為顯示檔案隱藏屬性。
9. chkconfig:設定系統在不同層級的服務
Runlevel:分為0、1、2、3、4、5、6;『0』表示關機;『6』表示重新開機;『1』表示單人模式;
『2』表示多人介面,但不包含網路檔案系統功能;『3』表示含完整網路功能的文字介面;『4』為保留;
『5』為圖形化介面且含所有網路功能。
a. chkconfig --list ntpd:列出『NTP』在不同『runlevel』之下的狀態
b. chkconfig --level 35 ntpd on:設定『NTP』在『runlevel 3、5』時啟動
10. chmod:改變檔案或目錄的權限
a. chmod u=rwx,g=rx,o=x test (or chmod 751 test):設定為擁有者可讀可寫可執行;同群組者可讀可執行;
其他人可執行
b. chmod a=rw test (or chmod 666 test):設定為所有人都可讀可寫不可執行
c. chmod 4755 test:給于『SUID』的權限
11. cp:複製檔案或目錄
01. cp -r /tmp ./ &:將『tmp』目錄複製到目前的目錄下(背景執行)
註:背景執行可在指令後端加上『&』或按下『Ctrl』+『z』。要將背景執行的程式叫出則輸入『fg』,
若背景無程式在執行,系統會告知無執行中程式(no such job)。
02. cp -p /etc/sysctl.conf ./:保留原檔案的所有屬性
03. cp -u test test1:僅複製來源檔『test』較新的檔案,若『test』的時間標記比『test2』早,則不會複製
04. cp -b /etc/hosts ./test:若原檔案『test』已存在,則會變成備份檔『test~』
12. cut:擷取命令,用來對字串進行切割的處理
用法1:cut -d'分隔字元' -f 欄位
用法2:cut -c 字元區間
01. ifconfig | grep Bc | cut -f2 -d: | cut -f1 -d" ":使用參數『-f』、『-d』得到所需的訊息
02. ifconfig | grep Bc | cut -c 11-:截除不必要的字元。主要作為排版整齊的訊息
13. date:顯示和設定系統的日期和時間
01. date:顯示目前的時間
02. date -s 16:00:設定時間為16:00。只有『root』權限才可設定。
03. date -s 05/13/2013:設定日期
04. date -s 051316002013:設定時間與日期,格式為『MMDDhhmmYYYY』
05. date +%a" "%d" "%b" "%y:顯示星期幾『%a』、日期『%d』、月份名稱『%b』、年份『%y』
14. dd:轉換並輸出資料
a. dd if=test.txt of=/dev/fd0:將『test.txt』寫到磁片中
b. dd if=boot.img of=/dev/fd0 bs=1440k:製作開機片
c. dd if=in.txt of=out.txt conv=ucase:將『in.txt』中的英文字從小寫轉換成大寫,輸出到『out.txt』
15. df:顯示檔案系統的使用狀況
a. df -aT :顯示所有檔案系統,包含大小為零的檔案系統,及顯示檔案系統類型
b. df -t ext4:顯示指定的檔案系統(ex.ext4)所有分割區使用狀況
c. df -ah:人性化顯示可讀檔案系統的使用大小
d. df -ahlT:顯示本機(本地端)檔案系統的使用狀況及檔案系統類型
e. df -h /dev/sda1:以易讀取方式顯示指定的檔案系統的硬碟使用狀況
f. df -m:以MBytes來顯示目前的檔案系統的狀況
16. diff:比較並顯示檔案差異的部份
用法:diff [ -acbBiy ] From-file To-file
註:『From-file』與『To-file』可以以『-』取代,『-』代表『標準輸入(STDIN)』
01. diff test1 test2:比對檔案『test1』和『test2』的不同
02. diff -a test1 test2:將比對的檔案都當做『文字檔案』來處理。
03. diff -b test1 test3:不比對『空白字元』
04. diff -B test3 test1:不比對『空白行』
05. diff -bB test3 test1:不比對『空白字元』與『空白行』
註:沒有任何輸出,表示檔案相同
06. diff -c test1 test2:使用綱要輸出格式,列出前後一行的異同
07. diff -i test1 test2:忽略大小寫
08. diff -y test1 test2:並列顯示
17. dig:顯示網域名稱的資訊
a. dig google.com.tw:查詢網域名稱
b. dig gmail.com -t mx:查詢GMail的MX
18. dmesg:顯示或修改核心ring buffer的訊息
a. dmesg:顯示ring buffer的訊息
b. dmesg -c:清除ring buffer的內容
19. du:查詢檔案或目錄的硬碟使用空間
用法:du [選項] 檔案或目錄
01. du -s(or --summarize):顯示目前目錄的大小
02. du -h(or --human-readable):列出人類易讀格式
03. du -sh:顯示目前目錄的大小,也可以指定目錄,ex.『du -sh /etc』。
04. du -c(or --total):顯示個別目錄或檔案的大小,同時也顯示所有目錄或檔案的總和
05. du -ch:顯示目前目錄的及子目錄的大小,可指定目錄
06. du -h test1.txt test2.txt:顯示多個檔案的大小『test1.txt』、『test2.txt』
07. du -m(or --megabytes):顯示目錄內所有檔案使用掉空間的狀況,以『MB』為單位顯示
08. du -s * | sort -rn | head -5:列出目錄下前五個最大的檔案或目錄