生信linux 常用命令手冊(50個)

lvxfcjf發表於2021-09-09
NO. 命令 解釋
1. ls 列出目前工作目錄所含之檔案及子目錄
2. mv 為檔案或目錄改名、或將檔案或目錄移入其它位置
3. cp 複製檔案或目錄
4. rm 用於刪除一個檔案或者目錄
5. touch 修改檔案或者目錄的時間屬性,包括存取時間和更改時間
6. pwd 顯示工作目錄(絕對路徑)
7. cd 切換當前工作目錄至 dirName(目錄引數)
8. mkdir 建立名稱為 dirName 之子目錄
9. rmdir 刪除空的目錄
10. cat 連線檔案並列印到標準輸出裝置上
11. tac 反向顯示
12. more 一頁一頁的顯示,更方便使用者逐頁閱讀
13. less less 與 more 類似,但使用 less 可以隨意瀏覽檔案,而 more 僅能向前移動,卻不能向後移動,而且 less 在檢視之前不會載入整個檔案。
14. head 顯示檔案開頭,預設開頭10行
15. tail 顯示檔案結尾內容
16. echo 用於字串的輸出
17. vi/vim 編輯檔案
18. which 用於查詢檔案
19. locate 用於查詢符合條件的文件
20. cut 用於顯示每行從開頭算起 num1 到 num2 的文字
21. ln 為某一個檔案在另外一個位置建立一個同步的連結
22. tar 加入或還原備份檔案內的檔案
23. zip 壓縮並生成“.zip”結尾的檔案
24. gzip 壓縮並生成“.bz2”結尾的檔案
25. bzip2v 壓縮並生成“.bz2”結尾的檔案
26. sort 將文字檔案內容進行排序
27. uniq 檢查及刪除文字檔案中重複出現的行列
28. wc 用於計算字數
29. grep 用於查詢檔案裡符合條件的字串
30. awk 對特定的行中特定的列進行操作
31. sed 文字處理並可對檔案進行編輯
32. md5sum 驗證檔案傳輸的完整性
33. chmod 設定檔案或目錄許可權
34. find 用來在指定目錄下查詢檔案
35. du 顯示目錄或檔案的大小
36. ps 用於顯示當前程式 (process) 的狀態。
37. top 顯示使用者程式(實時)
38. jobs 顯示後臺任務(當前節點,當前視窗)
39. kill 刪除或控制執行中的程式
40. fg 將後臺程式轉換到前臺
41. bg 將前臺任務轉為後臺(需先用ctrl+z暫停任務),或者繼續後臺暫停的任務
42. history 查詢該節點上執行過的歷史命令
43. nohup 加到命令前使得該命令在使用者退出登入後也能繼續執行
44. 轉後臺 & 加到命令結尾,使該命令在後臺執行
45. 重定向 > 將標準輸出內容重定向到檔案中
46. 追加 >> 表示將內容追加到檔案末尾
47. 管道符 | 將”|”前一部分的輸出作為”|”後一部分的輸入
48. finger 檢視使用者資訊
49. paste 合併檔案,需確保合併的兩檔案行數相同
50. watch 重複執行某一命令以觀察變化

1. ls [-alrtAFR] [name...]

  • Linux ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。

-a 顯示所有檔案及目錄 (ls內定將檔名或目錄名稱開頭為"."的視為隱藏檔,不會列出)
-l 除檔名稱外,亦將檔案型態、許可權、擁有者、檔案大小等資訊詳細列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時間之先後次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
# 列出目前工作目錄下所有名稱是 s 開頭的檔案,越新的排越後面 :ls -ltr s*# 將 /bin 目錄以下所有目錄及檔案詳細資料列出 ls -lR /bin# 出目前工作目錄下所有檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" :ls -AF

2. mv [options] source dest/directory

  • Linux mv命令用來為檔案或目錄改名、或將檔案或目錄移入其它位置。

