我可以从打开的“终端”选项卡恢复我的 .bash_profile 吗?

我可以从打开的“终端”选项卡恢复我的 .bash_profile 吗?

我实际上使用的是 Macbook Pro,并且对非 Windows 操作系统相当陌生(我知道,很遗憾!),并且我犯了覆盖我的 bash 配置文件的错误,而不是附加到它......

我所拥有的是终端中的几个打开的选项卡,并且我希望可能有一种方法可以从中恢复我的 .bash_profile (或任何真正的方式)。

答案1

如果您的终端仍然打开,请输入env: 它将显示您的所有环境变量。如果是全新安装或者您从未进行过任何更改,那么最重要的变量是PATH(这个始终存在)和LD_LIBRARY_PATH(可能不存在,我不习惯 osx)。

例如:

$ env
...
PATH=/usr/bin:/bin:/home/user/bin:/sbin
...

.bashrc在该文件中获取资源也是很常见的事情。

然后你可以编辑你的.bash_profile添加这样的行:

# Source your .bashrc
if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

# Export the interesting env variables you
#   displayed from env command previously
export PATH=/usr/bin:/bin:/home/user/bin:/sbin

这不是一个真正的解决方案,因为它不是真正的“备份”,但请记住,只要您的终端打开,您就可以知道您的环境变量,并且主要目的.bash_profile是设置这些变量。

此外,您可能有一些别名:在打开的终端中,键入alias以显示所有定义的别名。您可以将输出按原样复制并粘贴到您的.bash_profile. (显然,如果这些别名在您的文件中可用,.bashrc则无需在您的文件中定义它们,.bash_profile因为您.bashrc之前已经获取了这些别名。)

答案2

这件事刚刚发生在我身上,我恢复如下......

定义的变量和函数:

$ declare > definitions.bash.txt

别名:

$ alias > aliases.bash.txt

答案3

您似乎隐含地询问 RAM 中是否有一个位置存储该文件的内容。答案是不。”该文件只是在 shell 启动期间读取并执行,然后被丢弃。没有 Unix shell 需要持续访问其启动脚本。

一些文件的内容仍然可以检索阿保罗的回答

释放的 RAM 中存在尚未重新分配或返回到操作系统的文件本身的碎片的可能性很小,但可能不值得您花时间尝试构建一个程序来将 RAM 的内容转储到磁盘文件,然后仔细检查它以尝试找到文件内容。

吸取你所得到的教训并从中学习:

  1. 在按下涉及而不是 的Enter命令之前请三思而后行,就像您希望学会小心使用命令一样。>>>rm

  2. 设置时光机器,最快。

    曾几何时,没有最近的备份是一个悲伤但又太常见的故事。现在已经是不可原谅了。苹果已经让它变得像你可以合理要求的那样简单。

答案4

一个愚蠢的脚本对我的 bashrc 执行了此操作,因此我运行以下命令来检索大部分文件。

# Retrieve functions definitions
$ declare > .bashrc.new
# Retrieve aliases
$ alias >> .bashrc.new
# Retrieve env
$ echo "export $(env | grep ^PATH=)" >> .bashrc.new

在这里,你的大部分.bashrc几乎都被重建了。现在您只需进行一些小的调整即可确保它符合您的最佳实践。 ;)

一个很酷的命令来查找自定义函数的定义:type my_function >> .bashrc.new.

另外,请务必检查您的env返回值,以将您认为重要的内容包含到新创建的文件中。

相关内容