shell 特殊符號

1、特殊符號

shell 特殊符號

相關例子,詳見下圖,
shell 特殊符號

2、關於管道符

shell 特殊符號

(1)、cut 分割
-d 分隔符 -f 指定段號 -c 指定第幾個字符
舉例子,見下圖,
shell 特殊符號
上圖例子中,| 輸出結果,cut 分割出後面想要的結果。一般情況下,-c 和 -d 、-f 不同時使用。

(2)、sort 排序
-n 以數字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
舉例子,見下圖,
shell 特殊符號
可以注意到,紅色框框裏面的內容是按字母順序排列的,這個就是 sort 作用的結果。sort 後面不加任何選項,則從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。

關於ASCII碼,百度百科的解釋如下:
shell 特殊符號

shell 特殊符號

shell 特殊符號

shell 特殊符號

接着往下操作,見下圖,
shell 特殊符號
回車之後,進入下圖,
shell 特殊符號
隨機輸入上圖紅色框框的內容,保存後退出。使用 sort 查看文件 1.txt ,見下圖,
shell 特殊符號
可以看到上圖的排列順序是,先特殊符號,再數字,然後再字母,包括 * 號。以上就是 ASCII 碼的排列順序。
-n 選項是以數字排序,前面的特殊符號和字母,都默認爲 0 。見下圖,
shell 特殊符號
-r 選項是反序的意思,見下圖,
shell 特殊符號
-t 後面跟分隔符,-kn1/-kn1,n2 ,這些用的比較少,瞭解即可。

(3)、wc
-l 統計行數 -m 統計字符數 -w 統計詞
舉個例子,見下圖,
shell 特殊符號
進入 2.txt 文件,編輯輸入下圖紅色框框的內容,
shell 特殊符號
保存後退出。接着統計 2.txt 的字符數,見下圖,
shell 特殊符號
可以看到,2.txt 的字符數是 8 ,爲什麼會是 8 呢?cat -A 之前說過,它可以查看 2.txt 文件裏的所有內容,包括隱藏的。然後,就看到了每一行末尾的 $ ,表示的是換行符。所以,wc -m 2.txt 的結果是 8 。
接着對 -w 進行操作,見下圖,
shell 特殊符號
2.txt 裏的內容有兩行,所以顯示的結果是 2 。再次進入 2.txt 編輯文件內容,見下圖,
shell 特殊符號
補充完上圖內容後,保存並退出。再次查看統計詞,見下圖,
shell 特殊符號
-w 是以空白字符作爲分隔符的,所以結果顯示爲 3 。

(4)、uniq 去重複,-c 統計行數
輸入命令 vi 2.txt ,回車,見下圖,
shell 特殊符號
增加上圖紅色框框的內容,保存並退出。接着往下操作,
shell 特殊符號
發現 uniq 命令對 2.txt 的內容沒有任何影響,再次進入文件 2.txt ,編輯內容如下,
shell 特殊符號
將最後的1和2互換位置,然後保存退出。接着使用命令 uniq 2.txt 查看,見下圖,
shell 特殊符號
這時候,就會看到去重複了。這是有條件的去重複,必須兩個同樣的字符在前後位置,才能去重複。
一般情況下,uniq 和 sort 是一起使用的,見下圖,
shell 特殊符號
先排序,後去重複。這樣子使用命令之後,就看不到重複的數值了。還可以使用 -c 選項來統計重複的次數,每一排前面的數字就是重複的次數。

(5)、tee
和 > 類似,重定向的同時還在屏幕顯示,|tee -a 有追加作用
舉例子,見下圖,
shell 特殊符號
從上圖可以看出 |tee 的一個作用就是重定向,還有一個作用是把文件內容打印到屏幕上。
-a 選項有追加的作用,見下圖,
shell 特殊符號
再追加一次,再查看文件,見下圖,
shell 特殊符號

(6)、tr 命令
tr 替換字符,tr 'a' 'b',大小寫替換 tr '[a-z]' '[A-Z]'
具體操作,詳見下圖,
shell 特殊符號

(7)、split 命令
split 切割,-b 大小(默認單位字節),-l 行數
首先來創建一個大文件,輸入命令 find /etc/ -type f -name "conf" ,回車,見下圖,
shell 特殊符號
該命令結果內容太多,不一一截圖,接着操作如下,
shell 特殊符號
後面這些 4.0 KB的文件也很多,不一一截圖了。接着用命令 du -sh ,回車,見下圖,
shell 特殊符號
內容也非常多,不一一截圖。1000 單位是 b 。因爲前面切割的單位是 1000 ,接着往 100 切割,見下圖,
shell 特殊符號
切割成 100 之後,文件就更多了,圖片內容截圖不全,可以注意到這些小文件的命名都是有按字母排序的。文件太多,全部刪除掉,接着往下操作,
shell 特殊符號
以上就是 split 的用法,可以按大小切割,也可以按行數切割。

3、特殊符號

shell 特殊符號

$ 、 ~ 、 & 、> 、>> 、2> 、2>> 、 &> 、 [ ] ,這些符號前面都有說過,這邊就不介紹了。正則表達式,後面再介紹。
下面說一下 ; 分號,見下圖,
shell 特殊符號
這個命令 for i in 'seq 1 10' ,後面再介紹。注意上圖中紅色框框的內容,單引號和反引號作用的結果是不一樣的。接着按向上的方向鍵,就出現上圖中最後面的那個命令,也就是命令歷史,會發現裏面自動加上了分號 ; ,這就是多條命令之間用分號分割。繼續操作,見下圖,
shell 特殊符號
兩條命令之間用分號分割,分號前後可以空格也可以不用空格,結果都是一樣的,建議還是用空格區分一下,看起來比較直觀。
接着介紹一下 || 和 && 這兩個符號,其中 || 用在 shell 當中就表示或者的意思,見下圖,
shell 特殊符號
上圖中, la.txt 是沒有的文件,所以會出現報錯。用 ;號兩個結果都能執行,換成 || 號,也兩個結果都有出現。接着把 la.txt 文件換成正確的 1.txt 文件,就只出現了一個結果,是前面一條命令的結果。以上說明,|| 號是或者的意思,前一條命令執行不成功的話,就執行後面的一條命令。前面的命令執行成功的話,後面的命令就不執行了。
反過來,如果前面的命令執行成功了,纔會執行後面的命令,就用 && 號,見下圖,
shell 特殊符號
現在舉一個實際應用的例子,見下圖,
shell 特殊符號
關於命令 [ -d lyslinux ] || mkdir lyslinux 後面會介紹,現在先了解一下。[ -d lysliunx ] 這個命令的意思是用來判斷 lyslinux 是不是一個目錄,並且這個目錄是否存在?是目錄並且存在的話,這個命令就成功了。如果不存在的話就創建一個目錄 lyslinux ,如上圖紅色框框顯示的結果。而命令 [ -d lyslinux ] && mkdir lyslinux 的意思是,目錄 lyslinux 存在的話,再去創建一個目錄 lyslinux ,所以執行的結果就是無法創建目錄 ”lyslinux“:文件已存在,執行的是後面的命令。接着執行命令 [ -d lyslinux ] || mkdir lyslinux ,就沒有報錯,意思是目錄 lyslinux 存在就不執行後面的創建目錄的命令。
關於 || 和 && 的用法,後面在 shell 腳本里會多次用到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章