linux history不记录历史命令

linux history不记录历史命令

我们在操作,或者别人在操作我们的机器时,不希望留下操作痕迹,隐藏掉我们在这台机器的历史命令,下面记录下

image

不记录历史命令执行

//设置命令不记录进history,执行后只对当前连接有效。也就是别人打开的窗口是记录的,而你执行命令的当前窗口不记录
set +o history  
//设置命令记录进history,可以通过这个命令对上面的再次记录
set -o histoty

使用history -d 删除指定命令记录

//显示最近n条历史命令记录
history n       
//删除第n条命令记录,这条记录会被记录,露马脚了兄弟
history -d n

编辑 ~/.bash_history 文件删除历史记录

这里有两种方式生效:
1、需要执行history -w 将内存的记录写入文件
2、断开shell后会自动将内存的记录写入文件

同理可以手动编辑 ~/.bash_history 删除历史记录。
但是通过这种方式删除历史命令,只要当前shell没有断开,history看到的还是没有删除的状态,这是为什么呢?
参考上图:
1、执行history -r 从文件读取到内存中
2、下次新起shell后会将文件读取到内存中

使用sed命令快速删除的技巧

比如前3868行是用户的正常操作记录,3868以后是恶意的操作记录。我们可以只保留正常的操作,删除不必要痕迹的历史操作记录,这里,我们只保留前150行:image

执行命令前加入空格(部分可用)

image
测试时使用的是腾讯云的centos,是改过/etc/bashrc系统配置。因此在部分系统上是可用的,如果不生效则需要修改bashrc使这种方式生效。

echo HISTCONTROL=ignorespace >> ~/.bashrc 
source ~/.bashrc

chattr +ai .bash_history 不记录后续历史记录

这种方式比较hack,通过给.bash_history文件加入特殊权限(不可编辑和追加),使history命令看到的记录永远都是一致的。

chattr +ai ~/.bash_history

这样history永远都只有执行 chattr +ai .bash_history 命令之前的历史记录(下次新起shell时还是先读取.bash_history文件到内存中)。这种方式使内存中的记录无法成功写入文件,从而达到隐藏命令记录的效果。

在下次新打开一个shell的情况下,重启启用历史记录可执行下面的命令恢复。

chattr -ai .bash_history

参考文档

history隐藏历史命令记录的小技巧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值