一、shell特殊符号
* 任意個任意字元
? 任意一個字元
# 注釋字元
\ 脫義字元
例如:
[root@localhost ~]# a=2
[root@localhost ~]# b=3
[root@localhost ~]# c=$a$b
[root@localhost ~]# echo $c
23
[root@localhost ~]# c=\$a\$b
$a$b
管道符
cut 截取
-d 指定分隔符
-f 指定截取那一段
[root@localhost ~]# cat /etc/passwd |head -3 | cut -d ":" -f 1-3
root:x:0
bin:x:1
daemon:x:2
$變量的字首
!$ 正則裡面表示行尾
;多條指令寫到一行,用;分割
~使用者的家目錄。正規表達式裡表示比對符
&把指令放到背景
> 正确重定向
>> 正确追加重定向
2> 錯誤重定向
2>>錯誤追加重定向
&>正确錯誤重定向
|| 用在shell中表示或者的意思,如果第一條指令執行成功,則不執行第二條指令。如果第一條指令不成功,則執行第二條指令
&& 目前面的指令執行成功時,才執行後面的指令
[root@localhost ~]# ls
1.txt anaconda-ks.cfg
[root@localhost ~]# [ -d litongyao ] || mkdir litongyao (沒有litongyao這個目錄,則執行第二條)
1.txt anaconda-ks.cfg litongyao
[root@localhost ~]# [ -d litongyao ] && mkdir litongyao (存在litongyao目錄。在執行時會報錯)
mkdir: 無法建立目錄"litongyao": 檔案已存在
二、 sort_wc_uniq指令
sort 排序
sort + 檔案名 (預設是以“阿斯瑪”排序)
特殊符号>數字>字母
-n 預設以數字去排序(預設字母和特殊符号為0,是以會排在最前面)
-r 反序排序
wc 統計
-l 統計行數
-m 統計字元數 (隐藏的換行符也算 用cat -A 檢視隐藏符号)
-w 統計字元串 (預設以空白格或,為分隔符)
uniq 去重 (但是要先排好順序,是以一般和sort一起用)
[root@localhost ~]# uniq 1.txt
1
2
3
1111
2222
3333
111
[root@localhost ~]# sort 1.txt | uniq
uniq -c 顯示重複次數
[root@localhost ~]# sort 1.txt | uniq -c
2 1
1 111
1 1111
2 2
1 2222
2 3
1 3333
三、tee_tr_split
tee 和輸出重定>向有點像,但是把重定向的内容列印到螢幕上
-a 追加,和>>相似
tr 替換字元
[root@localhost ~]# echo "litongyao" |tr '[lty]' '[LTY]'
LiTongYao
[root@localhost ~]# echo "litongyao" |tr '[a-z]' '[A-Z]'
LITONGYAO
split 切割檔案
split -b 100M + filename 以檔案大小切割 (可以指定檔案字首,預設是x開頭)
split -l 1000 + filename 以行數切割
本文轉自 小新銳 51CTO部落格,原文連結:http://blog.51cto.com/13407306/1982924,如需轉載請自行聯系原作者