history命令詳解

  

Linux下History命令主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。html

>History命令語法:
[www.linuxidc.com@linux]# history [n]
[www.linuxidc.com@linux]# history [-c]
[www.linuxidc.com@linux]# history [-raw] histfileslinux

參數:
n  :數字,要列出最近的 n 筆命令列表
-c :將目前的shell中的全部 history 內容所有消除
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles,則預設寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w :將目前的 history 記憶內容寫入 histfiles。Linux系統當你在shell(控制檯)中輸入並執行命令時,shell會自動把你的命令記錄到歷史列表中,通常保存在用戶目錄下的.bash_history文件中。默認保存1000條,你也能夠更改這個值。若是你鍵入 history, history會向你顯示你所使用的前1000個歷史命令,而且給它們編了號,你會看到一個用數字編號的列表快速從屏幕上捲過。你可能不須要查看1000個命令中的全部項目, 固然你也能夠加入數字來列出最近的 n 筆命令列表。linux中history命令不只僅讓咱們能夠查詢歷史命令而已. 咱們還能夠利用相關的功能來幫咱們執行命令。運行特定的歷史命令history會列出bash保存的全部歷史命令,而且給它們編了號,咱們可使用「歎號接編號」的方式運行特定的歷史命令.shell

語法說明:
[www.linuxidc.com@linux]# [!number] [!command] [!!]
參數說明:
number :第幾個指令的意思; 
command  :指令的開頭幾個字母 
! :上一個指令的意思!vim

History命令實戰
1.出全部的歷史記錄:
[www.linuxidc.com@linux] # history安全

2.只列出最近10條記錄:
[www.linuxidc.com@linux] # history 10 (注,history和10中間有空格)bash

3.使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[www.linuxidc.com@linux] #!99 (!和99中間沒有空格)函數

4.重複執行上一個命令
[www.linuxidc.com@linux] #!!命令行

5.執行最後一次以rpm開頭的命令(!表明的是字符串,這個String能夠隨便輸,Shell會從最後一條歷史命令向前搜索,最早匹配的一條命令將會獲得執行。)
[www.linuxidc.com@linux] #!rpmhtm

6.逐屏列出全部的歷史記錄:
[www.linuxidc.com@linux]# history | moreblog

7.當即清空history當前全部歷史命令的記錄
[www.linuxidc.com@linux] #history -c

除了使用history命令,在 shell 或 GUI 終端提示下,你也可使用上下方向鍵來翻閱命令歷史(向下箭頭會向前翻閱),直到你找到所需命令爲止。這可讓咱們很方便地編輯前面的某一條命令,而不用重複輸入相似的命令。History命令的用途確實很大!但須要當心安全的問題!尤爲是 root 的歷史紀錄檔案,這是黑客們的最愛!由於不當心的 root 會將不少的重要資料在執行的過程當中會被紀錄在 ~/.bash_history 當中,若是這個檔案被解析的話,後果不堪設想!

 原文地址:http://www.linuxidc.com/Linux/2012-01/52868.htm

 

原文連接:https://www.cnblogs.com/linuxbug/p/4885098.html

history是一條很是實用的shell命令,能夠顯示出以前在shell中運行的命令,配合last顯示以前登陸的用戶,就能夠追溯是哪一個用戶執行了某些命令。如下詳細說明history使用中常見的命令或技巧,在實際系統管理中,應用得當,可讓工做事半功倍。

使用HISTTIMEFORMAT在歷史中顯示TIMESTAMP

默認狀況下,history並不記錄命令的執行時間,分析起來很困難。

 

 

# 這時候能夠配置HISTTIMEFORMAT環境變量,給history記錄添加上時間戳

export HISTTIMEFORMAT="%F %T "

 

把上面的export命令加入到~/.bashrc中便可在登陸後自動開啓history時間戳了。

其實HISTTIMEFORMAT的格式就是 strftime函數的格式,好比上面的"%F %T ",%F表示顯示出Y-M-D格式的日期,%T表示顯示出H-M-S這樣格式的時間。更多的格式,能夠參考 man strftime。

用Ctrl + R搜索歷史命令

本人最常使用的history特性,當你執行了一串至關長的命令以後,你只要用關鍵字搜索一下歷史命令而後從新執行這條命令而不須要將整條命令再輸一遍。方法是:按下Ctrl+R而後輸入關鍵字。在如下示例中,我搜索」cat」,則顯示之前的命令中含有」cat」的命令「cat anaconda-ks.cfg」。按回車,就能夠從新執行這條命令了,而按左箭頭鍵或右箭頭鍵則能夠直接修改,改完以後按回車執行,很是方便!

【注:在命令行提示符下按下Ctrl+R,終端將顯示以下提示reverse-i-search】

 

用HISTSIZE控制歷史命令的總數

# 內存中的history條數,退出登錄以後會寫到~/.bash_history文件裏

export HISTSIZE=450

# 文件中存儲的最大history條數,文件:~/.bash_history
export HISTFILESIZE=450

# 若是你想禁用history,不讓shell記錄命令,把HISTSIZE設爲0便可

export HISTSIZE=0

使用HISTFILE改變歷史文件名

默認狀況下,命令歷史被儲存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,從新登陸shell,則新文件將取代.bash_history文件用來儲存歷史命令。你可使用這個命令來追蹤不一樣終端中執行的命令,屆時只須要將不一樣終端中所執行的命令保存在不一樣的歷史文件中便可。

[root@rocket ~]# vim ./.bashrc

HISTFILE=/root/my_history

從新登錄能夠看到新history file已經生效

 

使用HISTCONTROL來消除命令歷史中的連續重複條目

export HISTCONTROL=ignoredups

使用HISTCONTROL在整個歷史中去除重複命令

export HISTCONTROL=erasedups

使用c選項清除全部的歷史命令

#清除以前的歷史命令

history -c

用HISTIGNORE讓history在存儲時忽略某些指令

有時你不想在記錄裏看到諸如「pwd」,ls」之類的基本指令,能夠用HISTIGNORE忽略這些指令。

注意在HISTIGNORE中添加「ls」,只忽略「ls」不忽略「ls –l」。必定要準確的寫出要忽略的指令。

export HISTIGNORE=」pwd:ls:history」

相關文章
相關標籤/搜索