所以我愚蠢地无意中破坏了~/.bashrc。如果我打开了带有以前设置的终端,有没有办法将当前设置导出回新的 .bashrc?(我已经set > ~/.bashrc
从上述终端之一尝试过,取得了一定程度的成功,但想知道是否有一些更神奇的方法。)
Gil*_*il' 10
您可以尝试的一件事是.bashrc
从正在运行的 bash 实例的内存中恢复。在 Linux 上,运行以生成由其 PID 指定的进程的内存转储。这是否有可能起作用取决于 bash 如何管理其内存;我还没有检查源代码,看看它是否完全可能。它在 Debian jessie amd64 上对我不起作用。gcore PID
如果这不起作用,您可以保存当前设置,但您无法恢复它们的设置方式,因此会丢失很多信息。如果您的配置取决于机器、终端类型等,那么您只能恢复任何 bash 实例仍在运行的设置。
以可回读的形式打印出所有变量。这包括您必须解决的大量噪音。环境变量(标有declare -x
)不应在您的文件中定义,.bashrc
但您可能已经这样做了。删除 bash 自动设置的变量(检查手册并查看declare -p
in的输出bash --norc
)。
declare -p
Run Code Online (Sandbox Code Playgroud)打印出所有函数。这包括您未定义的函数,例如由完成系统定义的函数(您想要的. /etc/bash_completion
)。
declare -f
Run Code Online (Sandbox Code Playgroud)打印别名。这些可能可以按原样使用。
alias
Run Code Online (Sandbox Code Playgroud)打印外壳选项。与shopt
in的输出进行比较bash --norc
以查看您更改的内容。
shopt
Run Code Online (Sandbox Code Playgroud)打印完成设置(如果您使用上下文相关的完成系统)。其中大部分可能来自完成系统;找到你调过的那些可能有点困难。
complete
Run Code Online (Sandbox Code Playgroud)打印出键绑定,如果您在您的.bashrc
而不是在.inputrc
. 这包括默认绑定。
bind -p
Run Code Online (Sandbox Code Playgroud)从现在开始,备份您的所有文件,并将您的配置文件置于版本控制之下。
.bashrc
您可以从获取默认值/etc/skel/.bashrc
。
还有一种方法可以从 恢复某个进程打开的文件/proc/PID/fd/<files>
,但事实并非如此.bashrc
,因为它不是由 bash 进程永久打开的。
归档时间: |
|
查看次数: |
4200 次 |
最近记录: |