恢复 MANPATH 的简单方法

恢复 MANPATH 的简单方法

今天我试图为我的 texlive 发行版添加手册页时,我不小心这样做了:

$ MANPATH=MANPATH:/usr/local/texlive/2011/texmf/doc/man
$ export MANPATH

...当我的意思是:

$ MANPATH=$MANPATH:/usr/local/texlive/2011/texmf/doc/man
$ export MANPATH

结果是我有一个非常无用的`$MANPATH,如下所示:

$ echo $MANPATH
$ MANPATH:/usr/local/texlive/2011/texmf/doc/man

有没有一种快速方法将所有手册页添加回$MANPATH?

答案1

像这样导出的变量仅在当前 shell 和任何子进程中有效。如果您没有将这些命令保存在您的配置文件或 shell-rc 文件中,则任何启动的新 shell 都应再次具有原始值。

关闭当前 shell 并启动一个新 shell 是获取一组有意义的env变量的最简单方法。

答案2

如果您关心当前的 shell 会话,您可以使用以下命令:

MANPATH=$(source /etc/profile; echo $MANPATH)

但如果您不关心当前的 shell 环境和变量,最简单的方法可能就是启动一个新会话。

笔记:上面的命令启动一个新进程,该进程读取系统范围/etc/profile(提供环境变量的所有基本定义),并打印 的“重置”值MANPATH。该$()构造将将此过程的输出放置在 shell 的MANPATH.其他重新定义不会source /etc/profile影响当前 shell,只会影响子进程。

答案3

对于某些man实现,该命令manpath -g显示默认的系统 man 路径。如果您的实现没有manpath命令,请检查man man默认值是什么。但如果您MANPATH定义了变量,它可能与默认值不同。

没有什么神奇的方法可以获取环境变量的先前值。如果您在此 shell 会话中设置它,则先前的设置可能仍会在您的 shell 历史记录中;尝试搜索以前的分配(例如bash 或 zsh 中的Ctrl+ )。R MANPATH=如果在登录时读取的某个配置文件中设置了环境变量,只需在另一个终端中启动 shell 并从那里复制粘贴值即可。

相关内容