您的位置:首頁>正文

97個Linux常用命令總有一個你會用得著

1.ls [選項] [目錄名 | 列出相關目錄下的所有目錄和檔

-a 列出包括.a開頭的隱藏檔的所有檔

-A 通-a, 但不列出"."和".."

-l 列出檔的詳細資訊

-c 根據ctime排序顯示

-t 根據檔修改時間排序

---color[=WHEN] 用色彩辨別檔案類型 WHEN 可以是’never’、’always’或’auto’其中之一

白色:表示普通檔

藍色:表示目錄

綠色:表示可執行檔

紅色:表示壓縮檔

淺藍色:連結檔

紅色閃爍:表示連結的檔有問題

黃色:表示設備檔

灰色:表示其它檔

2.mv [選項] 原始檔案或目錄 目錄或多個原始檔案 | 移動或重命名檔

-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 [選項] 原始檔案或目錄 目錄或多個原始檔案 | 將原始檔案複製至目的檔案, 或將多個原始檔案複製至目標目錄。

-r -R 遞迴複製該目錄及其子目錄內容

-p 連同檔案屬性一起複製過去

-f 不詢問而強制複製

-s 生成快捷方式

-a 將檔案的所有特性都一起複製

4.scp [參數] [原路徑] [目標路徑] | 在Linux伺服器之間複製檔和目錄

-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 root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

5.rm [選項] 檔 | 刪除檔

-r 刪除資料夾

-f 刪除不提示

-i 刪除提示

-v 詳細顯示進行步驟

6.touch [選項] 檔 | 創建空檔或更新檔時間

-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 改變目前的目錄

- :返回上層目錄

.. :返回上層目錄

回車 :返回主目錄

/ :根目錄

9.mkdir [選項] 目錄… | 創建新目錄

-p 遞迴創建目錄, 若父目錄不存在則依次創建

-m 自訂創建目錄的許可權 eg:mkdir -m 777 hehe

-v 顯示創建目錄的詳細資訊

10.rmdir 刪除空目錄

-v 顯示執行過程

-p 若自父母刪除後父目錄為空則一併刪除

11.rm [選項] 檔… | 一個或多個檔或目錄

-f 忽略不存在的檔, 不給出提示

-i 互動式刪除

-r 將列出的目錄及其子目錄遞迴刪除

-v 列出詳細資訊

12.echo:顯示內容

-n 輸出後不換行

-e 遇到轉義字元特殊處理

eg:

echo "he he" 顯示he he

ehco -e "he he" 顯示he(換行了)he

13.cat [選項] [檔]..| 一次顯示整個檔或從鍵盤創建一個檔或將幾個檔合併成一個檔

-n 編號檔內容再輸出

-E 在結束行提示$

14.tac | 反向顯示

15.more | 按頁查看文章內容, 從前向後讀取檔, 因此在啟動時就載入整個檔

+n 從第n行開始顯示

-n 每次查看n行資料

+/String 搜尋String字串位置, 從其前兩行開始查看

-c 清屏再顯示

-p 換頁時清屏

16.less | 可前後移動地逐屏查看文章內容, 在查看前不會載入整個檔

-m 顯示類似於more命令的百分比

-N 顯示行號

/ 字串:向下搜索“字串”的功能

? 字串:向上搜索“字串”的功能

n 重複前一個搜索(與 / 或 ? 有關)

N 反向重複前一個搜索(與 / 或 ? 有關)

b 向後翻一頁

d 向後翻半頁

17.nl [選項]… [檔]… | 將輸出內容自動加上行號

-b

-b a 不論是否有空行, 都列出行號(類似 cat -n)

-b t 空行則不列行號(默認)

-n 有ln rn rz三個參數, 分別為再最左方顯示, 最右方顯示不加0, 最右方顯示加0

18.head [參數]… [檔]… | 顯示檔案開頭, 預設開頭10行

-v 顯示檔案名

-c number 顯示前number個字元,若number為負數,則顯示除最後number個字元的所有內容

-number/n (+)number 顯示前number行內容,

-n number 若number為負數, 則顯示除最後number行資料的所有內容

19.tail [必要參數] [選擇參數] [檔] | 顯示檔結尾內容

-v 顯示詳細的處理資訊

-q 不顯示處理資訊

-num/-n (-)num 顯示最後num行內容

-n +num 從第num行開始顯示後面的資料

-c 顯示最後c個字元

-f 迴圈讀取

20.vi 編輯檔

: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 ] 檔案名| 定位可執行檔、原始程式碼檔、幫助檔在檔案系統中的位置