-b 覆蓋前做備份
-f 如存在不詢問而強制覆蓋
-i 如存在則詢問是否覆蓋
-u 較新才覆蓋
-t 將多個原始檔移動到統一目錄下,目錄引數在前,檔案引數在後
mv 檔名 檔名 將原始檔名改為目標檔名
mv 檔名 目錄名 將檔案移動到目標目錄
mv 目錄名 目錄名 目標目錄已存在,將源目錄移動到目標目錄;目標目錄不存在則改名
mv 目錄名 檔名 出錯
# 將檔案 aaa 更名為 bbbmv aaa bbb# 將info目錄放入logs目錄中。注意,如果logs目錄不存在,則該命令將info改名為logs。mv info/ logs 
# 再如將/usr/student下的所有檔案和目錄移到當前目錄下,命令列為:$ mv /usr/student/*  .

3. cp [options] source dest/directory

  • Linux cp命令主要用於複製檔案或目錄。

-a 此選項通常在複製目錄時使用,它保留連結、檔案屬性,並複製目錄下的所有內容。其作用等於dpR組合。
-d 複製時保留連結。這裡所說的連結相當於Windows系統中的快捷方式。
-f 覆蓋已經存在的目標檔案而不給出提示。
-i 與-f選項相反,在覆蓋目標檔案之前給出提示,要求使用者確認是否覆蓋,回答"y"時目標檔案將被覆蓋。
-p 除複製檔案的內容外,還把修改時間和訪問許可權也複製到新檔案中。
-r 若給出的原始檔是一個目錄檔案,此時將複製該目錄下所有的子目錄和檔案。
-l 不復制檔案,只是生成連結檔案。
# 使用指令"cp"將當前目錄"test/"下的所有檔案複製到新目錄"newtest"下,輸入如下命令:$ cp –r test/ newtest

4. rm [options] name...

  • Linux rm命令用於刪除一個檔案或者目錄。

-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
# rm  test.txt rm:是否刪除 一般檔案 "test.txt"? y  
# rm  homework  rm: 無法刪除目錄"homework": 是一個目錄  
# rm  -r  homework  rm:是否刪除 目錄 "homework"? y 

# 刪除當前目錄下的所有檔案及目錄,命令列為:rm  -r  *

5. touch [-acfm][-d][-r] [-t][--help][--version][檔案或目錄…]

  • Linux touch命令用於修改檔案或者目錄的時間屬性,包括存取時間和更改時間。若檔案不存在,系統會建立一個新的檔案。

-a 改變檔案的讀取時間記錄。
-m 改變檔案的修改時間記錄。
-c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
-f 不使用,是為了與其他 unix 系統的相容性而保留。
-r 使用參考檔的時間記錄,與 --file 的效果一樣。
-d 設定時間與日期,可以使用各種不同的格式。
-t 設定檔案的時間記錄,格式與 date 指令相同。
--no-create 不會建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。
$ touch testfile                #修改檔案時間屬性為當前系統時間  $ ls -l testfile                #檢視檔案的時間屬性  $ touch file            #建立一個名為“file”的新的空白檔案

6. pwd [--help][--version]

  • Linux pwd命令用於顯示工作目錄(絕對路徑)。

# pwd/root/test           #輸出結果

7. cd [dirName]

  • Linux cd命令用於切換當前工作目錄至 dirName(目錄引數)。

- / .. 返回上層目錄
回車 / ~ 返回主目錄
/ 根目錄
# 跳到 /usr/bin/ :cd /usr/bin# 跳到自己的 home 目錄 :cd ~# 跳到目前目錄的上上兩層 :cd ../..

8. mkdir [-p] dirName

  • Linux mkdir命令用於建立名稱為 dirName 之子目錄。

