1. 程式人生 > >bash的基礎特性二:

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