You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下.bash_history二进制文件恢复方法求助

恢复Ubuntu 16.04中被污染的.bash_history为可读文本

嘿,这个问题我之前也碰到过好几次——.bash_history突然变成二进制/十六进制格式确实挺闹心的。别慌,咱们一步步来把它恢复成正常的命令文本:

1. 先确认文件状态

首先运行这个命令,看看系统对该文件的判定:

file ~/.bash_history

如果输出显示类似 data 或者 binary file,说明文件确实被非文本数据污染了。

2. 提取可读文本(最稳妥的方法)

使用strings命令过滤掉文件中的非打印字符,只提取能正常显示的命令文本:

strings ~/.bash_history > ~/.bash_history_clean

完成后,用Sublime或者cat ~/.bash_history_clean查看新文件,你会发现大部分之前的终端命令都已经恢复成可读格式了。

3. 针对纯十六进制内容的修复

如果你的.bash_history完全是像你给出的那种连续十六进制字符(比如2d2a 0a73 7564 6f...),可以用xxd命令把十六进制转成原始文本:

xxd -r ~/.bash_history > ~/.bash_history_fixed

这个命令会直接将十六进制编码还原成对应的ASCII文本,比如你提供的那段十六进制会被转换成:

-*
sudo apt-get repository ppa:graphics-drivers/ppa
sudo add-apt

4. 替换原文件并生效

先务必备份原文件,防止操作失误:

cp ~/.bash_history ~/.bash_history.bak

然后把修复好的文件替换成原历史文件:

mv ~/.bash_history_clean ~/.bash_history  # 或者用.bash_history_fixed,看哪个修复效果好

最后重启终端,或者运行以下命令让新的历史文件立即生效:

source ~/.bashrc

5. 预防后续问题

这种情况大多是因为误操作导致二进制数据写入了.bash_history,比如不小心把某个二进制程序的输出重定向到了这个文件(比如some_binary_cmd > ~/.bash_history)。以后操作时注意重定向的目标,避免覆盖或污染历史文件。

内容的提问来源于stack exchange,提问作者Beckik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:32:42