-p 遞迴建立目錄,若父目錄不存在則依次建立
-m 自定義建立目錄的許可權  eg:mkdir -m 777 hehe
-v 顯示建立目錄的詳細資訊
# 在工作目錄下,建立一個名為 AAA 的子目錄 :mkdir AAA# 在工作目錄下的 BBB 目錄中,建立一個名為 Test 的子目錄。 若 BBB 目錄原本不存在,則建立一個。(注:本例若不加 -p,且原本 BBB目錄不存在,則產生錯誤。)mkdir -p BBB/Test

9. rmdir [-p] dirName

  • Linux rmdir命令刪除空的目錄。

-p 當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。
# 將工作目錄下,名為 AAA 的子目錄刪除 :rmdir AAA# 在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪除後,BBB 目錄成為空目錄,則 BBB 亦予刪除。rmdir -p BBB/Test

10. cat [-AbeEnstTuv] [--help] [--version] fileName

  • cat 命令用於連線檔案並列印到標準輸出裝置上。

-n 或 --number 由 1 開始對所有輸出的行數編號。
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號。
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting 使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends 在每行結束處顯示 $。
-T 或 --show-tabs 將 TAB 字元顯示為 ^I。
-e 等價於 -vE。
-A, --show-all 等價於 -vET。
-e 等價於"-vE"選項;
-t 等價於"-vT"選項;
# 把 textfile1 的文件內容加上行號後輸入 textfile2 這個文件裡:cat -n textfile1 > textfile2# 把 textfile1 和 textfile2 的文件內容加上行號(空白行不加)之後將內容附加到 textfile3 文件裡:cat -b textfile1 textfile2 >> textfile3# 清空 /etc/test.txt 文件內容:cat /dev/null > /etc/test.txt# cat 也可以用來製作映象檔案。例如要製作軟盤的映象檔案,將軟盤放好後輸入:cat /dev/fd0 > OUTFILE# 相反的,如果想把 image file 寫到軟盤,輸入:cat IMG_FILE > /dev/fd0

11. tac 反向顯示

12. more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

  • Linux more 命令類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀

-num 一次顯示的行數
-d 提示使用者,在畫面下方顯示 [Press space to continue, 'q' to quit.] ,如果使用者按錯鍵,則會顯示 [Press 'h' for instructions.] 而不是 '嗶' 聲
-l 取消遇見特殊字元 ^L(送紙字元)時會暫停的功能
-f 計算行數時,以實際上的行數,而非自動換行過後的行數(有些單行字數太長的會被擴充套件為兩行或兩行以上)
-p 不以捲動的方式顯示每一頁,而是先清除螢幕後再顯示內容
-c 跟 -p 相似,不同的是先顯示內容再清除其他舊資料
-s 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-u 不顯示下引號 (根據環境變數 TERM 指定的 terminal 而有所不同)
+/pattern 在每個文件顯示前搜尋該字串(pattern),然後從該字串之後開始顯示
+num 從第 num 行開始顯示
fileNames 欲顯示內容的文件,可為複數個數
# 逐頁顯示 testfile 文件內容,如有連續兩行以上空白行則以一行空白行顯示。more -s testfile# 從第 20 行開始顯示 testfile 之文件內容。more +20 testfile

13. less [引數] 檔案

  • less 與 more 類似,但使用 less 可以隨意瀏覽檔案,而 more 僅能向前移動,卻不能向後移動,而且 less 在檢視之前不會載入整個檔案。

-m 顯示類似於more命令的百分比
-N 顯示行號
/ 字串:向下搜尋“字串”的功能
? 字串:向上搜尋“字串”的功能
n 重複前一個搜尋(與 / 或 ? 有關)
N 反向重複前一個搜尋(與 / 或 ? 有關)
b 向後翻一頁
d 向後翻半頁
# 檢視檔案
less log2013.log# ps檢視程式資訊並透過less分頁顯示ps -ef |less
# 瀏覽多個檔案
less log2013.log log2014.log

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

