Bash 提示大補貼)

來源:互聯網
上載者:User
http://linuxtoy.org/archives/the-best-tips-and-tricks-for-bash.html

Bash 是我們經常與之打交道的 Shell 程式,本文針對其提示進行了搜羅。相信在你看過這些內容之後,定會在 Bash 的世界裡遊刃有餘。

  • 從曆史中執行命令

    有時候,我們需要在 Bash 中重複執行先前的命令。你當然可以使用上方向鍵來查看之前曾經運行過的命令。但這裡有一種更好的方式:你可以按 Ctrl + r 按鍵組合進入曆史搜尋模式,一旦找到需要重複執行的命令,按斷行符號鍵即可。

  • 重複命令參數

    先來看一個例子:

    mkdir /path/to/exampledir
    cd !$

    本例中,第一行命令將建立一個目錄,而第二行的命令則轉到剛建立的目錄。這裡,“!$”的作用就是重複前一個命令的參數。事實上,不僅是命令的參數可以重複,命令的選項同樣可以。另外,Esc + . 快速鍵可以切換這些命令參數或選項。

  • 用於編輯的快速鍵
    • Ctrl + a:將游標定位到命令的開頭
    • Ctrl + e:與上一個快速鍵相反,將游標定位到命令的結尾
    • Ctrl + u:剪下游標之前的內容
    • Ctrl + k:與上一個快速鍵相反,剪下游標之後的內容
    • Ctrl + y:粘貼以上兩個快速鍵所剪下的內容
    • Ctrl + t:交換游標之前兩個字元的順序
    • Ctrl + w:刪除游標左邊的參數(選項)或內容
    • Ctrl + l:清屏
  • 處理作業

    首先,使用 Ctrl + z 快速鍵可以讓正在執行的命令掛起。如果要讓該進程在後台執行,那麼可以執行 bg 命令。而 fg 命令則可以讓該進程重新回到前台來。使用 jobs 命令能夠查看到哪些進程在後台執行。

    你也可以在 fg 或 bg 命令中使用作業 id,如:
    fg %3

    又如:
    bg %7

  • 使用置換
    • 命令置換

      先看例子:
      du -h -a -c $(find . -name *.conf 2>&-)

      注意 $() 中的部分,這將告訴 Bash 運行 find 命令,然後把返回的結果作為 du 的參數。

    • 進程置換

      仍然先看例子:
      diff <(ps axo comm) <(ssh user@host ps axo comm)

      該命令將比較本地系統和遠程系統中正在啟動並執行進程。請注意 <() 中的部分。

    • xargs

      看例:
      find . -name *.conf -print0 | xargs -0 grep -l -Z mem_limit | xargs -0 -i cp {} {}.bak

      該命令將備份目前的目錄中的所有 .conf 檔案。

  • 使用管道

    下面是一個簡單的使用管道的例子:
    ps aux | grep init

    這裡,“|”操作符將 ps aux 的輸出重新導向給 grep init。

    下面還有兩個稍微複雜點的例子:
    ps aux | tee filename | grep init

    及:
    ps aux | tee -a filename | grep init

  • 將標準輸出儲存為檔案

    你可以將命令的標準輸出內容儲存到一個檔案中,舉例如下:
    ps aux > filename

    注意其中的“>”符號。

    你也可以將這些輸出內容追加到一個已存在的檔案中:
    ps aux >> filename

    你還可以分割一個較長的行:
    command1 | command2 | ... | commandN > tempfile1
    cat tempfile1 | command1 | command2 | ... | commandN > tempfile2

  • 標準流:重新導向與組合

    重新導向流的例子:
    ps aux 2>&1 | grep init

    這裡的數字代表:

    • 0:stdin
    • 1:stdout
    • 2:sterr

    上面的命令中,“grep init”不僅搜尋“ps aux”的標準輸出,而且搜尋 sterr 輸出。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.