-b 定位可執行檔。

-m 定位幫助檔。

-s 定位原始程式碼文件。

-u 搜索預設路徑下除可執行檔、原始程式碼文件、幫助文件以外的其它文件。

-B 指定搜索可執行檔的路徑。

-M 指定搜索説明檔的路徑。

-S 指定搜索原始程式碼檔的路徑。

23.locate | 通過搜尋資料庫快速搜尋檔案

-r 使用正規運算式做尋找的條件

24.find find [PATH] [option] [action] | 在檔樹種查找檔,並作出相應的處理

選項與參數:

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.grep ‘規則運算式’ 檔案名 | 用規則運算式搜索文本,並把匹配的行列印出來

-c 只輸出匹配行的計數。

-I 不區分大小寫(只適用于單字元)。

-l 只顯示檔案名

-v 顯示不包含匹配文本的所有行。

-n 顯示匹配行資料及其行號

25.file | 判斷檔案類型

26.gzip [-cdtv#] 檔名 | 壓縮、解壓縮,原始檔案都不再存在

-d 進行解壓縮

-c 將壓縮的資料輸出到螢幕上

-v :顯示原檔案/壓縮檔案的壓縮比等資訊

-# :壓縮等級,-1最快,但壓縮比最差,=9最慢,但壓縮比最好

27.gunzip | 解壓縮

28.bzip2 | 壓縮、解壓縮

-d :解壓

-z :壓縮

-k :保留原始檔案

-c :將壓縮的過程產生的資料輸出到螢幕上!

-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;

-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!

29.bzcat 讀取資料而無需解壓

30.tar [主選項+輔選項] 檔或者目錄 | 多個目錄或檔案打包、壓縮成一個大檔案

主選項:

-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 登錄在本機的用戶與來源

-H或--heading 顯示各欄位元的標題資訊列。

36.w 登錄在本機的使用者及其運行的程式

-s 使用簡潔格式清單,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。

-h 不顯示各欄位元的標題資訊列。

37.write 給當前連線的使用者發消息

38.wall 給所有登錄再本機的使用者發消息

39.last 查看使用者的登陸日誌

40.lastlog 查看每個用戶最後的登陸時間

41.finger [選項] [使用者] [使用者@主機] | 查看使用者資訊

-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] 使用者帳號名 | 新增用戶

-M 不建立使用者家目錄!(系統帳號預設值)

-m 建立使用者家目錄!(一般帳號預設值)

-r 建立一個系統的帳號,這個帳號的 UID 會有限制

-e 帳號失效日期,格式為『YYYY-MM-DD』

-D 查看useradd的各項預設值

46.passwd | 修改密碼

-l 使密碼失效

-u 與-l相對,用戶解鎖

-S 列出登陸用戶passwd檔內的相關參數

-n 後面接天數,shadow 的第 4 欄位,多久不可修改密碼天數

-x 後面接天數,shadow 的第 5 欄位,多久內必須要更動密碼

-w 後面接天數,shadow 的第 6 欄位,密碼過期前的警告天數

-i 後面接『日期』,shadow 的第 7 欄位,密碼失效日期

使用管道劉設置密碼:echo "zeng" | passwd --stdin zenghao

47.userdel 刪除用戶

-r 用戶檔一併刪除

48.chage [-ldEImMW] 帳號名 | 修改使用者密碼的相關屬性

-l 列出該帳號的詳細密碼參數;

-d 後面接日期,修改 shadow 第三欄位(最近一次更改密碼的日期),格式YYYY-MM-DD

