Macos 在mac上导出.profile中的路径
我不敢相信在谷歌搜索之后竟然没有任何关于这方面的教程。 有人能给我指出一个方向或者解释一下这些线和变量在mac上的.profile中的含义吗?如何配置它们Macos 在mac上导出.profile中的路径,macos,terminal,profile,.profile,Macos,Terminal,Profile,.profile,我不敢相信在谷歌搜索之后竟然没有任何关于这方面的教程。 有人能给我指出一个方向或者解释一下这些线和变量在mac上的.profile中的含义吗?如何配置它们 export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. #export PATH="/usr/local/bin:/usr/local/sbin:/usr
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
export PATH=$PATH:/usr/local/mysql/bin
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
#export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/Applications/MAMP/htdocs/cake/cake/console:/opt/local/bin:/opt/local/sbin:$PATH
export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH
export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH
从中,export
仅设置一个环境变量
PATH
环境变量告诉Mac在何处查找您在命令行中键入的命令,其顺序应与您在命令行中键入的顺序一致。它是路径列表,由冒号分隔
值$PATH
是PATH
环境变量的当前值
因此,像
export PATH=/foo:$PATH
将/foo
前置到路径
及
将
/foo
追加到路径
任何以#
开头的行都是注释PATH=
设置PATH
变量的值,$PATH展开为当前值,开始时的export
使该值可用于从终端运行的程序
让我们假设PATH的初始值是/usr/bin:/bin
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
将$PATH
替换为以前的$PATH值。因此,上面将路径设置为
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin
向前看
export PATH=$PATH:/usr/local/mysql/bin
同样,将$PATH替换为上一个值:
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin
之后
我们有
/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin
(~
是一个特殊的标记,它将被替换为您的主目录的路径,但您应该可以看到图片。)
最后,在
export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH
我们得到
/Users/android-sdks/platform-tools:/Users/android-sdks/tools:/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin
PATH
用于查找在命令行中输入的命令。因此,如果键入foo
,shell将按照指定的顺序查找以下名称:
/Users/android-sdks/platform-tools/foo
/Users/android-sdks/tools/foo
/android-sdks/platform-tools/foo
~/android-sdks/tools/foo
/opt/local/bin/foo
/opt/local/sbin/foo
/usr/bin/foo
/bin/foo
/usr/local/mysql/bin/foo
要查看路径的当前值,请运行
echo $PATH
您应该将新目录添加到路径的开头还是结尾?这并不总是重要的,但有时确实重要。这取决于您希望系统首先检查的位置
如果目标是在查找默认目录之前搜索其他目录,则应添加到开头。例如,git
是一个用于管理源代码的实用程序。如果我想在~/git中安装更新版本的git
,并在默认情况下使用它,我会:
export PATH=~/git/bin:$PATH
这意味着~/git/bin/git将覆盖/opt/local/bin/git
另一方面,我可能更喜欢让管理员在系统范围内安装git
。如果我只想在管理员允许所有人使用本地副本之前使用本地副本,那么这更有意义:
export PATH=$PATH:~/git/bin
在这种情况下,~/git/bin/git
仅在/opt/local/bin/git
不存在时使用,因为/opt/local/bin
在路径中较早
许多命令不会存在于多个位置。例如,您可以编写我的备份脚本
,并将其放在位于/Volumes/Capsule/scripts
的Apple Time Capsule上。在任何其他位置都不可能有名为my backup script
的命令发生冲突。因此,以下任一命令都允许您键入my backup script
并运行正确的脚本:
export PATH=/Volumes/Capsule/scripts:$PATH
或
有更好的吗?我的建议是做后者。请记住,系统需要按顺序搜索$PATH
中的目录,以查找需要查找的每个命令。大多数命令将在本地系统上,因此在路径的末尾放置较慢的网络存储是最有意义的。Runman
然后回答以下问题:export
您可以查看当前的路径
值,并观察到存在多个路径
(我的是/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
)
请注意,:
表示单个路径的结束
您可以使用$PATH
现在,当您想向该列表添加一个以上路径时,需要将当前路径附加到新路径,如/newPath:$path
或$path:/newPath
最后,为了保存它,您需要使用export PATH=$PATH:/newPath
注意:此答案适用于新手开发人员
那么,为什么有些人会在显然应该预先设置的情况下附加到$PATH?如果目标是在搜索PATH
中提到的其他位置之前搜索特定目录,那么就应该预先设置。如果有人选择附加,他们可能有不同的目标。用一些细节更新了答案。
export PATH=$PATH:~/git/bin
export PATH=/Volumes/Capsule/scripts:$PATH
export PATH=$PATH:/Volumes/Capsule/scripts