Linux shell基礎知識_8(下)
特殊符號
*任意個任意字元
?任意一個字元
#註釋字元,#後面的命令不生效
\脫義字元,取消特殊字元的原意
[root@zyshanlinux-01 ~]# a=1 [root@zyshanlinux-01 ~]# b=2 [root@zyshanlinux-01 ~]# c='$a$b' [root@zyshanlinux-01 ~]# echo $c $a$b [root@zyshanlinux-01 ~]# c=\$a\$b ##脫義 [root@zyshanlinux-01 ~]# echo $c $a$b
|管道符
幾個和管道有關的命令,這些命令並沒有更改檔案的內容。
1、cut分割
cut命令用來顯示行中的指定部分,刪除檔案中指定欄位。cut經常用來顯示檔案的內容,類似於下的type命令。
說明:該命令有兩項功能,其一是用來顯示檔案的內容,它依次讀取由引數file所指 明的檔案,將它們的內容輸出到標準輸出上;其二是連線兩個或多個檔案,如cut fl f2 > f3將把檔案fl和幾的內容合併起來,然後通過輸出重定向符“>”的作用,將它們放入檔案f3中。
當檔案較大時,文字在螢幕上迅速閃過(滾屏),使用者往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,並且返回Shell提示符狀態。
語法
cut (選項) (引數)
選項
-d:指定欄位的分隔符,預設的欄位分隔符為“TAB”;-f:顯示指定欄位的內容;-c:僅顯示行中指定範圍的字元;
引數
檔案:指定要進行內容過濾的檔案。
示例
[root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 root bin [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 root:x bin:x [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 root:x:0 bin:x:1 [root@zyshanlinux-01 ~]# cat /etc/passwd |head -2 |cut -c 4 t :
2、sort排序
sort命令是在Linux裡非常有用,它將檔案進行排序,並將排序結果標準輸出。sort命令既可以從特定的檔案,也可以從stdin中獲取輸入。
ASCII碼排序
ASCII(American Standard Code for Information Interchange,美國資訊交換標準程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。 [1] 請注意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASCⅡ(羅馬數字2),有很多人在這個地方產生誤解。
語法
sort (選項) (引數)
選項
-n:依照數值的大小排序;
-r:以相反的順序來排序;
-t<分隔字元>:指定排序時所用的欄位分隔字元; -kn1/-kn1,2
引數
檔案:指定待排的檔案列表。
示例
[root@zyshanlinux-01 ~]# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
3、wc計算數字
wc命令用來計算數字。利用wc指令我們可以計算檔案的Byte數、字數或是列數,若不指定檔名稱,或是所給予的檔名為“-”,則wc指令會從標準輸入裝置讀取資料。
語法
wc (選項) (引數)
選項
-l或——lines:只顯示行數;-m: 統計字元數;-w或——words:只顯示字數;-c或--bytes或——chars:只顯示Bytes數;
引數
檔案:需要統計的檔案列表。
示例
[root@zyshanlinux-01 ~]# wc -l 1.txt10 1.txt
[root@zyshanlinux-01 ~]# wc -m 2.txt8 2.txt[root@zyshanlinux-01 ~]# cat -A 2.txtawk$wwc$[root@zyshanlinux-01 ~]# wc -w 2.txt2 2.txt
4、uniq去重
uniq命令用於報告或忽略檔案中的重複行,一般與sort命令結合使用。
語法
uniq (選項) (引數)
選項
-c或——count:在每列旁邊顯示該行重複出現的次數;
引數
輸入檔案:指定要去除的重複行檔案。如果不指定此項,則從標準讀取資料;輸出檔案:指定要去除重複行後的內容要寫入的輸出檔案。如果不指定此選項,則將內容顯示到標準輸出裝置(顯示終端)。
示例
[root@zyshanlinux-01 ~]# sort 2.txt |uniq ##先排序,再去重複,否則去重複失敗 123 awk c ww
5、tee和>類似,重定向的同時還在螢幕顯示
tee命令用於將資料重定向到檔案,另一方面還可以提供一份重定向資料的副本作為後續命令的stdin。簡單的說就是把資料重定向到給定檔案和螢幕上。
語法
tee (選項) (引數)
選項
-a:向檔案中重定向時使用追加模式;-i:忽略中斷(interrupt)訊號。
引數
檔案:指定輸出重定向的檔案。
示例
[root@zyshanlinux-01 ~]# sort 2.txt |uniq -c > a.txt [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# > a.txt ##清空a.txt的內容 [root@zyshanlinux-01 ~]# cat a.txt [root@zyshanlinux-01 ~]# sort 2.txt |uniq -c |tee a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# sort 2.txt |uniq -c |tee -a a.txt ##與>>追加類似 1 2 123 1 awk 1 c 2 ww [root@zyshanlinux-01 ~]# cat a.txt 1 2 123 1 awk 1 c 2 ww 1 2 123 1 awk 1 c 2 ww
6、tr替換字元,tr'a''b',大小寫替換tr'[a-z]''[A-Z]'
tr命令可以對來自標準輸入的字元進行替換、壓縮和刪除。它可以將一組字元變成另一組字元,經常用來編寫優美的單行命令,作用很強大。
語法
tr (選項) (引數)
選項
-c或——complerment:取代所有不屬於第一字符集的字元;-d或——delete:刪除所有屬於第一字符集的字元;-s或--squeeze-repeats:把連續重複的字元以單獨一個字元表示;-t或--truncate-set1:先刪除第一字符集較第二字符集多出的字元。
引數
字符集1:指定要轉換或刪除的原字符集。當執行轉換操作時,必須使用引數“字符集2”指定轉換的目標字符集。但執行刪除操作時,不需要引數“字符集2”;字符集2:指定要轉換成的目標字符集。
示例
[root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr '[al]' '[AL]' zyshAnLinux [root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr '[zl]' '[ZL]' ZyshanLinux [root@zyshanlinux-01 ~]# echo "zyshanlinux" |tr 'z' 'Z' Zyshanlinux
7、split切割,-b大小(預設單位位元組),-l行數
split命令可以將一個大檔案分割成很多個小檔案,有時需要將檔案分割成更小的片段,比如為提高可讀性,生成日誌等。
選項
-b:值為每一輸出檔案的大小,單位為 byte。-C:每一輸出檔中,單行的最大 byte 數。-d:使用數字作為字尾。-l:值為每一輸出檔的列數大小。
示例
[root@zyshanlinux-01 ~]# split -b 100M bigfile [root@zyshanlinux-01 ~]# split -l 1000 bigfile
$變數字首,!$組合,正則裡面表示行尾
;多條命令寫到一行,用分號分割
~使用者家目錄,後面正規表示式表示匹配符
&放到命令後面,會把命令丟到後臺
> >> 2> 2>> &>
[]指定字元中的要給,[0-9],[z-zA-Z],[abc]
||和&& ,用於命令之間,||類似或,&&類似與
[root@zyshanlinux-01 ~]# ls 1.txt ||wc -l 1.txt ##前一條命令成功,不執行後一條命令 1.txt [root@zyshanlinux-01 ~]# ls 1a.txt ||wc -l 1.txt ##前一條命令失敗,執行後一條命令 ls: 無法訪問1a.txt: 沒有那個檔案或目錄 10 1.txt [root@zyshanlinux-01 ~]# ls 1.txt &&wc -l 1.txt ##前一條命令成功,執行後一條命令 1.txt 10 1.txt [root@zyshanlinux-01 ~]# ls 1a.txt &&wc -l 1.txt ##前一條命令失敗,不執行後條命令 ls: 無法訪問1a.txt: 沒有那個檔案或目錄
相關測驗題目(必須要做):http://ask.apelearn.com/question/5437
簡易審計系統(必須要預習): http://www.68idc.cn/help/server/linux/2014042190951.html
擴充套件:
關於PROMPT_COMMAND環境變數的含義 http://www.linuxnote.org/prompt_command-environment-variables.html
source exec 區別 http://alsww.blog.51cto.com/2001924/1113112
Linux特殊符號大全http://ask.apelearn.com/question/7720
sort並未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975
相關文章
- linux基礎知識Linux
- shell指令碼的基礎知識指令碼
- MySQL基礎知識(8)MySql
- Linux基礎知識(Ubuntu)LinuxUbuntu
- shell基礎知識查缺補漏
- Linux基礎入門(一)初識ShellLinux
- linux 基礎知識彙總Linux
- linux基礎知識大綱Linux
- Linux基本知識與基礎命令Linux
- linux基礎知識整理(備忘)Linux
- Linux下Apache(HTTP)基礎知識梳理-運維筆記LinuxApacheHTTP運維筆記
- Linux shell基礎3Linux
- Linux shell基礎1Linux
- Linux shell基礎2Linux
- 基礎知識
- 超全面的Linux基礎知識的梳理Linux
- 程式猿必備的Linux基礎知識Linux
- Linux磁碟管理基礎知識全彙總Linux
- Linux基礎五(shell指令碼)Linux指令碼
- Linux學習-shell基礎02Linux
- 前端-基礎知識體系(初級-下)前端
- java基礎知識Java
- 1、基礎知識
- 前端基礎知識前端
- Vue基礎知識Vue
- Camera基礎知識
- Hadoop基礎知識Hadoop
- python基礎知識Python
- BGP基礎知識
- Mybatis基礎知識MyBatis
- Kafka 基礎知識Kafka
- qml基礎知識
- python 基礎知識Python
- webpack基礎知識Web
- AI 基礎知識AI
- PRML 基礎知識
- JSP基礎知識JS
- Dart基礎知識Dart