优化history历史命令记录并加上执行时间的方法

发布时间:2019-11-01编辑:脚本学堂
优化history历史命令记录并加上执行时间的方法

    优化history历史命令记录并加上执行时间的方法,供大家学习参考。

    加入新公司以后,我发现很多的开发与测试服务器的权限放得很开,很多人都有账号,而且不少人还有root权限,因此常常出现一些误操作问题,每次在出现问题的时候他们都会来找我查一下哪个用户在什么时间执行了什么操作导致的问题。

    由于linux默认的history记录仅保存了命令的内容,没有具体的时间,我只能通过查出用户的登录与退出的时间,来给他们一个时间范围。

    因此,我们非常有必要对history历史命令的记录功能进行优化,我推荐的参数如下:
编辑/etc/bashrc,添加以下配置信息:

复制代码 代码如下:
# 设置保存历史命令的文件大小
export HISTFILESIZE=1000000000
# 保存历史命令条数
export HISTSIZE=1000000
# 实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的相互覆盖。
export PROMPT_COMMAND="history -a"
# 记录每条历史命令的执行时间
export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "

使更改立即生效:
# source /etc/bashrc

查看历史命令记录:
# history

即可看到如下图所示的带有执行时间的新格式:
history_time
另外,加上一些其它的别名,也能起到一些优化作用。

复制代码 代码如下:
# User specific aliases and functions
alias rm='rm -i' #删除时确认
alias cp='cp -i' #复制覆盖时确认
alias mv='mv -i' #移动覆盖时确认
alias grep='grep --color=auto' #为grep增加颜色
alias ll='ls -l' #详细信息列表
alias la='ls -A' #带有隐藏文件输出的详细信息列表

如果想暂时取消别名的附加参数功能,比如不经过确认直接删除文件,可以用“”将命令转义一次再执行,如下所示:

复制代码 代码如下:
[root@localhost ~]# echo "I am new" > newfile.txt
[root@localhost ~]# echo "I am old" > oldfile.txt
[root@localhost ~]# cp newfile.txt oldfile.txt
cp: overwrite `oldfile.txt'? no
[root@localhost ~]# cat oldfile.txt
I am old
[root@localhost ~]# cp newfile.txt oldfile.txt
[root@localhost ~]# cat oldfile.txt
I am new

本文转自:http://heylinux.com