我无法相信在谷歌搜索之后没有关于此的任何教程。 有人可以指出我的方向或解释这些行和变量在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/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
答案 0 :(得分:43)
任何以#
开头的行都是评论。 PATH=
设置PATH
变量的值,$ PATH扩展为当前值,开头的export
使值可用于从终端运行的程序。
假设PATH的初始值为/usr/bin:/bin
。
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
将$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
在
export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH
我们有
/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
要查看PATH的当前值,请运行
echo $PATH
您应该将新目录添加到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
位于路径的前面。
许多命令不会存在于多个地方。例如,您可以编写my-backup-script
并将其放在/Volumes/Capsule/scripts
的Apple Time Capsule上。在任何其他位置都不会有一个名为my-backup-script
的命令发生冲突。因此,以下任一命令都可以让您键入my-backup-script
并运行正确的脚本:
export PATH=/Volumes/Capsule/scripts:$PATH
或
export PATH=$PATH:/Volumes/Capsule/scripts
一个更好吗?我的建议是做后者。请记住,系统需要按顺序搜索$PATH
中的目录,以查找它需要查找的每个命令。大多数命令都在本地系统上,因此在路径末端放置较慢的网络存储是最有意义的。
答案 1 :(得分:7)
从man
page,export
只需设置一个环境变量。
PATH
环境变量告诉您的Mac在哪里查找您在命令行上键入的命令,按照它应该看起来的顺序。它是一个由冒号分隔的路径列表。
值$PATH
是PATH
环境变量的当前值。
因此,像
这样的一行export PATH=/foo:$PATH
将/foo
添加到PATH
和
export PATH=$PATH:/foo
将/foo
添加到PATH
答案 2 :(得分:1)
运行man
然后将问题回答为export
您可以看到当前的PATH
值,并观察到存在多个路径。
(我是/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
)
观察:
表示单个路径的结束。
您可以使用$PATH
现在,当您想要向此列表添加一条路径时,您需要将当前路径追加到新路径,例如/newPath:$PATH
或$PATH:/newPath
。
最后为了保存它,您需要使用export PATH=$PATH:/newPath
。
注意:这个答案适合初学者。