查看man文档时,发现文档和命令不匹配,原因不明,解决方案如下。
1 重建manpages数据库
sudo /usr/libexec/makewhatis
相关链接:[man pages](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/manpages.5.html)
该命令只是重建索引,并不会生新安装man pages。
2 安装对应版本man pages
重建man pages数据库多半解决不了,可以自己安装需要的版本。
a 下载:
git clone http://git.kernel.org/pub/scm/docs/man-pages/man-pages
或者git clone https://github.com/mkerrisk/man-pages.git
b 安装:
make && make install
3 安装中文man pages
a 下载
wet http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
或者https://github.com/lidaobing/manpages-zh
b 安装
make && install
c 编码问题
如果存在编码问题,编辑/etc/man.conf中的NROFF行为:
NROFF preconv -e UTF8 |nroff -Tutf8 -mandoc -c
如果不行,更新groff至1.2以上:
brew remove groff && brew install groff
如果还不行,修改上面的preconv和nroff为绝对路径:
ROOT$ which preconv /usr/bin/preconv ROOT$ which nroff /usr/bin/nroff NROFF /usr/bin/preconv -e UTF8 |/usr/bin/nroff -Tutf8 -mandoc -c
cited:[man命令的中文帮助文档](http://www.fengyachao.com/archives/230)
4 根据在线文档重建man pages
其实到这一步为止,手册与命令仍不能匹配。因为上面man pages的安装都是安装section2、3、4、5、7,而没有section1,具体原因不明。如果实在是有强迫症,可以下载Ubuntu的manpages安装。
[Ubuntu 14.10 man1](http://manpages.ubuntu.com/manpages/precise/man1/)
另外,如果是ubuntu系统,可以实时在线获取手册[dman](http://manpages.ubuntu.com/dman)
如果是其他系统,可以模仿d操作。获取html,然后通过[html2man](http://get-software.net/fonts/utilities/ttf2pt1/scripts/html2man)命令生成man后显示。
以下是一个示例:
1 #!/bin/bash 2 3 # Download online man pages 4 nohup wget -r -l 2 "http://man.he.net/" 5 6 # html2man 7 for page in `find man.he.net -mindepth 1 -print` 8 do 9 i=`echo $page |awk -F '/' '{print $2}' |sed 's/man//g'` 10 perl html2man.pl $page > $page"."$i 11 done
man pages下载下来并转义后,利用上面的安装方法安装即可。
5 配色
vim ~/.bashrc添加:
1 # Set colors for man pages. 2 man() { 3 env 4 LESS_TERMCAP_mb=$(printf "e[0m") 5 LESS_TERMCAP_md=$(printf "e[1m") 6 LESS_TERMCAP_me=$(printf "e[0m") 7 LESS_TERMCAP_se=$(printf "e[0m") 8 LESS_TERMCAP_so=$(printf "e[0m") 9 LESS_TERMCAP_ue=$(printf "e[0m") 10 LESS_TERMCAP_us=$(printf "e[0m") 11 man "$@" 12 }
其中:
LESS_TERMCAP_md 设置了命令和参数等关键字的颜色。
LESS_TERMCAP_me 设置了文字内容的颜色。
6 相关命令
查看man版本:
man -v
设置中文man命令:
vim ~/.bashrc
alias cman='man -M /usr/local/share/man/zh_CN'
查看命令对应的文档:
man -aw ls
7 相关问题
虽然man命令和手册不匹配,但online和offline手册是一致的,[man ls](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ls.1.html)