昇腾社区首页
中文
注册
开发者
下载

查看命令行操作记录

命令行操作日志记录在系统history中。

查看执行命令的历史记录

当安装、升级、卸载Container Manager,或者通过Container Manager查询容器恢复进度等时,会将history中的历史命令记录保存到“~/.bash_history”文件中。所以,可以直接查看.bash_history文件即可找到命令行的记录。

历史命令会先缓存在内存中,只有当终端正常退出时才会写入“~/.bash_history”文件。执行以下命令可立即将内存中的历史记录写入.bash_history文件:

history -a

修改历史记录的保存数量

在Linux系统中,history命令一般默认保存最新的1000条命令。如果需要修改保存的命令数量,比如只保留200条历史命令,则可以在“/etc/profile”文件中修改HISTSIZE环境变量。修改方法如下:
  • 使用编辑器(如vim编辑器)修改。
  • 使用sed直接修改,命令如下:

    sed -i 's/^HISTSIZE=number/HISTSIZE=newNumber/' /etc/profilenumber表示修改前的命令数量,newNumber表示修改后的命令数量。以保存的命令数量从1000改为200为例:

    1
    sed -i 's/^HISTSIZE=1000/HISTSIZE=200/' /etc/profile
    

修改完成之后需要执行source /etc/profile使环境变量生效。

修改历史命令文件时间戳

如果需要在历史命令文件中有时间戳记录(搭配用户、IP这些自定义信息),可以在“/etc/profile”中添加如下配置:

export HISTTIMEFORMAT="%F %T $USER_IP:`whoami` "

添加完成之后需要执行source /etc/profile命令使环境变量生效。添加时间戳之后,history命令结果如下所示:(示例中的ip为50.38.66.66,用户为root)

1
2
3
4
5
2025-12-02 20:44:34 50.38.66.66:root systemctl start container-manager.service
2025-12-02 20:44:34 50.38.66.66:root systemctl restart container-manager.timer 
2025-12-02 20:44:34 50.38.66.66:root systemctl restart container-manager.service
2025-12-02 20:44:34 50.38.66.66:root systemctl status container-manager.service
2025-12-02 20:44:34 50.38.66.66:root systemctl status container-manager.service

此外,如果需要将历史命令记录在自定义文件中,可以在“/etc/profile”中设置HISTFILE环境变量,设置完成之后执行source /etc/profile命令使环境变量生效。比如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HISTDIR=~/log/container-manager   # 配置历史命令记录保存文件
HISTFILE="$HISTDIR/container-manager.log"
mkdir -p $HISTDIR
chmod 750 $HISTDIR
touch $HISTFILE
chmod 640 $HISTFILE
USER_IP=`who -u am i 2>/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` "    # history命令显示格式:时间、IP、用户名、执行命令 
PROMPT_COMMAND=' { date "+%Y-%m-%d %T - $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTFILE'    # 实时将history命令写到配置的文件里

其中日志文件路径为“~/log/container-manager”,请保证磁盘空间足够,日志文件设置权限为640。