JJD*_*JJD 5 bash zsh environment-variables manpage
如何找出环境变量$MANPATH设置在哪个配置文件中?有没有办法回溯这些值?
我知道我可以使用find或来grep 整个文件系统grep。我zsh大部分时间都在使用而不是bash. 我运行 Ubuntu Precise。
由于其他人已经写过 UbuntuMANPATH默认没有设置。您可以根据需要编辑.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
Run Code Online (Sandbox Code Playgroud)
第一行告诉软件它会自动生成MANPATH它应该包含的目录。通常/usr/man,/usr/share/man其他都在这里设置。
接下来是从用户PATH到正确的映射MANPATH。如果用户/usr/bin在他的PATH,MANPATH应该包含/usr/man在我上面的例子中。
该DEFINE值具有一些用于寻呼实用程序的默认参数和程序集。
Ubuntu 默认情况下没有设置$MANPATH,因此您的搜索可以仅限于您的~/.{ba,z}shrc及其包含的文件
编译到 man 命令中的搜索路径可以通过 看到man -w。在我的系统(12.10)上,这会返回/usr/local/man:/usr/local/share/man:/usr/share/man
小智 1
尝试跑步
zsh -x -ls -c "exit" 2> shell-startup-output
Run Code Online (Sandbox Code Playgroud)
运行此命令后,该文件shell-startup-output应显示 shell 启动时所获取的每个文件。然后,您可以检查每个文件以查看哪一个设置了$MANPATH$.
如果这对您不起作用,我知道的唯一其他方法是使用grepor find。