我试图将以下内容包含在我的〜/ .profile中失败:
export PATH='$HOME/opt/git/bin'
似乎没有用,因为$ git什么都没给我.我正在尝试安装Git.
我也在这里试过命令.
你要小心那个命令.它将覆盖你的$ PATH.
您可能需要将其放入并将其~/.bash_profile
更改为:
export PATH="$HOME/opt/git/bin:$PATH"
正如SirLancelot指出的那样,你重置了你的路径,而不是增加它.您还使用单引号而不是双引号,因此值集恰好是显示的字符串,而不是包含$ HOME的扩展值.如上所述,正确的解决方案是使用:
export PATH="$PATH:$HOME/opt/git/bin"
或者您可以撤消订单:
export PATH="$HOME/opt/git/bin:$PATH"
但是,所有这一切都确保在您键入时git
,将找到可执行文件.
你的问题也提到了$git
; 您必须设置该变量,可能使用:
export git=$(which git)
话虽如此,我觉得使用PATH $git
时的优势并不明显git
; 这是一个额外的字符输入(和一个移位数字).如果要继续使用$git
,可能不应该添加$HOME/opt/git/bin
到PATH.它的存在减慢了不成功的命令搜索速度,如果你总是访问git
via $git
(现在必须使用:设置export git=$HOME/opt/git/bin/git
),那么git
在PATH 上使用bin目录是没有好处的.
Masi评论说订单毫无意义,Douglas Leeder回应道:
订单并非毫无意义 - 它是[搜索目录]的顺序.但是,
git
不在任何其他搜索目录中,并且git
bin目录中的命令与任何其他命令之间不应该有任何重叠,因此在这种情况下顺序不会有任何区别.
这基本上是准确的,但我会旋转一下.搜索命令时,系统通过在PATH中的每个目录中查找该程序来查找该程序,直到找到它为止.因此,当它查找ls
例如git
PATH前面的bin目录时,shell将查找$HOME/opt/git/bin/ls
并找不到它,并传递给PATH中的其他目录,最终在/usr/bin/ls
或中找到它/bin/ls
.有些shell会缓存程序所在的位置; 别人不这样做.因此,保持/bin
和/usr/bin
靠近PATH的前端是有意义的,以加快对标准实用程序的访问.我总是$HOME/bin
站在我的路径前面; 这样,我可以使用我自己的版本覆盖任何内容 - 我会为某些命令执行此操作.
此外,在我的主要工作机器上,/usr/local/bin
目录不在我的控制之下.因此,我不相信它,并且我确保它在我的PATH的末尾是正确的,所以其中的古董GCC不是我使用的那个,例如.[ 嗯; 他们已将其更新为3.4.6; 曾经是2.95左右; 仍然,我使用4.3.3.]
还有一个建议给你.考虑在你的$HOME/bin
(假设你有一个,它在你的PATH上)创建一个指向安装位置的符号链接git
.这意味着您不会向PATH添加额外的目录(因此工作速度稍快)但您确实可以使用git
您选择使用的版本.
ln -s $HOME/opt/git/bin/git $HOME/bin/git