1. 程式人生 > 實用技巧 >Linux系統常用操作命令整理

Linux系統常用操作命令整理

1.檢視linux版本:cat /proc/version

2.檢視Linux版本: uname --all

3.檢視php版本:php -v
檢視PHP擴充套件庫: php -m
檢視MySQL版本: mysql -V
檢視Nginx版本:nginx -v(或者大V)

4.檢視gcc版本:gcc --version

5.檢視cmake版本:cmake --version

6.檢視PHP ini位置:php --ini
或者使用:locate php.ini
或者:find / -name php.ini

7.查詢檔案或資料夾:locate bb.php
可在搜尋前更新updatedb

8.重啟PHP服務:service php-fpm restart
重啟nginx:service nginx restart(關閉nginx -s stop)
執行nginx -c /usr/local/nginx/conf/nginx.conf

9.刪除檔案:rm -rf test.com
如果出錯則進入該目錄執行:執行一下 lsattr -a 檢視所有檔案(包含隱藏的),然後執行 chattr -i .user.ini改變此檔案的許可權

10.新增檔案三種方式:vim abc.log
或者:touch abc.log (建立空檔案)
或者:echo ‘’ | cat > hello.txt (建立空檔案)
建立資料夾:mkdir ts
修改資料夾許可權:chmod -R 777 ts 或者 進入資料夾中:chmod -R 777 *

11.查詢某個埠是否被佔用:lsof -i :9501 如果有php程序存在說明被佔用。
殺死該埠:kill -9 5991(程序識別符號)
查詢所有正在監聽執行的埠:( tcp埠:netstat -ntpl ) ( udp埠:netstat -nupl )

12.檢視檔案:
一:cat -n :檢視小檔案(行數小於1000行以下的)用cat -n /www/server/php/72/etc/php.ini
二:more :檢視大檔案(行數幾千行)用more /www/server/php/72/etc/php.ini 回車看下一行,空格看下一螢幕, Q退出,B 上一屏。
三:less:配合 [pageup] [pagedown] 等按鍵的功能來往前往後翻看檔案
四:tail -f a.log 可以檢視檔案最後增加的內容
五:head -n 20 /www/server/php/72/etc/php.ini 顯示前20條

13.查詢檔案中的關鍵字 :進入檔案 vim /www/server/php/72/etc/php.ini 然後/swoole(關鍵字) 即可

14.儲存檔案:
:wq 儲存編輯的檔案 (卡死時呼叫ctrl+Q , ctrl+w是撤回輸入)
:q! 為不儲存檔案

15.檢視所有使用者:cat /etc/passwd 顯示的資訊是:使用者:密碼 :uid:gid:說明:家目錄:使用者使用的shell
新增使用者:useradd 使用者名稱
刪除使用者:userdel 使用者名稱

16.檢視登陸日誌 last -9
清除登陸系統成功的記錄: echo > /var/log/wtmp //此檔案預設開啟時亂碼,可查到ip等資訊

17.修改使用者密碼:在root賬號下passwd +使用者賬號 如:passwd zhou .
修改root密碼直接passwd

18.檢視某個軟體是否安裝:rpm -qa | grep logwatch
或者 yum list installed(或者logwatch)
兩者都沒有說明沒有安裝

19.檢視程序:
四種任選其中一種

top
ps aux
ps -elf
pstree -aup

[/b]

find 基本語法引數如下:

find [PATH] [option] [action]

# 與時間有關的引數:
-mtime n : n為數字,意思為在n天之前的“一天內”被更改過的檔案;
-mtime +n : 列出在n天之前(不含n天本身)被更改過的檔名;
-mtime -n : 列出在n天之內(含n天本身)被更改過的檔名;
-newer file : 列出比file還要新的檔名
# 例如:
find /root -mtime 0 # 在當前目錄下查詢今天之內有改動的檔案

# 與使用者或使用者組名有關的引數:
-user name : 列出檔案所有者為name的檔案
-group name : 列出檔案所屬使用者組為name的檔案
-uid n : 列出檔案所有者為使用者ID為n的檔案
-gid n : 列出檔案所屬使用者組為使用者組ID為n的檔案
# 例如:
find /home/hadoop -user hadoop # 在目錄/home/hadoop中找出所有者為hadoop的檔案

