Linux基礎教程之Linux命令歷史
LINUX命令歷史
LINUX的命令歷史是什么?
Linux的命令歷史的作用是,記錄執行過的命令。如果你經常使用 Linux 命令行,那么使用 命令歷史可以有效地提升你的效率。
history(管理歷史命令)
語法:[root@localhost]#history(選項)(參數)
選項:
n:n為數字,要列出最近的 n 筆命令列表
-c(清空所有歷史命令)
-d (刪除歷史命令中指定的第offset條命令)
-a(追加本次會話中的新執行的命令歷史列表到歷史文件)
-n(讀取歷史文件中未讀過的行到命令歷史列表)
-r(讀取歷史文件到歷史列表)
-w(保存歷史列表到指定的歷史文件)
-p(展開歷史參數成多行,但不存在歷史列表中)
-s(展開歷史參數成一行,附加在歷史列表后)
運行特定的歷史命令
history會列出bash保存的所有歷史命令,并且給它們編了號,我們可以使用“嘆號接編號”的方式運行特定的歷史命令.
語法說明:[root@localhost]# [!number] [!command] [!!]
參數說明:
number :第幾個指令的意思;
command :指令的開頭幾個字母
! :上一個指令的意思!
用法介紹:
重復前一個命令(4種方法):
重復前一個命令使用上方向鍵,并回車執行
按 !! 并回車執行
輸入 !-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
!:gs/string1/string2 將上一條命令中所有的string1都替換為string2
使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令
ctrl-r來在命令歷史中搜索命令(reverse-i-search):
Ctrl+g:從歷史搜索模式退出
調用歷史參數
要重新調用前一個命令中最后一個參數:
!$ 表示前一個命令最后一個參數。
Esc, .(點擊Esc鍵后松開,然后點擊 . 鍵)
Alt+ .(按住Alt鍵的同時點擊 . 鍵)
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 開頭的命令,并獲取它的所有參數
環境設定
命令歷史相關環境變量:
HISTSIZE:命令歷史記錄的條數
HISTFILE:指定歷史文件,默認為~/.bash_history
HISTFILESIZE:命令歷史文件記錄歷史的條數
HISTTIMEFORMAT=“%F %T “ 顯示時間
HISTIGNORE=“str1:str2:… “ 忽略string1,string2歷史
控制命令歷史的記錄方式:
環境變量:HISTCONTROL
ignoredups 默認,忽略重復的命令,連續且相同為“重復”
ignorespace 忽略所有以空白開頭的命令
ignoreboth 相當于ignoredups, ignorespace的組合
erasedups 刪除重復命令
export 變量名=”值“
history命令相關的配置文件存放在 /etc/profile 或 ~/.bash_profile,更改之后永久有效