bash的特性

命令行編輯


Ctrl+a: 將光標調至命令行首
Ctrl+e: 將光標調至命令行尾
Ctrl+u: 刪除光標前的全部內容
Ctrl+k: 刪除光標後的搜有內容

命令別名


在shell中定義的別名僅在當前shell生命週期中有效,別名的有效範圍僅爲當前shell進程。若是shell中的某個命令自己具備別名,利用COMMAND來執行命令自己的功能。git

# alias COMMANDALias='COMMAND [option] [argument]' (最好使用單引號)
    # alias 顯示系統中全部的命令別名)
    # unalias COMALIAS 取消命令別名

命令替換


把命令中的某個子命令替換爲其執行結果的過程shell

$(COMMAND),反引號:`COMMAND`
    # echo "The current directory is $(pwd)"
    建立一個以當前時間命名的文件如:file-2018-01-30-20-39.txt
    # touch ./file-$(date +%F-%H-%M-%S).txt

命令歷史


  • 命令history能夠查看命令執行的歷史
-c: 清空命令歷史
    -d OFFSET [n]: 刪除指定位置的命令
        -d 510 3: 從第510個記錄向後刪除共計三個
    -w: 保存緩衝區命令歷史至歷史文件中(歷史文件在用戶家目錄下的.bash_history)
  • 命令歷史使用的技巧
!n: 執行命令歷史中第n條命令;
!-n: 執行命令歷史中倒數第n條命令;
!!: 執行上一條命令; 
!string: 執行命令歷史中最近一個以指定字符串開頭的命令;
!$: 引用前一個命令的最後一個參數;(或者按Esc鬆開按.或者按Alt+.)

命令&&路徑補全


  • 命令補全

搜索PATH環境變量所指的每一個路徑下以咱們給出的字符串開頭的可執行文件,在命令搜索路徑下查找bash

  • 路徑補全

搜索咱們給出的起始路徑下的每一個文件名,並試圖補全,在給定打頭路徑下查找spa

bash支持的引號


  • ``: 命令替換
  • "": 弱引用,能夠實現變量和命令替換
  • '': 強引用,不能實現變量替換

文件名通配 globbing


  • " * ": 匹配任意個任意字符
  • " ? ": 匹配任意單個字符
  • " [] ": 匹配指定範圍內的單個字符
[:space:]: 空白字符
    [:punct:]: 標點符號
    [:lower:]: 小寫字母
    [:upper:]: 大寫字母
    [:alpha:]: 大小寫字母
    [:digit:]: 數字
    [:alnum:]: 數字和大小寫字母
  • " [^] ": 匹配指定範圍外的單個字符
[[:alpha:]]*[[:space:]]*[[:alpha:]]
    
練習:
一、建立a123, cd6, c78m, c1, my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗號隔開的,其它符號都是文件名的組成部分
二、顯示全部以a或m開頭的文件;
三、顯示全部文件名中包含了數字的文件;
四、顯示全部以數字結尾且文件名中不包含空白的文件;??????    ls *[^[:space:]]*[0-9]
五、顯示文件名中包含了非字母或數字的特殊符號的文件。
相關文章
相關標籤/搜索