bash簡單實用技巧

  1. 光標跳轉

    ctrl + a 將光標移動到命令行開頭相當於VIM裏shift+^

    ctrl + e 將光標移動到命令行結尾處相當於VIM裏shift+$

    ctrl + f 光標向後移動一個字符相當於VIM裏l

    ctrl + b 光標向前移動一個字符相當於VIM裏h

    ctrl + 方向鍵左鍵 光標移動到前一個單詞開頭

    ctrl + 方向鍵右鍵 光標移動到後一個單詞結尾

    ctrl + x 在上次光標所在字符和當前光標所在字符之間跳轉

    alt + f 跳到光標所在位置單詞尾部

  2. 命令行刪除

    ctrl + d 刪除光標所在位置上的字符相當於VIM裏x或者dl

    ctrl + h 刪除光標所在位置前的字符相當於VIM裏hx或者dh

    ctrl + k 刪除光標後面所有字符相當於VIM裏d shift+$

    ctrl + u 刪除光標前面所有字符相當於VIM裏d shift+^

    ctrl + w 刪除光標前一個單詞相當於VIM裏db

    ctrl + y 恢復ctrl+u上次執行時刪除的字符

    ctrl + ? 撤消前一次輸入

    ctrl + l 清屏

    alt + r 撤消前一次動作

    alt + d 刪除光標所在位置的後單詞

  3. 替換

    ctrl + t 將光標當前字符與前面一個字符替換

    alt + t 交換兩個光標當前所處位置單詞和光標前一個單詞

    alt + u 把光標當前位置單詞變爲大寫

    alt + l 把光標當前位置單詞變爲小寫

    alt + c 把光標當前位置單詞頭一個字母變爲大寫

    ^oldstr^newstr 替換前一次命令中字符串

  4. 命令歷史

    history 查看命令歷史
    -c 清空命令歷史
    -d 500 刪除第500個命令
    -d 500 10 從第500個命令往後刪除10個
    -w 手動保存命令歷史(正常關機時會自動保存,歷史文件是家目錄下的 .bashhistory)
    # echo $HISTSIZE 查看緩存中能存儲最大命令個數
    ! 441 執行命令歷史中的第441個命令
    ! -441 執行命令歷史中倒數第441個命令
    !! 執行上一條命令
    !STRING 執行命令歷史中最近一個以指定字符串開頭的命令(!cle   執行最後一個以cle開頭的命令)
    !$ 引用上一個命令中最後一個參數
    鍵入 Esc 鬆開 鍵入 . 引用上一個命令中最後一個參數
    Alt+. 引用上一個命令中最後一個參數,模擬終端支持,遠程終端不支持

  5. 命令補全

    Tab
    在path環境變量下搜索,補全的前提是已寫的字符能唯一標識這個命令
    連敲兩次Tab鍵,顯示所有已寫字符的命令
  6. 路徑補全

    Tab

    從已寫的路徑下補全
    連敲兩次Tab鍵,顯示所有已寫字符的命令?
  7. 命令別名

    alias 不加參數,顯示所有有別名的命令
    alias CMDALIAS = COMMAND [OPTIONS] [ARGUMENTS] 相當於定義了一個變量,只在當前shell的生命週期內有效,如果想定義一個長期有效的別名,可以在shell程序的配置文件中修改,後續會講到。
    # alias cls = clear  爲clear命令定義了一個別名cls。
    unalias cls 取消別名爲cls的命令。

  8. 命令替換

    把命令中爲某個子命令替換爲結果的過程 $(COMMAND)     反引號 `COMMAND`

    # pwd
    /etc/sysconfig
    # echo "The current directory is $(pwd)."
    The current directory is /etc/sysconfig.

    # touch ./file-$(date +%F-%H-%M-%S).txt
    創建一個名爲 file-年-月-日-時-分-秒.txt的文件

  9. 文件名通配 globbing

    *:匹配任意長度的任意字符
    # ls
    a a123 ab123 abc x12 xyz xyz123
    #ls a*
    a a123 ab123 abc
    # ls a*3
    a123 ab123
    ?:匹配任意單個字符
    # ls ?y*
    xyz xyz123
    # ls ??y*

    []:匹配範圍內任意單個字符
    [abc] [a-m] [a-z] [A-Z] [a-zA-Z] [0-9a-zA-Z]
    ls [a-zA-Z]*[0-9] 顯示以任意字母開頭且以任意數字結尾的文件

    [^]:匹配該範圍外的任意單個字符
    ls [^0-9]* 顯示所有非數字開頭的文件

    常見特殊字符的表示法
    [:space:] 所有空白字符的集合(空白字符俺不確定) ----->從這個集合中隨意找一個匹配  [[:space:]](下列同此)
    [:punct:] 所有標點符號的集合
    [:lower:] 所有小寫字母的集合
    [:up:]    所有大寫字母的集合
    [:alpha:] 所有大小寫字母的集合
    [:digit:] 所有數字的集合
    [:alnum:] 所有數字大小寫字母的集合
    同樣支持^取反
    在bash中可以使用 # man 7 glob 查看所有類似集合
    例如:在某個目錄下找以字母開頭、字母結尾、中間有空白的文件
        # ls [[:alpha:]]*[[:space:]]*[[alpha]]
          在某個目錄下找以字母開頭、不以字母結尾、中間有空白的文件
        # ls [[:alpha:]]*[[:space:]]*[^[alpha]]
    注意:通配符並不能精確表示所有的文件名,有時需要利用正則表達式來達到目的。

  10. 其它

    ctrl + s 鎖住終端

    ctrl + q 解鎖終端

    ctrl + l 清屏相當於命令clear

    ctrl + c 另起一行

    ctrl + i 類似TAB健補全功能

    ctrl + o 重複執行命令

    alt + 數字鍵 操作的次數

    ctrl + p 返回上一次輸入命令字符

    ctrl + r 輸入單詞搜索歷史命令

    alt + p 輸入字符查找與字符相接近的歷史命令

    ctrl + ? 撤消前一次輸入

    ctrl + r 輸入單詞搜索歷史命令

  11. 本文地址,轉載請註明出處:http://blog.csdn.net/qq_33442549/article/details/51837725

發佈了36 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章