Mac OS X下修改.bash_profile之后source .bash_profile出现“command not found”问题解决

来源:互联网 发布:万德数据库破解版 编辑:程序博客网 时间:2024/06/05 03:34

1. 问题描述

添加pgsql的环境变量之后,又删除了关于mysql环境,还有一些设计MySQL的软连接,目录,文件,反正就是图个痛快,喜新厌旧,踢掉MySQL.还有一些看起来不像是系统文件,像是要卸载掉的软件的目录,也都一并删除.修改环境变量之后:
export PATH=“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin:$PATH”Pg_SQLexport PATH=/Users/HangKO/DevOps/pgsql/bin设置PG共享库的路径export LD_LIBRARY_PATH=/Users/HangKO/DevOps/pgsql/lib设定数据库中数据目录环境变量export PGDATA=/Users/HangKO/DBdata/pgdata

事后才检查出是以上的环境变量填写有误!!!

2. 问题解决思路

  1. 网络上搜查有没有类似的解决方案,比如这位作者的解决思路:
    http://www.cnblogs.com/cocos2dx-wk/p/3195857.html
    在这里学到了主要命令执行无效的情况下要使用下面的命令来临时做到命令行可用.
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

但是,作者的方法并没有解决我的问题.
因为我把我自己的第一行export 进去之后,一旦source 一下,再次输入,老问题又出现了.

因此,这里放弃.

  1. 重点研究:PATH,export两个关键字的意义.
    这里有人给出了研究:
    http://blog.163.com/wang_hai_fei/blog/static/309020312008728333912/

    看懂了就好,大概就是明白了:

    1. 路径之后要加英文”:”()分号;
    2. .bash_profile,.bashrc等文件启动关系.在这里我不去动 /etc 系统目录下的配置,一个因为我没有启用root用户,所以只能读不能写,同时也用不着修改它们.因为出问题的时候是在非root用户下.
    3. source的简单认识.
  2. 最后看了一下这篇帖子,意识到 .bash_profile 完全可以删掉重建一个.
    http://www.2cto.com/os/201504/394134.html
    同时也意识到自己mac上的 .bash_profile文件其实就是当初刚用mac时候自己按照教程自己添加的,里面的有一些路径完全就是copy过来的,自己今天删除一下相关应用之后完全就是没有用处了!

Finally,删掉 ~/.bash_profile文件,重启终端之后:

$ ls

发现完全是好好的,焕然一新.所有的疑惑瞬间清晰!
问题的根因:
1. export了错误的路径;
2. 添加错误了错误的 PATH,并且添加错误,比如:

export PATH=/Users/HangKO/DevOps/pgsql/bin(错误)

export PATH=/Users/HangKO/DevOps/pgsql/bin:$PATH(正确)

问题得到解决.

问题总结

  1. 添加应用的PATH路径时候自己是没老老实实的填写的,后面少了”:$PATH”等;
  2. .bash_profile 文件没有人性化的注释,以至于半年以后来看,文件什么时候创建,哪一块是干嘛的,都没明确.让后期维护难度变大!

其他相关查阅

  1. linux下.bashrc文件 /PATH环境变量修改 /提示符修改
    http://shunfengwei.blog.163.com/blog/static/17522511720122299241143/

  2. mac下设置PATH
    http://www.cnblogs.com/xitang/archive/2011/09/15/2177924.html

最后,感谢以上链接中作者的分享,此处链接如有侵权,请告知删除.

0 0