-v 顯示檔名
-c number 顯示前number個字元,若number為負數,則顯示除最後number個字元的所有內容
-number/n (+)number 顯示前number行內容,
-n number 若number為負數,則顯示除最後number行資料的所有內容

15. tail [必要引數] [選擇引數] [檔案] | 顯示檔案結尾內容

-v 顯示詳細的處理資訊
-q 不顯示處理資訊
-num/-n (-)num 顯示最後num行內容
-n +num 從第num行開始顯示後面的資料
-c 顯示最後c個字元
-f 迴圈讀取

16. echo string

  • 用於字串的輸出

-n 輸出後不換行
-e 遇到跳脫字元特殊處理
# 1.顯示普通字串:echo "It is a test"It is a test# 2.顯示跳脫字元echo ""It is a test"""It is a test"# 3.顯示變數# read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數#!/bin/shread name 
echo "$name It is a test"#以上程式碼儲存為 test.sh,name 接收標準輸入的變數,結果將是:[root@www ~]# sh test.shOK                     #標準輸入OK It is a test        #輸出# 5.顯示不換行echo "henhe"   顯示henhe
ehco -e "henhe"    顯示he(換行了)he# 6.顯示結果定向至檔案echo "It is a test" > myfile#7.原樣輸出字串,不進行轉義或取變數(用單引號)echo '$name"'# 輸出結果:$name"

# 8.顯示命令執行結果
echo `date`
Thu Jul 24 10:08:46 CST 2014

17. vi/vim 編輯檔案

圖片描述

image.png

: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行行首。

18.  which [檔案...]

  • Linux which命令用於查詢檔案。

-n 指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p 與-n引數相同,但此處的包括了檔案的路徑。
-w 指定輸出時欄位的寬度。
-V 顯示版本資訊。
#使用指令"which"檢視指令"bash"的絕對路徑,輸入如下命令:$ which bash#上面的指令執行後,輸出資訊如下所示:/bin/bash

19. locate [-d ][--help][--version][範本樣式...]

  • Linux locate命令用於查詢符合條件的文件,他會去儲存文件和目錄名稱的資料庫內,查詢合乎範本樣式條件的文件或目錄。

-d或--database= 配置locate指令使用的資料庫。 locate指令預設的資料庫位於/var/lib/slocate目錄裡,文件名為slocate.db,您可使用 這個引數另行指定。
--help 線上幫助。
--version 顯示版本資訊。
#查詢passwd檔案,輸入以下命令:locate passwd

20. cut [引數] [file]

  • Linux cut命令用於顯示每行從開頭算起 num1 到 num2 的文字。

-b 以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。
-c 以字元為單位進行分割。
-d 自定義分隔符,預設為製表符。
-f 與-d一起使用,指定顯示哪個區域。
-n 取消分割多位元組字元。僅和 -b 標誌一起使用。如果字元的最後一個位元組落在由 -b 標誌的 List 引數指示的範圍之內,該字元將被寫出;否則,該字元將被排除
cut -c 1-10 file #顯示檔案file每行開頭的10個字元cut -f 1-10 file #顯示檔案file每行開頭10列(以“t”分割)cut -d “ ” -f 2 #顯示檔案file第二列(以空格分割)

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

  • Linux ln命令是一個非常重要命令,它的功能是為某一個檔案在另外一個位置建立一個同步的連結。

-s 建立軟連線
-v 顯示詳細的處理過程
ln -s file1 file2   #將file1連結為file2(注:file2必須不存在)ln -s file1 file2 dirname/   #將file1和file2連結到dirname/下

22. tar -f[cxzjv]

  • 加入或還原備份檔案內的檔案

