![从正在运行的会话中重建 .bashrc](https://linux22.com/image/547348/%E4%BB%8E%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E4%BC%9A%E8%AF%9D%E4%B8%AD%E9%87%8D%E5%BB%BA%20.bashrc.png)
我意外删除了 .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"