我是比较新的Linux和Unix。 随着互联网的帮助下,我终于想通了如何$PATH
和别名在我.bashrc
工作。
可是我真的找不到任何描述时使用的。
比方说,我在图书馆/框架安装Python3.3和可执行是/Library/Frameworks/Python.framework/Versions/3.3/bin/python3
,但我只想通过键入到执行Python 3.3 python3
到我的终端。
当我理解正确的话,有(至少)三种方法来实现这一目标:
1)我修改$ PATH在我的.bashrc:
export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}
2)我设置我的.bashrc别名:
alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin
3)创建符号链接(符号链接):
ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin
你会说(从你的经验)是“建议”的方式?
把python3
在你的路径是调用它的任何地方,你可能会发现自己在你的文件系统的正确方法。 符号链接是更改命令的最佳方式python
,并保持你的脚本不取决于版本(可以运行依赖于蟒蛇脚本中使用的符号链接,并且需要Python 3.0专门使用python3脚本,即使您的计算机上他们是一样的东西)。 符号链接仍然在文件系统中的文件,所以他们仍然需要在您的路径。
我只看到,当你试图建立某种行为是比一个命令行工具,就像一个别名的默认行为不同的使用别名ls
,增加了-a默默。
此外符号链接都存储在文件系统所以一旦产生,他们存在谁登录所有其他用户,而别名仅适用于登录谁定义了他们的用户。 他们也都可以应用这些文件的权限。
这是一个有趣的文章有关的东西,你可以做你的终端通过您.bash_profile
包括一些伟大的别名。
首先,没有理由在安装Python /Library/Frameworks/
目录。 我的建议是(至少对于初学者)你不应该添加顶级目录,如你/Library
。 如果你从源代码编译它,你应该建立它与一个标准./configure
(很可能进入/usr/local/
)
我不知道还有大约从源代码编译Python,但大多数Linux源代码获取默认./configure
-d到/usr/local/
前缀,以便它们的二进制进入/usr/local/bin/
这往往是已经默认情况下,在你的PATH
一些Linux发行版的/etc/profile
间接,如果目录$HOME/bin/
存在,增加了它的内部的PATH
; 在这种情况下,只需添加二进制文件和脚本(或符号链接)有一个最简单的方法。
我一般建议是避免过长或非常具体的PATH
。 特别是,添加目录内的PATH
为每个产品恕我直言,是一个错误。 见如的GNU编码标准目录的变量一节 ,并保持你的PATH
很短。 我个人只有在添加程序/usr/local/bin/
(系统级)或$HOME/bin/
,或许符号链接(所以我不会改变我的PATH
,因为它已经包含了这两个/usr/local/bin/
和$HOME/bin
)。
由于具有很长的以往经验PATH
是一场噩梦,并减慢你的交互shell
谢谢大家的解释。
正如我已经说过,我是相当新的Unix和Linux。 我只写了这些事情(别名,符号链接$ PATH)为我的博客的其他“新手”的文章。 我喜欢写那些东西,因为他们真的关心我,我想分享我的经验 - 我希望他们有帮助别人了。 此外,它可以帮助我加深我的理解,如果我要解释的东西 - 这是一个美好的未来参考,太!
这将是很好,如果你可以在文章很快脱脂的,如果我有一些事情错了,我会约建议很开心!
http://scientific-ocean.com/2013/02/17/an-introduction-to-linuxunix-executables-path-aliases-and-symlinks/
我建议去别名这将使它更容易产生的,如果你的不同版本的Python的冲突。 外壳将查找PATH变量无论在哪里,Python中的可执行文件相匹配,将执行它。 别名必须被放在像你的壳轮廓.bash_profile
。