如何显示当前 .bashrc 文件的来源?

Posted

技术标签:

【中文标题】如何显示当前 .bashrc 文件的来源?【英文标题】:How to show the source of the current .bashrc file? 【发布时间】:2013-02-08 13:24:02 【问题描述】:

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

【问题讨论】:

您是想重建旧的 .bashrc,还是只刷新当前环境,就像使用新的空白 shell 启动 shell 一样? 你的 bashrc 不见了。我以前做过。您将不得不重新创建它。不要忘记保留一份备份副本。 尝试 /etc/skel 获取模板或使用 ~/.bashrc~ 获取以前的备份,然后使用 envalias 尝试找出可能缺少的内容以及下次使用 @987654323 @ 到文件末尾 【参考方案1】:

您可以使用 bash 命令 set(不带参数,它会转储当前环境变量和函数)和 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 将删除更新。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于如何显示当前 .bashrc 文件的来源?的主要内容,如果未能解决你的问题,请参考以下文章

如何区分本地未提交的更改和来源

Linux 修改 .bashrc

显示来自不同来源的图像

Mac系统的终端显示git当前分支

Linux基础命令

如何使用 react-router-dom 获取当前 URL 的来源?