linux下history那个命令所记录的命令是不是会自动清除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下history那个命令所记录的命令是不是会自动清除相关的知识,希望对你有一定的参考价值。

linux下history那个命令所记录的命令是否会自动清除?我的history命令昨天还1000条今天就100条了奇怪?
NoEveR527 - 江湖新秀 四级
你好,现在问题是:我原来的历史命令绝对1000多条,现在就100条了,很奇怪!他自动覆盖会取消原来的吗?

参考技术A 不会自动清除
查阅历史记录-history命令

在Linux系统上输入命令并按下Enter后,这个命令就会存放在命令记录表 ( ~/.bash_history )中,预定的记录为1000条,这些都定义在环境变量中。

列出所有的历史记录:#history

只列出最近10条记录:#history 10 (注,history和10中间有空格)

使用命令记录号码执行命令:#!200 (注,!和200中间没有空格)

重复执行上一个命令:#!!

执行最后一次以ls开头的命令:#!ls
参考技术B 会自动清理 根据设置 会以天为单位进行数据块的覆盖吧 参考技术C 不会自动清除

linux修改history记录数

在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条如下图所示:

如果为了安全我们只需要保留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变量的修改。

以上是关于linux下history那个命令所记录的命令是不是会自动清除的主要内容,如果未能解决你的问题,请参考以下文章

linux--history命令

linux下history命令显示历史指令记录的使用方法

Linux运维12:history命令详解

Linux学习总结(75)—— Linux history 命令实用技巧

Linux学习总结(75)—— Linux history 命令实用技巧

linuxHistory- Linux下定制个性化history记录