linux安装软件到自定义路径时,新安装的命令需要带上路径才可以执行,不能像系统自带命令那样可以直接使用。
这个时候可以通过修改环境变量PATH和MANPATH,来实现像系统命令一样使用新安装的命令并能查看man。
我们以php-fpm安装为例,安装完成之后,php的安装目录是/usr/local/php
php的可执行文被件安装到
/usr/local/php/bin
php的man文件被安装到
/usr/local/php/php/man/man1/
/usr/local/php/php/man/man8/
1.如果不修改环境变量就直接在命令行使用php会提示
-bash: php: command not found
执行
export PATH=/usr/local/php/bin:$PATH
这样就可以直接使用php命令了
2. 使用man php,会提示
No manual entry for php
加入man路径到环境变量MANPATH,注意不用具体到man1和man8,加入到它们的父目录就可以了。
export MANPATH=/usr/local/php/php/man:$MANPATH
就可以找到man了
但是该配置只对当前登录用户当次有效,要想对所有用户永久有效需要修改
vi /etc/profile
在文件结尾添加
export PATH=/usr/local/php/bin:$PATH
export MANPATH=/usr/local/php/php/man:$MANPATH
修改完成可以使用manpath命令查看修改后的路径
/usr/local/php/php/man:/usr/kerberos/man:/usr/local/share/man:/usr/share/man/en:/usr/share/man
--------------------华丽的分隔------------------------------------------
man常用知识
man的配置文件 /etc/man.config
查找你看到的某个命令的man内容是在那个man文件中
# man -w ls
/usr/share/man/man1/ls.1.gz
显示所有的
# man -aw ls
/usr/share/man/man1/ls.1.gz
/usr/share/man/man1p/ls.1p.gz
命令manpath显示当前的man的搜索的path
# manpath
/usr/local/php/php/man:/usr/kerberos/man:/usr/local/share/man:/usr/share/man/en:/usr/share/man
一个说明man的mapping的例子
# manpath
/usr/kerberos/man:/usr/local/share/man:/usr/share/man/en:/usr/share/man..........................................................
# echo “export PATH=$PATH:/opt/mpich-1.2.7p1/bin” >>/etc/profile
# source /etc/profile
# manpath
/usr/kerberos/man:/usr/local/share/man:/usr/share/man/en:/usr/share/man:/opt/mpich-1.2.7p1/man
就是说,如果把一个命令的路径加入到PATH中,且这个路径的父目录中有man这个目录,那么会自动的加入到manpath中,没有必要再手工的将manpath加入到 /etc/profile或者当前的.bash_profile中