-f 必加引數
-c 建立備份檔案
-x 從備份檔案中還原檔案
-z 呼叫gzip/gunzip來壓縮/解壓縮檔案
-j 呼叫bzip2/bunzip2來壓縮/解壓縮檔案
-v 顯示命令執行過程
#將file1,file2檔案打包到newfile.tartar -cf newfile.tar file1 file2#提取newfile.tar中的檔案tar -xf newfile.tar#將file1,file2檔案打包並呼叫gzip程式將檔案壓縮為tar -czvf newfile.tar.gz file1 file2newfile.tar.gz#將newfile.tar.gz檔案解壓並提取裡邊的檔案tar -xzvf newfile.tar.gz

23.zip [-1..9][-r]

  • 壓縮並生成“.zip”結尾的檔案

-r 將子目錄下所有檔案和目錄一併處理
-1..9 壓縮效率,數值越大,壓縮效率越高
#將file1,file2進行壓縮到newfile.zip內zipnewfile.zip file1 file2# 使用unzip進行解壓unzip newfile.zip

24.gzip [-1..9][-r]

  • 壓縮並生成“.gz”結尾的檔案

-r 對目錄下的檔案進行壓縮,但不會對目錄進行壓縮
-1..9 壓縮效率,數值越大,壓縮效率越高(預設6)
# 將file壓縮為file.gz並刪除原始檔gzip file# 使用gunzip進行解壓gunzip file.gz

25. bzip2

  • 壓縮並生成“.bz2”結尾的檔案

# 將file壓縮為file.bz2並刪除原始檔bzip2 file# 使用bunzip2進行解壓bunzip2file.bz2

26.sort [-bcdfimMnr][-o][-t][+-][--help][--verison][檔案]

  • 將文字檔案內容進行排序

-b 忽略每行前面開始出的空格字元。
-c 檢查檔案是否已經按照順序排序。
-d 排序時,處理英文字母、數字及空格字元外,忽略其他的字元。
-f 排序時,將小寫字母視為大寫字母。
-i 排序時,除了040至176之間的ASCII字元外,忽略其他的字元。
-m 將幾個排序好的檔案進行合併。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o 將排序後的結果存入指定的檔案。
-r 以相反的順序來排序。
-t 指定排序時所用的欄位分隔字元。
+- 以指定的欄位來排序,範圍由起始欄位到結束欄位的前一欄位。
--help 顯示幫助。
--version 顯示版本資訊。
# 對file檔案按第一列內容ascii碼值從小到大排序並輸出。sort file# 對file檔案按第3列內容數值大小從小到大排序。sort -n -k 3 file# 對file檔案按數值大小反向排序,優先考慮第一列,再考慮第二列sort -nr -k1,2 file

27. uniq [-cdu][-f][-s][-w][--help][--version][輸入檔案][輸出檔案]

  • Linux uniq命令用於檢查及刪除文字檔案中重複出現的行列。

-c或--count 在每列旁邊顯示該行重複出現的次數。
-d或--repeated 僅顯示重複出現的行列。
-f或--skip-fields= 忽略比較指定的欄位。
-s或--skip-chars= 忽略比較指定的字元。
-u或--unique 僅顯示出一次的行列。
-w或--check-chars= 指定要比較的字元。
--help 顯示幫助。
--version 顯示版本資訊。
[輸入檔案] 指定已排序好的文字檔案。
[輸出檔案] 指定輸出的檔案。
# 合併相同的行,並統計每行重複次數,輸出到螢幕uniq -c file# 合併相同的行,並顯示file中有重複出現的行,輸出到outfile檔案中uniq -d file outfile

28. wc [-clw][--help][--version][檔案...]

  • Linux wc命令用於計算字數。

  • 利用wc指令我們可以計算檔案的Byte數、字數、或是列數,若不指定檔名稱、或是所給予的檔名為"-",則wc指令會從標準輸入裝置讀取資料。

