如何找出 $MANPATH 的设置位置?

如何找出 $MANPATH 的设置位置?

如何找出在哪个配置文件中$MANPATH设置了环境变量?有没有办法回溯这些值?

我知道我可以使用find或来 grep 整个文件系统。我大部分时间都grep使用而不是。我运行的是 Ubuntu Precise。zshbash

答案1

正如其他人已经写的那样,Ubuntu 默认不设置MANPATH。您可以根据需要编辑.profile并添加MANPATH。但是 Ubuntu 从哪里获取有关您的 manpath 的信息?

此信息在 中设置/etc/manpath.config。软件包man-db使用此信息来配置 man 的路径。环境变量MANPATH优先于文件manpath.config。该文件具有以下(可能更多)条目:

MANDATORY_MANPATH /usr/share/man
MANPATH_MAP /usr/bin /usr/man
DEFINE troff groff -mandoc

第一行告诉自动生成软件它MANPATH应该包含哪些目录。通常/usr/man/usr/share/man和其他都在这里设置。

PATH接下来是从用户到正确的的映射MANPATH。如果用户/usr/bin在他的中有PATH,那么在我上面的例子中MANPATH应该包含。/usr/man

DEFINE值具有一些用于寻呼机实用程序的默认参数和程序集。

答案2

Ubuntu 默认不设置$MANPATH,所以你的搜索可以限制在你的~/.{ba,z}shrc和它们包含的文件

编译到 man 命令中的搜索路径可以通过 来查看man -w。在我的系统 (12.10) 上,这将返回/usr/local/man:/usr/local/share/man:/usr/share/man

答案3

尝试运行

zsh -x -ls -c "exit" 2> shell-startup-output

运行此命令后,文件shell-startup-output应显示 shell 启动时所引用的每个文件。然后,您可以检查每个文件以查看哪个文件设置了$MANPATH$

如果这对您不起作用,我知道的唯一其他方法是使用grepfind

相关内容