Linux环境变量PATH
一、PATH 是什么
當你在shell命令行界面中輸入一個外部命令時(非 shell 內部命令), shell必須搜索系統來找到對應的程序。 PATH環境變量定義了用于進行命令和程序查找的目錄。
PATH中的目錄使用冒號分隔。
在 shell 中輸入 " echo $PATH " 可以查看PATH 中的值。
如果命令或者程序的位置沒有包括在PATH變量中,那么如果不使用絕對路徑的話, shell是沒法找到的。如果想要在虛擬目錄結構中的任何位置執行某個程序,辦法是把這個程序所在的目錄添加到 PATH 環境變量中,或者把這個程序放在 / 鏈接(ln)到已經存在PATH中的目錄下。
二、添加目錄到 PATH 中
1、臨時有效
在 shell 中輸入:???? PATH=$PATH:directory你要添加的目錄
上面的命令對PATH變量的修改只能持續到退出或重啟系統。
2、永久有效
啟動bash shell有3種方式:登錄時作為默認登錄shell;作為非登錄shell的交互式shell;作為運行腳本的非交互shell。
不同的啟動方式,bash 會在不同的啟動文件或環境文件中查找命令。
① 登錄 shell
當你登錄Linux系統時, bash shell會作為登錄shell啟動。登錄shell會從5個不同的啟動文件里讀取命令:
/etc/profile???? 主啟動文件,系統上的每個用戶登錄時都會執行這個啟動文件。
$HOME/.bash_profile??????? HOME下的都是針對某個用戶的,不同的發行版本,不一定都有這4個文件。
$HOME/.bashrc
$HOME/.bash_login
$HOME/.profile
$HOME表示的是某個用戶的主目錄。它和波浪號( ~)的作用一樣。
⑴ /etc/profile
在不同的發行版本中,/etc/profile 文件中內容是不一樣的,但都迭代 /etc/profile.d 目錄下的所有文件。 /etc/profile.d 目錄為Linux系統提供了一個放置特定應用程序啟動文件的地方,當用戶登錄時, shell會執行這些文件。大部分應用都會創建兩個啟動文件:一個供bash shell使用(使用.sh擴展名),一個供c shell使用(使用.csh擴展名)。
⑵ $HOME目錄下的啟動文件
shell會按照按照下列順序,運行第一個被找到的文件,余下的則被忽略:
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
$HOME/.bashrc 通常通過其它3個文件運行的。
②交互式 shell 進程
比如是在命令行提示符下敲入bash時啟動,那么你啟動的shell叫作交互式shell。不會訪問/etc/profile文件,只會檢查用戶HOME目錄中的.bashrc文件,即$HOME/.bashrc。
.bashrc文件有兩個作用:一是查看/etc目錄下通用的bashrc文件,二是為用戶提供一個定制自己的命令別名和私有腳本函數的地方。
③非交互式 shell
系統執行shell腳本時用的就是這種shell。不同的地方在于它沒有命令行提示符。但是當你在系統上運行腳本時,也許希望能夠運行一些特定啟動的命令。
腳本能以不同的方式執行。只有其中的某一些方式能夠啟動子shell。
當shell啟動一個非交互式shell進程時,它會檢查BASH_ENV環境變量來查看要執行的啟動文件。如果有指定的文件, shell會執行該文件里的命令,這通常包括shell腳本變量設置。在一些linux發行版本中,變量BASH_ENV沒有被設置,shell腳本通過子shell繼承父shell導出過的變量。對于那些不啟動子shell的腳本,變量已經存在于當前shell中了。
三、總結
①對全局環境變量來說( Linux系統中所有用戶都需要使用的變量),可能更傾向于將新的或修改過的變量設置放在/etc/profile文件中,但是有問題。如果你升級了所用的發行版,這個文件也會跟著更新,那你所有定制過的變量設置可就都沒有了。
最好是在/etc/profile.d目錄中創建一個以.sh結尾的文件。把所有新的或修改過的全局環境變量設置放在這個文件中。
??? 操作方法(需要管理員權限,/etc/profile對普通用戶來說是只讀的):
??????? 打開/etc/profile的編輯頁面:? vim /etc/profile
??????? 在文件的最后添加語句:??? export PATH=$PATH:directory你要添加的目錄
??????? 系統重啟之后,就生效了。
??? 注:添加的語句中的等號(=)前后不要有空格。
?????????? 修改 /etc/environment 文件能達到一樣的效果,只不過是在PATH="?? ...? "中直接添加 ":directory你要添加的目錄"。系統重啟生效。
②在大多數發行版中,存儲個人用戶永久性bash shell變量的地方是$HOME/.bashrc文件。這一點適用于所有類型的shell進程。
??? 操作方法:
??????? 打開~/.bashrc文件:?? vim ~/.bashrc
??????? 在文件的最后添加語句:? export PATH=$PATH:directory你要添加的目錄
??? 生效方法:
??????? 關閉當前終端窗口,重新打開一個新終端窗口就能生效
??????? 在shell中輸入“source ~/.bashrc”命令,立即生效
總結
以上是生活随笔為你收集整理的Linux环境变量PATH的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rank函数在c语言怎么用,如何利用RA
- 下一篇: 聊天室应用开发实践(二):实现基于 We