在linux系統(tǒng)下、history命令會保存多少條命令呢?曾在一本書上說,如果注銷系統(tǒng),那么會將所有的歷史命令都定入到~/.bash_history,
但只保留1000條命令(這個是由默認(rèn)的shell變量所設(shè)置了的)但是為什么我們執(zhí)行history命令后會出現(xiàn)大于1000條的歷史記錄呢,
其實當(dāng)我們仔細(xì)一看只是序列大于1000、記錄的條數(shù)還是1000條。
在此我是這樣理解的:
1、~/.bash_histroy里面是記錄的上次注銷前的歷史記錄(最大保存1000條,且是上次注銷前最近的1000條記錄)
2、執(zhí)行history命令,會顯示~/.bash_history里的記錄加上當(dāng)前shell所執(zhí)行記錄。且也是只顯示1000條記錄、如重新登錄后、執(zhí)行l(wèi)s命令后、再使用history查看、 會顯示.bash_history里的+ls和history這兩條。如果~/.bash_history里有1000條、則顯示后998+ls和history這兩條命令。
3、我們可以修改history的歷史保留命令的條數(shù);可以查看history的默認(rèn)保留條數(shù) echo $HISTSIZE 一般默認(rèn)是1000條如下圖所示:

如果為了安全我們只需要保留200條,怎么辦呢?我們可以臨時修改最大保留條數(shù):HISTSIZE=200 這樣就修改成了200條啦,但是重啟服務(wù)器后,又還原了。
如果想一直保留200條,我們需要在/etc/profile修改他的環(huán)境變量;可以使用vim編輯(推薦使用vim編輯),也可以使用sed直接修改。命令如下:
[root@5201351 ~]# sed -i 's/^HISTSIZE=1000/HISTSIZE=200/' /etc/profile
[root@5201351 ~]# source /etc/profile //使其立即生效
這樣就算重啟服務(wù)器后、history命令的歷史保留條數(shù)仍然為200條,直到下一次HISTSIZE變量的修改。