ctrl + e 跳到命令行最末端
ctrl + a 跳到命令行首端
ctrl + l 清屏
alt + n(n 爲數字) 切換到terminal相應的tab
mv xxx{,.bak} 等同於mv xxx xxx.bak
esc + . 能填充之前命令的最後一個字段
vim編輯文件後發現需要root權限,
:w | sudo tee % 。(w:表示vim的修改操作,這個命令的輸出更改後的文件到“標準輸出” !sudo tee % :執行 一個 shell 命令, % 表示當前打開的這個文件的名字。 整個命令就是 將w的輸出傳給 tee,tee 在root 權限下 把更改的內容存在文件當中。)
sudo !!用sudo執行上條命令
!!全部的上一條命令
!*上一條的全部命令
!$ 上一行命令的 最後一個參數
$()和${}的用法:
在 bash shell 中,$( ) 與 ` ` (反引號) 都是用來做命令替換用(command substitution)的。而 $( ) 並不見的每一種 shell 都能使用,若你用 bash2 的話,肯定沒問題...
看 ${ } 吧... 它其實就是用來作變量替換用的啦。一般情況下,$var 與 ${var} 並沒有啥不一樣。但是用 ${ } 會比較精確的界定變量名稱的範圍
${#var} 可計算出變量值的長度。 var="/bin/bash", echo ${#var}, 結果顯示是:9
我這裏再用一些例子加以說明 ${ } 的一些特異功能:
假設我們定義了一個變量爲:
file=/home/yhsd/dir/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字符串:home/yhsd/dir/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字符串:my.file.txt
${file#*.}:拿掉第一個 . 及其左邊的字符串:file.txt
${file##*.}:拿掉最後一個 . 及其左邊的字符串:txt
${file%/*}:拿掉最後條 / 及其右邊的字符串:/home/yhsd/dir
${file%%/*}:拿掉第一條 / 及其右邊的字符串:(空值)
${file%.*}:拿掉最後一個 . 及其右邊的字符串:/home/yhsd/dir/my.file
${file%%.*}:拿掉第一個 . 及其右邊的字符串:/home/yhsd/dirmy
記憶的方法爲:
# 是去掉左邊(在鑑盤上 # 在 $ 之左邊)
% 是去掉右邊(在鑑盤上 % 在 $ 之右邊)
$(())的用途:它是用來作整數運算的,例如:echo $(( a + b*c))