我一直在我的MAC上设置新软件(mongoDB,maven等)。 我想我覆盖了新的PATH时覆盖了原来的.bash_profile。 现在,bash shell中的大多数基本命令都无法正常工作。
-bash: ls: command not found
以下是我在文本编辑器中打开的.bash_profile。
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH
export PATH=/Users/sychung/mongoDB/bin
#maven PATH
export M2_HOME=/Users/sychung/apache-maven-3.1.1
export PATH=$PATH:$M2_HOME/bin
# Setting PATH for Python 3.4
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
以下是我在shell中输入“echo $ PATH”时的PATH列表。
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Users/sychung/mongoDB/bin:/Users/sychung/apache-maven-3.1.1/bin
我应该怎么做才能使bash恢复正常?
基于其他评论,我在shell中输入以下内容,它看起来像是再次工作。但是,当我重新启动终端时,它会一次又一次地返回“命令未找到”模式。
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH
答案 0 :(得分:1)
您似乎认为export
将在您的文件中获取PATH
的当前值,并将其附加到当前环境中的值。但是,export
命令只执行以下操作:使用export属性标记名称 PATH
。在为子进程设置环境时,shell会使用export属性获取所有名称的当前值,并将它们添加到该环境中。
请注意,一旦进程启动,导出属性集(无论是从父级继承还是从本地设置)和没有变量的变量之间没有区别;它们都是shell变量。
当您将PATH
设置为单个目录时,会覆盖PATH
的当前值并丢失您之前包含的所有目录。
将路径添加到路径的正确方法是
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH
PATH=$PATH:/new/dircetory
PATH=$PATH:/another/new/one
PATH=/a/very/important/one:$PATH # you can prepend as well
答案 1 :(得分:0)
最终问题是export PATH=/Users/sychung/mongoDB/bin
,与设置PATH
的所有其他行不同,它不包含当前$PATH
值,因此删除了默认{{1}条目。使该行看起来像其他行(在其中的某处包含PATH
),事情应该有效。