注:本教程以Ubuntu16.04操作,請細看。如果看完還不明白,聯系我,我給你發紅包。
一、查看環境變量:
- 方法1:直接用$PATH命令:
wafa@ubuntu:~$ $PATH
bash: /home/king/bin:/home/king/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin: No such file or directory
- 方法2:用export命令。如終端命令行輸入export后,結果中的PATH就是環境變量:
king@ubuntu:~$ export
declare -x CLUTTER_IM_MODULE="ibus"
declare -x COMPIZ_BIN_PATH="/usr/bin/"
declare -x COMPIZ_CONFIG_PROFILE="ubuntu"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-BQwiluABuc"
declare -x PATH="/home/wafa/bin:/home/wafa/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin"
declare -x PWD="/home/wafa"
declare -x DEFAULTS_PATH="/usr/share/gconf/ubuntu.default.path"
...
- 方法3:使用env 命令打印所有的環境變量
wafa@ubuntu:~$ env
XDG_VTNR=7
LC_PAPER=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
XDG_SESSION_ID=c2
PATH=/home/wafa/bin:/home/wafa/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin
- 方法4:用echo $PATH(同法一)
二、了解環境變量
???? 環境變量一般是指在操作系統中用來指定操作系統運行環境的一些參數。
???? 個人理解(比較通俗):你輸入命令時,系統會自動的去指定的路徑下去尋找你輸入的指令文件。因此,配置好環境變量 后只要輸入程序的名稱,系統就會自動搜索到你程序的位置,而不會再出現command not found這樣的問題了。
三、和環境變量有關的文件:
- /etc/profile —— 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.并從/etc/profile.d目錄的配置文件中搜集shell的設置;
- /etc/environment —— 在登錄時操作系統使用的第二個文件,系統在讀取你自己的profile前,設置環境文件的環境變量;
- /etc/bashrc —— 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取;
- /home/king/.profile —— 用戶king的shell信息,當用戶登錄時,該文件僅僅執行一次,默認情況下,它設置一些環境變量,執行用戶的.bashrc文件;(注:king為當然登錄的用戶,每個用戶都有自己的家目錄,即在/home文件夾下。)
- /home/king/.bashrc —— 用戶king的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取;
認識以上5個文件之后,我們設置環境變量的方法也就有了。
注:前3個針對所有的用戶,需要sudo權限設置,后兩個針對當前用戶。
四、環境變量的添加與刪除
請認真閱讀以上步驟及5個文件,這樣后面就很好理解了。
1. 對所有用戶都生效:
1). 方法一:直接sudo權限編輯/etc/enviroment文件,
/etc/environment文件,其內容如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
注:作用域:全局的,永久性的。在環境變量PATH中添加你要添加的路徑即可,注意以“:”分隔分個路徑。
2). 方法二:修改/etc/profile文件。此文件不保存環境變量信息,但在登錄時,系統會根據此文件內容對環境變量進行設置。
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:
export PATH=/usr/local/share:$PATH
注:$PATH指代添加your path前的環境變量。即在第一行的基礎上再另外添加的環境變量。作用域:全局的,永久性的。
3). 方法三:修改/etc/bashrc。這個文件同樣不是為了保存環境變量,只是在使用bash shell時進行設置而已,所以設置方法和二中一樣:
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:
export PATH=/usr/local/share:$PATH
注:作用域:全局的,永久性的。
對于/etc/bashrc文件,修改的作用于用戶,但對于~/.bashrc文件,修改的僅僅作用于當前用戶。這種修改的作用也是永久性的。
2.僅對當前用戶生效
1). 方法一:修改~/.profile文件。本質和修改/etc/profile一樣,但這種僅僅修改了當前用戶自己的配置文件。作用域:當前用戶,永久性的。
2). 方法二:修改~/.bashrc文件。本質和修改/etc/bashrc一樣。不保存環境變量,只是在當前用戶使用bash shell時進行設置而已。作用域:當前用戶,永久性的。設置同修改/etc/bashrc一樣。
3. 臨時生效
1). 方法一:在Terminal中使用shell命令
export PATH=$PATH:[your path1]:[your path2]:[...]
2). 方法一:在Terminal中使用shell命令
export PATH=[your path1]:[your path2]:[...]:$PATH
注:上面兩種方法是暫時的生效。關閉終端設置也就失效了。作用域:僅限于當前終端,其他終端中這個設置不會啟作用。
五、設置生效
輸入env命令查看所有環境變量。
輸入echo $PATH 命令查看PATH環境變量
這時我們就可以在PATH變量后看到相關的修改了。是否發現有的設置后設置并沒有及時生效???
你猜的對,這樣就可以生效了:
法一:你需要考慮重啟或者注銷后重新登錄了(請思考:哪個需要重啟,哪個需要重新登錄?等我后續閑了再給你答案。)
法二:使用source命令。在命令行輸入:
source [file name]
注:
1、[file name]為你修改的文件名字的路徑,絕對路徑和相關路徑都可以。
2、以上方法只需要一種即可,但要根據個人需要選擇適用的方法。
3、使用export命令設置的環境變量是臨時性質且局部的,因此只需要關閉這個Terminal就好了。
是不是沒有你想象的那么難???