# 與檔案許可權及名稱有關的引數:
-name filename :找出檔名為filename的檔案
-size [+-]SIZE :找出比SIZE還要大(+)或小(-)的檔案
-tpye TYPE :查詢檔案的型別為TYPE的檔案,TYPE的值主要有:一般檔案(f)、裝置檔案(b、c)、
目錄(d)、連線檔案(l)、socket(s)、FIFO管道檔案(p);
-perm mode :查詢檔案許可權剛好等於mode的檔案,mode用數字表示,如0755;
-perm -mode :查詢檔案許可權必須要全部包括mode許可權的檔案,mode用數字表示
-perm +mode :查詢檔案許可權包含任一mode的許可權的檔案,mode用數字表示
# 例如:
find / -name passwd # 查詢檔名為passwd的檔案
find . -perm 0755 # 查詢當前目錄中檔案許可權的0755的檔案
find . -size +12k # 查詢當前目錄中大於12KB的檔案,注意c表示byte

2. ls 命令,展示資料夾內內容,引數如下:

-a :全部的檔案,連同隱藏檔( 開頭為 . 的檔案) 一起列出來~
-A :全部的檔案,連同隱藏檔,但不包括 . 與 .. 這兩個目錄,一起列出來~
-d :僅列出目錄本身,而不是列出目錄內的檔案資料
-f :直接列出結果,而不進行排序 (ls 預設會以檔名排序!)
-F :根據檔案、目錄等資訊,給予附加資料結構,例如:
*:代表可執行檔; /:代表目錄; =:代表 socket 檔案; |:代表 FIFO 檔案;
-h :將檔案容量以人類較易讀的方式(例如 GB, KB 等等)列出來;
-i :列出 inode 位置,而非列出檔案屬性;
-l :長資料序列出,包含檔案的屬性等等資料;
-n :列出 UID 與 GID 而非使用者與群組的名稱 (UID與GID會在賬號管理提到!)
-r :將排序結果反向輸出,例如:原本檔名由小到大,反向則為由大到小;
-R :連同子目錄內容一起列出來;
-S :以檔案容量大小排序!
-t :依時間排序
--color=never :不要依據檔案特性給予顏色顯示;
--color=always :顯示顏色
--color=auto :讓系統自行依據設定來判斷是否給予顏色
--full-time :以完整時間模式 (包含年、月、日、時、分) 輸出
--time={atime,ctime} :輸出 access 時間或 改變許可權屬性時間 (ctime)
而非內容變更時間 (modification time) 例如:ls [-aAdfFhilRS] 目錄名稱ls [--color={none,auto,always}] 目錄名稱ls [--full-time] 目錄名稱

3. cd 命令:

cd /root/Docements # 切換到目錄/root/Docements
cd ./path          # 切換到當前目錄下的path目錄中,“.”表示當前目錄  
cd ../path         # 切換到上層目錄中的path目錄中,“..”表示上一層目錄

4. tree命令,顯示樹形的層級目錄結構,非原生命令,需要安裝tree

使用示例:

5. cp 命令,作用複製,引數如下:

-a :將檔案的特性一起復制
-p :連同檔案的屬性一起復制,而非使用預設方式,與-a相似,常用於備份
-i :若目標檔案已經存在時,在覆蓋時會先詢問操作的進行
-r :遞迴持續複製,用於目錄的複製行為
-u :目標檔案與原始檔有差異時才會複製

6. rm命令作用為刪除,引數:

-f :就是force的意思,忽略不存在的檔案,不會出現警告訊息
-i :互動模式,在刪除前會詢問使用者是否操作
-r :遞迴刪除,最常用於目錄刪除,它是一個非常危險的引數

7. mv命令作用為移動檔案:

-f :force強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋
-i :若目標檔案已經存在,就會詢問是否覆蓋
-u :若目標檔案已經存在,且比目標檔案新,才會更新

8. pwd命令,作用為檢視”當前工作目錄“的完整路徑

pwd -P # 顯示出實際路徑,而非使用連線(link)路徑;pwd顯示的是連線路徑

9. tar命令,用於壓縮解壓:

-c :新建打包檔案
-t :檢視打包檔案的內容含有哪些檔名
-x :解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中
-j :通過bzip2的支援進行壓縮/解壓縮
-z :通過gzip的支援進行壓縮/解壓縮
-v :在壓縮/解壓縮過程中,將正在處理的檔名顯示出來
-f filename :filename為要處理的檔案
-C dir :指定壓縮/解壓縮的目錄dir


壓縮:tar -jcv -f filename.tar.bz2 要被處理的檔案或目錄名稱 查詢:tar -jtv -f filename.tar.bz2 解壓:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄

10. mkdir命令建立目錄:
mkdir [選項]...目錄... 
-m, --mode=模式,設定許可權<模式> (類似 chmod),而不是 rwxrwxrwx 減 umask -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄; -v, --verbose 每次建立新目錄都顯示資訊