-c或--bytes或--chars 只顯示Bytes數。
-l或--lines 只顯示列數。
-w或--words 只顯示字數。
--help 線上幫助。
--version 顯示版本資訊。
$ cat testfile  
Linux networks are becoming more and more common, but scurity is often an overlooked  
issue. Unfortunately, in today’s environment all networks are potential hacker targets,  
fro0m tp-secret military research networks to small home LANs.  
Linux Network Securty focuses on securing Linux in a networked environment, where the  
security of the entire network needs to be considered rather than just isolated machines.  
It uses a mix of theory and practicl techniques to teach administrators how to install and  use security applications, as well as how the applcations work and why they are necesary.
$ wc testfile           # testfile檔案的統計資訊  3 92 598 testfile       # testfile檔案的行數為3、單詞數92、位元組數598 $ wc testfile testfile_1 testfile_2  #統計三個檔案的資訊  3 92 598 testfile                    #第一個檔案行數為3、單詞數92、位元組數598  9 18 78 testfile_1                   #第二個檔案的行數為9、單詞數18、位元組數78  3 6 32 testfile_2                    #第三個檔案的行數為3、單詞數6、位元組數32  15 116 708 總用量                    #三個檔案總共的行數為15、單詞數116、位元組數708

29. grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][範本樣式][檔案或目錄...]

  • Linux grep命令用於查詢檔案裡符合條件的字串。

-a或--text 不要忽略二進位制的資料。
-A或--after-context= 除了顯示符合範本樣式的那一列之外,並顯示該列之後的內容。
-b或--byte-offset 在顯示符合範本樣式的那一列之前,標示出該列第一個字元的位編號。
-B或--before-context= 除了顯示符合範本樣式的那一列之外,並顯示該列之前的內容。
-c或--count 計算符合範本樣式的列數。
-C或--context=或- 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。
-d或--directories= 當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep指令將回報資訊並停止動作。
-e或--regexp= 指定字串做為查詢檔案內容的範本樣式。
-E或--extended-regexp 將範本樣式為延伸的普通表示法來使用。
-f或--file= 指定範本檔案,其內容含有一個或多個範本樣式,讓grep查詢符合範本條件的檔案內容,格式為每列一個範本樣式。
-F或--fixed-regexp 將範本樣式視為固定字串的列表。
-G或--basic-regexp 將範本樣式視為普通的表示法來使用。
-h或--no-filename 在顯示符合範本樣式的那一列之前,不標示該列所屬的檔名稱。
-H或--with-filename 在顯示符合範本樣式的那一列之前,表示該列所屬的檔名稱。
-i或--ignore-case 忽略字元大小寫的差別。
-l或--file-with-matches 列出檔案內容符合指定的範本樣式的檔名稱。
-L或--files-without-match 列出檔案內容不符合指定的範本樣式的檔名稱。
-n或--line-number 在顯示符合範本樣式的那一列之前,標示出該列的列數編號。
-q或--quiet或--silent 不顯示任何資訊。
-r或--recursive 此引數的效果和指定"-d recurse"引數相同。
-s或--no-messages 不顯示錯誤資訊。
-v或--revert-match 反轉查詢。
-V或--version 顯示版本資訊。
-w或--word-regexp 只顯示全字元合的列。
-x或--line-regexp 只顯示全列符合的列。
-y 此引數的效果和指定"-i"引數相同。
--help 線上幫助。
# 查詢檔案中含有“world”的行grep world file# 查詢檔案中不含有“world”的行grep -v world file

30. awk [-F] ‘(condition){operate}’

  • 對特定的行中特定的列進行操作

-F 指定列的分割符,可以使任意字元,預設按空白分割
# 按“:”來分割並列印出第一列awk -F “:” ‘{print $1}’# 對第一列大於100的行整行輸出awk ‘($1 > 100){print $0}’# 對第一列大於100的行輸出第一列和第二列的結果並以“t”分割。awk ‘($1 > 100){print $1”t”$2}’#對第三列匹配“world”的行的第一列求和,全部處理完之後輸出結果x的值awk ‘($3~/world/){ x+= $1}END{print x}’

