bash的基礎特性

bash的基礎特性:


    命令補全:
            Shell程序在接收到用戶執行命令的請求,分析完成之後,最左側的字符串會被當作命令;

    命令查找機制:
            查找內部命令;
                根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名;
                給定的打頭字符串如果能唯一標識某目錄程序文件,則直接補全;
                不能唯一標識某目錄程序文件,再擊tab鍵一次,會給出列表;

路徑補全:
            在給定的起始路徑下,以對應路徑下的打頭字符串來逐一匹配起始路徑下的每個文件;
            tab:
            如果能唯一標識,則直接補全;
            否則,再一次tab,給出列表;

命令行展開
~:自動展開爲用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,並能夠將其展開爲多個路徑:
例如:/tmp/{a,b} 相當於 /tmp/a /tmp/b


問題1:如何創建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b  ?
                ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

問題2:如何創建a_c,a_d,b_c,b_d;

        ~]# mkdir {a,b}_{c,d} -v
            mkdir: created directory `a_c'
            mkdir: created directory `a_d'
            mkdir: created directory `b_c'
            mkdir: created directory `b_d'

bash的命令執行狀態結果

            bash通過狀態返回值來輸出此結果;
            成功:0
            失敗:1-255
    命令執行完成之後,其狀態返回值保存於bash的特殊變量$?中;
            ~]# pwd
            /root
        ~]# echo $?
                0

        命令正常執行時,有的還會有命令返回值;
                根據命令及其功能不同,結果各不相同;

        引用命令的執行結果:
            $(COMMAND)
            或’COMMAND‘
        Bash的基於特性:引用
            強引用:‘’
            弱引用:“”
            命令引用:‘’

    實例: 
            [root@localhost tmp]# ls
            a  hello

        [root@localhost tmp]# mkdir $(date +%H-%M-%S-%T)
        [root@localhost tmp]# ls
        20-51-40-20:51:40  a  hello
            Bash基礎特性:快捷鍵
                    Ctrl+a:跳轉至命令行行首
                    Ctrl+e:跳轉至命令行行尾 
                    Ctrl+u:刪除行首至光標所在處之間的所有字符;
                    Ctrl+k:刪除光標所在處至行尾的所有字符;
                    Ctrl+l:清屏,相當於clear

基礎特性之 文件名通配

globbing:文件名通配

匹配模式:元字符
    * :匹配任意長度的任意字符
         Pa* ,  *pa* , *pa , *p*a*
    ? :匹配任意單個字符
            Pa?
    [] :匹配指定範圍內的任意單個字符
                有幾種特殊格式:
                [a-z],[A-Z],[0-9],[a-z0-9]
                [[:upper:]] :所有大寫字母
                [[:lower:]]:所有小寫字母
                [[:alpha:]]:所有字母
                [[:digit:]]:所有數字
                [[:alnum:]]:所有數字和字母
                [[:space:]]:所有空白字符
                [[:punct:]]:所有標點符號
                [^]: 匹配指定範圍外的任意單個字符
                [^[:upper:]]
                [^0-9]
                [^[:alnum:]]

實例:

練習1:顯示/var目錄下所有以L開頭,以一個小寫字母結尾,且中間出現一位任意字符的文件或目錄;
練習2:顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄;
練習3:顯示/etc目錄下,以非字母開頭,後面跟一個字母及其它任意長度任意字符的文件或目錄;
練習4:複製/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/itxuezhe.com目錄;
練習5:複製/usr/share/man目錄下,所有以man開頭,後跟一個數字結尾的文件或目錄至/tmp/man/目錄下;
練習6: 複製/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/conf.d/目錄下;

        練習1:~]# ls -d /var/l?[[:lower:]]
        /var/lib  /var/log

        練習2:~]# ls -d /etc/[0-9]*[^0-9]
        /etc/3ab23y

        練習3:~]# ls -d /etc/[^a-z][a-z]*
        /etc/8eabc

        練習4:~]# mkdir /tmp/maedu.com
        ~]# cp -r /etc/m*[^0-9] /tmp/maedu.com/

        練習5:~]# mkdir /tmp/man
        ~]# cp -r /usr/share/man/man[0-9] /tmp/man

        練習6:~]# cp -r /etc/[mnrp]*.conf /tmp/conf.d/
        ~]# ls /tmp/conf.d/man_db.conf  named.conf   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章