本文介紹一些關於bash的可以提升效率的技巧,主要是關於歷史命令操做和一些快捷鍵,讓你在命令行下工做效率翻倍。vim
一、history-----最基本的查看歷史命令bash
二、!n-----編號爲n的歷史命令spa
不用再複製粘貼,或者照着歷史記錄敲了。執行歷史命令記錄裏面的某個命令,只須要 ! + 這條命令記錄前的序號命令行
三、!-n-----倒數第n個歷史命令class
你也能夠用 ! - (倒數第幾個命令)來執行歷史命令,好比 !-1 就是倒數第一個命令, !-3就是倒數第三個命令效率
四、!!-----上一條命令配置
!! 表示上一條命令,至關於 !-1 。 file
這是一個極爲方便實用的命令,好比一條很長的命令並且須要管理員權限,可是好不容易敲完但忘記加sudo,這裏就能夠直接用 sudo !!來完成剛剛的那條複雜的命令加sudo搜索
五、!keyword----- 查找包含該keyword的歷史命令權限
若是想查找包含某個關鍵字的歷史命令,能夠這樣作
!keyword
查找包含keyword的歷史命令,而後回車就能執行這條歷史命令
六、Ctrl + R 反向查找命令
快捷鍵Ctrl + R ,而後輸入要查找的關鍵字,輸入的同時,bash就會動態地增量搜索,找到想要的歷史命令後能夠按回車執行,或者esc把這條提取命令出來可是不執行。再按Ctrl + R 則繼續日後查找符合條件的命令。
七、history | grep keyword 列出全部符合條件的命令
Ctrl + R 無疑是最方便經常使用的歷史記錄搜索方式,可是固然也能夠用 history | grep keyword 來查找全部的符合條件的記錄,而後再結合剛剛的! 方法完成命令。
八、歷史記錄的參數的技巧
!$ 上一條命令的最後一條參數
若是說你只想用上條命令的參數,一個個打出來又太繁複,就能夠這樣
!^ 上一條命令的第一個參數
$ 表示最後一個參數,而 ^就表示的是第一個參數
!^ 在這樣的一個應用場景裏十分方便:你剛備份了一個配置文件,而後想編輯這個配置文件:vim !^
:n 第n個參數
^與$表示第一個參數和最後一個參數,而 :n 就表示第n個參數,好比 !:2就表示上一條命令的第2個參數:cd !:2
注意,參數符號不只是能夠 !$、!^、!:n 這樣用,這些關於參數的符號都是能夠和!表達式任意組合使用的,好比:
cd !762:2 (表示762號歷史命令的第2個參數)
ls !-3^ (表示倒數第3個命令的第一個參數)
dpkg -L !apt$ (表示搜索含apt的命令的最後一個參數)
設置
magic-space 讓歷史記錄表達式和參數符號當即顯出原形
雖然歷史記錄表達式和參數符號使用起來簡易方便,可是在包含這些表達式和符號的命令回車執行以前,你是並不知道這些表達式和符號到底表明的什麼。爲了解決這個問題,咱們能夠使用Magic-Space
bind Space:magic-space
使用了這個設置後,在bash中輸入歷史記錄表達式和參數符號後,按一下空格,這些表達式和符號就當即變成它們所表明的歷史命令和參數,簡稱magic space。能夠把這句放到.bashrc中,讓設置持久生效(Mac是在.bash_profile)。
命令前加空格,使之不計入history
在命令前加空格,就能夠避免改該命令計入history,小夥伴們就能夠在不用清空history的前提下幹一些壞事了。
HISTSIZE=0 不記錄命令
若是不想記錄命令,能夠設置HISTSIZE=0。若是想恢復,能夠在設置HISTSIZE爲一個大於零的值(默認爲500或者1000)
HISTCONTROL=ignoredups 去除重複命令
這樣設置後,屢次的一樣的命令連續執行就會只記錄一次。