不幸的是,我刚刚用我的.bashrc
覆盖了
echo "command" > ~/.bashrc
而不是追加通过
echo "command" >> ~/.bashrc
。
因为我在终端工作更新,所以不是一个巨大的回归。但是,如果有可能在重新开始我的终端会话之前恢复我的.bashrc
,我会很高兴!
是否存在会话命令的存储位置?如果是这样 - 我如何提取自定义脚本?
期待最糟糕的新闻,希望获得最好的新闻!我正在运行一个Ubuntu 13.04盒子,会话在Guake终端 - 如果这改变了一切。
你不能完全康复。但你可以使用set
部分恢复。
如果您在同一终端上运行set
,您将能够获得一整套自定义脚本和其他环境变量集。在这方面,要区分那些属于.bashrc
的人和其他在该终端上打字的人。但是,您将无法恢复以前作为bash登录一部分执行的命令。
对于将来,您可以考虑使用版本控制系统,如git或hg,以保存以前版本的文件,如~/.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"
假设你使用一堆类似的.bashrc
命令构建你的echo
,你只想检索它们:
是否存在会话命令的存储位置?
如果你运行history
,你应该能够检索以前的命令。有关更多信息,请参阅man history
。
在您的情况下,您可能会发现history | grep bashrc
的输出很有用。
无法恢复。
我建议你在你的终端输入env
来查看最重要的环境变量(比如LD_LIBRARY_PATH,PATH,PYTHONPATH,CLASS_PATH,JAVA_HOME等等)并将它们添加回新的.bashrc文件中。
您可以从/etc/skel/.bashrc
的副本开始作为最小文件。