& 后臺運(yùn)行程序
() 使用子shell, 比如 (cd ../../commlib/; make)
$() 命令替換,和 ``的作用是一樣的
<(命令) 把命令的輸出到一個(gè)臨時(shí)文件
<< HereDoc
使用舉例:
比如你要在 shell 腳本中 使用 awk 腳本
awk -f <(cat <<EOF
/abc/{
print $0;
}
EOF
)
$(()) 執(zhí)行整數(shù)計(jì)算 $((66/2))
if (( 算術(shù)運(yùn)算 ))
if [[ 字符串運(yùn)算 ]]
alias 定義命令別名
dot . 或 source 命令, 在當(dāng)前shell中執(zhí)行腳本
exec 可以重定向當(dāng)前shell的文件描述符, 或運(yùn)行另一個(gè)程序。
trap 可以捕獲信號
nohup 防止ssh 掛起導(dǎo)致的問題
screen 可以用來保持 會話, 不受ssh的關(guān)閉影響
export 導(dǎo)出變量給子shell使用
tee 可以 把 輸出 分流
ENV_VAR=VALUE your_program 這樣可以 為這一個(gè)程序 修改它環(huán)境變量,外部shell的環(huán)境變量沒有被更改
tac 倒置文件
cd - 快速回到前一個(gè)路徑
cd 回到用戶的home目錄
pushd, popd, dirs 實(shí)現(xiàn)多目錄跳轉(zhuǎn)
pushd
命令用來更改您的當(dāng)前目錄并將其存儲在堆棧中。 popd
命令用來從堆棧的頂部移除目錄并使您返回該位置。 dirs
命令來顯示當(dāng)前目錄堆棧。(dir –v –p)
pushd +n; popd +n 可以操作虛擬目錄堆棧
你可能已經(jīng)知道$PATH變量可以列出 bash的“搜索路徑”——當(dāng)在當(dāng)前目錄不能找到請求的文件時(shí),bash會自動(dòng)搜索的目錄。不過,bash也支持$CDPATH變量,當(dāng)試圖改變目錄時(shí)該變量列出cd命令轉(zhuǎn)向的目錄。為了使用這個(gè)特性,我們要對$CDPATH變量賦值一個(gè)目錄列表,如下面的例子所示:
bash> CDPATH='.:~:/usr/local/apache/htdocs:/disk1/backups'
bash> export CDPATH
現(xiàn)在,無論何時(shí)使用cd命令,bash將會檢查$CDPATH列表中的所有目錄來查找要轉(zhuǎn)向的目錄名。
1) $*: 代表所有參數(shù),其間隔為IFS內(nèi)定參數(shù)的第一個(gè)字元
2) $@: 與*星號類同。不同之處在於不參照IFS
3) $#: 代表參數(shù)數(shù)量
4) $?: 執(zhí)行上一個(gè)指令的返回值
5) $-: 最近執(zhí)行的foreground pipeline的選項(xiàng)參數(shù)
6) $$: 本身的Process ID
7) $!: 執(zhí)行上一個(gè)背景指令的PID
8) $_: 顯示出最後一個(gè)執(zhí)行的命令
Emacs風(fēng)格
ctrl+p: 方向鍵 上 ↑
ctrl+n: 方向鍵下 ↓
ctrl+b: 方向鍵 ←
alt+f: 光標(biāo)右移一個(gè)單詞
ctrl+f :方向鍵 →
alt+b: 光標(biāo)左移一個(gè)單詞
ctrl+a:光標(biāo)移到行首
ctrl+e:光標(biāo)移到行尾
ctrl+k:清除光標(biāo)后至行尾的內(nèi)容。
ctrl+d: 刪除光標(biāo)所在字母;注意和backspace以及ctrl+h的區(qū)別,這2個(gè)是刪除光標(biāo)前的字符
ctrl+r:搜索之前打過的命令。會有一個(gè)提示,根據(jù)你輸入的關(guān)鍵字進(jìn)行搜索bash的history
ctrl+m : 輸入回車
ctrl+i : 輸入tab
ctrl+[ : 輸入esc
其它
ctrl+h:刪除光標(biāo)前一個(gè)字符,同 backspace 鍵相同。
alt + p 非增量方式反向搜索歷史
alt + > 歷史命令列表中的最后一行命令開始向前
ctrl+u: 清除光標(biāo)前至行首間的所有內(nèi)容。
ctrl+w: 移除光標(biāo)前的一個(gè)單詞
ctrl+t: 交換光標(biāo)位置前的兩個(gè)字符
ctrl+y: 粘貼或者恢復(fù)上次的刪除
ctrl+l:清屏,相當(dāng)于clear。
ctrl + xx 光標(biāo)在行頭與行尾進(jìn)行跳轉(zhuǎn)
alt+r 撤銷當(dāng)前行的所有內(nèi)容
ctrl+z : 把當(dāng)前進(jìn)程轉(zhuǎn)到后臺運(yùn)行
ctrl+s : 鎖住屏幕
ctrl+q : 恢復(fù)屏幕
ctrl+v key: 輸入特殊字符
alt + l 將當(dāng)前光標(biāo)處之后的字母轉(zhuǎn)化成小寫字母
alt + u 將當(dāng)前光標(biāo)處之后的字母轉(zhuǎn)化成大寫字母
ctrl + Alt + e 擴(kuò)展命令行的內(nèi)容(例如:ls => ls -l --color=tty)
ctrl+c:殺死當(dāng)前進(jìn)程, 輸入模式下,中斷輸入的命令。
ctrl+d:退出當(dāng)前 Shell
esc + . 快捷鍵可以輪詢歷史命令的參數(shù)或選項(xiàng)。
esc + t 快捷鍵可以 置換前兩個(gè)單詞。
輸入重復(fù)字母 Esc {100} e 可以輸入100個(gè)e字符
按多次{esc}可以補(bǔ)全
{esc}{~}可以補(bǔ)全本機(jī)上的用戶名
{esc}{/}可以補(bǔ)全文件名
{esc}{@}可以補(bǔ)全主機(jī)名,localhost可以方便地用 lo補(bǔ)全.
!! 重新執(zhí)行上一條命令
!N 重新執(zhí)行第N條命令。比如 !3
!-N 重新執(zhí)行倒數(shù)第N條命令。!-3
!string 重新執(zhí)行以字符串打頭的命令。 比如 !vim
!?string? 重新執(zhí)行包含字符串的命令。 比如 !?test.cpp?
!?string?% 替換為: 最近包含這個(gè)字符串的命令的參數(shù)。比如: vim !?test.cpp?%
!$ 替換為:上一條命令的最后一個(gè)參數(shù)。比如 vim !$
!!string 在上一條命令的后面追加 string ,并執(zhí)行。
!Nstring 在第N條指令后面追加string,并執(zhí)行。
^old^new^ 對上一條指令進(jìn)行替換
修飾
:s/old/new/ 對第N條指令中第一次出現(xiàn)的new替換為old。 比如 vim !?test.cpp?:s/cpp/c/
:gs/old/new/ 全部替換
:wn w為數(shù)字, 取指令的第w個(gè)參數(shù).
:p 回顯命令而不是執(zhí)行, 比如 !ls:p 。 這個(gè)很有用, 你可以先查看你選的命令對不對,要執(zhí)行時(shí)再使用!!
/etc/profile 設(shè)置環(huán)境變量(所有用戶)
~/.bash_profile 設(shè)置環(huán)境變量(當(dāng)前用戶)
~/.bashrc
~/.bash_history
~/.bash_logout
聯(lián)系客服