从当前 shell 重新生成 .bashrc

cbm*_*ica 7 bash bashrc

所以我愚蠢地无意中破坏了~/.bashrc。如果我打开了带有以前设置的终端,有没有办法将当前设置导出回新的 .bashrc?(我已经set > ~/.bashrc从上述终端之一尝试过,取得了一定程度的成功,但想知道是否有一些更神奇的方法。)

Gil*_*il' 10

您可以尝试的一件事是.bashrc从正在运行的 bash 实例的内存中恢复。在 Linux 上,运行以生成由其 PID 指定的进程的内存转储。这是否有可能起作用取决于 bash 如何管理其内存;我还没有检查源代码,看看它是否完全可能。它在 Debian jessie amd64 上对我不起作用。gcore PID

如果这不起作用,您可以保存当前设置,但您无法恢复它们的设置方式,因此会丢失很多信息。如果您的配置取决于机器、终端类型等,那么您只能恢复任何 bash 实例仍在运行的设置。

从现在开始,备份您的所有文件,并将您的配置文件置于版本控制之下。


maz*_*azs 6

.bashrc您可以从获取默认值/etc/skel/.bashrc
还有一种方法可以从 恢复某个进程打开的文件/proc/PID/fd/<files>,但事实并非如此.bashrc,因为它不是由 bash 进程永久打开的。