我怎样才能把$ HOME / opt / git / bin放到我的PATH中?

我试图包括以下失败的〜/ .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) 

话虽如此,当git在PATH上时,我并没有看到使用$git的好处; 它是一个额外的字符类型(也是一个移位数字)。 如果你想继续使用$git ,你可能不应该添加$HOME/opt/git/bin到PATH。 它的存在减缓了不成功的命令搜索,如果你总是通过$git访问git (现在必须使用: export git=$HOME/opt/git/bin/git ),那么使用git bin没有任何好处目录在您的PATH。


马斯评论秩序是毫无意义的,道格拉斯·李德答道:

顺序不是没有意义的 – 这是[在哪个目录下]搜索的顺序。 但是, git不在任何其他搜索目录中, git bin目录中的命令与任何其他目录之间不应有任何重叠,所以在这种情况下,顺序不会有任何区别。

这基本上是准确的,但我会旋转一下。 在搜索命令时,系统通过在PATH中的每个目录中查找程序来查找程序,直到找到它。 所以,当它查找ls ,例如,在PATH前面的git bin目录下,shell将查找$HOME/opt/git/bin/ls ,但找不到它,并将其传递到其他目录你的PATH,最终在/usr/bin/ls/bin/ls找到它。 有些shell会缓存发现程序的位置; 别人不要。 所以,把/bin/usr/bin放在PATH的前面是很有意义的,以加速对标准工具的访问。 我总是保持$HOME/bin在我的PATH的前面; 这样,我可以用我自己的版本来覆盖任何东西,而且我也是这样做的。

另外,在我的主要工作机器上, /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 

你需要删除“”,试试这个

 export PATH=$HOME/opt/git/bin 

而不要覆盖你的整个路径试试这个:

 export PATH=$PATH:$HOME/opt/git/bin 

这应该起作用了。

$ HOME在哪里指向?

确保$ HOME / opt / git / bin实际上包含一个名为git的可执行文件。