1. 程式人生 > >命令列擴充套件及檔案萬用字元

命令列擴充套件及檔案萬用字元

一、命令列擴充套件:$()或` `

echo "This system's name is $(hostname)"
echo echo "This system's name is `hostname`"
以上兩句輸出效果相同

""''` `之間的區別:
''  強引用  不完成變數替換
""  弱引用  可以實現變數替換
``  命令執行

二、{}

echo file{1,2,3}
file1 file2 file3

echo file{1,2,3}{a,b}
file1a file1b file2a file2b file3a file3b

echo file{1..
9} file1 file2 file3 file4 file5 file6 file7 file8 file9 echo file{1..20..2} file1 file3 file5 file7 file9 file11 file13 file15 file17 file19 echo file{a..Z} filea file` file_ file^ file] file file[ fileZ 其顯示順序是按照ASCII字元程式碼表順序顯現

三、命令列歷史

  1. 歷史命令記錄於主目錄下的 .bash_history檔案中
  2. 系統會自動儲存我們輸入的命令,history查詢歷史命令。
  3. 登入進shell後新執行的命令只會記錄於快取中,這些命令會在使用者退出時追加儲存至“.bash_history”這個資料夾中。
  4. 一些快捷命令:

!! 重複上一個命令 !n 執行history命令輸出的第n條命令 !-n 執行history命令輸出倒數的第n條命令 !string 重複前一個以“string”開頭的命令 !?string 重複前一個包含string的命令 !:p!:p列印輸出! (上一條命令的最後一個引數)的內容 !:p列印輸出!(上一條命令的所有引數)的內容 ** ctrl-r來在命令歷史中搜索命令** command !^ : 利用上一個命令的第一個引數做cmd的引數 command !$ : 利用上一個命令的最後一個引數做cmd的引數 command !* : 利用上一個命令的全部引數做cmd的引數 command !:n : 利用上一個命令的第n個引數做cmd的引數

四、檔案萬用字元

符號 內容
* 匹配零個或多個字元
匹配任何單個字元
[0-9] 匹配數字範圍
[a-z] 字母 a到z
[A-Z] 字母A到Z
[wang] 匹配wang中任何一個字元
[^wang] 匹配除wang外的任何一個字元
[:digit:] 任意數字,相當於0-9
[:lower:] 小寫字母
[:upper:] 大寫字母
[:alpha:] 任意大小寫字母
[:alnum:] 任意數字或字母
[:blank:] 水平空白字元
[:space:] 水平或垂直空白字元

六、練習題

1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的檔案或目錄
ls -a /var/l*[[:digit:]]*[[:lower:]]

2、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄
ls -a /etc/[[:digit:]]*[^[:digit:]]

3、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字元的檔案或目錄
ls -a /etc/[^[:alpha:]]*[[:alpha:]]*

4、顯示/etc/目錄下所有以rc開頭,並後面是0-6之間的數字,其它為任意字元的檔案或目錄
ls -a /etc/rc[0-6]*

5、顯示/etc目錄下,所有以.d結尾的檔案或目錄
ls -a  /etc/*.d

6、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的檔案或目錄
ls -a /etc/[mnrp]*.conf

7、只顯示/root下的隱藏檔案和目錄
ls -d /root/.*

8、只顯示/etc下的非隱藏目錄
ls -d /root/[^.]*