31. sed [-i] '{command}'

  • 文字處理並可對檔案進行編輯

-i 直接在原檔案中修改(預設修改後螢幕輸出,原檔案不變)
a 新增,在新的下一行出現
c 取代,取代 n1,n2 之間的行 eg: sed '1,2c Hi' ab
d 刪除
# 將file檔案中的test字元替換為new_wordsed -i ‘s/test/new_word/’ file# 將file檔案中匹配pattern字串的行進行替換操作sed -i ‘/pattern/ s/ test/new_word/’ file# 將檔案file中的空白行刪除(d)sed -i ‘/^$/ d’ file

32. md5sum [-c]

  • 驗證檔案傳輸的完整性

-c 校驗檔案傳輸後是否完整
# 對file1檔案生成md5值。md5sumfile1# 對file1檔案生成md5值並重定向到newfile中。md5sum file1 > newfile# 檢驗newfile中檔案的md5值是否和檔案一致。md5sum -c newfile

33. chmod [-R]

  • 設定檔案或目錄許可權

-R 對目錄和目錄下所有檔案均設定許可權
詳細說明 檔案許可權分為是否可讀(r)、是否可寫(w)、是否可執行(x)3種,同時對應檔案擁有者(u)、同組成員(g)、其他成員(o)3種。
符號模式 [ugoa] [+-=] [rwx]
數值模式 用1/0表示,則111表示可讀可寫可執行,000表示不可讀不可寫不可執行,可讀可寫可執行
分別對應10進位制的4,2,1 則5表示可讀不可寫可執行。
# 對file 檔案使用者自身增加可執行許可權,同組成員許可權設定為可讀可寫,對其他成員移除rwx許可權。chmod u+xg=rx o-rwx file# 對file檔案所有成員移除可寫許可權。chmod a-w file# 對dirname目錄及其下所有檔案許可權設定為使用者自身可讀可寫可執行,同組成員可讀可執行,其他成員無許可權。chmod -R 750 dirname

圖片描述

image.png

34. find [path] [expression]

  • Linux find命令用來在指定目錄下查詢檔案

path 在path路徑下進行查詢
-name 按檔名查詢(檔名允許萬用字元)
-perm 按檔案許可權查詢
-user 按檔案所有者查詢
-group 按檔案所在組查詢
-mtime 按檔案更改時間查詢,-n表示更改時間距現在n天以內,+n表示距現在n天以外
-type 按檔案型別查詢,l:符號連結檔案,f:普通檔案,d:目錄檔案
# 在當前目錄及其子目錄下查詢檔名為file的檔案find./ -name file# 尋找檔名以a結尾的目錄檔案。find ./ -name ‘*a’ -type d 

將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。# find . -name "*.c"將目前目錄其其下子目錄中所有一般檔案列出# find . -type f將目前目錄及其子目錄下所有最近 20 天內更新過的檔案列出# find . -ctime -20查詢/var/logs目錄中更改時間在7日以前的普通檔案,並在刪除之前詢問它們:
$ find /var/logs -type f -mtime +7 -ok rm { } ;
查詢前目錄中檔案屬主具有讀、寫許可權,並且檔案所屬組的使用者和其他使用者具有讀許可權的檔案:
$ find . -type f -perm 644 -exec ls -l { } ;
為了查詢系統中所有檔案長度為0的普通檔案,並列出它們的完整路徑:
$ find / -type f -size 0 -exec ls -l { } ;
查詢/var/logs目錄中更改時間在7日以前的普通檔案,並在刪除之前詢問它們:
$ find /var/logs -type f -mtime +7 -ok rm { } ;

35. du [-ash] [--max-depth=]

  • 顯示目錄或檔案的大小

-a 顯示目錄中個別檔案大小
-s 只顯示總計
-h 以“K” ,“M” ,“G”為單位顯示
--max-depth= 只顯示n層目錄以內的檔案
# 顯示當前目錄的大小du -sh ./# 顯示dir目錄下所有檔案大小,不包括下一級目錄du -ah --max-depth=1 dir

