如何找出在哪个配置文件中$MANPATH
设置了环境变量?有没有办法回溯这些值?
我知道我可以使用find
或来 grep 整个文件系统。我大部分时间都grep
使用而不是。我运行的是 Ubuntu Precise。zsh
bash
答案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$
。
如果这对您不起作用,我知道的唯一其他方法是使用grep
或find
。