> vi複製粘貼
游標移動到要複製的部分的開頭,Esc退出插入模式,按v進入Visual模式,用hjkl選中要複製的部分
按Y或者yy,複製
移動游標到目標位置,按p,粘貼
> echo –e
參數 –e 可以使echo解釋由反斜線“\”轉義的字元,逸出字元一定要由雙引號引起來
echo –E
與-e相反,禁止對逸出字元“\”的解釋,預設如此
> echo –n
禁止分行符號終止訊息
> script=$(basename $0)
這是替換的命令。可以理解為script=$basename,然後用的時候,將$basename替換為$0
> $#
參數個數,不含指令碼名自身。
eg. vi $#是0; vi test $#是1
> $$
指令碼運行時的進程編號PID
> $?
運行一條指令後,用$?捕捉指令執行返回狀態
> $0,$1,$2。。。
$0是指令檔名,$1,$2為指令碼運行時輸入的參數,一次編號
> shift
指令碼參數$1,$2,$3...維護成一個隊列,使用一次shift後,$1從隊列中移出,之後,$2-->$1, $3-->$2 ...
> $*
表示參數的列表,不含$0,即指令檔名
for argv in $* 可以用來遍曆列表中的參數,也可以直接用簡寫 for argv 來表示
> Here 文檔
以 << 開頭,表示後面緊跟的是一個Here文檔。<< 後面跟著一組成對的mark,mark中間的內容是Here文檔的內容。mark可以是一個或多個符號。結尾的mark必須獨佔一行。
shell 將mark之間的所有內容當做標準輸入發送給進程。
eg.
cat >file1 <<'End of file1'
This is a file.
It contains two lines.
End of file1
> 1>&2
一般加在echo命令後面,將本條輸出重新導向到標準錯誤輸出
> 檔案描述符
exec n> outfile 開啟一個輸出檔案outfile,並賦值給n;之後,向outfile寫資料,直接將輸出指向n即可
exec m< infile 開啟一個輸入檔案infile,並複製給m;之後,從infile讀資料,直接用m來讀就可以了。
<& 複製一個輸入檔案描述符
>& 複製一個輸出檔案描述符
> 左運算元是檔案描述符,右運算元是檔案; >& 左右運算元都是檔案描述符。
特例: >&n 將標準輸出1賦值(即重新導向到)n
<&m 將標準輸入0賦值(即重新導向到)m
eg.
圖1 檔案描述符舉例。
如果沒有參數,則將標準輸入複製到標準輸出;1個參數,將該檔案作為輸入,內容輸出到螢幕(標準輸出);2個參數,第一個作為輸入,第二個作為輸出,即將檔案1拷貝到檔案2中。
> 刪除
刪除一個字元 x
刪除當前一行 dd
刪除游標之後單詞剩餘部分 dw
刪除光變之後改行剩餘部分 d$