有效地使用命令歷史機制將會使效率獲得極大提升。
history:
保存你輸入的命令歷史。 可以用它來重復執行命令。
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空命令歷史
-d offset: 刪除歷史中指定的第offset個命令
n: 顯示最近的n條歷史
-a:append, 追加本次會話新執行的命令歷史列表至歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-p: 展開歷史參數成多行,但不存在歷史列表中
-s: 展開歷史參數成一行,附加在歷史列表后(偽造命令歷史)
1、四種方法快速執行之前的命令
1)用向上鍵查看上條命令,按回車執行。
2)在命令行中輸入!!并按回車。
3)在命令行中輸入!-1并按回車。
4)按Ctrl+p顯示上條命令,按回車執行
2、用Ctrl + r搜索歷史命令
按下Ctrl +r然后輸入關鍵字。
在命令行提示符下按下Ctrl+r,終端將顯示如下提示reverse-i-search:
(reverse-i-search)red
: cat/etc/redhat-release
當看到你要的命令后按回車鍵,就可以重新執行這條命令了
ctrl+g 從歷史搜索模式中退出
3、執行歷史命令中的特定命令
!n 執行history命令輸出對應序號n的命令
!-n 執行history歷史中倒數第n個命令
4、使用特定字符執行歷史命令
!string 重復前一個以“ string” 開頭的命令
!?string 重復前一個包含string的命令
!string:p 僅打印命令歷史,而不執行
!$:p 打印輸出上一個命令的內容而不執行
!:p 打印輸出 !( 所有參數) 的內容(?)
^string 刪除上一條命令中的string
^string1^string2 將上一條命令中的第一個string1替換為string2
!!:gs/string1/string2 將上一條命令中所有的string1都替換為 string2
5、命令歷史相關的環境變量
HISTSIZE: 命令歷史記錄的條數(默認最多1000條)
HISTFILE: 指定歷史文件, 默認為~/.bash_history(當前家目錄下)
HISTFILESIZE: 命令歷史文件記錄歷史的條數(默認最多1000條)
HISTTIMEFORMAT=“%F %T “ 顯示時間
HISTIGNORE=“str1:str2:… “ 忽略包含string1,string2歷史
控制命令歷史的記錄方式:
環境變量: HISTCONTROL
ignoredups 默認, 忽略重復的命令, 連續且相同為“ 重復”
ignorespace 忽略所有以空白開頭的命令
ignoreboth 相當于ignoredups, ignorespace的組合
erasedups 刪除重復命令
export 變量名=”值“(定義系統變量或者環境變量)
存放在 /etc/profile 或 ~/.bash_profile
6、要重新調用前一個命令中最后一個參數
1)!$ 表示
2)Esc, .( 點擊Esc鍵后松開,然后點擊 . 鍵)
3)Alt+ .( 按住Alt鍵的同時點擊 . 鍵)
7、注意
1)登錄shell時,會讀取命令歷史文件(~/.bash_history)中記錄下的命令;
2)登錄進shell后新執行的命令只會記錄在緩存中,這些命令會用戶退出時“ 追加” 至命令歷史文件中。
原創文章,作者:張 潔,如若轉載,請注明出處:http://www.www58058.com/71733
history的用法寫的很詳細,包括一些調用命令歷史的方法都寫的挺詳細的,不過排版可以再好一些