36. ps [options] [--help]

  • Linux ps命令用於顯示當前程式 (process) 的狀態。

-u 顯示usr使用者的程式(預設顯示自身使用者程式)
# ps -A 顯示程式資訊PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd

37. top [-bcdu]

  • 顯示使用者程式(實時)

-b 批處理模式,可以將top內容重定向到檔案中
-c 顯示詳細資訊
-d 重新整理時間間隔,n秒重新整理一次
-u 只顯示usr使用者的程式
顯示程式資訊# top設定資訊更新時間# top -d 3//表示更新週期為3秒顯示指定的程式資訊# top -p 139//顯示程式號為139的程式資訊,CPU、記憶體佔用率等

38. jobs [-l]

  • 顯示後臺任務(當前節點,當前視窗)

-l 顯示任務程式ID
jobsjobs -l

39. kill [-num] [-l]

  • 刪除或控制執行中的程式

-num 透過num傳遞一個訊號控制程式(預設15,終止程式),常用值如下
-9 強制刪除程式
-19 暫停一個程式(使之處於T狀態)
-18 繼續暫停的程式
-l 顯示訊號列表
kill28004    #終止程式號為28004的程式kill -9 28004   #強制刪除程式號為28004的程式kill -19 28004   #暫停程式號為28004的程式kill -18 28004   #繼續程式號為28004的程式kill -l   #顯示訊號列表

40. fg [%num]

  • 將後臺程式轉換到前臺

%num 將編號為num的後臺任務轉換到前臺,num由jobs 命令得到。
fg       #將最近的一個轉後臺的任務轉為前臺fg %2     #將編號為2的後臺任務轉到前臺

41. bg [%num]

  • 將前臺任務轉為後臺(需先用ctrl+z暫停任務),或者繼續後臺暫停的任務

%num 將編號為num的後臺暫停任務繼續。
ctrl+z, bgbg %2 將編號為2的後臺暫停任務繼續。

42. history

  • 查詢該節點上執行過的歷史命令

43. nohup

  • 加到命令前使得該命令在使用者退出登入後也能繼續執行

  • 一般與轉後臺’&’一起使用,螢幕輸出預設重定向到nohup.out檔案中

nohup perl test.pl &

44. 轉後臺 &

  • 加到命令結尾,使該命令在後臺執行

cp file1file2 & 後臺執行複製命令

45. 重定向 >

  • 將標準輸出內容重定向到檔案中

ls dir > dir_list 顯示dir目錄下的檔案並將內容輸出到dir_list檔案中,若dir_list檔案存在,則會被清空,若不純在,將建立。

46. 追加 >>

  • 表示將內容追加到檔案末尾。

ls dir >> dir_list 顯示dir目錄下的檔案並將內容追加到dir_list檔案中,若dir_list檔案存在,內容追加到檔案末尾,若不純在,將建立。

47. 管道符 |

  • 將”|”前一部分的輸出作為”|”後一部分的輸入

less file1| grep world | awk ‘{print $1}’ 顯示file1的內容,將帶有world的行輸出,列印該行的第一列

48. finger [選項] [使用者] [使用者@主機] | 檢視使用者資訊

-s 顯示使用者的註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登入時間等資訊
-l 除了用-s選項顯示的資訊外,還顯示使用者主目錄、登入shell、郵件狀態等資訊,以及使用者主目錄下的.plan、.project和.forward檔案的內容。
-p 除了不顯示.plan檔案和.project檔案以外,與-l選項相同

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

-d 指定不同於空格或tab鍵的域分隔符
-s 按行合併,單獨一個檔案為一行

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

-n 時隔多少秒重新整理
-d 高亮顯示動態變化



作者:thinkando
連結:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2805510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章