2

所以我刚刚回显到 bashrc,并删除了那里的所有内容。但是我的外壳没有关闭或重新加载,所以我的 bash 的来源是旧的。有没有办法查看我当前的 bashrc 文件的来源?

4

2 回答 2

4

set您可以使用 bash 命令(没有参数,它会转储当前环境变量和函数)和alias(类似地,转储别名)获得当前 bash shell 环境的相当完整的转储。这些可以帮助您重建许多旧的 .bashrc 文件。

但是,您应该记住,这些不会显示旧的 .bashrc 本身,它们会显示其结果。例如,如果默认系统 PATH 是/usr/bin:/bin:/usr/sbin:/sbin并且您的旧 .bashrc 包含

PATH="$PATH:/opt/X11/bin"

这只会显示最终结果:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

如果您将其复制到新的 .bashrc 中,并且系统 PATH 得到更新(例如包含/usr/local/bin),您的 .bashrc 将删除更新。

因此,您不应该只获取 and 的输出set并将alias其用作新的 .bashrc。但是您可以将它们用作曾经存在的东西的提醒,也可以使用它们来避免例如必须重写任何复杂的函数以及您定义的此类函数。

于 2013-02-22T22:31:38.340 回答
3

不,基本上。Bash 评估登录脚本的内容,但不会保留它们。您可以通过查看当前环境(使用env命令)来重建它们的一部分,但大部分都已经消失了。Bash 不提供高级反射。

将其视为一种学习体验,并让它激励您从现在开始进行备份并将重要配置保留在版本控制中。

于 2013-02-22T20:22:51.737 回答