不幸的是,我只是用
覆盖了我的.bashrc
echo "command" > ~/.bashrc
而不是通过
追加
echo "command" >> ~/.bashrc
。
因为我在终端工作比较新,所以不是一个巨大的回归。 但我很喜欢如果可以在重新启动终端会话之前恢复.bashrc
!
是否存在会话命令的存储位置?如果是这样 - 我如何提取自定义脚本?
期待最糟糕的新闻,希望获得最好的新闻!我正在运行一个Ubuntu 13.04盒子,会话在Guake终端 - 如果这改变了一切。
答案 0 :(得分:3)
你无法完全康复。但您可以使用set
部分恢复。
如果您在同一终端上运行set
,您将能够获得自定义脚本和其他环境变量集的完整列表。在这方面,它可以区分.bashrc
的一部分以及在该终端上键入的其他部分。但是你无法恢复以前作为bash登录一部分执行的命令。
答案 1 :(得分:3)
将来您可以考虑使用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"
答案 2 :(得分:1)
假设您使用一堆类似的.bashrc
命令构建了echo
,并且只想检索它们:
是否存在会话命令的存储位置?
如果您运行history
,您应该能够检索以前的命令。有关详细信息,请参阅man history
。
在您的情况下,您可能会发现history | grep bashrc
的输出很有用。
答案 3 :(得分:1)
无法恢复。
我建议您在终端中键入env
来查看最重要的环境变量(例如LD_LIBRARY_PATH,PATH,PYTHONPATH,CLASS_PATH,JAVA_HOME等),然后将其添加回新的。 bashrc文件。
您可以从/etc/skel/.bashrc
的副本开始作为最小文件。
答案 4 :(得分:0)
在另一个对我有帮助的帖子中共享指向答案的链接。 https://stackoverflow.com/a/40214165/13151296 如果您仅对bashrc添加了一些修饰,则可以使用它来获取全新的默认bashrc,然后使用该线程先前的答案中的方法添加所需的内容。
在终端中输入以下内容,
/ bin / cp /etc/skel/.bashrc〜/
它将替换损坏的〜/ .bashrc 用新鲜的。之后,您需要来源〜/ .bashrc,以便 更改立即发生,在终端中写入
源〜/ .bashrc
或者如果这样不起作用,您可以关闭终端 并再次打开。