11. rmdir 命令刪除目錄:

rmdir [選項]... 目錄...
-p 遞迴刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應的資訊。 
-v --verbose  顯示指令執行過程 

12. gzip 命令壓縮檔案或資料夾為 .gz檔案:

gzip[引數][檔案或者目錄]
-a or --ascii  使用ASCII文字模式。
-c or --stdout or --to-stdout  把壓縮後的檔案輸出到標準輸出裝置,不去更動原始檔案。
-d or --decompress or ----uncompress  解開壓縮檔案。
-f or --force  強行壓縮檔案。不理會檔名稱 or 硬連線是否存在以及該檔案是否為符號連線。
-h or --help  線上幫助。
-l or --list  列出壓縮檔案的相關資訊。
-L or --license  顯示版本與版權資訊。
-n or --no-name  壓縮檔案時,不儲存原來的檔名稱及時間戳記。
-N or --name  壓縮檔案時,儲存原來的檔名稱及時間戳記。
-q or --quiet  不顯示警告資訊。
-r or --recursive  遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。
-S<壓縮字尾字串> or ----suffix<壓縮字尾字串>  更改壓縮字尾字串。
-t or --test  測試壓縮檔案是否正確無誤。
-v or --verbose  顯示指令執行過程。
-V or --version  顯示版本資訊。
-num 用指定的數字num調整壓縮的速度,-1 or --fast表示最快壓縮方法(低壓縮比),-9 or --best表示最慢壓縮方法(高壓縮比)。系統預設值為6。

二. 程序相關命令:

13. ps 命令顯示執行的程序,還會顯示程序的一些資訊如pid, cpu和記憶體使用情況等:

-A :所有的程序均顯示出來
-a :不與terminal有關的所有程序
-u :有效使用者的相關程序
-x :一般與a引數一起使用,可列出較完整的資訊
-l :較長,較詳細地將PID的資訊列出

14. kill 命令用於終止程序,引數:

kill -signal PID

1:SIGHUP,啟動被終止的程序
2:SIGINT,相當於輸入ctrl+c,中斷一個程式的進行
9:SIGKILL,強制中斷一個程序的進行
15:SIGTERM,以正常的結束程序方式來終止程序
17:SIGSTOP,相當於輸入ctrl+z,暫停一個程序的進行

15. killall 命令和引數:

killall [-iIe] [command name]

-i :互動式的意思,若需要刪除時,會詢問使用者
-e :表示後面接的command name要一致,但command name不能超過15個字元
-I :命令名稱忽略大小寫
# 例如:
killall -SIGHUP syslogd # 重新啟動syslogd

16. crontab命令是啟動linux定時任務的服務

service cron start # 啟動cronjob
service cron stop # 停止cronjob
service cron restart #  重啟cronjob
crontab -e # 編輯cronjob任務

17. free 命令用於顯示Linux系統中空閒的、已用的實體記憶體及swap記憶體,及被核心使用的buffer:

free [引數]
-b  以Byte為單位顯示記憶體使用情況。
-k  以KB為單位顯示記憶體使用情況。
-m  以MB為單位顯示記憶體使用情況。
-g 以GB為單位顯示記憶體使用情況。
-o  不顯示緩衝區調節列。
-s<間隔秒數>  持續觀察記憶體使用狀況。
-t  顯示記憶體總和列。
-V  顯示版本資訊。

18. top 命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員:

top [引數]
-b 批處理
-c 顯示完整的治命令
-I 忽略失效過程
-s 保密模式
-S 累積模式
-i<時間> 設定間隔時間
-u<使用者名稱> 指定使用者名稱
-p<程序號> 指定程序
-n<次數> 迴圈顯示的次數

三. 許可權相關命令:

19. chmod命令:

chmod [-R] xyz 檔案或目錄
-R:進行遞迴的持續更改,即連同子目錄下的所有檔案都會更改
#同時,chmod還可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設定)跟rwx搭配來對檔案的許可權進行更改,編號是各種許可權的數字程式碼,示例:
chmod 0755 file # 把file的檔案許可權改變為-rxwr-xr-x
chmod g+w file # 向file的檔案許可權中加入使用者組可寫許可權

20. chown命令改變檔案所有者:

chown [para]... [owner][:[group]] file...
-c顯示更改的部分的資訊
 -f忽略錯誤資訊
 -h修復符號連結
 -R處理指定目錄以及其子目錄下的所有檔案
 -v顯示詳細的處理資訊
 -deference作用於符號連結的指向,而不是連結檔案本身

