linux下修改history命令儲存條數

weixin_34185364發表於2019-02-20

在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+lshistory這兩條命令。

3、我們可以修改history的歷史保留命令的條數;可以檢視history的預設保留條數 echo $HISTSIZE 一般預設是1000條如下圖所示:

14562738-c6eab01ff4045f69.jpg

如果為了安全我們只需要保留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變數的修改。

相關文章