-E 後面接日期,修改 shadow 第八欄位(帳號失效日),格式 YYYY-MM-DD

-I 後面接天數,修改 shadow 第七欄位(密碼失效日期)

-m 後面接天數,修改 shadow 第四欄位(密碼最短保留天數)

-M 後面接天數,修改 shadow 第五欄位(密碼多久需要進行變更)

-W 後面接天數,修改 shadow 第六欄位(密碼過期前警告日期)

49.usermod [-cdegGlsuLU] username | 修改使用者的相關屬性

-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] 組名 | 添加組

-g 設定添加組的特定組id

54.groupmod [-g gid] [-n group_name] 群組名 | 修改組資訊

-g 修改既有的 GID 數位

-n 修改既有的組名

55.groupdel [groupname] | 刪除群組

56.gpasswd | 群組管理員功能

root管理員動作:

-gpasswd groupname 設定密碼

-gpasswd [-A user1,...] [-M user3,...] groupname

-A 將 groupname 的主控權交由後面的使用者管理(該群組的管理員)

-M 將某些帳號加入這個群組當中

-gpasswd [-r] groupname

-r 將 groupname 的密碼移除

群組管理員動作:

- gpasswd [-ad] user groupname

-a 將某位使用者加入到 groupname 這個群組當中

-d 將某位使用者移除出 groupname 這個群組當中

57.chfn修改個人資訊

58.mount [-t vfstype] [-o options] device dir

-ro 採用唯讀方式掛接設備

-rw 採用讀寫方式掛接設備

eg:mount /home/mydisk.iso /tmp/mnt 通過mnt訪問mydisk內的內容

59.umount 取消掛載

60.cut

-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。

-c :以字元為單位進行分割。

-d :自訂分隔符號,默認為定位字元。

-f :與-d一起使用,指定顯示哪個區域。

61.sort

-n 依照數值的大小排序。

-o 將排序後的結果存入指定的檔。

-r 以相反的順序來排序。

-t 指定排序時所用的欄位元分隔字元。

-k 選擇以哪個區間進行排序。

62.wc 統計指定檔中的位元組數、字數、行數, 並將統計結果顯示輸出

-l filename 報告行數

-c filename 報告位元組數

-m filename 報告字元數

-w filename 報告單詞數

63.uniq 去除檔中相鄰的重複行

清空/新建檔,將內容重定向輸入進去

&> 正確、錯誤都重定向過去

後面追加

64.set 顯示環境變數和普通變數

65.env 顯示環境變數

66.export 把普通變數變成環境變數

67.unset 刪除一個環境變數

aaa(){} 定義函數

68.read

-p 接提示字元

-t 接等待的秒數

69.declare、typeset

-i 聲明為整數

-a 聲明為陣列

-f 聲明為函數

-r 聲明為唯讀

70.ulimit 限制使用者的某些系統資源

-f 此 shell 可以建立的最大檔案容量 (一般可能設定為 2GB)單位為 Kbytes eg: ulimit -f 1024

限制使用者僅能建立 1MBytes 以下的容量的檔案

71.df [選項] [檔] | 顯示指定磁片檔的可用空間,如果沒有檔案名被指定,則所有當前被掛載的檔案系統的可用空間將被顯示

-a 顯示全部檔案系統

-h 檔大小友好顯示

-l 只顯示本地檔案系統

-i 顯示inode資訊

-T 顯示檔案系統類型

72.du [選項] [檔] | 顯示每個檔和目錄的磁片使用空間

-h 方便閱讀的方式

-s 只顯示總和的大小

73.ln [參數] [原始檔案或目錄] [目的檔案或目錄] | 某一個檔在另外一個位置建立一個同步的連結

-s 建立軟連接

-v 顯示詳細的處理過程

74.diff [參數] [檔1或目錄1] [檔2或目錄2] | 比較單個檔或者目錄內容

-b 不檢查空格字元的不同。

-B 不檢查空白行。

-i 不檢查大小寫

-q 僅顯示差異而不顯示詳細資訊

eg: diff a b > parch.log 比較兩個檔的不同並產生補丁

