从正在运行的会话中重建 .bashrc

从正在运行的会话中重建 .bashrc

我意外删除了 .bashrc。但终端仍在运行。我可以恢复哪些设置?

我已经有了别名(来自alias命令)。我假设所有 if 和 case 都消失了,但我想检索变量。我该怎么做?(除了必须将它们输入出来)。此外,我还能恢复什么?

答案1

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

cp /etc/skel/.bashrc ~/

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

添加了有关如何检查用户 bashrc 文件中可能存在但默认 bashrc 文件中不存在的内容的描述

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

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

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

env > oldenv

在新的 shell 中获取现在发生了哪些变化,因为 .bashrc 是默认的:

comm -3 <(env) oldenv

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

高血压

答案2

shell$ env
# will tell you all the settings you have into that terminal 
# the alias is handy as well for all the aliases you have

答案3

我遇到了这种情况,真的很可怕!我运行了“env”来获取所有环境变量,并且命令“alias”将打印所有不在您的环境中的别名。

因此运行:

env

alias

并将它们复制到.bashrc框架文件中。

现在快速将您的 .bashrc 放入 git:

cd ~
git init
git add .bashrc
git commit -m "added .bashrc"

相关内容