21. chgrp命令,改變檔案所屬組:

-c 當發生改變時輸出除錯資訊
-f 不顯示錯誤資訊
-R 處理指定目錄以及其子目錄下的所有檔案
-v 執行時顯示詳細的處理資訊
--dereference 作用於符號連結的指向,而不是符號連結本身
--no-dereference 作用於符號連結本身

22. useradd 命令建立使用者賬號:

useradd [-mMnr][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <群組>][-G <群組>][-s ][-u ][使用者帳號]

-c #<備註>  加上備註文字。備註文字會儲存在passwd的備註欄位中。 
  -d #<登入目錄>  指定使用者登入時的啟始目錄。
  -D # 變更預設值.
  -e # <有效期限>  指定帳號的有效期限。
  -f # <緩衝天數>  指定在密碼過期後多少天即關閉該帳號。
  -g # <群組>  指定使用者所屬的群組。
  -G # <群組>  指定使用者所屬的附加群組。
  -m # 自動建立使用者的登入目錄。
  -M # 不要自動建立使用者的登入目錄。
  -n # 取消建立以使用者名稱稱為名的群組.
  -r # 建立系統帳號。
  -s # 指定使用者登入後所使用的shell。
  -u # 指定使用者ID。

23. usermod 修改使用者資訊:

usermod -h
usermod [options] LOGIN
-c #後面接賬號的說明,即/etc/passwd第五欄的說明欄,可以加入一些賬號的說明-d #後面接賬號的家目錄,即修改/etc/passwd的第六欄-e #後面接日期,格式是YYYY-MM-DD也就是在/etc/shadow內的第八欄-f #後面接天數,修改shadow的第七欄-g #後面接主群組,修改/etc/passwd的第四個欄位,即是GID的欄位-G #後面接附加群組,修改這個使用者能夠支援的群組,修改的是/etc/group-a #與 -G 合用,可增加附加群組的支援而非設定-l #後面接賬號名稱。修改賬號名稱,/etc/passwd的第一欄-s #後面接Shell的檔案,例如/bin/bash或/bin/csh等等-u #後面接 UID 數字,修改使用者的UID /etc/passwd第三欄-L #暫時將使用者的密碼凍結,讓他無法登入。其實就是在/etc/shadow的密碼欄前面加上了“!”-U #將/etc/shadow 密碼欄的“!”去掉

24. userdel 刪除使用者:

userdel [options] LOGIN
-f # 強制刪除,包括使用者的一切相關內容,這個引數是危險的引數,不建議大家使用。詳細說明看MAN
-r # 刪除使用者的家目錄和使用者的郵件池

25. groupadd 命令用於將新組加入系統:

groupadd [-g gid] [-o]] [-r] [-f] groupname

-g gid:指定組ID號。
-o:允許組ID號,不必惟一。
-r:加入組ID號,低於499系統賬號。
-f:加入已經有的組時,發展程式退出。

26. groupdel 命令刪除組:

# 用於刪除不再需要的組,如果指定的組中包含使用者,則必須先刪除組裡面的使用者>以後,才能刪除組
groupdel [options] GROUP

27. sudo用來以其他身份來執行命令,預設的身份為root:

sudo(選項)(引數)

-b:在後臺執行指令;
-h:顯示幫助;
-H:將HOME環境變數設為新身份的HOME環境變數;
-k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l:列出目前使用者可執行與無法執行的指令;
-p:改變詢問密碼的提示符號;
-s:執行指定的shell;
-u<使用者>:以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本資訊。

28. passwd 設定使用者的密碼:

passwd [OPTION...] <accountName>
-k, --keep-tokens keep non-expired authentication tokens
-d, --delete delete the password for the named account (root only)
-l, --lock lock the named account (root only)
-u, --unlock unlock the named account (root only)
-f, --force force operation
-x, --maximum=DAYS maximum password lifetime (root only)
-n, --minimum=DAYS minimum password lifetime (root only)
-w, --warning=DAYS number of days warning users receives before password expiration (root only)
-i, --inactive=DAYS number of days after password expiration when an account becomes disabled (root only)
-S, --status report password status on the named account (root)

  

29. groups 顯示使用者所屬組:

groups # 預設顯示當前使用者的組

groups hadoop2 # 顯示hadoop2使用者的組

四. 文字檢視編輯等命令

30. vi/vim 是使用vi編輯器的命令:

vi /var/log/aa.log # 開啟 /var/log/aa.log檔案並編輯

vi的操作命令比較複雜,就不在這裡詳細展開了。