75.date [參數]… [+格式] | 顯示或設定系統的日期與時間

%H 小時(以00-23來表示)。

%M 分鐘(以00-59來表示)。

%P AM或PM。

%D 日期(含年月日)

%U 該年中的周數。

date -s “2015-10-17 01:01:01″ //時間設定

date +%Y%m%d //顯示前天年月日

date +%Y%m%d --date="+1 day/month/year" //顯示前一天/月/年的日期

date +%Y%m%d --date="-1 day/month/year" //顯示後一天/月/年的日期

date -d '2 weeks' 2周後的日期

76.cal [參數] 月份] [年份] | 查看日曆

-1 顯示當月的月曆

-3 顯示前、當、後一個月的日曆

-m 顯示星期一為一個星期的第一天

-s (默認)星期天為第一天

-j 顯示當月是一年中的第幾天的日曆

-y 顯示當前年份的日曆

77.ps | 列出當前進程的快照

a 顯示所有的進程

-a 顯示同一終端下的所有程式

e 顯示環境變數

f 顯示進程間的關係

-H 顯示樹狀結構

r 顯示當前終端的程式

T 顯示當前終端的所有程式

-au 顯示更詳細的資訊

-aux 顯示所有包含其他使用者的行程

-u 指定使用者的所有進程

78.top [參數] | 顯示當前系統正在執行的進程的相關資訊,包括進程ID、記憶體佔用率、CPU佔用率等

79.kill [參數] [進程號] | 殺死進程

80.free [參數] | 顯示Linux系統中空閒的、已用的實體記憶體及swap記憶體,及被內核使用的buffer

81.vmstat | 對作業系統的虛擬記憶體、進程、CPU活動進行監控

82.iostat [參數] [時間t] [次數n](每隔t時間刷新一次,最多刷新n次)| 對系統的磁片操作活動進行監視,彙報磁片活動統計情況,同時也會彙報出CPU使用情況

-p[磁片] 顯示磁片和分區的情況

83.watch [參數] [命令] |重複執行某一命令以觀察變化

-n 時隔多少秒刷新

-d 高亮顯示動態變化

84.at [參數] [時間] | 在一個指定的時間執行一個指定任務,只能執行一次

HH:MM[am|pm] + number [minutes|hours|days|weeks] 強制在某年某月某日的某時刻進行該項任務

atq 查看系統未執行的任務

atrm n 刪除編號為n的任務

at -c n 顯示編號為n的任務的內容

85.crontab | 定時任務調度

file 載入crontab

-e 編輯某個使用者的crontab檔內容

-l 顯示某個使用者的crontab檔內容

-r 刪除某個使用者的crontab檔

86.ifconfig [網路設備] [參數] | 查看和配置網路設備

87.route | 顯示和操作IP路由表

88.ping [參數] [主機名稱或IP位址] | 測試與目標主機的連通性

-q 只顯示最後的結果

89.netstat | 顯示與IP、TCP、UDP和ICMP協定相關的統計資料

90.telnet [參數] [主機] | 用於遠端登入,採用明文傳送報文,安全性不好

91.rcp [參數] [原始檔案] [目的檔案] | 遠端檔拷貝

-r 遞迴複製

-p 保留原始檔案的屬性

usage: rcp –r remote_hostname:remote_dir local_dir

-o FILE 把記錄寫到FILE檔中 eg : wget -O a.txt URL

93.awk

-F 分隔符號 以分隔符號分隔內容

{} 要執行的腳本內容 eg:cat /etc/passwd |awk -F ':' '{print $1" "$7}'

94.sed 對資料行進行替換、刪除、新增、選取等操作

a 新增,在新的下一行出現

c 取代,取代 n1,n2 之間的行 eg: sed '1,2c Hi' ab

d 刪除

i 插入,在新的上一行出現

95.paste 合併檔,需確保合併的兩檔行數相同

-d 指定不同於空格或tab鍵的域分隔符號

-s 按行合併,單獨一個檔為一行

96.su [參數] user | 切換登陸

-l 切換時連同環境變數、工作目錄一起改變

-c command 執行command變回原來的使用者

