Bash 有完善的历史命令,这对于简化管理操作、排查系统错误都有重要的作用,而且使用简单方便,建议大家多使用历史命令。系统保存的历史命令可以使用 history 命令查询,命令格式如下:
选项:
如果 history 命令直接回车,则用于查询系统中的历史命令,命令如下:
这样就可以查询我们刚刚输入的系统命令,而且每条命令都是有编号的。历史命令默认会保存 100 条,这是通过环境变量 HISTSIZE 进行设置的,我们可以在环境变量配置文件 /etc/profile 中进行修改。命令如下:
如果觉得 1000 条历史命令不够曰常管理使用,那么是否可以増加呢?只需修改 /etc/profile 环境变量配置文件中的 HISTSIZE 字段即可,不过我们需要考虑一个问题:这些历史命令是保存在哪里的呢?如果历史命令是保存在文件中的,那么历史命令的保存数量可以放心地增加,因为哪怕有几万条历史命令,也不会占用多大的硬盘空间。但是,如果历史命令是保存在内存当中的,就要小心了。好在历史命令是保存在 ~/.bash_history 文件中的,所以可以放心地把总历史命令条数改大,比如 10 000 条,命令如下:
大家需要注意,每个用户的历史命令是单独保存的,所以每个用户的家目录中都有 .bash_history 这个历史命令文件。
如果某个用户的历史命令总了历史命令保存条数,那么新命令会变成最后一条命令,而最早的命令则被删除。假设系统保存 1000 条历史命令,而我已经保存了 1000 条历史命令,那么我新输入的命令会被保存成第 1000 条命令,而最早的第一条命令会被删除。
还要注意一下,我们使用 history 命令查看的历史命令和 ~/.bash_history 文件中保存的历史命令是不同的。那是因为当前登录操作的命令并没有直接写入 ~/.bash_history 文件中,而是保存在缓存当中的,需要等当前用户注销之后,缓存中的命令才会写入 ~/.bash_history 文件中。
如果我们需要把内存中的命令直接写入 ~/.bash_history 文件中,而不等用户注销时再写入,就需要使用"-w"选项。命令如下:
这时再去查询 ~/.bash_history 文件,历史命令就和 history 命令查询的结果一致了。
如果需要清空历史命令,则只需要执行如下命令:
这样就会把缓存和 ~/.bash_history 文件中的历史命令清空。
如果想要使用原先的历史命令,则有这样几种方法: