linux历史信息设置
history命令使用
1
2
3
4
5
6history //显示所有历史信息
history 10 //显示最新10条信息
!{num} //执行历史信息中的第几条命令
!! //重复执行上一条命令
!rpm //执行最后一次以rpm开头的命令
history -c //清空历史消息修改history配置
1
2
3
4
5
6
7
8
9
10
11
12
13export HISTTIMEFORMAT='%F %T' //显示执行命令时间
export HISTSIZE=450 //设置历史记录保留条数(控制台输出)
export HISTFILESIZE=450 //设置历史记录保留条数(文件保存)
export HISTFILE=~/.bash_history //设置历史记录保存位置
export HISTCONTROL=ignoredups //剔除连续的重复条目
export HISTCONTROL=erasedups //剔除整个命令历史中的重复条目
export HISTCONTROL=ignorespace //强制history不记住特定的命令,在不想被记住的命令前面输入一个空格
export HISTSIZE=0 //禁用 history
export HISTIGNORE="pwd:ls:ls -ltr:" //忽略pwd,ls,ls -ltr等命令详细history信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27[root@dev ~]# cat > /etc/profile.d/history.sh <<EOF
HISDIR="/tmp/history"
if [ ! -d $HISDIR ];then
mkdir -p $HISDIR && chmod 777 $HISDIR
fi
LOGTM_1=$(date +"%Y%m%d")
LOGTM_2=$(date +"%Y%m%d" -d '30 days ago')
LOGTM_3=$(date +"%H%M%S")
if [ ! -d $HISDIR/$LOGTM_1 ];then
mkdir -p $HISDIR/$LOGTM_1 && chmod 777 $HISDIR/$LOGTM_1
fi
if [ -d $HISDIR/$LOGTM_2 ];then
rm -rf $HISDIR/$LOGTM_2
fi
LOGUSER=$(who -u am i 2>/dev/null| awk '{print $1}')
LOGIPAR=$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')
[ ! $LOGUSER ] && LOGUSER=$(whoami)
[ ! $LOGIPAR ] && LOGIPAR=$(hostname)
export HISTTIMEFORMAT="[%F %T][$LOGUSER][$LOGIPAR] "
export HISTSIZE=100000
export HISTFILE="$HISDIR/$LOGTM_1/$LOGTM_3-$LOGUSER-$LOGIPAR"
EOF
[root@dev ~]# source /etc/profile通过history保留用户操作信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[root@dev ~]# vim /etc/profile.d/history.users.sh
#PS1="`whoami`@`hostname`:"'[$PWD]' //线上使用的话,建议去掉这一行。即采用默认的终端显示方式。
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ];then
USER_IP=`hostname`
fi
if [ ! -d /tmp/history ];then
mkdir /tmp/history
chmod 777 /tmp/history
fi
if [ ! -d /tmp/history/${LOGNAME} ];then
mkdir /tmp/history/${LOGNAME}
chmod 300 /tmp/history/${LOGNAME}
fi
export HISTSIZE=10000
DT=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="/tmp/history/${LOGNAME}/${USER_IP}.history.$DT"
chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null
[root@dev ~]# source /etc/profile