97.sudo | 以特定用戶的許可權執行特定命令

-l 列出當前用戶可執行的命令

-u username#uid 以指定用戶執行命令

是從目前游標所在位置的下一個位置開始輸入文字;

按「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 ] 檔案名| 定位可執行檔、原始程式碼檔、幫助檔在檔案系統中的位置

-b 定位可執行檔。

-m 定位幫助檔。

-s 定位原始程式碼文件。

-u 搜索預設路徑下除可執行檔、原始程式碼文件、幫助文件以外的其它文件。

-B 指定搜索可執行檔的路徑。

-M 指定搜索説明檔的路徑。

-S 指定搜索原始程式碼檔的路徑。

23.locate | 通過搜尋資料庫快速搜尋檔案

-r 使用正規運算式做尋找的條件

24.find find [PATH] [option] [action] | 在檔樹種查找檔,並作出相應的處理

選項與參數:

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.grep ‘規則運算式’ 檔案名 | 用規則運算式搜索文本,並把匹配的行列印出來

-c 只輸出匹配行的計數。

-I 不區分大小寫(只適用于單字元)。

-l 只顯示檔案名

-v 顯示不包含匹配文本的所有行。

-n 顯示匹配行資料及其行號

25.file | 判斷檔案類型

26.gzip [-cdtv#] 檔名 | 壓縮、解壓縮,原始檔案都不再存在

-d 進行解壓縮

-c 將壓縮的資料輸出到螢幕上

-v :顯示原檔案/壓縮檔案的壓縮比等資訊

-# :壓縮等級,-1最快,但壓縮比最差,=9最慢,但壓縮比最好

27.gunzip | 解壓縮

28.bzip2 | 壓縮、解壓縮

-d :解壓

-z :壓縮

-k :保留原始檔案

-c :將壓縮的過程產生的資料輸出到螢幕上!

-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;

-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!

29.bzcat 讀取資料而無需解壓

30.tar [主選項+輔選項] 檔或者目錄 | 多個目錄或檔案打包、壓縮成一個大檔案

主選項:

-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 登錄在本機的用戶與來源

-H或--heading 顯示各欄位元的標題資訊列。

36.w 登錄在本機的使用者及其運行的程式

-s 使用簡潔格式清單,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。

-h 不顯示各欄位元的標題資訊列。

37.write 給當前連線的使用者發消息

38.wall 給所有登錄再本機的使用者發消息

39.last 查看使用者的登陸日誌

40.lastlog 查看每個用戶最後的登陸時間

41.finger [選項] [使用者] [使用者@主機] | 查看使用者資訊

-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] 使用者帳號名 | 新增用戶

-M 不建立使用者家目錄!(系統帳號預設值)

-m 建立使用者家目錄!(一般帳號預設值)

-r 建立一個系統的帳號,這個帳號的 UID 會有限制

-e 帳號失效日期,格式為『YYYY-MM-DD』

-D 查看useradd的各項預設值

46.passwd | 修改密碼

-l 使密碼失效

-u 與-l相對,用戶解鎖

-S 列出登陸用戶passwd檔內的相關參數

-n 後面接天數,shadow 的第 4 欄位,多久不可修改密碼天數

-x 後面接天數,shadow 的第 5 欄位,多久內必須要更動密碼

-w 後面接天數,shadow 的第 6 欄位,密碼過期前的警告天數

-i 後面接『日期』,shadow 的第 7 欄位,密碼失效日期

使用管道劉設置密碼:echo "zeng" | passwd --stdin zenghao

47.userdel 刪除用戶

-r 用戶檔一併刪除

48.chage [-ldEImMW] 帳號名 | 修改使用者密碼的相關屬性

-l 列出該帳號的詳細密碼參數;

-d 後面接日期,修改 shadow 第三欄位(最近一次更改密碼的日期),格式YYYY-MM-DD

-E 後面接日期,修改 shadow 第八欄位(帳號失效日),格式 YYYY-MM-DD

-I 後面接天數,修改 shadow 第七欄位(密碼失效日期)

