一、针对history的小操作:
如何让history可以有时间戳显示
# export HISTTIMEFORMAT='%F %T '
清除history记录
[oracle@ www.linuxidc.com ~]$ history -c
[oracle@ www.linuxidc.com ~]$ history
32 2012-07-04 01:20:40 history
[oracle@ www.linuxidc.com ~]$
注:清除history之后,.bash_history里仍会有历史记录
如何不让系统记录历史命令
# export HISTSIZE=0
二、通过logger记录bash命令到messages:
1、在/etc/profile或/etc/bashrc文件中加入:
readonly PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | logger -t "$USER[$$] ($SSH_CONNECTION) bash")'
三、其他方法记录bash命令:
为所有用户添加history记录详细信息,把所有用户的操作指令都统一存到/var/log/bash_history目录下,并按每天生成一个日志文件
这样可以通过查看这一个文件,来了解用户的所有操作。
【bash】
#vi /etc/profile
export PROMPT_COMMAND='{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd"; }`"; } >> /var/log/bash_history/bash.`date +%Y%m%d`'
#source /etc/profile
#vi ~/.bashrc
export PROMPT_COMMAND='{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd"; }`"; } \
>> /var/log/bash_history/bash.`date +%Y%m%d`'
#source ~/.bashrc
说明:当用户使用csh/tcsh登录时,当进行su/sudo操作时有可能就改变到了bash用户下,或者用户直接执行bash时,这时不会去读取/etc/profile文件,所以需要在用户的主目录下的~/.bashrc加入上段内容,这样用户从csh/tcsh切换到bash 时也能正常记录用户的所有操作。当用户使用bash登录时,不存在此问题。