0404 第十次課:shell基礎(下)
一、shell特殊符號
-
shell中的一些特殊符號:
*:表示任意個任意字元
?:表示任意單個字元
#:表示註釋字元
\ :表示脫義字元
|:表示管道符
二、cut命令
-
cut命令是用來分割
用法: cut -d 指定分隔符 -f 指定段號 -c 指定第幾個字元
-
示例:
1、 以":"分割,擷取passwd檔案的第一段
cat /etc/passwd |cut -d ":" -f 1
2、擷取pass檔案第一行
三、sort命令
-
sort命令是用來進行排序
用法:sort -n 以數字進行排序 -r 反序 ,-t 分隔符(一般不使用)
-
注意點:
sort預設的排序是按ascii碼進行排序
sort一般和uniq結合起來使用
如何按照數字排序那麼特殊符號和字母大小預設認為是0
-
示例:
1、不加引數,預設是ascii碼進行排序
2、以數字進行排序,字母和特殊符號會被認為是0,所以字母和特殊符號都在數字之上
3、反序
四、wc命令
-
wc命令是用來統計
用法:wc -l 統計行數 -m統計字元數 -w 統計詞數
示例:
1、統計行數
2、統計字元數
3、統計詞數
五、uniq命令
-
uniq命令是用來去重的,一般都是結合sort來進行使用。
用法:uniq -c 統計重複行數
-
示例:
1、去重
2、統計重複行數
六、tee_tr_split命令
-
tee命令
tee命令和輸出重定向(>)類似,不同的是tee會把重定向的內容列印到螢幕。tee也支援追加,加個-a引數即可。
示例:
-
tr命令
tr命令用於替換字元
示例:
1、替換字母
2、替換所有的字母
-
split命令
split命令用於切割,可以把一個大檔案切割為小檔案。
用法:split -b 按照大小進行切割,預設單位為位元組。 -l 指定行數進行切割
-
示例
首先生成一個大一點的檔案
find /etc -name "*.cnf" -exec cat {} >> 01.txt \;
1、按照100k 大小進行分割,如果不指定名稱系統會預設生成檔名。
split -b 100k 01.txt
2、指定檔名
split -b 100k 01.txt wxy
3、指定行數分割
split -l 10000 01.txt
七、shell特殊符號下
-
$:變數字首
-
!$:正則中表示行尾
-
; :多條命令寫到一行 用";"分割
如下:同時執行ll和統計命令
-
~:使用者家目錄,正則中表示匹配符
-
&:放在命令後門表示後臺執行
-
">":正確重定向
-
">>":追加重定向
-
2> :錯誤重定向
-
2>> :錯誤追加重定向
-
&> : 正確錯誤同時重定向
-
[]:指定字元中的一個,如[0-9],[a-zA-z]
-
|| && 用在命令之間。||表示如果前面命令執行成功則不會執行後面的,&&表示前面的命令執行成功才會執行後面的命令
示例:
|| 前面ll命令執行成功後,後面wc命令則不會執行
判斷一個目錄是否存在,如果不存在則建立
[ -d wxy ] || mkdir wxy
-d 是判斷一個目錄是否存在
改為&&就會報目錄已存在