在Linux环境中,默认情况下,history命令仅记录用户执行过的命令,而不包含具体的时间信息。这对于需要追溯特定时间点操作记录的场景来说,可能会带来不便。本文将介绍如何通过简单的设置,使得history命令能够记录下每条命令的执行时间。
1. 原始的history记录情况
100 ls 101 cat /etc/hosts
如上所示,原始的history记录仅显示了命令编号和对应的命令内容,没有提供任何时间信息。
2. 如何让history记录时间(含系统优化建议)
为了使history命令能够记录每条命令的执行时间,可以通过设置环境变量HISTTIMEFORMAT来实现。具体操作如下:
export HISTTIMEFORMAT="%F %T `whoami` "
上述命令会在当前会话中生效。若想让此设置对所有用户永久生效,可以将该行添加到全局配置文件中;若仅针对当前用户有效,则添加至个人配置文件中:
- 全局设置:将上述命令添加到/etc/profile文件末尾
- 局部设置:将上述命令添加到~/.bashrc文件末尾
完成设置后,记得重新加载配置文件以使更改生效:
source /etc/profile # 或者 source ~/.bashrc
3. 设置后的history记录情况
100 2013-04-08 08:11:24 root ls 101 2013-04-08 08:11:34 root cat /etc/hosts
从上面的示例可以看出,现在每条命令后面都跟随了执行的具体时间以及执行该命令的用户。
4. 记录内容的格式说明
经过上述设置后,history命令的输出格式变为:
- 序号:命令的唯一标识符
- 时间:命令执行的具体时间,格式为年-月-日 时:分:秒
- 用户:执行命令的用户名
- 命令:用户实际执行的命令
需要注意的是,这些设置不会影响history命令原有的其他功能,例如使用{!序号}、{!命令}、{!!}等快捷方式仍然可以正常使用。