Skip to content

history命令

1、配置文件位置

/etc/profile /etc/profile.d/ /etc/bash.bashrc

2、个性化设置

在/etc/profile文件中找到配置项HISTSIZE,默认值为1000

可以通过修改/etc/profile的HISTTIMEFORMAT变量来改造输出结果

export HISTTIMEFORMAT="%F %T `who am i` "
source /etc/profile

history只显示一条,并将其他的日志保存到文件
IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTORY_FILE=$(date +%Y%m%d%H%M)_${IP}.log
export PROMPT_COMMAND='HISTTIMEFORMAT="[%F %T] " history 1 >> $HISTORY_FILE'

export HISTSIZE=1 立竿见影,临时生效

#export HISTSIZE=       # 使用history命令显示的条数
#export HISTFILESIZE=   # 文件~/.bash_history中保存的条数
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTORY_FILE=$LROOT/log/today/${LOGNAME}/$(date +%Y%m%d%H%M)_${USER_IP}.log
dir=`dirname $HISTORY_FILE`
if [ ! -d "$dir" ]
then
mkdir -p $dir
chmod 300 $dir
fi
> /${LOGNAME}/.bash_history
export PROMPT_COMMAND='HISTTIMEFORMAT="[%F %T] " history 1 >> $HISTORY_FILE'

3、文件中条数会被超过HISTFILESIZE的大小,但是exit退出后重新进入又会被截断在HISTFILESIZE中

需要注意的是,命令历史通常在shell会话结束时写入到这个文件中。如果你想立即将当前会话的命令历史写入文件,可以使用history -a命令。此外,环境变量HISTFILE可以用来指定历史命令存储的文件路径,如果这个变量被设置了,那么命令历史会被写入到该变量指定的文件中。

[root@ubuntu0006:~] #history | wc
   1000    3137   28584
[root@ubuntu0006:~] #echo $HISTSIZE
1000
[root@ubuntu0006:~] #echo $HISTFILESIZE
2000
[root@ubuntu0006:~] #echo $HISTFILE
/root/.bash_history
[root@ubuntu0006:~] #cat /root/.bash_history | wc
   2000    4257   34353

This website is released under the MIT License.