回覆列表
  • 1 # 產品經理老胡

    老胡的看法:

    Linux中的環境變數$PATH通常是定義了可執行程式和指令碼所在的路徑,當我們在Linux系統中透過終端敲命令的方式來執行某個程式或者指令碼的時候,系統就會根據$PATH定義的路徑依次去尋找這個命令。有時候我們會臨時安裝一些新的程式或者指令碼,需要直接透過它們的名字來執行,這時候就需要把它們所在的目錄加到$PATH中,例如:

    export $PATH=$PATH:/usr/share/command/bin

    這樣是臨時設定環境變數$PATH,當shell關閉的時候就會失效,想要永久生效,有兩種思路:

    一、系統範疇內永久生效

    1、修改/etc/environment。

    PATH=PATH:/usr/share/command/bin

    加入到/etc/environment檔案中。/etc/environment中對環境變數的賦值會對所有使用者起作用,並且無論使用X視窗環境還是純命令列終端,都會載入其中的變數。

    (老胡新裝的系統,environment還是空的)

    需要注意的是,在environment中定義環境變數時無法使用其他變數。以下這樣定義$PATH是不會生效的:

    JAVA_HOME="/usr/lib/java"PATH="$JAVA_HOME/bin:$PATH"

    2、修改/etc/profile 和在 /etc/profile.d/

    下面新增自定義環境變數的指令碼。

    這兩個地方的檔案只對shell起作用。

    二、使用者範疇內永久生效

    1、修改~/.profile

    這個檔案的作用類似/etc/profile,對當前使用者下由終端啟動的所有程式和bash指令碼生效。不同的使用者,在各自的~目錄下各有一份這樣的配置檔案,可以各自定義自己喜好的環境變數。

    2、修改~/.bashrc

    在這個檔案裡定義的環境變數,只在當前使用者的bash shell中有效。如果你用的是zsh shell,那麼就修改~/.zshrc

    。這個檔案裡定義的環境變數不能用於其他程式。

    總結一下,使環境變數$PATH永久生效可以在系統範疇內實現,也可以在使用者範疇內實現,另外的區別是可以使用$PATH的情形。Linux提供了豐富靈活的實現方式,可以根據具體的環境做出不同的配置搭配,可以不互相影響。

  • 中秋節和大豐收的關聯?
  • 長得像壞人的人經常遭人嫌棄和誤解,有什麼方法可以解決這個問題?