修改历史命令

#!/usr/bin/env bash
# history
# 获取登录用户的IP地址
USER_IP=$(env | grep SSH_CLIENT | awk '{print $1}' | sed 's/SSH_CLIENT=//' | awk -F " " '{print $1}')
# 如果无法获取用户IP,使用主机名作为标识
if [ -z $USER_IP ]; then
    USER_IP=$(hostname)
fi
# 指定历史命令保存路径
HISTDIR=/usr/share/.history
# 如果历史命令路径不存在,则创建
if [ ! -d $HISTDIR ]; then
    mkdir -p $HISTDIR
    chmod 777 $HISTDIR
fi
# 每个用户创建一个子目录保存历史命令
if [ ! -d $HISTDIR/${LOGNAME} ]; then
    mkdir -p $HISTDIR/${LOGNAME}
    chmod 300 $HISTDIR/${LOGNAME}
fi
# 设置历史命令保存条数
export HISTSIZE=4000
# 设置历史命令文件名后缀为当前日期时间
DT=$(date +%Y%m%d_%H%M%S)
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"  # 文件路径
# 设置历史命令记录的时间格式
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S] "

# 设置历史命令文件权限
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null