31. cat 用途是連線檔案或標準輸入並列印。這個命令常用來顯示檔案內容,或者將幾個檔案連線起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。

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 之外

32.more 命令和cat的功能一樣都是檢視檔案裡的內容,但有所不同的是more可以按頁來檢視檔案的內容,還支援直接跳轉行等功能:

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
命令引數:
+n 從笫n行開始顯示
-n 定義螢幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示
-c 從頂部清屏,然後顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字元
-p 通過清除視窗而不是滾屏來對檔案進行換頁,與-c選項相似
-s 把連續的多個空行顯示為一行
-u 把檔案內容中的下畫線去掉
常用操作命令:
Enter 向下n行,需要定義。預設為1行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
:f 輸出檔名和當前行的行號
V 呼叫vi編輯器
!命令 呼叫Shell,並執行命令
q 退出more

33. less 命令用法比起more更加的有彈性。在more的時候,我們並沒有辦法向前面翻,只能往後面看,但若使用了less時,就可以使用[pageup][pagedown]等按鍵的功能來往前往後翻看檔案,更容易用來檢視一個檔案的內容!除此之外,在less裡頭可以擁有更多的搜尋功能,不止可以向下搜,也可以向上搜。

less [引數] 檔案
-b <緩衝區大小> 設定緩衝區的大小
-e 當檔案顯示結束後,自動離開
-f 強迫開啟特殊檔案,例如外圍裝置代號、目錄和二進位制檔案
-g 只標誌最後搜尋的關鍵詞
-i 忽略搜尋時的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號
-o <檔名> 將less 輸出的內容在指定檔案中儲存起來
-Q 不使用警告音
-s 顯示連續空行為一行
-S 行過長時間將超出部分捨棄
-x <數字> 將“tab”鍵顯示為規定的數字空格
/字串:向下搜尋“字串”的功能
?字串:向上搜尋“字串”的功能
n:重複前一個搜尋(與 / 或 ? 有關)
N:反向重複前一個搜尋(與 / 或 ? 有關)
b 向後翻一頁
d 向後翻半頁
h 顯示幫助介面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁

34. tail 命令

#從指定點開始將檔案寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日誌檔案,tail-ffilename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容.tail[必要引數][選擇引數][檔案]

-f 迴圈讀取
-q 不顯示處理資訊
-v 顯示詳細的處理資訊
-c<數目> 顯示的位元組數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在程序ID,PID死掉之後結束.
-q, --quiet, --silent 從不輸出給出檔名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

35. head 命令用於顯示檔案的開頭至標準輸出中,預設head命令列印其相應檔案的開頭10行:  

head [引數]... [檔案]...  
-q 隱藏檔名
-v 顯示檔名
-c<位元組> 顯示位元組數
-n<行數> 顯示的行數

36. diff 命令用於比較兩個檔案或目錄的不同:

diff[引數][檔案1或目錄1][檔案2或目錄2]
# diff命令能比較單個檔案或者目錄內容。如果指定比較的是檔案,則只有當輸入為文字檔案時才有效。以逐行的方式,比較文字檔案的異同處。如果指定比較的是目錄的的時候,diff 命令會比較兩個目錄下名字相同的
# 文字檔案。列出不同的二進位制檔案、公共子目錄和只在一個目錄出現的檔案。

-a or --text  #diff預設只會逐行比較文字檔案。
-b or --ignore-space-change  #不檢查空格字元的不同。
-B or --ignore-blank-lines  #不檢查空白行。
-c  #顯示全部內文,並標出不同之處。
-C or --context  #與執行"-c-"指令相同。
-d or --minimal  #使用不同的演演算法,以較小的單位來做比較。
-D or ifdef  #此引數的輸出格式可用於前置處理器巨集。
-e or --ed  #此引數的輸出格式可用於ed的script檔案。
-f or -forward-ed  #輸出的格式類似ed的script檔案,但按照原來檔案的順序來顯示不同處。
-H or --speed-large-files  #比較大檔案時,可加快速度。
-l or --ignore-matching-lines  #若兩個檔案在某幾行有所不同,而這幾行同時都包含了選項中指定的字元 or 字串,則不顯示這兩個檔案的差異。
-i or --ignore-case  #不檢查大小寫的不同。
-l or --paginate  #將結果交由pr程式來分頁。
-n or --rcs  #將比較結果以RCS的格式來顯示。
-N or --new-file  #在比較目錄時,若檔案A僅出現在某個目錄中,預設會顯示:Only in目錄:檔案A若使用-N引數,則diff會將檔案A與一個空白的檔案比較。
-p  #若比較的檔案為C語言的程式碼檔案時,顯示差異所在的函式名稱。
-P or --unidirectional-new-file  #與-N類似,但只有當第二個目錄包含了一個第一個目錄所沒有的檔案時,才會將這個檔案與空白的檔案做比較。
-q or --brief  #僅顯示有無差異,不顯示詳細的資訊。
-r or --recursive  #比較子目錄中的檔案。
-s or --report-identical-files  #若沒有發現任何差異,仍然顯示資訊。
-S or --starting-file  #在比較目錄時,從指定的檔案開始比較。
-t or --expand-tabs  #在輸出時,將tab字元展開。
-T or --initial-tab  #在每行前面加上tab字元以便對齊。
-u,-U or --unified=  #以合併的方式來顯示檔案內容的不同。
-v or --version  #顯示版本資訊。
-w or --ignore-all-space  #忽略全部的空格字元。
-W or --width  #在使用-y引數時,指定欄寬。
-x or --exclude  #不比較選項中所指定的檔案 or 目錄。
-X or --exclude-from  #您可以將檔案 or 目錄型別存成文字檔案,然後在=中指定此文字檔案。
-y or --side-by-side  #以並列的方式顯示檔案的異同之處。

網路相關命令:

37. ping 用於確定主機與外部連線狀態:

ping [引數] [主機名或IP地址]
-d 使用Socket的SO_DEBUG功能。
-f 極限檢測。大量且快速地送網路封包給一臺機器,看它的迴應。
-n 只輸出數值。
-q 不顯示任何傳送封包的資訊,只顯示最後的結果。
-r 忽略普通的Routing Table,直接將資料包送到遠端主機上。通常是檢視本機的網路介面是否有問題。
-R 記錄路由過程。
-v 詳細顯示指令的執行過程。
<p>-c 數目:在傳送指定數目的包後停止。
-i 秒數:設定間隔幾秒送一個網路封包給一臺機器,預設值是一秒送一次。
-I 網路介面:使用指定的網路介面送出資料包。
-l 前置載入:設定在送出要求資訊之前,先行發出的資料包。
-p 範本樣式:設定填滿資料包的範本樣式。
-s 位元組數:指定傳送的資料位元組數,預設值是56,加上8位元組的ICMP頭,一共是64ICMP資料位元組。
-t 存活數值:設定存活數值TTL的大小。

38. ssh命令用於遠端登入上Linux主機:

ssh [-l login_name] [-p port] [user@]hostname

39. scp 命令是securecopy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的:

scp [引數] [原路徑] [目標路徑]

-1 強制scp命令使用協議ssh1
-2 強制scp命令使用協議ssh2
-4 強制scp命令只使用IPv4定址
-6 強制scp命令只使用IPv6定址
-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C 允許壓縮。(將-C標誌傳遞給ssh,從而開啟壓縮功能)
-p 保留原檔案的修改時間,訪問時間和訪問許可權。
-q 不顯示傳輸進度條。
-r 遞迴複製整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的除錯資訊。這些資訊用於除錯連線,驗證和配置問題。
-c cipher 以cipher將資料傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config 指定一個替代的ssh配置檔案,此引數直接傳遞給ssh。
-i identity_file 從指定檔案中讀取傳輸時使用的金鑰檔案,此引數直接傳遞給ssh。
-l limit 限定使用者所能使用的頻寬,以Kbit/s為單位。
-o ssh_option 如果習慣於使用ssh_config(5)中的引數傳遞方式,
-P port 注意是大寫的P, port是指定資料傳輸用到的埠號
-S program 指定加密傳輸時所使用的程式。此程式必須能夠理解ssh(1)的選項。

40. telnet命令用來遠端登入操作:

telnet[引數][主機]-8 允許使用8位字元資料,包括輸入與輸出。
-a 嘗試自動登入遠端系統。
-b<主機別名> 使用別名指定遠端主機名稱。
-c 不讀取使用者專屬目錄裡的.telnetrc檔案。
-d 啟動排錯模式。
-e<脫離字元> 設定脫離字元。
-E 濾除脫離字元。
-f 此引數的效果和指定"-F"引數相同。
-F 使用Kerberos V5認證時,加上此引數可把本地主機的認證資料上傳到遠端主機。
-k<域名> 使用Kerberos認證時,加上此引數讓遠端主機採用指定的領域名,而非該主機的域名。
-K 不自動登入遠端主機。
-l<使用者名稱稱> 指定要登入遠端主機的使用者名稱稱。
-L 允許輸出8位字元資料。
-n<記錄檔案> 指定檔案記錄相關資訊。
-r 使用類似rlogin指令的使用者介面。
-S<服務型別> 設定telnet連線所需的IP TOS資訊。
-x 假設主機有支援資料加密的功能,就使用它。
-X<認證形態> 關閉指定的認證形態。

