号:通配符,可以比對零個或任意多個字元
? 号:單配符,
#号:注釋符,該符号後跟的指令或參數不會執行
\号:加注在特殊符号前使其失去指令意義
|管道符:把一條指令的結果傳遞給另外一條指令,注意後一條指令不是什麼指令都可以,一般是針對文檔的指令。例如less、more、head、tail、grep、sed、awk等等。
$ :變量字首,!¥
; 多條指令寫到一行時用;分割
~ 使用者家目錄替代符,root的家目錄,正則中表示比對符
& 放在指令末尾表示把指令放到背景
把正确和錯誤的結果都輸出到一個檔案
用在shell中表示或者
表示如果指令1失敗則執行指令2,若指令1成功則不執行指令2,指令1、2之間隻有一條指令會執行
&&表示如果指令1失敗,則指令終止,所有指令都不會執行,若指令1成功則指令2才會執行,指令1、2要麼都執行,要麼都不執行。
示例
1、II與&&特殊符号含義示例

本例中隻有當ls test2成功後才會執行 touch test2指令。因為test2不存在,是以前一條指令不成功,後面一條指令就不會執行
那麼我們換成 ls test2 || touch test2看看
本例中,因為前面一條指令 ls test2失敗了,于是第2條指令就被執行了
分隔符
cut指令用來顯示行中的指定部分,删除檔案中指定字元串。
指令寫法:cut -d “分割标記” -f 第幾段至第幾段 cut -c n(第幾個字元)
選項:
-c:僅顯示行中指定範圍的字元;
-d:指定字段的分隔符,預設的字段分隔符為“TAB”;
-f:顯示指定字段的内容;
用法舉例:
1、指令:<code>cat /etc/passwd |head -2 |cut -d ":" -f 1</code>
圖中标記1:選項-d用來制定分割符号,passwd檔案中用的是“;”号,于是我們就輸入-d “;”讓程式認出文本中的分段,為-f 選項提供分段依據
圖中标記2:選項-f是選擇第幾段到第幾段,豎排的叫段,相當于excel的選取單列。
圖中的指令含義就是顯示passwd檔案中的前2行文字的第1段,分段符是分号“;”
2、指令:<code>cat /etc/passwd |head -2 |cut -c 4</code>
指令寫法
-t<分隔字元>:指定排序時所用的欄位分隔字元;
-n:依照數值的大小排序,采用該選項時,字母或者符号開頭的文字會被認為數值是0而排在前面;
-r:以相反的順序來排序;
-u:表示去重複
-kn1,n2:表示由n1區間排序到n2區間,可以隻寫-kn1,即對n2字段排序。
1、對檔案passwd前5行進行排序
指令:<code>head -n 5 /etc/passwd | sort</code>
預設情況是root在第一行的。這裡adm這個到第一行了。
2、對檔案test1按數字排序
注意符号和字母的行因為等于0是以排在前面
3、對passwd檔案前三行按照第三列數字大小排序并輸出結果。
head -n 3 /etc/passwd | sort -t “:” -k3 -n
wc指令用于統計文檔的行數、字元數或詞數。
-l :統計行數
-m:統計字元數
-w:統計詞數
用法舉例
我先建立一個測試文檔,他的内容是下面這個
1、wc -l 統計行數
2、wc -m統計字元數(注意末尾那個$表示換行的意思)
3、wc -w統計詞數
看來應該是把隻要是兩個分隔符之間的東西就認為是一個word。這個word不是語言學上的word。
uniq指令是用來去重的,他去的是兩個連續行之間的重,那麼你第一行和第三行内容重複的話,uniq是不去的,是以我們一般把這個指令和sort一起用,先排序再去重。注意結果是輸出到螢幕中,不會去修改原始檔案,除非你用重定向把原始檔案内容修改掉。
-c 統計某一内容重複次數
1、排序1.txt 并去重顯示,同時顯示某一字元串重複次數。
tee指令用于将資料重定向到檔案,另一方面還可以提供一份重定向資料的副本作為後續指令的stdin。tee - read from standard input and write to standard output and files,簡單的說就是把資料重定向到給定檔案和螢幕上。該指令一般跟在|管道符之後。
-a 追加,像>>追加重定向。
echo "i am learning linux" | tee 2.txt
tr指令用于替換字元,從标準輸入中替換、縮減和/或删除字元,并将結果寫到标準輸出。
用法:tr [選項]... SET1 [SET2]
-d 删除某個字元,後面跟要删除的字元
-s删除重複的字元,注意是連續相同的字元
1、替換文字中的小寫字母為大寫字母
echo "HELLOWORLD" | tr '[A-Z]' '[a-z]'
2、替換某個字元
cat 1.txt | tr '1' '@'
split指令可以将一個大檔案分割成很多個小檔案,有時需要将檔案分割成更小的片段,比如為提高可讀性,生成日志等。實際工作中比如你碰到一個10G的日志檔案,這時你不做切割基本無法檢視他,是以我們需要split他來查閱。
用法:split [選項]... [輸入 [字首]]
選項
-b 指定分割後每個檔案大小,可以寫成10KB、1.44MB等等
-l 指定多少行為一個分割檔案
1、把一個檔案拆成1000位元組一個檔案,并以test為字首
split -b 1000 a.txt test
本文轉自 whytl 51CTO部落格,原文連結:http://blog.51cto.com/11934539/2060534