Mor*_*ive 58 macos bash terminal
当我为我的OS X编写我的bash脚本做一般事情时,我想知道哪里是保存它们的好地方.是否有一个目录我可以将它们全部放在自动拾取的位置?或者我应该创建自己的目录,然后从.profile或其他东西引用这个目录?
Pau*_*l R 62
通常/usr/local/bin
,除非您不希望其他用户访问它们,否则在这种情况下$HOME/bin
.
/usr/local/bin
可能在默认路径中,但$HOME/bin
肯定需要添加到PATH.
$HOME/bin
到PATH:
PATH=${PATH}:$HOME/bin
export PATH
Run Code Online (Sandbox Code Playgroud)
Dav*_* W. 17
我将PATH设置为:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
$HOME/bin
我使用/usr/local/bin
的命令覆盖了默认命令.例如,我安装了Subversion 1.7.7,OS X带有1.6.18.版本1.7.7 svn
是在,/usr/local/bin
而默认的1.6.18版本svn
是在/usr/bin
.当我输入时svn
,我得到的是我安装的版本,而不是OS X附带的版本.我用Java,Git,Python和其他几个二进制文件完成了这个,我需要一个与Mac上出现的版本不同的版本.其中大多数是符号链接.例如:
$ ls -l /usr/local/bin/ant
lrwxr-xr-x 1 root wheel 16 Jun 12 11:01 ant -> /opt/ant/bin/ant
Run Code Online (Sandbox Code Playgroud)
Ant 1.9.1安装在/opt/ant
(实际上/opt/apache-ant-1.9.1
,但它象征性地链接到/opt/ant
).我把所有的东西都链接/opt/ant/bin
到了/usr/local/bin
,所以它就在我的路上.
我$HOME/bin
用于我的个人shell脚本和其他脚本.传统上,您将此作为PATH中的最后一个条目,因此您不会意外地覆盖内置命令.如果我调用了一个shell脚本命令cp
,我就不会覆盖该/bin/cp
命令.
我用~/bin
自己编写的可执行文件和脚本,以及我自己写/usr/local/bin
的可执行文件和脚本.
/usr/local/bin
通过使用自制,pip
(以及gem
和npm
通过自制安装),对于缺省目标make install
,并通过一些.pkg
安装程序.
我曾经有一个单独的目录,用于我自己没有编写的可执行文件和脚本/usr/local/bin
,默认情况下没有放入.但它包含的文件很少,我将其中的所有文件都移到了/usr/local/bin
.
我可以找到非自制的东西/usr/local/bin
用find /usr/local/bin ! -lname '../Cellar/*'
.
我不使用/usr/local/bin
我自己编写的脚本,因为/usr/local/bin
已经包含大约1000个其他文件,并且~/bin
(或bin
)通常更容易键入.
我加入setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
了/etc/launchd.conf
.在/usr/local/bin
其他目录之前存在潜在危险,例如某些TextMate命令因此而停止工作,但在系统安装版本之前使用较新版本的命令并在各处使用相同路径也很方便.