Mac OS X 下终端系统命令丢失提示 command not found 解决方法

57 篇文章 0 订阅
29 篇文章 1 订阅

事件的起因是我在 ~/.bash_profile 里添加了 ~/.composer/vendor/bin 这个东西导致,或许是 OS X 10.11 的 bug?

先说说 Mac OS 里对环境变量文件的加载顺序

/etc/profile -> /etc/paths -> ~/.bash_profile

主要就是这 3 个,如果在找不到 ~/.bash_profile 还会继续按照下方的顺序查找配置文件【可以忽略下方 3 个,不常用】

~/.bash_login -> ~/.profile -> ~/.bashrc

  解决终端命令丢失 command not found 可以参考如下步骤:

  1. 检查 ~/.bash_profile 文件是否存在,如果存在则重命名,如 mv ~/.bash_profile ~/bash_profile,然后注销输入密码,打开终端尝试 lssource 等命令。【如果个人不喜欢 .bash_profile 这个名字而使用上方所述的 3 个文件,也参照此法】

  2. 步骤 1 基本就解决了系统命令问题,如果还存在,仔细检查 /etc/paths 文件,里面默认包含如下内容:
    【注意顺序非常重要,如果有通过 brew 安装 PHP 等组件,/usr/local/bin/usr/local/sbin/usr/bin/usr/sbin 之后的话,则后面含有相同的命令不会覆盖之前的命令,以前者为准。】
    【例如 /usr/bin 里包含了 php phpize php-config 等文件,则终端下默认执行的就是 /usr/bin 里的版本。而 /usr/local/bin 里的 php phpize php-config 等文件则会忽略。所以为了使用上 brew 安装的版本,推荐把 /usr/local/bin/usr/local/sbin 放在 /usr/bin/usr/sbin 之前】

/bin
/sbin
/usr/local/bin
# 这个默认是没有的,建议加上
/usr/local/sbin
/usr/bin
/usr/sbin
如果没有或者不完全,请复制上方内容并粘贴到 `paths` 文件,需要 **`root`** 权限。【`//` 和后面的内容不要复制哈】然后注销登录,打开终端测试命令。
  1. 进入 /etc/paths.d,看看有没有最近修改的文件,同样的仔细想想 .bash_profile 最近有没有修改过,如果有,/etc/paths.d 里的某个文件先复制一份到桌面并删除; .bash_profile 则删除或注释掉(行前加 # 为注释)近期添加的内容。注销或终端执行 source ~/.bash_profile 生效。【建议注销】

  2. 我当时遇到的情况是在 .bash_profile 里添加

    export PATH="$PATH:~/.composer/vendor/bin"
    

    导致的错误,正确的写法是这样:export PATH="$HOME/.composer/vendor/bin:$PATH"

    当然也可以在 /etc/paths.d 里新建一个 composer 文件,内容填上

    /Users/用户名/.composer/vendor/bin
    

注销后解决。终端执行 echo $PATH 看了下一切正常

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至天

看心情啦,最好留着自己喝奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值