Brief
又要敲那條長到沒朋友的命令了,真心不再愛了。。。
有了history這條命令我想大家可以再愛一次了吧!
>history
語法: history [n | -c | -raw histfile]
n —— 數字,用于表示羅列最近的n筆命令
-c —— 表示清除history中的所有內容(實質上是清理$HISTFILE中保存的內容)
-a —— 表示將當前會話的自上次執行history -a histfile命令后執行所有命令保存到hisfile文件中,若histfile缺省值為$HISTFILE變量指向的文件(~/.bash_history)
-r —— 表示從histfile讀取內容到當前會話的history
-w —— 表示將目前的hitory內容寫入histfile中
How 2 execute the command show by "history"
M1. !n
n為數字,表示執行history中指定編號的命令
M2. !cmd
cmd為命令的部分字符串,從最近往最遠開始匹配以該字符串開頭的首條命令并執行
M3. !! 或 !-1 或 Ctrl + p
!和-1表示獲取最近一條命令,并執行。(Ctrl + p為快捷鍵)
M4. !?string? 或 Ctrl + r
string為命令的部分字符串。從最近往最遠開始匹配含字符串的首條命令并執行(Ctrl + r為快捷將)
M5. fc n
n為數字,表示執行history中指定編號的命令。但此時會打開一個文本編輯器并顯示該條命令,我們可以修改該命令,然后退出編輯器時則會執行修改后的命令。
M6. ^replacedString^newString 或 !:s/replacedString/newString
將上一條命令的replacedString內容替換為newString內容后執行新命令
> ps -ef|grep httpd
> ^httpd^grep
M7. !!&
在執行上一條命令后再執行另一條命令
Fetch Args from History Commnad
!^ 獲取上一條命令的第一個參數。
!$ 獲取上一條命令的最后一個參數。
!:n 獲取上一條命令的第n個參數,n從1開始。(為0時則挑選出命令名稱)
!:n-x 獲取上一條命令的第n個參數到第x個參數,n和x均從1開始。(為0時則挑選出命令名稱)
!* 獲取上一條命令的所有參數。
!n* n為數字,獲取上一條命令的從第n個參數(含第n個參數)后的所有參數。
!n- n為數字,獲取上一條命令的從第n個參數(含第n個參數)后的除了最后一個參數外的所有參數。
Configurations begin with "HIST"
HISTTIMEFORMAT
用于設置history命令的輸出格式。
>export HISTTIMEFORMAT='%F %T'
HISTSIZE
用于控制命令歷史記錄的總條目數。(當設置為0時則為禁用命令歷史記錄功能)
>export HISTSIZE=0
HISTFILE
用于設置命令歷史的保存位置,默認保存在~/.bash_history文件中。
>export HISTFILE=~/.cmd_history
HISTCONTROL
剔除連續重復的命令歷史條目: >export HISTCONTROL=ignoredups
清理所有重復的命令歷史條目: >export HISTCONTROL=erasedups
不記錄以空格開頭的記錄: >export HISTCONTROL=ignorespace
HISTIGNORE
用于設置某些命令將不被保存到歷史記錄中
>export HISTIGNORE='pwd:ls:ls -ltr:'
上述表示pwd,ls和ls -ltr將不被保存。
注意:上述環境變量均僅對當前會話有效,當退出會話后將失效。若要所有會話均有效則需要將設置寫入~/.bash_profile文件中。
Conclusion
通過man 3 history我們可以了解history更多酷炫的玩法!
尊重原創,轉載請注明來自:http://www.cnblogs.com/fsjohnhuang/p/4753904.html ^_^肥仔John
Thanks
http://blog.sina.com.cn/s/blog_5caa94a00100gyls.html
http://blog.csdn.net/yorkingalan/article/details/7166583
文章列表