我在 Mac 上的两个地方安装了终端编辑器“nano”
/usr/bin/nano
/opt/local/bin/nano
安装的版本不同。 中的版本/usr
不支持我的配置,~/.nanorc
而 中的版本/opt
支持。
当我使用命令“nano file”打开文件时,会显示错误,表明使用了中的那个,但是,如果我运行“which nano”,则会显示/usr
中的那个。/opt
“which” 不是用来搜索默认路径的吗?为什么调用“nano”不会解析到相同的路径?
我通过将以下行添加到~/.profile
alias nano='/opt/local/bin/nano'
答案1
二进制文件按照其父目录在 PATH 环境变量中出现的顺序进行哈希处理和解析。根据您的需要进行调整。至少就我使用 bash 的经验而言,这是正确的。如果我告诉您的内容不适用于您的 shell,请考虑查看您的 shell 的手册页并查找 COMMAND EXECUTION 和 PATH。
例如,如果我想要foo
表示 /home/me/bin/foo 而不是 /usr/local/bin/foo,那么我会将 /home/me/bin/ 放在路径中的 /usr/local/bin 之前,其中前方法的左边:
PATH=(...):/home/me/bin:(...):/usr/local/bin:(...)
该路径通常在 /etc/profile 或 ~/.profile 中设置。