100條常用linux命令
筆者在這篇文章中跟大家分享一下接近 100 個 Linux 常用命令大全,希望可以幫助到大家。
1.ls [選項] [目錄名 | 列出相關目錄下的所有目錄和檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
-a 列出包括.a開頭的隱藏檔案的所有檔案
-A 通-a,但不列出 "." 和 ".."
-l 列出檔案的詳細資訊
-c 根據ctime排序顯示
-t 根據檔案修改時間排序
---color[=WHEN] 用色彩辨別檔案型別 WHEN 可以是’never’、’always’或’auto’其中之一
白色:表示普通檔案
藍色:表示目錄
綠色:表示可執行檔案
紅色:表示壓縮檔案 淺藍色:連結檔案
紅色閃爍:表示連結的檔案有問題
黃色:表示裝置檔案
灰色:表示其它檔案
|
2.mv [選項] 原始檔或目錄 目錄或多個原始檔 | 移動或重新命名檔案
1 2 3 4 5 6 7 8 9 |
-b 覆蓋前做備份
-f 如存在不詢問而強制覆蓋
-i 如存在則詢問是否覆蓋
-u 較新才覆蓋
-t 將多個原始檔移動到統一目錄下,目錄引數在前,檔案引數在後
eg:
mv a /tmp/ 將檔案a移動到 /tmp目錄下
mv a b 將a命名為b
mv /home/zenghao test1.txt test2.txt test3.txt
|
3.cp [選項] 原始檔或目錄 目錄或多個原始檔 | 將原始檔複製至目標檔案,或將多個原始檔複製至目標目錄。
1 2 3 4 5 |
-r -R 遞迴複製該目錄及其子目錄內容
-p 連同檔案屬性一起復制過去
-f 不詢問而強制複製
-s 生成快捷方式
-a 將檔案的所有特性都一起復制
|
4.scp [引數] [原路徑] [目標路徑] | 在Linux伺服器之間複製檔案和目錄
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
-v 詳細顯示輸出的具體情況
-r 遞迴複製整個目錄
( 1 ) 複製檔案:
命令格式:
scp local_file remote_username @remote_ip :remote_folder
或者
scp local_file remote_username @remote_ip :remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第 1 , 2 個指定了使用者名稱,命令執行後需要輸入使用者密碼,第 1 個僅指定了遠端的目錄,檔名字不變,第 2 個指定了檔名
第 3 , 4 個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第 3 個僅指定了遠端的目錄,檔名字不變,第 4 個指定了檔名
( 2 ) 複製目錄:
命令格式:
scp -r local_folder remote_username @remote_ip :remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第 1 個指定了使用者名稱,命令執行後需要輸入使用者密碼;
第 2 個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼;
eg:
從 本地 複製到 遠端
scp /home/daisy/full.tar.gz root @172 .19. 2.75 :/home/root
從 遠端 複製到 本地
scp [email protected]/ 172.19 . 2.75 :/home/root/full.tar.gz /home/daisy/full.tar.gz
|
5.rm [選項] 檔案 | 刪除檔案
1 2 3 4 |
-r 刪除資料夾
-f 刪除不提示
-i 刪除提示
-v 詳細顯示進行步驟
|
6.touch [選項] 檔案 | 建立空檔案或更新檔案時間
1 2 3 4 5 |
-a 只修改存取時間
-m 值修改變動時間
-r eg:touch -r a b ,使b的時間和a相同
-t 指定特定的時間 eg:touch -t 201211142234.50 log.log
-t time [[CC]YY]MMDDhhmm[.SS],C:年前兩位
|
7.pwd 檢視當前所在路徑
8.cd 改變當前目錄
1 2 3 4 |
- :返回上層目錄
.. :返回上層目錄
回車 :返回主目錄
/ :根目錄
|
9.mkdir [選項] 目錄… | 建立新目錄
1 2 3 4 5 6 |
-p 遞迴建立目錄,若父目錄不存在則依次建立
-m 自定義建立目錄的許可權 eg:mkdir -m 777 hehe
-v 顯示建立目錄的詳細資訊
10 .rmdir 刪除空目錄
-v 顯示執行過程
-p 若自父母刪除後父目錄為空則一併刪除
|
11.rm [選項] 檔案… | 一個或多個檔案或目錄
1 2 3 4 |
-f 忽略不存在的檔案,不給出提示
-i 互動式刪除
-r 將列出的目錄及其子目錄遞迴刪除
-v 列出詳細資訊
|
12.echo:顯示內容
1 2 3 4 5 |
n 輸出後不換行
-e 遇到轉義字元特殊處理
eg:
echo "he\nhe" 顯示he\nhe
ehco -e "he\nhe" 顯示he(換行了)he
|
13.cat [選項] [檔案]..| 一次顯示整個檔案或從鍵盤建立一個檔案或將幾個檔案合併成一個檔案
1 2 |
-n 編號檔案內容再輸出
-E 在結束行提示$
|
14.tac | 反向顯示
15.more | 按頁檢視文章內容,從前向後讀取檔案,因此在啟動時就載入整個檔案
1 2 3 4 5 |
+n 從第n行開始顯示
-n 每次檢視n行資料
+/String 搜尋String字串位置,從其前兩行開始檢視
-c 清屏再顯示
-p 換頁時清屏
|
16.less | 可前後移動地逐屏檢視文章內容,在檢視前不會載入整個檔案
1 2 3 4 5 6 7 8 |
-m 顯示類似於more命令的百分比
-N 顯示行號
/ 字串:向下搜尋“字串”的功能
? 字串:向上搜尋“字串”的功能
n 重複前一個搜尋(與 / 或 ? 有關)
N 反向重複前一個搜尋(與 / 或 ? 有關)
b 向後翻一頁
d 向後翻半頁
|
17.nl [選項]… [檔案]… | 將輸出內容自動加上行號
1 2 3 4 |
-b
-b a 不論是否有空行,都列出行號(類似 cat -n)
-b t 空行則不列行號(預設)
-n 有ln rn rz三個引數,分別為再最左方顯示,最右方顯示不加 0 ,最右方顯示加 0
|
18.head [引數]… [檔案]… | 顯示檔案開頭,預設開頭10行
1 2 3 4 |
-v 顯示檔名
-c number 顯示前number個字元,若number為負數,則顯示除最後number個字元的所有內容
-number/n (+)number 顯示前number行內容,
-n number 若number為負數,則顯示除最後number行資料的所有內容
|
19.tail [必要引數] [選擇引數] [檔案] | 顯示檔案結尾內容
1 2 3 4 5 6 |
-v 顯示詳細的處理資訊
-q 不顯示處理資訊
-num/-n (-)num 顯示最後num行內容
-n +num 從第num行開始顯示後面的資料
-c 顯示最後c個字元
-f 迴圈讀取
|
20.vi 編輯檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
:w filename 將文章以指定的檔名儲存起來
:wq 儲存並退出
:q! 不儲存而強制退出
命令列模式功能鍵
1 )插入模式
按「i」切換進入插入模式「insert mode」,按 "i" 進入插入模式後是從游標當前位置開始輸入檔案;
按「a」進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式後,是插入新的一行,從行首開始輸入文字。
2 )從插入模式切換為命令列模式
按「ESC」鍵。
3 )移動游標
vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制游標左、下、上、右移一格。
按「ctrl」+「b」:螢幕往 "後" 移動一頁。
按「ctrl」+「f」:螢幕往 "前" 移動一頁。
按「ctrl」+「u」:螢幕往 "後" 移動半頁。
按「ctrl」+「d」:螢幕往 "前" 移動半頁。
按數字「 0 」:移到文章的開頭。
按「G」:移動到文章的最後。
按「$」:移動到游標所在行的 "行尾" 。
按「^」:移動到游標所在行的 "行首"
按「w」:游標跳到下個字的開頭
按「e」:游標跳到下個字的字尾
按「b」:游標回到上個字的開頭
按「#l」:游標移到該行的第#個位置,如:5l,56l。
4 )刪除文字
「x」:每按一次,刪除游標所在位置的 "後面" 一個字元。
「#x」:例如,「6x」表示刪除游標所在位置的 "後面" 6 個字元。
「X」:大寫的X,每按一次,刪除游標所在位置的 "前面" 一個字元。
「#X」:例如,「20X」表示刪除游標所在位置的 "前面" 20 個字元。
「dd」:刪除游標所在行。
「#dd」:從游標所在行開始刪除#行
5 )複製
「yw」:將游標所在之處到字尾的字元複製到緩衝區中。
「#yw」:複製#個字到緩衝區
「yy」:複製游標所在行到緩衝區。
「#yy」:例如,「6yy」表示拷貝從游標所在的該行 "往下數" 6 行文字。
「p」:將緩衝區內的字元貼到游標所在位置。注意:所有與 "y" 有關的複製命令都必須與 "p" 配合才能完成複製與貼上功能。
6 )替換
「r」:替換游標所在處的字元。
「R」:替換游標所到之處的字元,直到按下「ESC」鍵為止。
7 )回覆上一次操作
「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次 "u" 可以執行多次回覆。
8 )更改
「cw」:更改游標所在處的字到字尾處
「c#w」:例如,「c3w」表示更改 3 個字
9 )跳至指定的行
「ctrl」+「g」列出游標所在行的行號。
「#G」:例如,「15G」,表示移動游標至文章的第 15 行行首。
|
21.which 可執行檔名稱 | 檢視可執行檔案的位置,在PATH變數指定的路徑中檢視系統命令是否存在及其位置
22.whereis [-bmsu] [BMS 目錄名 -f ] 檔名| 定位可執行檔案、原始碼檔案、幫助檔案在檔案系統中的位置
1 2 3 4 5 6 7 |
-b 定位可執行檔案。
-m 定位幫助檔案。
-s 定位原始碼檔案。
-u 搜尋預設路徑下除可執行檔案、原始碼檔案、幫助檔案以外的其它檔案。
-B 指定搜尋可執行檔案的路徑。
-M 指定搜尋幫助檔案的路徑。
-S 指定搜尋原始碼檔案的路徑。
|
23.locate | 通過搜尋資料庫快速搜尋檔案
-r 使用正規運算式做尋找的條件
24.find find [PATH] [option] [action] | 在檔案樹種查詢檔案,並作出相應的處理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
選項與引數:
1 . 與時間有關的選項:共有 -atime, -ctime 與 -mtime 和-amin,-cmin與-mmin,以 -mtime 說明
-mtime n :n 為數字,意義為在 n 天之前的『一天之內』被更動過內容的檔案;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的檔案檔名;
-mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的檔案檔名。
-newer file :file 為一個存在的檔案,列出比 file 還要新的檔案檔名
2 . 與使用者或組名有關的引數:
-uid n :n 為數字,這個數字是使用者的賬號 ID,亦即 UID
-gid n :n 為數字,這個數字是組名的 ID,亦即 GID
-user name :name 為使用者賬號名稱!例如 dmtsai
-group name:name 為組名,例如 users ;
-nouser :尋找檔案的擁有者不存在 /etc/passwd 的人!
-nogroup :尋找檔案的擁有群組不存在於 /etc/group 的檔案!
3 . 與檔案許可權及名稱有關的引數:
-name filename:搜尋檔名為 filename 的檔案(可使用萬用字元)
-size [+-]SIZE:搜尋比 SIZE 還要大(+)或小(-)的檔案。這個 SIZE 的規格有:
c: 代表 byte
k: 代表 1024bytes。所以,要找比 50KB還要大的檔案,就是『 -size +50k 』
-type TYPE :搜尋檔案的型別為 TYPE 的,型別主要有:
一般正規檔案 (f)
裝置檔案 (b, c)
目錄 (d)
連結檔 (l)
socket (s)
FIFO (p)
-perm mode :搜尋檔案許可權『剛好等於』 mode的檔案,這個mode為類似chmod的屬性值,舉例來說,-rwsr-xr-x 的屬性為 4755 !
-perm -mode :搜尋檔案許可權『必須要全部囊括 mode 的許可權』的檔案,舉例來說,
我們要搜尋-rwxr--r-- 亦即 0744 的檔案,使用-perm - 0744 ,當一個檔案的許可權為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。
-perm +mode :搜尋檔案許可權『包含任一 mode 的許可權』的檔案,舉例來
說,我們搜尋-rwxr-xr-x ,亦即 -perm + 755 時,但一個檔案屬性為 -rw-------也會被列出來,因為他有 -rw.... 的屬性存在!
4 . 額外可進行的動作:
-exec command :command 為其他指令,-exec 後面可再接額外的指令來處理搜尋到的結果。
-print :將結果列印到螢幕上,這個動作是預設動作!
eg:
find / -perm + 7000 -exec ls -l {} \; ,額外指令以-exec開頭,以\;結尾{}代替前面找到的內容
| xargs
-i 預設的前面輸出用{}代替
eg:
find . -name "*.log" | xargs -i mv {} test4
|
25.file | 判斷檔案型別
26.gzip [-cdtv#] 檔名 | 壓縮、解壓縮,原始檔都不再存在
1 2 3 4 |
-d 進行解壓縮
-c 將壓縮的資料輸出到螢幕上
-v :顯示原檔案/壓縮檔案案的壓縮比等資訊
-# :壓縮等級,- 1 最快,但壓縮比最差,= 9 最慢,但壓縮比最好
|
27.gunzip | 解壓縮
28.bzip2 | 壓縮、解壓縮
1 2 3 4 5 6 |
-d :解壓
-z :壓縮
-k :保留原始檔
-c :將壓縮的過程產生的資料輸出到螢幕上!
-v :可以顯示出原檔案/壓縮檔案案的壓縮比等資訊;
-# :與 gzip 同樣的,都是在計算壓縮比的引數, - 9 最佳, - 1 最快!
|
29.bzcat 讀取資料而無需解壓
30.tar [主選項+輔選項] 檔案或者目錄 | 多個目錄或檔案打包、壓縮成一個大檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
主選項:
-c 建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)
-t 察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了;
-x 解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開
輔選項:
-j 透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z 透過 gzip 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-v 在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename -f 後面要立刻接要被處理的檔名!
-C 目錄 這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
--exclude FILE:在壓縮打包過程中忽略某檔案 eg: tar --exclude /home/zenghao -zcvf myfile.tar.gz /home/* /etc
-p 保留備份資料的原本許可權與屬性,常用於備份(-c)重要的配置檔案
-P(大寫) 保留絕對路徑,亦即允許備份資料中含有根目錄存在之意;
eg:
壓 縮:tar -jcvf filename.tar.bz2 要被壓縮的檔案或目錄名稱
查 詢:tar -jtvf filename.tar.bz2
解壓縮:tar -jxvf filename.tar.bz2 -C 欲解壓縮的目錄
|
31.exit 退出當前shell
32.logout 退出登入shell
33.shutdown -h now
34.users 顯示當前登入系統地使用者
35.who 登入在本機的使用者與來源
1 |
-H或--heading 顯示各欄位的標題資訊列。
|
36.w 登入在本機的使用者及其執行的程式
1 2 |
-s 使用簡潔格式列表,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。
-h 不顯示各欄位的標題資訊列。
|
37.write 給當前聯機的使用者發訊息
38.wall 給所有登入再本機的使用者發訊息
39.last 檢視使用者的登陸日誌
40.lastlog 檢視每個使用者最後的登陸時間
41.finger [選項] [使用者] [使用者@主機] | 檢視使用者資訊
1 2 3 |
-s 顯示使用者的註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登入時間等資訊
-l 除了用-s選項顯示的資訊外,還顯示使用者主目錄、登入shell、郵件狀態等資訊,以及使用者主目錄下的.plan、.project和.forward檔案的內容。
-p 除了不顯示.plan檔案和.project檔案以外,與-l選項相同
|
42.hostname 檢視主機名
43.alias ii = “ls -l” | 新增別名
44.unalias ii | 清除別名
45.useradd [-u UID] [-g 初始群組] [-G 次要群組] [-c 說明欄] [-d 家目錄絕對路徑] [-s shell] 使用者賬號名 | 新增使用者
1 2 3 4 5 |
-M 不建立使用者家目錄!(系統賬號預設值)
-m 建立使用者家目錄!(一般賬號預設值)
-r 建立一個系統的賬號,這個賬號的 UID 會有限制
-e 賬號失效日期,格式為『YYYY-MM-DD』
-D 檢視useradd的各項預設值
|
46.passwd | 修改密碼
1 2 3 4 5 6 7 8 |
-l 使密碼失效
-u 與-l相對,使用者解鎖
-S 列出登陸使用者passwd檔案內的相關引數
-n 後面接天數,shadow 的第 4 欄位,多久不可修改密碼天數
-x 後面接天數,shadow 的第 5 欄位,多久內必須要更動密碼
-w 後面接天數,shadow 的第 6 欄位,密碼過期前的警告天數
-i 後面接『日期』,shadow 的第 7 欄位,密碼失效日期
使用管道劉設定密碼:echo "zeng" | passwd --stdin zenghao
|
47.userdel 刪除使用者
1 |
-r 使用者檔案一併刪除
|
48.chage [-ldEImMW] 賬號名 | 修改使用者密碼的相關屬性
1 2 3 4 5 6 7 |
-l 列出該賬號的詳細密碼引數;
-d 後面接日期,修改 shadow 第三欄位(最近一次更改密碼的日期),格式YYYY-MM-DD
-E 後面接日期,修改 shadow 第八欄位(賬號失效日),格式 YYYY-MM-DD
-I 後面接天數,修改 shadow 第七欄位(密碼失效日期)
-m 後面接天數,修改 shadow 第四欄位(密碼最短保留天數)
-M 後面接天數,修改 shadow 第五欄位(密碼多久需要進行變更)
-W 後面接天數,修改 shadow 第六欄位(密碼過期前警告日期)
|
49.usermod [-cdegGlsuLU] username | 修改使用者的相關屬性
1 2 3 4 5 6 7 8 9 10 11 |
-c 後面接賬號的說明,即 /etc/passwd 第五欄的說明欄,可以加入一些賬號的說明。
-d 後面接賬號的家目錄,即修改 /etc/passwd 的第六欄;
-e 後面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 內的第八個欄位資料啦!
-f 後面接天數為 shadow 的第七欄位。
-g 後面接初始群組,修改 /etc/passwd 的第四個欄位,亦即是GID的欄位!
-G 後面接次要群組,修改這個使用者能夠支援的群組
-l 後面接賬號名稱。亦即是修改賬號名稱, /etc/passwd 的第一欄!
-s 後面接 Shell 的實際檔案,例如 /bin/bash 或 /bin/csh 等等。
-u 後面接 UID 數字啦!即 /etc/passwd 第三欄的資料;
-L 凍結密碼
-U 解凍密碼
|
50.id [username] | 檢視使用者相關的id資訊,還可以用來判斷使用者是否存在
51.groups 檢視登陸使用者支援的群組, 第一個輸出的群組為有效群組
52.newgrp 切換有效群組
53.groupadd [-g gid] 組名 | 新增組
1 |
-g 設定新增組的特定組id
|
54.groupmod [-g gid] [-n group_name] 群組名 | 修改組資訊
1 2 |
|