41. wget 是從遠端下載的工具:

wget [引數] [URL地址]

啟動引數:
-V, –version 顯示wget的版本後退出
-h, –help 列印語法幫助
-b, –background 啟動後轉入後臺執行
-e, –execute=COMMAND 執行`.wgetrc’格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc

記錄和輸入檔案引數:
-o, –output-file=FILE 把記錄寫到FILE檔案中
-a, –append-output=FILE 把記錄追加到FILE檔案中
-d, –debug 列印除錯輸出
-q, –quiet 安靜模式(沒有輸出)
-v, –verbose 冗長模式(這是預設設定)
-nv, –non-verbose 關掉冗長模式,但不是安靜模式
-i, –input-file=FILE 下載在FILE檔案中出現的URLs
-F, –force-html 把輸入檔案當作HTML格式檔案對待
-B, –base=URL 將URL作為在-F -i引數指定的檔案中出現的相對連結的字首
–sslcertfile=FILE 可選客戶端證書
–sslcertkey=KEYFILE 可選客戶端證書的KEYFILE
–egd-file=FILE 指定EGD socket的檔名

下載引數:
–bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用)
-t, –tries=NUMBER 設定最大嘗試連結次數(0 表示無限制).
-O –output-document=FILE 把文件寫到FILE檔案中
-nc, –no-clobber 不要覆蓋存在的檔案或使用.#字首
-c, –continue 接著下載沒下載完的檔案
–progress=TYPE 設定程序條標記
-N, –timestamping 不要重新下載檔案除非比本地檔案新
-S, –server-response 列印伺服器的迴應
–spider 不下載任何東西
-T, –timeout=SECONDS 設定響應超時的秒數
-w, –wait=SECONDS 兩次嘗試之間間隔SECONDS秒
–waitretry=SECONDS 在重新連結之間等待1…SECONDS秒
–random-wait 在下載之間等待0…2*WAIT秒
-Y, –proxy=on/off 開啟或關閉代理
-Q, –quota=NUMBER 設定下載的容量限制
–limit-rate=RATE 限定下載輸率

目錄引數:
-nd –no-directories 不建立目錄
-x, –force-directories 強制建立目錄
-nH, –no-host-directories 不建立主機目錄
-P, –directory-prefix=PREFIX 將檔案儲存到目錄 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER層遠端目錄

HTTP 選項引數:
–http-user=USER 設定HTTP使用者名稱為 USER.
–http-passwd=PASS 設定http密碼為 PASS
-C, –cache=on/off 允許/不允許伺服器端的資料快取 (一般情況下允許)
-E, –html-extension 將所有text/html文件以.html副檔名儲存
–ignore-length 忽略 `Content-Length’頭域
–header=STRING 在headers中插入字串 STRING
–proxy-user=USER 設定代理的使用者名稱為 USER
–proxy-passwd=PASS 設定代理的密碼為 PASS
–referer=URL 在HTTP請求中包含 `Referer: URL’頭
-s, –save-headers 儲存HTTP頭到檔案
-U, –user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION
–no-http-keep-alive 關閉 HTTP活動連結 (永遠連結)
–cookies=off 不使用 cookies
–load-cookies=FILE 在開始會話前從檔案 FILE中載入cookie
–save-cookies=FILE 在會話結束後將 cookies儲存到 FILE檔案中

FTP 選項引數:
-nr, –dont-remove-listing 不移走 `.listing’檔案
-g, –glob=on/off 開啟或關閉檔名的 globbing機制
–passive-ftp 使用被動傳輸模式 (預設值).
–active-ftp 使用主動傳輸模式
–retr-symlinks 在遞迴的時候,將連結指向檔案(而不是目錄)

遞迴下載引數:
-r, –recursive 遞迴下載--慎用!
-l, –level=NUMBER 最大遞迴深度 (inf 或 0 代表無窮)
–delete-after 在現在完畢後區域性刪除檔案
-k, –convert-links 轉換非相對連結為相對連結
-K, –backup-converted 在轉換檔案X之前,將之備份為 X.orig
-m, –mirror 等價於 -r -N -l inf -nr
-p, –page-requisites 下載顯示HTML檔案的所有圖片

