如何找出$ MANPATH的位置?
如何找出环境变量$MANPATH
设置在哪个配置文件中? 有没有办法回溯价值观?
我知道我可以使用find
或grep
来浏览整个文件系统。 我大部分时间都在使用zsh
而不是bash
。 我运行Ubuntu Precise。
Ubuntu默认情况下不设置$MANPATH
,因此您的搜索可以限制在~/.{ba,z}shrc
及其包含的文件中
编译成man命令的搜索路径可以用man -w
看到。 在我的系统(12.10)上,这将返回/usr/local/man:/usr/local/share/man:/usr/share/man
正如其他人已经写过的那样,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
的映射。 如果用户在其PATH
有/usr/bin
,则MANPATH
在上面的示例中应该包含/usr/man
。
DEFINE
值具有一些用于寻呼机实用程序的默认参数和程序集。
试试跑步
zsh -x -ls -c "exit" 2> shell-startup-output
运行此命令后,文件shell-startup-output
应显示shell启动时所源自的每个文件。 然后,您可以检查每个文件以查看哪个设置$MANPATH$
。
如果这对您不起作用,我知道的另一种方法是使用grep
或find
。