阅读量:345
在Linux系统中,记录命令执行的历史是非常有用的,特别是在需要追踪系统操作和维护的时候。本文将指导您如何在CentOS和Ubuntu系统中配置命令记录,以便显示命令执行的时间和执行者的IP地址。请注意,以下配置仅对配置生效后的命令有效,之前执行的命令不会被追溯记录。
编辑系统配置文件
推荐编辑的系统配置文件是/etc/profile。使用文本编辑器打开该文件,例如vi或nano。
bash
vi /etc/profile
在文件尾部添加以下代码:
bash
增加历史命令保存条数
HISTFILESIZE=4000
HISTSIZE=4000
# 获取当前用户的IP地址
USER_IP=who -u am i 2\u003e/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
if [ -z $USER_IP ]
then
USER_IP=hostname
fi
# 设置新的历史命令显示格式
export HISTTIMEFORMAT='%F %T $USER_IP:whoami '
这段代码做了以下几件事情:
- 增加了历史命令的保存条数,从默认的1000条增加到4000条。
- 使用who命令和管道awk和sed来获取当前用户的IP地址,并将其存储在USER_IP变量中。
- 设置了HISTTIMEFORMAT环境变量,这样history命令将按照指定的格式显示历史记录,包括执行时间、IP地址和用户名。
应用配置并查看效果
编辑完成后,按一下键盘上的Esc键,然后输入:wq保存文件并退出编辑器。
bash
:wq
为了使配置立即生效,您需要运行以下命令:
bash
source /etc/profile
现在,当您在终端中执行命令时,history命令将显示包含执行时间和IP地址的信息。例如:
bash
$ history
2023-05-12 15:34:46 -0700 ubuntu@example.com
2023-05-12 15:34:47 -0700 ubuntu@example.com
请注意,如果您是第一次设置这个功能,您的历史命令列表可能不会立即反映出新的格式。您需要执行一些命令,然后使用history命令查看最新的格式化输出。
通过这种方式,您可以在CentOS或Ubuntu系统中记录命令执行的时间和IP地址,以便更好地追踪和管理系统操作。