遞迴下載中的包含和不包含(accept/reject):
-A, –accept=LIST 分號分隔的被接受副檔名的列表
-R, –reject=LIST 分號分隔的不被接受的副檔名的列表
-D, –domains=LIST 分號分隔的被接受域的列表
–exclude-domains=LIST 分號分隔的不被接受的域的列表
–follow-ftp 跟蹤HTML文件中的FTP連結
–follow-tags=LIST 分號分隔的被跟蹤的HTML標籤的列表
-G, –ignore-tags=LIST 分號分隔的被忽略的HTML標籤的列表
-H, –span-hosts 當遞迴時轉到外部主機
-L, –relative 僅僅跟蹤相對連結
-I, –include-directories=LIST 允許目錄的列表
-X, –exclude-directories=LIST 不被包含目錄的列表
-np, –no-parent 不要追溯到父目錄
wget -S –spider url 不下載只顯示過程

42. 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<長度> 為網絡卡設定傳輸列隊的長度

43. route

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
-c # 顯示更多資訊
-n # 不解析名字
-v # 顯示詳細的處理資訊
-F # 顯示傳送資訊
-C # 顯示路由快取
-f # 清除所有閘道器入口的路由表。
-p # 與 add 命令一起使用時使路由具有永久性。

五. 搜尋檔案:

44. whereis 命令:

# whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b)、man說明檔案(引數-m)和原始碼檔案(引數-s)。如果省略引數,則返回所有資訊。和find相比,whereis查詢的速度非常快,這是因為linux系統會將 系統內的所有檔案都記錄在一個數據庫檔案中,當使用whereis和locate時,會從資料庫中查詢資料,而不是像find命令那樣,通過遍歷硬碟來查詢,效率自然會很高。 但是該資料庫檔案並不是實時更新,預設情況下時一星期更新一次,因此,我們在用whereis和locate 查詢檔案時,有時會找到已經被刪除的資料,或者剛剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新。

whereis [-bmsu] [BMS 目錄名 -f ] 檔名

 -b 定位可執行檔案。 -m 定位幫助檔案。 -s 定位原始碼檔案。 -u 搜尋預設路徑下除可執行檔案、原始碼檔案、幫助檔案以外的其它檔案。 -B 指定搜尋可執行檔案的路徑。 -M 指定搜尋幫助檔案的路徑。 -S 指定搜尋原始碼檔案的路徑。

45. locate 命令

# locate命令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程式來更新,updatedb是由crondaemon週期性建立的,locate命令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)Locate [選擇引數] [樣式]
-e 將排除在尋找的範圍之外。
-1 如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到 的檔案。這會始速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的 許可權資料。
-f 將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案 放在資料庫中。
-q 安靜模式,不會顯示任何錯誤訊息。
-n 至多顯示 n個輸出。
-r 使用正規運算式 做尋找的條件。
-o 指定資料庫存的名稱。
-d 指定資料庫的路徑
-h 顯示輔助訊息
-V 顯示程式的版本訊息

46. which會在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果:

which 可執行檔名稱 
-n  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p  與-n引數相同,但此處的包括了檔案的路徑。
-w  指定輸出時欄位的寬度。
-V  顯示版本資訊

六. 其他:

47. grep命令

該命令常用於分析一行的資訊,若當中有我們所需要的資訊,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等,比如可以加在ps, tail, cat後面

它的簡單語法為

grep [-acinv] [--color=auto] '查詢字串' filename

48. clear 命令用於清除終端螢幕上現有的文字內容,將之上滾:

額,這條不需要啥示例,非常簡單...用了以後就沒有了...

49. date 命令用於顯示或設定時間:

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。

50.ln 命令是為某一個檔案在另外一個位置建立一個同步的連結

Linux檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。

軟連結:
1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式
2.軟連結可以 跨檔案系統 ,硬連結不可以
3.軟連結可以對一個不存在的檔名進行連結
4.軟連結可以對目錄進行連結

硬連結:
1.硬連結,以檔案副本的形式存在。但不佔用實際空間。
2.不允許給目錄建立硬連結
3.硬連結只有在同一個檔案系統中才能建立

ln [引數][原始檔或目錄][目標檔案或目錄]

必要引數:
-b 刪除,覆蓋以前建立的連結
-d 允許超級使用者製作目錄的硬連結
-f 強制執行
-i 互動模式,檔案存在則提示使用者是否覆蓋
-n 把符號連結視為一般目錄
-s 軟連結(符號連結)
-v 顯示詳細的處理過程

選擇引數:
-S “-S<字尾備份字串> ”或 “--suffix=<字尾備份字串>”
-V “-V<備份方式>”或“--version-control=<備份方式>”