生信linux 常用命令手冊(50個)
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 |
---|
# 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統常用命令速查手冊Linux
- Git 常用命令速查手冊Git
- RHEL 5基礎篇—Linux常用命令參考手冊Linux
- Redis常用命令與常用配置速查手冊Redis
- Solaris管理員常用命令簡明手冊
- MySQL 常用命令手冊 增刪改查大法MySql
- Linux完全自學手冊Linux
- 容器化-Docker-1-速查手冊-Docker常用命令Docker
- Linux命令線上中文手冊Linux
- 超級方便Linux手冊Linux
- Linux 安全設定手冊Linux
- Linux學習手冊(轉)Linux
- 生產升級JDK 17 必讀手冊JDK
- 《Linux命令速查手冊》筆記Linux筆記
- linux基本安全配置手冊(轉)Linux
- Linux資料備份手冊Linux
- LInux50個基本命令Linux
- 50個LINUX問答題(轉)Linux
- 超級方便的linux命令手冊Linux
- Linux不完全手冊(三)(轉)Linux
- Linux不完全手冊(二)(轉)Linux
- Linux網路管理員手冊 (轉)Linux
- 50個最常用的UNIX/Linux命令Linux
- ubuntu搭建nodejs生產環境——快速部署手冊UbuntuNodeJS
- 統信軟體攜手奇安信、尤拉社群共建商用密碼多元生態密碼
- Linux ubuntu中13個常用命令LinuxUbuntu
- linux核心命令列引數速查手冊Linux命令列
- Linux 管理員手冊(8)--備份(轉)Linux
- Linux網路管理員手冊(1) (轉)Linux
- Linux 管理員手冊(1)--Linux系統概述(轉)Linux
- 每天一個 Linux 命令(50): crontab 命令Linux
- 每天一個linux命令(50):crontab命令Linux
- Basic語言誕生50週年:改變整個世界C語言
- 找到Intel手冊裡的一個bugIntel
- mysql常用命令使用手冊MySql
- 是操作手冊更是安全手冊
- 玩轉Linux的97個常用命令Linux
- 近 100 個 Linux 常用命令大全Linux