【Zsh】Zsh报command not found: head的错误

使用GolangBeego框架的时候,装了它的命令行工具bee ,添加环境变量的时候出了问题。

我修改了 ~/.bash_profile 文件,具体如下:

1
export PATH=/Users/chenlongfei/Documents/mygo/bin

结果打开Zsh后爆炸了,先是出现如下所示警告:

1
2
3
4
5
6
/Users/chenlongfei/.oh-my-zsh/oh-my-zsh.sh:3: command not found: env
env_default:1: command not found: env
env_default:1: command not found: grep
env_default:1: command not found: env
env_default:1: command not found: grep
compdump:135: command not found: mv

然后当我输入 vim 命令时,会一直提示警告,输入完成后,则提示命令不存在:

1
2
3
4
5
_zsh_autosuggest_strategy_default:1: command not found: head
v_zsh_autosuggest_strategy_default:1: command not found: head
vi_zsh_autosuggest_strategy_default:1: command not found: head
m
zsh: command not found: vim

以下简述如何解决该问题。

后经一番排查 ,原来是我将 PATH 指定成唯一的,从而检索不到其他目录的命令。

export PATH=/Users/chenlongfei/Documents/mygo/bin 这样设置后。

Zsh输入命令后只会在 /Users/chenlongfei/Documents/mygo/bin 路径下找,因此会提示找不到命令。


正确的设置方法应该是在路径前路径后添加 $PATH 变量。

1
export PATH=$PATH:/Users/chenlongfei/Documents/mygo/bin

在终端执行 echo $PATH ,打印环境变量:

1
/Users/chenlongfei/Documents/mygo/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin

每个环境变量的路径以冒号隔开,从前到后依次查找在终端输入的命令。

在路径后添加 $PATH 亦然。