bash的基礎特性二:
1.mkdir:make directories
mkdir [OPTION]... DIRECTORY...(預設,基名(basename)可以不存在,基名的路徑必須存在)
-p: 自動按需建立父目錄;
-v: verbose,顯示詳細過程;
-m MODE:直接給定許可權;
2.rmdir:remove empty directories
rmdir [OPTION]... DIRECTORY...
-p:刪除某目錄後,如果其父目錄為空,則一併刪除之;
-v: 顯示過程;
3.bash的基礎特性之:命令列展開
{}:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑;
例如:/tmp/{a,b} 相當於 /tmp/a /tmp/b
~]#mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir: 已建立目錄 "/tmp/x"
mkdir: 已建立目錄 "/tmp/x/y1"
mkdir: 已建立目錄 "/tmp/x/y1/a"
mkdir: 已建立目錄 "/tmp/x/y1/b"
mkdir: 已建立目錄 "/tmp/x/y2"
~]#mkdir -pv /tmp/{a,b}_{c,d}
mkdir: 已建立目錄 "/tmp/a_c"
mkdir: 已建立目錄 "/tmp/a_d"
mkdir: 已建立目錄 "/tmp/b_c"
mkdir: 已建立目錄 "/tmp/b_d"
4.命令補全:
命令查詢機制:
查詢內部命令;
根據PATH環境變數中設定的目錄,自左而右逐個搜尋目錄下的檔名;
給定的打頭字串如果能惟一標識某命令程式檔案,則直接補全;
不能惟一標識某命令程式檔案,再擊tab鍵一次,會給出列表;
5.路徑補全:
在給定的起始路徑下,以對應路徑下的打頭字串來逐一匹配起始路徑下的每個檔案:
tab:
如果能惟一標識,則直接補全;
否則,再一次tab,給出列表;
6.tree:
tree [options] [directory]
-L level:指定要顯示的層級;
-P pattern:List only those files that match the wild-card pattern:基於glob通配機制,僅顯示模式匹配的路徑;
-d:僅顯示目錄;
-I patteren:取反機制,不顯示模式匹配到的路徑;
-o filename:儲存在檔案中;、
7.命令的執行狀態結果:
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失敗:1-255
命令執行完成之後,其狀態返回值保存於bash的特殊變數$?中;
~]#ls -l anaconda-ks.cfg
-rw-------. 1 root root 2314 7月 2 07:29 anaconda-ks.cfg
~]#$?
bash: 0: 未找到命令...
8.引用命令的執行結果:
$(COMMAND) 或`COMMAND`
~]#which cat
/usr/bin/cat
~]#ls -l `which cat`
-rwxr-xr-x. 1 root root 54080 4月 11 2018 /usr/bin/cat
~]#date +%F-%H-%M-%S
2018-12-04-14-01-29
~]#mkdir -pv $(date +%F-%H-%M-%S)
mkdir: 已建立目錄 "2018-12-04-14-01-48"
9.引用
' ':強引用;不做變數替換;
" ":弱引用;可實現變數替換;
` `:命令引用,引用命令的執行結果;(例項可以參考第8點)。
~]#echo '$PATH'
$PATH
~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
10.快捷鍵(適用於bash shell命令輸入行內)
Ctrl+a:跳轉至命令列行首
Ctrl+e:跳轉至命令列行尾
Ctrl+u:刪除行首至游標所在處之間的所有字元;
Ctrl+k:刪除游標所在處至行尾的所有字元;
Ctrl+l:清屏,相當於clear