常用命令
參數(shù) | 說明 |
---|---|
u | 撤銷鍵 |
. | 小數(shù)點(diǎn),重復(fù)上一個(gè)動(dòng)作 |
x, X | 小寫x == Del鍵(向后刪除一個(gè)字符);大寫X == Backspace鍵(向前刪除一個(gè)字符)段只;同時(shí)支持nx,向后刪除n個(gè)字符鱼鸠; |
dd | 刪除一行皇耗;同時(shí)支持ndd,刪除n行(光標(biāo)所在行開始的n行) |
yy | 復(fù)制一行耙厚;同時(shí)支持nyy参歹,復(fù)制n行(光標(biāo)所在行開始的n行) |
p,P | 小寫p == 粘貼在光標(biāo)上面仰楚;大寫P == 粘貼在光標(biāo)下面 |
特殊字符處理
參數(shù) | 說明 |
---|---|
$# | 傳遞到腳本的參數(shù)個(gè)數(shù) |
$* | 以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù) |
$$ | 當(dāng)前運(yùn)行腳本的進(jìn)程ID號(hào) |
$! | 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的ID號(hào) |
$@ | 與$*相同,但是使用時(shí)會(huì)加上引號(hào),并在引號(hào)中返回每個(gè)參數(shù) |
$- | 顯示Shell使用的當(dāng)前選項(xiàng)僧界,與set命令功能相同 |
$? | 顯示最后命令的退出狀態(tài)侨嘀,0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤 |
字符處理 ${}的妙用
定義一個(gè)字符串str=/home/admin/logs/err.log.2017-12-05
${str:index:length}
字符串提任娼蟆:
${str:0:5}:提取最左邊的 5 個(gè)字節(jié):/home
${str:5:5}:提取第 5 個(gè)字節(jié)右邊的連續(xù)5個(gè)字節(jié):/admi${str/oldChar/newChar}
字符串作替換:
${str/admin/log}:將第一個(gè)admin替換為log:/home/log/logs/err.log.2017-12-05
${str//log/xxx}:將全部log替換為xxx:/home/admin/xxxs/err.xxx.2017-12-05
腳本testStr.sh
執(zhí)行結(jié)果
字符處理 #
飒炎、 %
、##
笆豁、 %%
區(qū)別
定義一個(gè)字符串str=/home/admin/logs/err.log.2017-12-05
參數(shù) | 結(jié)果 |
---|---|
${str#*/} | 刪掉第一個(gè) / 及其左邊的字符串:home/admin/logs/err.log.2017-12-05 |
${str##*/} | 刪掉最后一個(gè) / 及其左邊的字符串:err.log.2017-12-05 |
${str#*.} | 刪掉第一個(gè) . 及其左邊的字符串:log.2017-12-05 |
${str##*.} | 刪掉最后一個(gè) . 及其左邊的字符串:2017-12-05 |
${str%/*} | 刪掉最后一個(gè) / 及其右邊的字符串:/home/admin/logs |
${str%%/*} | 刪掉第一個(gè) / 及其右邊的字符串:(空值) |
${str%.*} | 刪掉最后一個(gè) . 及其右邊的字符串:/home/admin/logs/err.log |
${str%%.*} | 刪掉第一個(gè) . 及其右邊的字符串:/home/admin/logs/err |
總結(jié):
#
:去掉左邊(鍵盤上#在 $ 的左邊)
%
:去掉右邊(鍵盤上%在 $ 的右邊)
##
郎汪、%%
:最大程度匹配
小備注:
為什么##
是刪除最后一個(gè),而%%
刪除第一個(gè)闯狱?
因?yàn)?code>#是從左邊開始煞赢,按最大程度匹配來說,就是指最后一個(gè)哄孤。
因?yàn)?code>$是從右邊開始照筑,按最大程度匹配來說(就右往左最大程度匹配),就是指第一個(gè)瘦陈。
腳本testStr2.sh
執(zhí)行結(jié)果
小知識(shí)
-
輸出第10個(gè)字符
0-9個(gè)字符是可以用$
+下標(biāo)來輸出凝危,但是第10個(gè)參數(shù)不能用$10
輸出,需要用${10}
晨逝。
[[ ]]
和[ ]
的區(qū)別
- 在
[ ]
表達(dá)式中蛾默,常見的>, <
需要加轉(zhuǎn)義字符,表示字符串大小比較捉貌,以acill碼 位置作為比較支鸡。不直接支持<, >
運(yùn)算符,還有邏輯運(yùn)算符|| , &&
它需要用-a[and] -o[or]
表示趁窃。
如執(zhí)行[ 2 < 1 ]
是不支持的牧挣,需要用轉(zhuǎn)義符,正確形式:[ 2 \< 1 ]
-
[[ ]]
運(yùn)算符只是[]運(yùn)算符的擴(kuò)充醒陆。能夠支持<,>
符號(hào)運(yùn)算不需要轉(zhuǎn)義符瀑构,它還是以字符串比較大小。里面支持邏輯運(yùn)算符:|| &&
刨摩,不再使用-a -o