一载慈、bash特性:
1惭等、命令別名
獲取當(dāng)前用戶(hù)可用的別名的定義
2、命令歷史
shell進(jìn)程會(huì)保存其會(huì)話(huà)中用戶(hù)曾經(jīng)執(zhí)行過(guò)的命令办铡;命令通過(guò)其“歷史文件”來(lái)持久保存此前執(zhí)行過(guò)的命令辞做;每個(gè)用戶(hù)都有其自己專(zhuān)用的歷史文件;
HISTSIZE:shell進(jìn)程的緩沖區(qū)保留的歷史命令的條數(shù)寡具;
HISTFILESIZE:命令歷史文件可保存的歷史命令的條數(shù)秤茅;
history -c:清空命令歷史;
history ?-d ?OFFSET:刪除指定的條目童叠;
3框喳、快捷鍵
Ctrl+a:跳至命令行首;
Ctrl+e:跳至命令行尾厦坛;
Ctrl+k:刪除光標(biāo)所在處至尾部的內(nèi)容五垮;
Ctrl+u:刪除行首至光標(biāo)所在處的內(nèi)容;
4杜秸、命令補(bǔ)全和路徑補(bǔ)全
命令補(bǔ)全:
shell程序在接收到用戶(hù)執(zhí)行命令的請(qǐng)求且分析完成之后放仗,最左側(cè)字符串將被當(dāng)作命令去查找;
查找機(jī)制:
(1) 查找內(nèi)部命令撬碟;
(2) 查找外部命令:
1诞挨、去$PATH變量所指定的各路徑下,自左而右逐個(gè)搜索各目錄下的文件名呢蛤;
2惶傻、給定的打頭的字符串如果能惟一標(biāo)識(shí)某命令程序文件的文件名,則直接補(bǔ)全顾稀;
3达罗、不能惟一標(biāo)識(shí),再擊tab可給列表静秆;
4粮揉、錯(cuò)誤:沒(méi)有任何命令可被此打頭字符串標(biāo)識(shí);
路徑補(bǔ)全:
在給定的起始路徑的上級(jí)目錄下抚笔,以對(duì)應(yīng)路徑下的打頭字符串來(lái)逐一匹配上級(jí)目標(biāo)下的每個(gè)文件:
惟一標(biāo)識(shí):tab補(bǔ)全扶认;
不能惟一標(biāo)識(shí):tab, tab給出列表;
錯(cuò)誤路徑:沒(méi)有響應(yīng)殊橙;
5辐宾、命令行展開(kāi)
把命令行的給定的特殊符號(hào)自動(dòng)替換為相應(yīng)字符串的機(jī)制狱从;
~: 自動(dòng)替換為用戶(hù)家目錄;
~USERNAME:自動(dòng)替換為指定用戶(hù)的家目錄叠纹;
{}:可承載一個(gè)以逗號(hào)分隔的路徑列表季研,能夠?qū)⑵湔归_(kāi)為多個(gè)獨(dú)立路徑;
6誉察、命令的執(zhí)行狀態(tài)結(jié)果
命令的正常輸出結(jié)果:命令的返回值与涡;
通過(guò)引用來(lái)保存下來(lái)或直接調(diào)用——”命令引用“
7、變量
程序:指令+數(shù)據(jù)
數(shù)據(jù):文件持偏、變量驼卖;
變量:內(nèi)存空間,有名稱(chēng)鸿秆,名稱(chēng)即為變量名酌畜,對(duì)應(yīng)的內(nèi)存空間中的數(shù)據(jù)即為變量的值;
變量賦值:左邊=右邊(把右邊存儲(chǔ)到左邊指向的內(nèi)存空間)
二卿叽、命令執(zhí)行狀態(tài)返回值
用 $? 取出最后一個(gè)帶返回值的函數(shù)調(diào)用.
如果你確定某個(gè)命令或函數(shù)有返回值,就可以在調(diào)用這條命令后用 $? 取出返回值并處理.在bash中習(xí)慣用返回值0代表一切正常.
比如最常用的 ls 命令,有三個(gè)返回值: (翻譯自man手冊(cè))
0 : 一切正常
1: 小問(wèn)題 (比如無(wú)法訪問(wèn)某個(gè)子目錄)
2: 大麻煩 (比如找不到命令所需參數(shù))
在終端執(zhí)行了 ls 命令后,就可以用 echo $? 來(lái)查看返回值.
注意 $? 取出的是最后一個(gè)返回值,意思是如果某個(gè)命令沒(méi)有返回值,那么 $? 會(huì)返回最后一個(gè)有返回值的命令的返回值.
三桥胞、命令行展開(kāi)所涉及的內(nèi)容及其示例演示
【root@dd ~】# mkdir /etc/fr/{1,2,3}
【root@dd ~】# tree /etc/fr
/etc/fr
├── 1
├── 2
├── 3