-m 後面接天數,修改 shadow 第四欄位(密碼最短保留天數)

-M 後面接天數,修改 shadow 第五欄位(密碼多久需要進行變更)

-W 後面接天數,修改 shadow 第六欄位(密碼過期前警告日期)

49.usermod [-cdegGlsuLU] username | 修改使用者的相關屬性

-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] 組名 | 添加組

-g 設定添加組的特定組id

54.groupmod [-g gid] [-n group_name] 群組名 | 修改組資訊

-g 修改既有的 GID 數位

-n 修改既有的組名

55.groupdel [groupname] | 刪除群組

56.gpasswd | 群組管理員功能

root管理員動作:

-gpasswd groupname 設定密碼

-gpasswd [-A user1,...] [-M user3,...] groupname

-A 將 groupname 的主控權交由後面的使用者管理(該群組的管理員)

-M 將某些帳號加入這個群組當中

-gpasswd [-r] groupname

-r 將 groupname 的密碼移除

群組管理員動作:

- gpasswd [-ad] user groupname

-a 將某位使用者加入到 groupname 這個群組當中

-d 將某位使用者移除出 groupname 這個群組當中

57.chfn修改個人資訊

58.mount [-t vfstype] [-o options] device dir

-ro 採用唯讀方式掛接設備

-rw 採用讀寫方式掛接設備

eg:mount /home/mydisk.iso /tmp/mnt 通過mnt訪問mydisk內的內容

59.umount 取消掛載

60.cut

-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。

-c :以字元為單位進行分割。

-d :自訂分隔符號,默認為定位字元。

-f :與-d一起使用,指定顯示哪個區域。

61.sort

-n 依照數值的大小排序。

-o 將排序後的結果存入指定的檔。

-r 以相反的順序來排序。

-t 指定排序時所用的欄位元分隔字元。

-k 選擇以哪個區間進行排序。

62.wc 統計指定檔中的位元組數、字數、行數, 並將統計結果顯示輸出

-l filename 報告行數

-c filename 報告位元組數

-m filename 報告字元數

-w filename 報告單詞數

63.uniq 去除檔中相鄰的重複行

清空/新建檔,將內容重定向輸入進去

&> 正確、錯誤都重定向過去

後面追加

64.set 顯示環境變數和普通變數

65.env 顯示環境變數

66.export 把普通變數變成環境變數

67.unset 刪除一個環境變數

aaa(){} 定義函數

68.read

-p 接提示字元

-t 接等待的秒數

69.declare、typeset

-i 聲明為整數

-a 聲明為陣列

-f 聲明為函數

-r 聲明為唯讀

70.ulimit 限制使用者的某些系統資源

-f 此 shell 可以建立的最大檔案容量 (一般可能設定為 2GB)單位為 Kbytes eg: ulimit -f 1024

限制使用者僅能建立 1MBytes 以下的容量的檔案

71.df [選項] [檔] | 顯示指定磁片檔的可用空間,如果沒有檔案名被指定,則所有當前被掛載的檔案系統的可用空間將被顯示

-a 顯示全部檔案系統

-h 檔大小友好顯示

-l 只顯示本地檔案系統

-i 顯示inode資訊

-T 顯示檔案系統類型

72.du [選項] [檔] | 顯示每個檔和目錄的磁片使用空間

-h 方便閱讀的方式

-s 只顯示總和的大小

73.ln [參數] [原始檔案或目錄] [目的檔案或目錄] | 某一個檔在另外一個位置建立一個同步的連結

-s 建立軟連接

-v 顯示詳細的處理過程

74.diff [參數] [檔1或目錄1] [檔2或目錄2] | 比較單個檔或者目錄內容

-b 不檢查空格字元的不同。

-B 不檢查空白行。

-i 不檢查大小寫

-q 僅顯示差異而不顯示詳細資訊

eg: diff a b > parch.log 比較兩個檔的不同並產生補丁

75.date [參數]… [+格式] | 顯示或設定系統的日期與時間

%H 小時(以00-23來表示)。

%M 分鐘(以00-59來表示)。

%P AM或PM。

