撤消对终端的bashrc的更改

问题描述 投票:4回答:4

不幸的是,我刚刚用我的.bashrc覆盖了

echo "command" > ~/.bashrc

而不是追加通过

echo "command" >> ~/.bashrc

因为我在终端工作更新,所以不是一个巨大的回归。但是,如果有可能在重新开始我的终端会话之前恢复我的.bashrc,我会很高兴!

是否存在会话命令的存储位置?如果是这样 - 我如何提取自定义脚本?

期待最糟糕的新闻,希望获得最好的新闻!我正在运行一个Ubuntu 13.04盒子,会话在Guake终端 - 如果这改变了一切。

bash ubuntu terminal
4个回答
3
投票

你不能完全康复。但你可以使用set部分恢复。

如果您在同一终端上运行set,您将能够获得一整套自定义脚本和其他环境变量集。在这方面,要区分那些属于.bashrc的人和其他在该终端上打字的人。但是,您将无法恢复以前作为bash登录一部分执行的命令。


3
投票

对于将来,您可以考虑使用版本控制系统,如githg,以保存以前版本的文件,如~/.bashrc。然后,如果您将来碰巧做>而不是>>,您应该能够将文件恢复到上次将其提交到版本控制时的位置。

如何为git设置它的一个例子是:

cd ~
git init
git add ~/.bashrc
git commit -m "Added .bashrc to version control"
# Time goes by...
echo "export FOO=bar" >> ~/.bashrc # Added a new line
git commit -am "Added FOO to .bashrc"
# Time goes by...
echo "export SHEEP=lambs" > ~/.bashrc # Eeek! We've overwritten our file
# Version control to the rescue
git checkout ~/.bashrc # file is restored
echo "export SHEEP=lambs" >> ~/.bashrc # Done correctly this time!
git commit -am "Added SHEEP to .bashrc"

1
投票

假设你使用一堆类似的.bashrc命令构建你的echo,你只想检索它们:

是否存在会话命令的存储位置?

如果你运行history,你应该能够检索以前的命令。有关更多信息,请参阅man history

在您的情况下,您可能会发现history | grep bashrc的输出很有用。


1
投票

无法恢复。

我建议你在你的终端输入env来查看最重要的环境变量(比如LD_LIBRARY_PATH,PATH,PYTHONPATH,CLASS_PATH,JAVA_HOME等等)并将它们添加回新的.bashrc文件中。

您可以从/etc/skel/.bashrc的副本开始作为最小文件。

© www.soinside.com 2019 - 2024. All rights reserved.