所以我只是回应bashrc,并删除了那里的一切。但我的shell没有关闭或重新加载,所以我的bash来源很旧。有没有办法查看我当前的bashrc文件的来源?
答案 0 :(得分:2)
不,基本上。 Bash会评估您的登录脚本的内容,但不会保留它们。您可以通过查看当前环境(使用env
命令)重建其中的一部分,但大部分都已消失。 Bash不提供高级反思。
将此视为一种学习体验,让它激励您从现在开始进行备份并在版本控制中保持重要配置。
答案 1 :(得分:2)
您可以使用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将删除更新。
因此,您不应该只获取set
和alias
的输出并将其用作新的.bashrc。但是你可以使用它们作为过去那里的提醒,并使用它们来避免例如必须重写任何复杂的函数,例如你已定义的。