在linux系统下、history命令会保存多少条命令呢?曾在一本书上说,若是注销系统,那么会将全部的历史命令都定入到~/.bash_history,linux
但只保留1000条命令(这个是由默认的shell变量所设置了的)可是为何咱们执行history命令后会出现大于1000条的历史记录呢,shell
其实当咱们仔细一看只是序列大于1000、记录的条数仍是1000条。vim
在此我是这样理解的: 安全
一、~/.bash_histroy里面是记录的上次注销前的历史记录(最大保存1000条,且是上次注销前最近的1000条记录)bash
二、执行history命令,会显示~/.bash_history里的记录加上当前shell所执行记录。且也是只显示1000条记录、如从新登陆后、执行ls命令后、再使用history查看、服务器
会显示.bash_history里的+ls和history这两条。若是~/.bash_history里有1000条、则显示后998+ls和history这两条命令。post
三、咱们能够修改history的历史保留命令的条数;能够查看history的默认保留条数 echo $HISTSIZE 通常默认是1000条以下图所示:spa
若是为了安全咱们只须要保留200条,怎么办呢?咱们能够临时修改最大保留条数:HISTSIZE=200 这样就修改为了200条啦,可是重启服务器后,又还原了。3d
若是想一直保留200条,咱们须要在/etc/profile修改他的环境变量;可使用vim编辑(推荐使用vim编辑),也可使用sed直接修改。命令以下:code
[root@5201351 ~]# sed -i 's/^HISTSIZE=1000/HISTSIZE=200/' /etc/profile [root@5201351 ~]# source /etc/profile //使其当即生效
这样就算重启服务器后、history命令的历史保留条数仍然为200条,直到下一次HISTSIZE变量的修改。