在linux系統下、history命令會保存多少條命令呢?曾在一本書上說,如果注銷系統,那么會將所有的歷史命令都定入到~/.bash_history,
但只保留1000條命令(這個是由默認的shell變量所設置了的)但是為什么我們執行history命令后會出現大於1000條的歷史記錄呢,
其實當我們仔細一看只是序列大於1000、記錄的條數還是1000條。
在此我是這樣理解的:
1、~/.bash_histroy里面是記錄的上次注銷前的歷史記錄(最大保存1000條,且是上次注銷前最近的1000條記錄)
2、執行history命令,會顯示~/.bash_history里的記錄加上當前shell所執行記錄。且也是只顯示1000條記錄、如重新登錄后、執行ls命令后、再使用history查看、
會顯示.bash_history里的+ls和history這兩條。如果~/.bash_history里有1000條、則顯示后998+ls和history這兩條命令。
3、我們可以修改history的歷史保留命令的條數;可以查看history的默認保留條數 echo $HISTSIZE 一般默認是1000條如下圖所示:
如果為了安全我們只需要保留200條,怎么辦呢?我們可以臨時修改最大保留條數:HISTSIZE=200 這樣就修改成了200條啦,但是重啟服務器后,又還原了。
如果想一直保留200條,我們需要在/etc/profile修改他的環境變量;可以使用vim編輯(推薦使用vim編輯),也可以使用sed直接修改。命令如下:
[root@5201351 ~]# sed -i 's/^HISTSIZE=1000/HISTSIZE=200/' /etc/profile [root@5201351 ~]# source /etc/profile //使其立即生效
這樣就算重啟服務器后、history命令的歷史保留條數仍然為200條,直到下一次HISTSIZE變量的修改。