是否存在对应man/目录的$PATH等价环境变量?
是否存在对应man/目录的$PATH等价环境变量?
当然有啦!这个环境变量就是MANPATH——和你熟悉的$PATH逻辑完全一致,专门用来告诉man和apropos去哪里找手册页,完美解决你不想污染系统目录的需求。
怎么用MANPATH?
- 临时添加(适合实验性软件场景):在终端里直接执行这条命令,把你的实验性软件man页所在目录加进去:
这样当前终端会话里,export MANPATH="$MANPATH:/path/to/your/experimental/software/man"man和apropos就能搜到这个目录下的手册页了,退出会话后就会失效,完全不会污染系统配置。 - 永久添加(按需选择):如果某个软件你打算用一段时间,可以把上面的命令加到你的
~/.bashrc(或者~/.zshrc,看你用的shell)里,下次打开终端就自动生效。等你不用这个软件了,删掉对应的命令和目录就行。
顺便说下doc和man的区别
你提到的这个点刚好能解释你用apropos搜不到结果的问题:
man目录里放的是标准格式的手册页,这些文件是专门给man命令设计的,通常按章节分类(比如1是用户命令,8是系统管理命令),apropos就是通过扫描这些man页的内容来返回匹配结果的。doc目录一般是软件的通用文档集合,比如README、详细教程、HTML格式的说明等等,这些内容man和apropos是不会去搜索的——这就是你之前搜不到的原因,因为那些实验性软件的man页不在默认的MANPATH里。
额外小技巧
如果只是偶尔查某款实验性软件的man页,不想改MANPATH,可以直接用man的-M参数指定手册目录:
man -M /path/to/your/man/dir your-command
这样单次查询就搞定了,非常灵活。
你还可以用manpath命令查看当前系统的默认手册搜索路径,确认你的自定义目录有没有被正确添加。
备注:内容来源于stack exchange,提问作者Sridhar Sarnobat
相关产品推荐
相关产品推荐

