Linux 的命令確實很是多,然而熟悉 Linux 的人歷來不會由於 Linux 的命令太多而煩惱。由於咱們僅僅只須要掌握經常使用命令,就徹底能夠駕馭 Linux。php
接下來,讓咱們一塊兒來看看都有那些經常使用的 Linux 命令吧!node
1、文件目錄操做
1. ls 命令
ls 命令不只能夠查看 linux 文件夾包含的文件並且能夠查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。linux
命令格式
ls [選項][目錄名]ios
經常使用參數
- -l :列出長數據串,包含文件的屬性與權限數據等
- -a :列出所有的文件,連同隱藏文件(開頭爲.的文件)一塊兒列出來(經常使用)
- -d :僅列出目錄自己,而不是列出目錄的文件數據
- -h :將文件容量以較易讀的方式(GB,kB等)列出來
- -R :連同子目錄的內容一塊兒列出(遞歸列出),等於該目錄下的全部文件都會顯示出來
使用實例
1.列出 home 目錄下的全部文件和目錄的詳細資料。正則表達式
ls -a -l /home ls -al /home
2.列出當前目錄下全部以"d"開頭的文件目錄詳情內容。shell
ls -l d*
2.cd命令
最基本的命令語句,其餘的命令語句要進行操做,都是創建在使用 cd 命令上的。用於切換當前目錄至dirName。緩存
命令格式
cd [目錄名]安全
操做案例
1.從當前目錄進入系統根目錄。bash
cd /
2.跳轉到 home/Code 目錄。服務器
cd /home/Code
3.pwd 命令
查看"當前工做目錄"的完整路徑。
命令格式:
pwd [選項]
經常使用參數:
- -P :顯示實際物理路徑,而非使用鏈接(link)路徑
- -L :當目錄爲鏈接路徑時,顯示鏈接路徑
操做案例
1.顯示當前所在路徑。
pwd
4.mkdir 命令
用來建立指定的名稱的目錄,要求建立目錄的用戶在當前目錄中具備寫權限,而且指定的目錄名不能是當前目錄中已有的目錄。
命令格式
mkdir [選項] 目錄
經常使用參數
- -m, --mode=模式,設定權限<模式> (相似 chmod),而不是 rwxrwxrwx 減 umask
- -p, --parents 能夠是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動創建好那些尚不存在的目錄,即一次能夠創建多個目錄;
- -v, --verbose 每次建立新目錄都顯示信息
- --help 顯示此幫助信息並退出
- --version 輸出版本信息並退出
使用實例
1.建立一個空目錄。
mkdir test
2.遞歸建立多個目錄。
mkdir test/test1
3.建立權限爲777的目錄。
mkdir -m 777 test2
4.建立目錄都顯示信息。
mkdir -v test4
5.rm 命令
刪除一個目錄中的一個或多個文件或目錄,若是沒有使用- r選項,則rm不會刪除目錄。若是使用 rm 來刪除文件,一般仍能夠將該文件恢復原狀。
命令格式
rm [選項] 文件
經常使用參數
- -f, --force 忽略不存在的文件,從不給出提示。
- -i, --interactive 進行交互式刪除
- -r, -R, --recursive 指示rm將參數中列出的所有目錄和子目錄均遞歸地刪除。
- -v, --verbose 詳細顯示進行的步驟
- --help 顯示此幫助信息並退出
- --version 輸出版本信息並退出
使用實例
1.刪除文件 test.txt,系統會提示是否刪除。
rm test.txt
2.強制刪除 test.txt,系統再也不提示。
rm -f test.txt
3.將 test 子目錄及目錄中全部檔案刪除。
rm -r test
6.rmdir 命令
該命令從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具備對父目錄的寫權限。
命令格式
rmdir [選項] 目錄
經常使用參數
-
p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄爲空時,也一同被刪除。若是整個路徑被刪除或者因爲某種緣由保留部分路徑,則系統在標準輸出上顯示相應的信息。
-
-v, --verbose 顯示指令執行過程
使用實例
1.刪除空目錄 test1,非空目錄沒法刪除。
rmdir test1
2.當子目錄被刪除後使它也成爲空目錄的話,則順便一併刪除
rmdir -p test2 # test 目錄下僅有 test2
7. mv 命令
能夠用來移動文件或者將文件更名(move (rename) files)。當第二個參數類型是文件時,mv命令完成文件重命名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數能夠有多個,mv命令將各參數指定的源文件均移至目標目錄中。
命令格式
mv [選項] 源文件或目錄 目標文件或目錄
經常使用參數
- -b :若需覆蓋文件,則覆蓋前先行備份
- -f :force 強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋
- -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋
- -u :若目標文件已經存在,且 source 比較新,纔會更新(update)
- -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的狀況,此時目標目錄在前,源文件在後
使用實例
1.將 test1.txt 重命名爲 test2.txt。
mv test1.txt test2.txt
2.移動文件 test1.txt 到目錄 test2
mv test1.txt test2
3.將文件 test1.txt、test2.txt、test3.txt 移動到目錄 test3。
mv test1.txt test2.txt test3.txt test3
8.cp 命令
將源文件複製至目標文件,或將多個源文件複製至目標目錄。
命令格式
cp [選項] 源文件 目錄 或 cp [選項] -t 目錄 源文件
經常使用參數
- -t --target-directory 指定目標目錄
- -i --interactive 覆蓋前詢問(使前面的 -n 選項失效)
- -n --no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項失效)
- -f --force 強行復制文件或目錄,不論目的文件或目錄是否已經存在
- -u --update 使用這項參數以後,只會在源文件的修改時間較目的文件更新時,或是對應的目的文件並不存在,才複製文件
使用實例
1.複製文件 test1.txt 到 test1 目錄
cp test1.txt test1 # 若文件存在,會提示是否覆蓋。若不存在直接完成複製
- 複製 test1 整個目錄到 test2
cp -a test1 test2
9. touch 命令
touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間。
命令格式
touch [選項] 文件
經常使用參數
- -a 或--time=atime或--time=access或--time=use 只更改存取時間
- -c 或--no-create 不創建任何文檔
- -d 使用指定的日期時間,而非如今的時間
- -f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題
- -m 或--time=mtime或--time=modify 只更改變更時間
- -r 把指定文檔或目錄的日期時間,通通設成和參考文檔或目錄的日期時間相同 -t 使用指定的日期時間,而非如今的時間
使用實例
1.建立不存在的文件test.txt
touch test.txt
2.更新 test.txt 的實踐和 test1.txt 時間戳相同
touch -r test.txt test1.txt
10.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 以外
使用實例
1.把 test.log 的文件內容加上行號後輸入 test1.log 這個文件裏。
cat -n test.log test1.log
- 將 test.log 的文件內容反向顯示。
tac test.log
11. nl 命令
輸出的文件內容自動的加上行號!其默認的結果與 cat -n 有點不太同樣, nl 能夠將行號作比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。
命令格式
nl [選項] [文件]
經常使用參數
-
-b :指定行號指定的方式,主要有兩種:
-
-b a :表示不管是否爲空行,也一樣列出行號(相似 cat -n)
-
-b t :若是有空行,空的那一行不要列出行號(默認值)
-
-n :列出行號表示的方法,主要有三種:
-
-n ln :行號在螢幕的最左方顯示
-
-n rn :行號在本身欄位的最右方顯示,且不加 0
-
-n rz :行號在本身欄位的最右方顯示,且加 0
-
-w :行號欄位的佔用的位數
使用實例
- 用 nl 列出 test.log 的內容。
nl test.log
- 用 nl 列出 test.log 的內容,空本行也加上行號。
nl -b a test.log
12.more 命令
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
使用實例
1.顯示文件 test.log 第3行起內容。
more +3 test.log
2.從文件 test.log 查找第一個出現「day3」字符串的行,並從該處前2行開始顯示輸出。
more +/day3 test.log
- 設置每屏顯示行數
more -5 test.log
13. less 命令
less 與 more 相似,但使用 less 能夠隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,並且 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]: 向上翻動一頁
使用實例
1.查看文件 test.log。
less test.log
14. head 命令
head 用來顯示檔案的開頭至標準輸出中,默認 head 命令打印其相應文件的開頭 10 行。
命令格式
head [參數] [文件]
經常使用參數
- -q 隱藏文件名
- -v 顯示文件名
- -c<字節> 顯示字節數
- -n<行數> 顯示的行數
使用實例
1.顯示文件 test.log 的前 5 行
head -n 5 test.log
2.顯示文件 test.log 前 20 個字節
head -c 20 test.log
15.tail 命令
顯示指定文件末尾內容,不指定文件時,做爲輸入信息進行處理。經常使用查看日誌文件。
命令格式
tail [必要參數] [選擇參數] [文件]
經常使用參數
- -f 循環讀取
- -q 不顯示處理信息
- -v 顯示詳細的處理信息
- -c<數目> 顯示的字節數
- -n<行數> 顯示行數
- --pid=PID 與-f合用,表示在進程ID,PID死掉以後結束.
- -q, --quiet, --silent 從不輸出給出文件名的首部
- -s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒
使用實例
1.顯示文件 test.log 最後 5 行內容。
tail -n 5 test.log
2.循環查看文件內容
tail -f test.log
2、文件查找
16.which 命令
which指令會在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。
命令格式
which 可執行文件名稱
經常使用參數
- -n 指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名
- -p 與-n參數相同,但此處的包括了文件的路徑
- -w 指定輸出時欄位的寬度
- -V 顯示版本信息
使用實例
1.查找文件、顯示命令路徑。
which pwd
- 用 which 去找出 which
which which
17.whereis 命令
whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。
命令格式
whereis [-bmsu] [BMS 目錄名 -f ] 文件名
經常使用參數
- -b 定位可執行文件
- -m 定位幫助文件
- -s 定位源代碼文件
- -u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件之外的其它文件
- -B 指定搜索可執行文件的路徑
- -M 指定搜索幫助文件的路徑
- -S 指定搜索源代碼文件的路徑
使用實例
1.將和 svn 文件相關的文件都查找出來。
whereis svn
2.只將二進制文件查找出來。
whereis -b svn
18.locate 命令
能夠很快速的搜尋檔案系統內是否有指定的檔案。
命令格式
Locate [選擇參數] [樣式]
經常使用參數
- -e 將排除在尋找的範圍以外。
- -1 若是 是 1.則啓動安全模式。在安全模式下,使用者不會看到權限沒法看到 的檔案。這會始速度減慢,由於 locate 必須至實際的檔案系統中取得檔案的 權限資料。
- -f 將特定的檔案系統排除在外,例如咱們沒有到理要把 proc 檔案系統中的檔案 放在資料庫中。
- -q 安靜模式,不會顯示任何錯誤訊息。
- -n 至多顯示 n個輸出。
- -r 使用正規運算式 作尋找的條件。
- -o 指定資料庫存的名稱。
- -d 指定資料庫的路徑
使用實例
1.查找和 pwd 相關的全部文件。
locate pwd
- 搜索etc 目錄下,全部以 m 開頭的文件。
locate /etc/m
19. find 命令
主要做用是沿着文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操做。
命令格式
find [選項] [搜索路徑] [表達式]
經常使用參數
- -print find 命令將匹配的文件輸出到標準輸出
- -exec find 命令對匹配的文件執行該參數所給出的
- shell 命令
- -name 按照文件名查找文件
- -type 查找某一類型的文件
使用實例
1.打印當前目錄文件目錄列表。
find . -print
2.打印當前目錄下全部不以.txt 結尾的文件名。
find . ! -name "*.txt"
3.打印當前目錄下全部權限爲 777 的 php 文件。
find . -type f -name "*.php" -perm 777
4.找到當前目錄下全部 php 文件,並顯示其詳細信息。
find . -name "*.php" -exec ls -l {} \;
5.查找當前目錄下全部 c 代碼文件,統計總行數。
find . -type f -name "*.c" | xargs wc -l
xargs 命令能夠從標準輸入接收輸入,並把輸入轉換爲一個特定的參數列表。 命令格式: command | xargs [選項] [command] xargs 命令應該緊跟在管道操做符以後,由於它以標準輸入做爲主要的源數據流。 經常使用參數
- -n 指定每行最大的參數數量
- -d 指定分隔符
3、文件打包上傳和下載
20.tar 命令
用來壓縮和解壓文件。tar自己不具備壓縮功能。他是調用壓縮功能實現的。
命令格式
tar [必要參數] [選擇參數] [文件]
經常使用參數
必要參數:
- -A 新增壓縮文件到已存在的壓縮
- -B 設置區塊大小
- -c 創建新的壓縮文件
- -d 記錄文件的差異
- -r 添加文件到已經壓縮的文件
- -u 添加改變了和現有的文件到已經存在的壓縮文件
- -x 從壓縮的文件中提取文件
- -t 顯示壓縮文件的內容
- -z 支持gzip解壓文件
- -j 支持bzip2解壓文件
- -Z 支持compress解壓文件
- -v 顯示操做過程
- -l 文件系統邊界設置
- -k 保留原有文件不覆蓋
- -m 保留文件不被覆蓋
- -W 確認壓縮文件的正確性
可選參數:
- -b 設置區塊數目
- -C 切換到指定目錄
- -f 指定壓縮文件
- --help 顯示幫助信息
- --version 顯示版本信息
使用實例
1.將文件打所有打包成tar包。
tar -cvf test.tar test.log # 僅打包,不壓縮! tar -zcvf test.tar.gz test.log # 打包後,以 gzip 壓縮 tar -zcvf test.tar.bz2 test.log # 打包後,以 bzip2 壓縮
2.將 tar 包解壓縮
tar -zxvf test.tar.gz
21.gzip 命令
使用普遍的壓縮程序,文件經它壓縮事後,其名稱後面會多出".gz"的擴展名。
命令格式
gzip [參數] [文件或者目錄]
經常使用參數
- -a或--ascii 使用ASCII文字模式。
- -c或--stdout或--to-stdout 把壓縮後的文件輸出到標準輸出設備,不去更動原始文件。
- -d或--decompress或----uncompress 解開壓縮文件。
- -f或--force 強行壓縮文件。不理會文件名稱或硬鏈接是否存在以及該文件是否爲符號鏈接。
- -h或--help 在線幫助。
使用實例
1.把 test1 目錄下的每一個文件壓縮成.gz 文件。
test6 $ gzip *
4、文件權限設置
22.chmod 命令
用於改變linux系統文件或目錄的訪問權限。
命令格式
chmod [-cfvR] [--help] [--version] mode file
經常使用參數
必要參數:
- -c 當發生改變時,報告處理信息
- -f 錯誤信息不輸出
- -R 處理指定目錄以及其子目錄下的全部文件
- -v 運行時顯示詳細處理信息
- 選擇參數:
- --reference=<目錄或者文件> 設置成具備指定目錄或者文件具備相同的權限
- --version 顯示版本信息
- <權限範圍>+<權限設置> 使權限範圍內的目錄或者文件具備指定的權限
- <權限範圍>-<權限設置> 刪除權限範圍的目錄或者文件的指定權限
- <權限範圍>=<權限設置> 設置權限範圍內的目錄或者文件的權限爲指定的值
權限範圍:
- u :目錄或者文件的當前的用戶
- g :目錄或者文件的當前的羣組
- o :除了目錄或者文件的當前用戶或羣組以外的用戶或者羣組
- a :全部的用戶及羣組
權限代號:
- r:讀權限,用數字4表示
- w:寫權限,用數字2表示
- x:執行權限,用數字1表示
- -:刪除權限,用數字0表示
使用實例
1.增長文件全部用戶組可執行權限
chmod a+x test.log
- 刪除全部用戶的可執行權限
chmod a-x test.log
23.chgrp 命令
可採用羣組名稱或羣組識別碼的方式改變文件或目錄的所屬羣組。
命令格式
chgrp [選項] [組] [文件]
經常使用參數
必要參數:
- -c 當發生改變時輸出調試信息
- -f 不顯示錯誤信息
- -R 處理指定目錄以及其子目錄下的全部文件
- -v 運行時顯示詳細的處理信息
- --dereference 做用於符號連接的指向,而不是符號連接自己
- --no-dereference 做用於符號連接自己
選擇參數:
- --reference=<文件或者目錄>
- --help 顯示幫助信息
- --version 顯示版本信息
使用實例
1.改變文件的羣組屬性
chgrp -v bin test.log
2.改變文件test1.log 的羣組屬性,使得文件test1.log的羣組屬性和參考文件test.log的羣組屬性相同
chgrp --reference=test.log test1.log
24.chown 命令
經過chown改變文件的擁有者和羣組。
命令格式
chown [選項] [全部者] [:[組]] 文件
經常使用參數
必要參數:
- -c 顯示更改的部分的信息
- -f 忽略錯誤信息
- -h 修復符號連接
- -R 處理指定目錄以及其子目錄下的全部文件
- -v 顯示詳細的處理信息
- -deference 做用於符號連接的指向,而不是連接文件自己
選擇參數:
- --reference=<目錄或文件> 把指定的目錄/文件做爲參考,把操做的文件/目錄設置成參考文件/目錄相同擁有者和羣組
- --from=<當前用戶:當前羣組> 只有當前用戶和羣組跟指定的用戶和羣組相同時才進行改變
- --help 顯示幫助信息
- --version 顯示版本信息
使用實例
1.改變擁有者和羣組
chown mail:mail test.log
5、磁盤存儲
25. df 命令
顯示指定磁盤文件的可用空間。
命令格式
df [選項] [文件]
經常使用參數
必要參數:
- -a 所有文件系統列表
- -h 方便閱讀方式顯示
- -H 等於「-h」,可是計算式,1K=1000,而不是1K=1024
- -i 顯示inode信息
- -k 區塊爲1024字節
- -l 只顯示本地文件系統
- -m 區塊爲1048576字節
- --no-sync 忽略 sync 命令
- -P 輸出格式爲POSIX
- --sync 在取得磁盤信息前,先執行sync命令
- -T 文件系統類型
選擇參數:
- --block-size=<區塊大小> 指定區塊大小
- -t<文件系統類型> 只顯示選定文件系統的磁盤信息
- -x<文件系統類型> 不顯示選定文件系統的磁盤信息
- --help 顯示幫助信息
- --version 顯示版本信息
使用實例
1.顯示指定磁盤使用狀況
df -t ext3
26. du 命令
顯示每一個文件和目錄的磁盤使用空間。
命令格式
du [選項] [文件]
經常使用參數
- -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 以一開始處理時的文件系統爲準,若趕上其它不一樣的文件系統目錄則略過。
- -L<符號連接>或--dereference<符號連接> 顯示選項中所指定符號連接的源文件大小。
- -S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。
- -X<文件>或--exclude-from=<文件> 在<文件>指定目錄或文件。
- --exclude=<目錄或文件> 略過指定的目錄或文件。
- -D或--dereference-args 顯示指定符號連接的源文件大小。
- -H或--si 與-h參數相同,可是K,M,G是以1000爲換算單位。
- -l或--count-links 重複計算硬件連接的文件。
使用實例
1.顯示指定目錄或文件所佔空間
du test # 目錄 du test.log # 文件
6、性能監控和優化命令
27.top 命令
顯示當前系統正在執行的進程的相關信息,包括進程ID、內存佔用率、CPU佔用率等。
命令格式
top [參數]
常見參數
- -b 批處理
- -c 顯示完整的治命令
- -I 忽略失效過程
- -s 保密模式
- -S 累積模式
- -i<時間> 設置間隔時間
- -u<用戶名> 指定用戶名
- -p<進程號> 指定進程
- -n<次數> 循環顯示的次數
使用實例
- 顯示進程信息。
top
28.free 命令
顯示系統使用和空閒的內存狀況,包括物理內存、交互區內存(swap)和內核緩衝區內存。
命令格式
free [參數]
常見參數
- -b 以Byte爲單位顯示內存使用狀況
- -k 以KB爲單位顯示內存使用狀況
- -m 以MB爲單位顯示內存使用狀況
- -g 以GB爲單位顯示內存使用狀況
- -o 不顯示緩衝區調節列
- -s<間隔秒數> 持續觀察內存使用情況
- -t 顯示內存總和列。
- -V 顯示版本信息。
使用實例
1.顯示內存狀況。
free free -g #以GB爲單位 free -m #以MB爲單位
29. vmstat
用來顯示虛擬內存的信息。
命令格式
- vmstat [-a] [-n] [-S unit] [delay [ count]]
- vmstat [-s] [-n] [-S unit]
- vmstat [-m] [-n] [delay [ count]]
- vmstat [-d] [-n] [delay [ count]]
- vmstat [-p disk partition] [-n] [delay [ count]]
- vmstat [-f]
- vmstat [-V]
常見參數
- -a:顯示活躍和非活躍內存
- -f:顯示從系統啓動至今的fork數量
- -m:顯示slabinfo
- -n:只在開始時顯示一次各字段名稱
- -s:顯示內存相關統計信息及多種系統活動數量
- delay:刷新時間間隔。若是不指定,只顯示一條結果
- count:刷新次數。若是不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮
- -d:顯示磁盤相關統計信息
- -p:顯示指定磁盤分區統計信息
- -S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別表明1000、102四、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)
使用實例
1.顯示活躍和非活躍內存。
vmstat -a 5 5 # 5秒時間內進行5次採樣
30.lostat 命令
經過iostat方便查看CPU、網卡、tty設備、磁盤、CD-ROM 等等設備的活動狀況, 負載信息。
命令格式
iostat [參數] [時間] [次數]
常見參數
- -C 顯示CPU使用狀況
- -d 顯示磁盤使用狀況
- -k 以 KB 爲單位顯示
- -m 以 M 爲單位顯示
- -N 顯示磁盤陣列(LVM) 信息
- -n 顯示NFS 使用狀況
- -p[磁盤] 顯示磁盤和分區的狀況
- -t 顯示終端和CPU的信息
- -x 顯示詳細信息
使用實例
1.定時顯示全部信息。
iostat 2 3 #每隔 2秒刷新顯示,且顯示3次
31. lsof 命令
用於查看你進程開打的文件,打開文件的進程,進程打開的端口(TCP、UDP)。
命令格式
lsof [參數] [文件]
常見參數
- -a 列出打開文件存在的進程
- -c<進程名> 列出指定進程所打開的文件
- -g 列出GID號進程詳情
- -d<文件號> 列出佔用該文件號的進程
- +d<目錄> 列出目錄下被打開的文件
- +D<目錄> 遞歸列出目錄下被打開的文件
- -n<目錄> 列出使用NFS的文件
- -i<條件> 列出符合條件的進程。(四、六、協議、:端口、 @ip )
- -p<進程號> 列出指定進程號所打開的文件
- -u 列出UID號進程詳情
使用實例
1.查看誰正在使用bash文件,也就是說查找某個文件相關的進程。
lsof /bin/bash
7、網絡命令
32.ipconfig 命令
ifconfig 命令用來查看和配置網絡設備。
命令格式
ifconfig [網絡設備] [參數]
常見參數
- up 啓動指定網絡設備/網卡
- down 關閉指定網絡設備/網卡。
- arp 設置指定網卡是否支持ARP協議
- -promisc 設置是否支持網卡的promiscuous模式,若是選擇此參數,網卡將接收網絡中發給它全部的數據包
- -allmulti 設置是否支持多播模式,若是選擇此參數,網卡將接收網絡中全部的多播數據包
- -a 顯示所有接口信息
- -s 顯示摘要信息(相似於 netstat -i)
- add 給指定網卡配置IPv6地址
- del 刪除指定網卡的IPv6地址
使用實例
1.啓動關閉指定網卡
ifconfig eth0 up ifconfig eth0 down
2.用ifconfig修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
33. route 命令
Route命令是用於操做基於內核ip路由表,它的主要做用是建立一個靜態路由讓指定一個主機或者一個網絡經過一個網絡接口,如eth0。
命令格式
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
常見參數
- -c 顯示更多信息
- -n 不解析名字
- -v 顯示詳細的處理信息
- -F 顯示發送信息
- -C 顯示路由緩存
- -f 清除全部網關入口的路由表。
- -p 與 add 命令一塊兒使用時使路由具備永久性。
- add:添加一條新路由。
- del:刪除一條路由。
- -net:目標地址是一個網絡。
- -host:目標地址是一個主機。
- netmask:當添加一個網絡路由時,須要使用網絡掩碼。
- gw:路由數據包經過網關。注意,你指定的網關必須可以達到。
- metric:設置路由跳數。
- Command 指定您想運行的命令 (Add/Change/Delete/Print)。
- Destination 指定該路由的網絡目標。
使用實例
1.顯示當前路由
route route -n
2.添加網關/設置網關
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
34. ping 命令
肯定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。
命令格式
ping [參數] [主機名或IP地址]
常見參數
- -d 使用Socket的SO_DEBUG功能
- -f 極限檢測。大量且快速地送網絡封包給一臺機器,看它的迴應
- -n 只輸出數值
- -q 不顯示任何傳送封包的信息,只顯示最後的結果
- -r 忽略普通的Routing Table,直接將數據包送到遠端主機上。一般是查看本機的網絡接口是否有問題
- -R 記錄路由過程
- -v 詳細顯示指令的執行過程
- -c 數目:在發送指定數目的包後中止
- -i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次 -I 網絡界面:使用指定的網絡界面送出數據包 -l 前置載入:設置在送出要求信息以前,先行發出的數據包 -p 範本樣式:設置填滿數據包的範本樣式 -s 字節數:指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節 -t 存活數值:設置存活數值TTL的大小
使用實例
- ping 網關
ping -b 192.168.120.1
35.traceroute 命令
讓你追蹤網絡數據包的路由途徑,預設數據包大小是40Bytes,用戶可另行設置。
命令格式
traceroute [參數] [主機]
常見參數
- -d 使用Socket層級的排錯功能
- -f 設置第一個檢測數據包的存活數值TTL的大小
- -F 設置勿離斷位
- -g 設置來源路由網關,最多可設置8個
- -i 使用指定的網絡界面送出數據包
- -I 使用ICMP迴應取代UDP資料信息
- -m 設置檢測數據包的最大存活數值TTL的大小
- -n 直接使用IP地址而非主機名稱
- -p 設置UDP傳輸協議的通訊端口
- -r 忽略普通的Routing Table,直接將數據包送到遠端主機上
- -s 設置本地主機送出數據包的IP地址
- -t 設置檢測數據包的TOS數值
- -v 詳細顯示指令的執行過程
- -w 設置等待遠端主機回報的時間
- -x 開啓或關閉數據包的正確性檢驗
使用實例
1.traceroute 用法簡單、最經常使用的用法
traceroute www.baidu.com
- 跳數設置
traceroute -m 10 www.baidu.com
36.netstat 命令
用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,通常用於檢驗本機各端口的網絡鏈接狀況。
命令格式
netstat [-acCeFghilMnNoprstuvVwx] [-A<網絡類型>] [--ip]
常見參數
- -a或–all 顯示全部連線中的Socket
- -A<網絡類型>或–<網絡類型> 列出該網絡類型連線中的相關地址
- -c或–continuous 持續列出網絡狀態
- -C或–cache 顯示路由器配置的快取信息
- -e或–extend 顯示網絡其餘相關信息
- -F或–fib 顯示FIB
- -g或–groups 顯示多重廣播功能羣組組員名單
- -h或–help 在線幫助
- -i或–interfaces 顯示網絡界面信息表單
- -l或–listening 顯示監控中的服務器的Socket
- -M或–masquerade 顯示假裝的網絡連線
- -n或–numeric 直接使用IP地址,而不經過域名服務器
- -N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號鏈接名稱
- -o或–timers 顯示計時器
- -p或–programs 顯示正在使用Socket的程序識別碼和程序名稱
- -r或–route 顯示Routing Table
- -s或–statistice 顯示網絡工做信息統計表
- -t或–tcp 顯示TCP傳輸協議的連線情況
- -u或–udp 顯示UDP傳輸協議的連線情況
- -v或–verbose 顯示指令執行過程
- -V或–version 顯示版本信息
- -w或–raw 顯示RAW傳輸協議的連線情況
- -x或–unix 此參數的效果和指定」-A unix」參數相同
- –ip或–inet 此參數的效果和指定」-A inet」參數相同
使用實例
- 列出全部端口
netstat -a
37.telnet 命令
執行telnet指令開啓終端機階段做業,並登入遠端主機。
命令格式
telnet [參數] [主機]
常見參數
- -8 容許使用8位字符資料,包括輸入與輸出
- -a 嘗試自動登入遠端系統
- -b<主機別名> 使用別名指定遠端主機名稱
- -c 不讀取用戶專屬目錄裏的.telnetrc文件
- -d 啓動排錯模式
- -e<脫離字符> 設置脫離字符
- -E 濾除脫離字符
- -f 此參數的效果和指定"-F"參數相同
使用實例
1.遠程服務器沒法訪問
telnet 192.168.120.206
8、其餘命令
38.ln 命令
爲某一個文件在另一個位置創建一個同步的連接.當咱們須要在不一樣的目錄,用到相同的文件時,咱們不須要在每個須要的目錄下都放一個必須相同的文件,咱們只要在某個固定的目錄,放上該文件,而後在 其它的目錄下用ln命令連接(link)它就能夠,沒必要重複的佔用磁盤空間。
命令格式
ln [參數] [源文件或目錄] [目標文件或目錄]
經常使用參數
必要參數:
- -b 刪除,覆蓋之前創建的連接
- -d 容許超級用戶製做目錄的硬連接
- -f 強制執行
- -i 交互模式,文件存在則提示用戶是否覆蓋
- -n 把符號連接視爲通常目錄
- -s 軟連接(符號連接)
- -v 顯示詳細的處理過程
選擇參數:
- -S 「-S<字尾備份字符串> 」或 「--suffix=<字尾備份字符串>」
- -V 「-V<備份方式>」或「--version-control=<備份方式>」
使用實例
1.爲 test.log文件建立軟連接linktest。
ln -s test.log linktest
2.爲 test.log建立硬連接lntest。
ln test.log lntest
39.diff 命令
比較單個文件或者目錄內容。
命令格式
diff [參數] [文件1或目錄1] [文件2或目錄2]
經常使用參數
- -c 上下文模式,顯示所有內文,並標出不一樣之處
- -u 統一模式,以合併的方式來顯示文件內容的不一樣
- -a 只會逐行比較文本文件
- -N 在比較目錄時,若文件 A 僅出如今某個目錄中,預設會顯示:Only in 目錄。若使用 -N 參數,則 diff 會將文件 A 與一個空白的文件比較
- -r 遞歸比較目錄下的文件
使用實例
1.顯示 test1.txt 和 test2.txt 兩個文件差別。
diff test1.txt test2.txt
40.grep 命令
一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。
命令格式
grep [option] pattern file
經常使用參數
- -c 計算找到‘搜尋字符串’(即 pattern)的次數
- -i 忽略大小寫的不一樣,因此大小寫視爲相同
- -n 輸出行號
- -v 反向選擇,打印不匹配的行
- -r 遞歸搜索
- --color=auto 將找到的關鍵詞部分加上顏色顯示
使用實例
1.將 /etc/passwd 文件中出現 root 的行取出來,關鍵詞部分加上顏色顯示。
grep "root" /etc/passwd --color=auto cat /etc/passwd | grep "root" --color=auto
2.將 /etc/passwd 文件中沒有出現 root 和 nologin 的行取出來。
grep -v "root" /etc/passwd | grep -v "nologin"
41.wc 命令
用來顯示文件所包含的行、字和字節數。
命令格式
wc [選項] [文件]
經常使用參數
- -c 統計字節數
- -l 統計行數
- -m 統計字符數,這個標誌不能與 -c 標誌一塊兒使用
- -w 統計字數,一個字被定義爲由空白、跳格或換行字符分隔的字符串
- -L 打印最長行的長度
使用實例
1.統計文件的字節數、行數和字符數。
wc -c test.txt wc -l test.txt wc -m test.txt
2.統計文件的字節數、行數和字符數,只打印數字,不打印文件名。
cat test.txt | wc -c cat test.txt | wc -l cat test.txt | wc -m
42.ps 命令
用來顯示當前進程的狀態。
命令格式
ps[參數]
經常使用參數
- a 顯示全部進程
- -a 顯示同一終端下的全部程序
- -A 顯示全部進程
- c 顯示進程的真實名稱
- -N 反向選擇
- -e 等於「-A」
- e 顯示環境變量
- f 顯示程序間的關係
- -H 顯示樹狀結構
- r 顯示當前終端的進程
- T 顯示當前終端的全部程序
- u 指定用戶的全部進程
- -au 顯示較詳細的資訊
- -aux 顯示全部包含其餘使用者的行程
- -C<命令> 列出指定命令的情況
- --lines<行數> 每頁顯示的行數
- --width<字符數> 每頁顯示的字符數
使用實例
1.顯示全部進程信息。
ps -A
- 顯示指定用戶信息。
ps -u root
- 顯示全部進程信息,連同命令行。
ps -ef
43.watch 命令
能夠將命令的輸出結果輸出到標準輸出設備,多用於週期性執行命令/定時執行命令。
命令格式
watch [參數] [命令]
經常使用參數
- -n或--interval watch缺省每2秒運行一下程序,能夠用-n或-interval來指定間隔的時間。
- -d或--differences 用-d或--differences 選項watch 會高亮顯示變化的區域。 而-d=cumulative選項會把變更過的地方(無論最近的那次有沒有變更)都高亮顯示出來。
- -t 或-no-title 會關閉watch命令在頂部的時間間隔,命令,當前時間的輸出。
- -h, --help 查看幫助文檔
使用實例
1.每隔一秒高亮顯示網絡連接數的變化狀況
watch -n 1 -d netstat -ant
2.每隔一秒高亮顯示http連接數的變化狀況
watch -n 1 -d 'pstree|grep http'
44. at 命令
在一個指定的時間執行一個指定任務,只能執行一次。(需開啓atd進程)
命令格式
at [參數] [時間]
經常使用參數
- -m 當指定的任務被完成以後,將給用戶發送郵件,即便沒有標準輸出
- -I atq的別名
- -d atrm的別名
- -v 顯示任務將被執行的時間
- -c 打印任務的內容到標準輸出
- -V 顯示版本信息
- -q<列隊> 使用指定的列隊
- -f<文件> 從指定文件讀入任務而不是從標準輸入讀入
- -t<時間參數> 以時間參數的形式提交要運行的任務
使用實例
1.3天后的下午5點執行/bin/ls
at 5pm+3 days at> /bin/ls at> <EOT>
45.crontab 命令
在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位能夠是分鐘、小時、日、月、周及以上的任意組合。(需開啓crond服務)
命令格式
crontab [-u user] file 或
crontab [-u user] [ -e | -l | -r ]
經常使用參數
- -u user:用來設定某個用戶的crontab服務,例如,「-u ixdba」表示設定ixdba用戶的crontab服務,此參數通常有root用戶來運行。
- file:file是命令文件的名字,表示將file作爲crontab的任務列表文件並載入crontab。若是在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
- -e:編輯某個用戶的crontab文件內容。若是不指定用戶,則表示編輯當前用戶的crontab文件。
- -l:顯示某個用戶的crontab文件內容,若是不指定用戶,則表示顯示當前用戶的crontab文件內容。
- -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,若是不指定用戶,則默認刪除當前用戶的crontab文件。
- -i:在刪除用戶的crontab文件時給確認提示。
使用實例
1.列出 crontab 文件。
crontab -l
2.編輯crontab 文件。
crontab -e
Crontab 任務實例
1.每1分鐘執行一次command
* * * * * command
2.每小時的第3和第15分鐘執行
3,15 * * * * command
3.在上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * * command
Linux 學習資源推薦: