歷史命令管理及用法總結

1. 命令行歷史:

在命令行中輸入命令,shell會記錄每一個執行過的歷史在內存中,當用戶退出時,shell會將記錄的命令歷史追加到當前用戶的~/.bash_history文件中。當用戶再次登錄時,shell會讀取該用戶家目錄的.bash_history文件

2. history命令:

history [-c] [-d offset] [n]

history -anrw [filename]

history -ps arg [arg...]

-c: 清空命令歷史

-d offset: 刪除歷史中指定的第offset個命令

n: 顯示最近的n條歷史

-a: 追加本次會話新執行的命令歷史列表至歷史文件

-r: 讀歷史文件附加到歷史列表

-w: 保存歷史列表到指定的歷史文件

-n: 讀歷史文件中未讀過的行到歷史列表

-p: 展開歷史參數成多行,但不存在歷史列表中

-s: 展開歷史參數成一行,附加在歷史列表後

3. 歷史命令的用法:

使用上下鍵瀏覽從前執行的命令,按回車執行

ctrl-r來在命令歷史中搜索命令

reverse-i-search`’:

Ctrl+g:從歷史搜索模式退出 

要重新調用前一個命令中最後一個參數

!$ 表示

Esc, .(點擊Esc鍵後鬆開,然後點擊 . 鍵)

Alt+ .(按住Alt鍵的同時點擊 . 鍵)

重複前一個命令

① 按上鍵並回車

② 輸入!!並回車

③ 輸入!-1並回車

④ Ctrl+p並回車

!:0 執行前一條命令(去除參數)

Ctrl + n 顯示當前歷史中的下一條命令,但不執行

Ctrl + j 執行當前命令

!n 執行history命令輸出對應序號n的命令

!-n 執行history歷史中倒數第n個命令

!string 重複前一個以“string”開頭的命令

!?string 重複前一個包含string的命令

!string:p 僅打印命令歷史,而不執行

!$:p 打印輸出 !$ (上一條命令的最後一個參數)的內容

!*:p 打印輸出 !*(上一條命令的所有參數)的內容

^string 刪除上一條命令中的第一個string

^string1^string2 將上一條命令中的第一個string1替換爲string2

4. 調用歷史參數:

command !^ 利用上一個命令的第一個參數做cmd的參數

command !$ 利用上一個命令的最後一個參數做cmd的參數

command !* 利用上一個命令的全部參數做cmd的參數

command !:n 利用上一個命令的第n個參數做cmd的參數

command !n:^ 調用第n條命令的第一個參數

command !n:$ 調用第n條命令的最後一個參數

command !n:m 調用第n條命令的第m個參數

command !n:* 調用第n條命令的所有參數調用歷史參數

command !string:^ 從命令歷史中搜索以 string 開頭的命令,並獲取它的第一個參數

command !string:$ 從命令歷史中搜索以 string 開頭的命令,並獲取它的最後一個參數

command !string:n 從命令歷史中搜索以 string 開頭的命令,並獲取它的第n個參數

command !string:* 從命令歷史中搜索以 string 開頭的命令,並獲取它的所有參數

5. 命令歷史相關環境變量:

HISTSIZE:命令歷史記錄的條數

      HISTFILE:指定歷史文件,默認爲~/.bash_history

      HISTFILESIZE:命令歷史文件記錄歷史的條數

      HISTTIMEFORMAT=“%F %T “ 顯示時間

      HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2開頭的歷史

      控制命令歷史的記錄方式:

環境變量:HISTCONTROL

ignoredups 默認,忽略重複的命令,連續且相同爲重複

ignorespace 忽略所有以空白開頭的命令

ignoreboth 相當於ignoredups, ignorespace的組合

erasedups 刪除重複命令

export 變量名="

存放在 /etc/profile ~/.bash_profile


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章