修改linux系统history命令的条数和格式

Posted dijia478

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改linux系统history命令的条数和格式相关的知识,希望对你有一定的参考价值。

原生的history命令,只能看到输入的命令历史,看不到什么时候,谁输入的。

特此在网上找到修改history命令的办法:

1.用root用户打开系统环境变量设置的文件

vim /etc/profile

2.在最下面,插入下面几行代码

USER_IP=`who -u am i 2>/dev/null| awk \'{print $NF}\'|sed -e \'s/[()]//g\'`
export HISTTIMEFORMAT="%F %T  `whoami`  ${USER_IP}  "
export HISTSIZE=10000 #history 命令的记录数量
export HISTFILESIZE=10000 #记录文件的行数
export HISTIGNORE=\'ls*:ll\' #忽略的命令
export PROMPT_COMMAND="history 1 >> /var/log/.myhistory" #将命令记录输出到文本中

3.让环境变量生效

source /etc/profile

4.创建日志文件并赋予其他用户读写权限

touch /var/log/.myhistory
chmod 666 /var/log/.myhistory

以后再输入history命令,就会变成下面的样子了,有时间,有用户,有ip,而且保存最近1万条记录。

哼哼,再也不怕背锅了

注意,history命令只能看到本用户下输入的命令,所以其实那个who am i没什么用。ip显示的也是当前用户登录的ip,你换个机器,history命令里记录的ip也会变,所以ip的历史也是假的。

所以需要将历史记录输出到文本中,这种方式改完后,/var/log/.myhistory文件中才是真正意义上的所有用户命令历史,不过有个缺点,长按回车,会导致大量上一次的命令被重复记录在文件中,以后再想办法优化吧。

 

以上是关于修改linux系统history命令的条数和格式的主要内容,如果未能解决你的问题,请参考以下文章

linux bash基本特性

bash特性

基础命令history

Linux命令之bash的基础特性(命令历史命令补全路径补全命令行展开。)

Linux系统之history命令的基本使用

bash基础特性