linux history 看更多历史记录_Linux历史记录history常用技巧

8a413eb8950548d4ed01148c58291b87.png

Linux历史记录history常用技巧

Pain #1 - 历史记录不带时间戳,不知道命令是什么时候发生的

默认情况下 history 命令直接显示用户执行的命令而不会输出运行命令时的日期和时间,即使 history 命令记录了这个时间。

运行 history 命令时,它会检查一个叫做 HISTTIMEFORMAT 的环境变量,这个环境变量指明了如何格式化输出 history 命令中记录的这个时间。

若该值为 null 或者根本没有设置,则它跟大多数系统默认显示的一样,不会显示日期和时间。

echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc

或者

echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile

生效后的history将会是这个样子:

# history 1 2017-08-16 15:30:15 yum install -y mysql-server mysql-client 2 2017-08-16 15:30:15 service mysqld start 3 2017-08-16 15:30:15 sysdig proc.name=sshd 4 2017-08-16 15:30:15 sysdig -c topprocs_net 5 2017-08-16 15:30:15 sysdig proc.name=sshd 6 2017-08-16 15:30:15 sysdig proc.name=sshd | more

Pain #2 - 历史记录默认只保留500条记录

history读取环境变量HISTFILESIZE和HISTSIZE配置记录和显示的历史命令记录数量,默认是500, 可以改大一些:

# 设置历史记录条数echo 'export HISTFILESIZE=100000' >> >> ~/.bashrc# 设置显示历史记录条数echo 'export HISTSIZE=10000' >> ~/.bashrc

或者

# 设置历史记录条数echo 'export HISTFILESIZE=100000' >> /etc/profile# 设置显示历史记录条数echo 'export HISTSIZE=10000' >> /etc/profile

Pain #3 - 多个终端相互覆盖历史记录

现在通过多个ssh终端连接到同一个服务器是非常常见的操作,但是bash默认多个终端会相互覆盖历史记录,通过下面的配置可以让终端退出的时候采用append方式而不是overwrite保存历史记录:

echo 'shopt -s histappend' >> ~/.bashrc

或者

echo 'shopt -s histappend' >> /etc/profile

Pain #4 - 如何快速搜索历史记录

在Bash环境中按'Ctrl+r', 切出(reverse-i-search)`':提示符,输入需要查找命令关键字,继续按Ctrl+r在多个结果中选择。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值