如果有人从 shell 历史记录中删除命令,有什么方法可以在 Linux 中恢复这些删除的命令吗?
答案1
作为$disk
包含历史文件的磁盘或分区,并且$cmd
是您记得在所述历史记录中的命令的一个非常独特的部分,并且100
是您历史记录中的命令总数,那么也许
strings -w "$disk" | grep -C 100 "$cmd"
会发现它的一些片段。条件是历史文件被删除或截断,但未就地覆盖或修剪/丢弃。
strings
从原始设备中提取所有人类可读的字符串。
grep
搜索它们并使用该-C
选项还提供上下文行。
如果您正在寻找其他人的历史记录,那么您毕竟不知道任何命令......那么也许您可以 grep for ^cd \.\.$
.这是一个出现在大多数历史记录中的命令(至少,如果用户正在浏览目录)。同时它在脚本中很少使用。