%D 日期(含年月日)

%U 該年中的周數。

date -s “2015-10-17 01:01:01″ //時間設定

date +%Y%m%d //顯示前天年月日

date +%Y%m%d --date="+1 day/month/year" //顯示前一天/月/年的日期

date +%Y%m%d --date="-1 day/month/year" //顯示後一天/月/年的日期

date -d '2 weeks' 2周後的日期

76.cal [參數] 月份] [年份] | 查看日曆

-1 顯示當月的月曆

-3 顯示前、當、後一個月的日曆

-m 顯示星期一為一個星期的第一天

-s (默認)星期天為第一天

-j 顯示當月是一年中的第幾天的日曆

-y 顯示當前年份的日曆

77.ps | 列出當前進程的快照

a 顯示所有的進程

-a 顯示同一終端下的所有程式

e 顯示環境變數

f 顯示進程間的關係

-H 顯示樹狀結構

r 顯示當前終端的程式

T 顯示當前終端的所有程式

-au 顯示更詳細的資訊

-aux 顯示所有包含其他使用者的行程

-u 指定使用者的所有進程

78.top [參數] | 顯示當前系統正在執行的進程的相關資訊,包括進程ID、記憶體佔用率、CPU佔用率等

79.kill [參數] [進程號] | 殺死進程

80.free [參數] | 顯示Linux系統中空閒的、已用的實體記憶體及swap記憶體,及被內核使用的buffer

81.vmstat | 對作業系統的虛擬記憶體、進程、CPU活動進行監控

82.iostat [參數] [時間t] [次數n](每隔t時間刷新一次,最多刷新n次)| 對系統的磁片操作活動進行監視,彙報磁片活動統計情況,同時也會彙報出CPU使用情況

-p[磁片] 顯示磁片和分區的情況

83.watch [參數] [命令] |重複執行某一命令以觀察變化

-n 時隔多少秒刷新

-d 高亮顯示動態變化

84.at [參數] [時間] | 在一個指定的時間執行一個指定任務,只能執行一次

HH:MM[am|pm] + number [minutes|hours|days|weeks] 強制在某年某月某日的某時刻進行該項任務

atq 查看系統未執行的任務

atrm n 刪除編號為n的任務

at -c n 顯示編號為n的任務的內容

85.crontab | 定時任務調度

file 載入crontab

-e 編輯某個使用者的crontab檔內容

-l 顯示某個使用者的crontab檔內容

-r 刪除某個使用者的crontab檔

86.ifconfig [網路設備] [參數] | 查看和配置網路設備

87.route | 顯示和操作IP路由表

88.ping [參數] [主機名稱或IP位址] | 測試與目標主機的連通性

-q 只顯示最後的結果

89.netstat | 顯示與IP、TCP、UDP和ICMP協定相關的統計資料

90.telnet [參數] [主機] | 用於遠端登入,採用明文傳送報文,安全性不好

91.rcp [參數] [原始檔案] [目的檔案] | 遠端檔拷貝

-r 遞迴複製

-p 保留原始檔案的屬性

usage: rcp –r remote_hostname:remote_dir local_dir

-o FILE 把記錄寫到FILE檔中 eg : wget -O a.txt URL

93.awk

-F 分隔符號 以分隔符號分隔內容

{} 要執行的腳本內容 eg:cat /etc/passwd |awk -F ':' '{print $1" "$7}'

94.sed 對資料行進行替換、刪除、新增、選取等操作

a 新增,在新的下一行出現

c 取代,取代 n1,n2 之間的行 eg: sed '1,2c Hi' ab

d 刪除

i 插入,在新的上一行出現

95.paste 合併檔,需確保合併的兩檔行數相同

-d 指定不同於空格或tab鍵的域分隔符號

-s 按行合併,單獨一個檔為一行

96.su [參數] user | 切換登陸

-l 切換時連同環境變數、工作目錄一起改變

-c command 執行command變回原來的使用者

97.sudo | 以特定用戶的許可權執行特定命令

-l 列出當前用戶可執行的命令

-u username#uid 以指定用戶執行命令

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示