簡體   English   中英

如何在我的mac上正確設置我的git $ PATH(我做了,但需要了解它是如何工作的)?

[英]How to properly setup my git $PATH on my mac (I did, but need to understand how it really works)?

我在我的mac上從網站安裝了GIT,但是git --version給了我舊的安裝(我猜xcode安裝)。 所以我解決了這個問題:

  • 創建一個〜/ .bash_profile文件
  • 寫:

    export PATH = / usr / local / bin:$ PATH

  • 重啟終端

雖然,我認為我的配置中有一些東西可以更好地設置。

我目前的回音$ PATH

在/ usr / local / bin目錄:在/ usr / bin中:/ bin中:/ usr / sbin目錄:/ sbin目錄:在/ usr / local / bin目錄:在/ usr /本地/ git的/ bin中

所以它工作,但它很亂,因為我有2 / usr / local / bin和/ usr / local / git / bin

此外,我無法理解為什么它現在可以工作,因為/ usr / local / bin只包含bbedit命令:

  • bbdiff
  • 的BBEdit
  • bbfind

我不太清楚所有的路徑配置文件和它們被讀取的真實順序。 我只知道一些unix命令..我當前的文件〜/是:

〜/ .profile文件:

if [ -f ~/.bashrc ];
then
    source ~/.bashrc
fi

〜/ .bashrc中:

. ~/bin/dotfiles/bashrc

然后在。 〜/斌/點文件/ .bashrc中

. ~/bin/dotfiles/bash/env
. ~/bin/dotfiles/bash/config
. ~/bin/dotfiles/bash/aliases

並在。 〜/斌/點文件/慶典/ ENV:

export PATH=/usr/local/bin:/opt/local/bin:/opt/local/sbin:$PATH

〜/ bin / dotfiles / bash / config只是空的

和。 〜/ bin / dotfiles / bash / aliases包含一些別名commad。

無論如何,它應該讀取〜/ bin / dotfiles / bash / env,但事實並非如此。 或者只在/ etc / paths之后讀取它

首先讀取〜/ .bash_profile。

我當前的/ etc / paths內容:

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

誰能解釋一下這些機制呢? :P或者也許我應該把這個問題發給一些Unix組?

當您在* NIX shell上鍵入任何命令時,shell會嘗試使用$PATH解析該命令。 說你的路徑是/usr/bin:/usr/local/bin ,然后發生這種情況:

$ foo
- Does /usr/bin/foo exist? No.
- Does /usr/local/bin/foo exist? No.
- Does foo exist in the current working directory?

換句話說,它依次查看每個$PATH元素並嘗試查找您在那里請求的可執行文件。 這就是典型的configure - make - make install過程以./configure開頭的原因,以明確表示您要在當前目錄中運行configure可執行文件,而不是某些系統范圍的命令。

要弄清楚它最終選擇了哪個foo ,請運行:

$ which foo

您可以通過提供其完整路徑來顯式運行任何命令:

$ /usr/local/bin/foo  # overrides /usr/bin/foo, should it exist

初始化腳本中的export PATH=...:$PATH指令只是在路徑上添加某些路徑,允許您覆蓋解析順序命令的優先級。 /usr/local/bin在那里兩次並不理想,但它也不是真正的問題。 應該注意不要讓你的路徑長得太長,因為這可能會導致對每個命令進行大量的查找,並且可能會對你的頭部產生影響。

有關bash配置文件的加載順序的全面演練,請參閱此內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM