从运行会话重建 .bashrc

Ada*_*Ada 6 disaster-recovery bash

我不小心删除了我的 .bashrc。我仍然在运行终端。我可以恢复哪些设置?

我已经有了别名(来自alias命令)。我假设所有的 ifs 和 case 都消失了,但我想检索变量。我怎样才能做到这一点?(除了必须输入它们)。我还能恢复什么?

hmo*_*liu 3

如果您有一个默认的 .bashrc 文件,但没有您自己的调整,您可以从 skel 目录恢复原始文件:

cp /etc/skel/.bashrc ~/
Run Code Online (Sandbox Code Playgroud)

skel 目录具有(或应该具有)新用户的默认设置。创建用户时,skel 目录的内容将复制到新用户主目录

添加了如何检查用户 bashrc 文件中不存在默认 bashrc 文件的内容的说明

如果您有一个经过调整的 .bashrc 文件,并且env将转储所有会话设置(很多东西),这些设置可能来自多个文件(/etc/bashrc、/etc/profile、.profile、....)。您需要获取从您自己的bashrc生成的与默认 bashrc 不同的内容,并丢弃从其他 bash 源文件生成的所有内容:

根据 silviud 发布的“env”答案,只要您仍然打开旧终端,就可以将输出保存env到文件中。然后打开一个新的 shell 并将旧环境与新环境进行比较,从而显示从 .bashrc 生成的内容。

例如,在旧终端中将环境转储到文件中:

env > oldenv
Run Code Online (Sandbox Code Playgroud)

在新的 shell 中,获取 .bashrc 是默认值后发生的变化:

comm -3 <(env) oldenv
Run Code Online (Sandbox Code Playgroud)

编辑从 skel 目录获取的 .bashrc 以添加从上述命令中获得的差异。

华泰