主要功能:
1, 可以记录哪个ip和时间(精确到秒)以及哪个用户,作了哪些命令
2,最大日志记录增加到4096条
把下面的代码直接粘贴到/etc/profile后面就可以了
#history modify
USER_IP=`who -u am i | awk '{print $NF}'|sed -e 's/[()]//g'`
if [ -z $USER_IP ]
then
USER_IP="NO_client_IP"
fi
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S-$USER_IP-$USER]"
history中设置显示命令的执行时间
vi /root/.bashrc
HISTTIMEFORMAT="%Y-%M-%D %H:%M:%S"
export HISTTIMEFORMAT
为了使以上设置生效,执行以下命令
:wq
source .bashrc
history命令清除命令执行操作的历史记录
history -c
history命令列出最近执行的n条命令
history 10
重复执行上次操作的命令语法
!!
设置保存1000条操作命令
#设置历史命令记录数
export HISTSIZE=1000
#记录历史文件大小
export HISTFILESIZE=450
指定不同终端执行的命令都存储在同一个文件中
export HISTFILE=/root/.commandline_warrior
忽略重复命令
export HISTCONTROL=ignoredups
多个终端同时操作时,避免命令覆盖,采用追加方式
shopt -s histappend
命令操作记录会在终端关闭结束工作后才会写入到history文件中,要想实现实时访问需要添加一下命令
PROMPT_COMMAND=’history -a’
history整体高级配置
export HISTTIMEFORMAT="%Y-%M-%D %H:%M:%S"
export HISTSIZE=100000
export HISTFILESIZE=1000000
export HISTFILE=/root/.commandline_warrior
shopt -s histappend
PROMPT_COMMAND='history -a'
另一个高配:
History强化历史记录
export PATH
# Maximum number of history lines in memory
export HISTSIZE=50000
# Maximum number of history lines on disk
export HISTFILESIZE=50000
# Ignore duplicate lines
export HISTCONTROL=ignoredups:erasedups
# When the shell exits, append to the history file
# instead of overwriting it
shopt -s histappend
# After each command, append to the history file
# and reread it
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
将上述内容追加到~/.bash_profile里面即可。
自己的,写入/etc/profile
HISTORY_IPADDR_tmp=`who am i |awk '{ print $5 }'`
HISTORY_IPADDR=${HISTORY_IPADDR_tmp:1:-1}
HISTORY_FILE=/root/eGW/Logs/history/$HISTORY_IPADDR.log &> /dev/null #自定义日志文件路径及名称
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(pwd) #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'