
一、什么是環境變數
在計算機系統中有一種資料型別稱為變數,變數是用來保存可變值的,操作計算機時可以直接通過變數名稱來提取到對應的變數值,而我們今天提到的環境變數本質上也是變數,它的服務物件是shell程式,
很多程式和腳本都通過環境變數來獲取系統資訊、存盤臨時資料和配置資訊,在Linux系統上有很多地方可以設定環境變數,了解去哪里設定相應的環境變數很重要,
小提示:
Linux 系統中環境變數的名稱一般都是大寫的,這是一種約定俗成的規范,
雖然bash shell 使用一致的專有環境變數,但不同的 Linux 發行版經常會添加其自有的環境變數,你在本章中看到的環境變數的例子可能會跟你安裝的發行版中看到的結果略微不同,如果遇到本書未講到的環境變數,可以查看你的Linux發行版上的檔案,
1.1 全域變數
- 全域變數
- 區域變數
a: 查看全部的環境變數
b:查看指定的環境變數值
echo + $變數名

1.2 區域變數
和全域變數對應,區域環境變數只能在定義它們的行程中可見,
Linux 作為一個多用戶多任務的作業系統,能夠為每個用戶提供獨立的、合適的作業運行環境,因此,一個相同的環境變數會因為用戶身份的不同而具有不同的值,

二、默認的環境變數
Linux 系統能夠正常運行并且為用戶提供服務,需要數百個環境變數來協同作業,但是,我們沒有必要逐一學習每個變數,這里給大家列舉了幾個非常重要的環境變數,
| 環境變數名稱 | 作用 |
|---|---|
| HOME | 用戶的主目錄(也稱家目錄) |
| SHELL | 用戶使用的 Shell 解釋器名稱 |
| PATH | 定義命令列解釋器搜索用戶執行命令的路徑 |
| EDITOR | 用戶默認的文本解釋器 |
| RANDOM | 生成一個亂數字 |
| LANG | 系統語言、語系名稱 |
| HISTSIZE | 輸出的歷史命令記錄條數 |
| HISTFILESIZE | 保存的歷史命令記錄條數 |
| PS1 | Bash解釋器的提示符 |
| 郵件保存路徑 |
三、設定 PATH 環境變數
注意:PATH中的目錄使用冒號分隔,而且必須使用絕對路徑,
舉例操作,給系統添加一個新的PATH變數,只需要參考原有的,在后面追加即可,

尖叫提示:對 PATH變數的修改只能持續到退出或重啟系統,這種效果并不能一直持續,后面我們會講到如何永久保持環境變數的修改效果,
四、環境變數持久化
- /etc/profile
- $HOME/.bash_profile
- $HOME/.bashrc
- $HOME/.bash_login
- $HOME/.profile
4.1 /etc/profile檔案
說明:
很多時候我們為了方便管理,會在 /etc/profile.d 目錄下自定義檔案,寫入我們定義的PATH變數,這個目錄下的檔案之所以生效的原因是在/etc/profile檔案中,回圈讀取 /etc/profile.d目錄下的所有檔案,![]()
4.2. $HOME目錄下的啟動檔案
- $HOME/.bash_profile
- $HOME/.bashrc
- $HOME/.bash_login
- $HOME/.profile
小提示:$HOME表示的是某個用戶的家(主)目錄
如果我們執行我們追加的PATH路徑在單獨的某一個用戶下生效,此時我們就可以將配置寫在$HOME/.bash_profile檔案中,

五、引入環境變數【export】
我們在作業環境中很多時候會有零時 新增,修改或洗掉環境變數的場景,此時使用命令【export】來完成,
使用的語法:
export [-fnp][變數名稱]=[變數設定值]
:export -p 可以列出當前用戶下生效的環境變

export 變數名 = 變數值 //用此方式來零時定義一個我們需要的環境變數

可以看到定義的零時變數已經生效,但是當退出此用戶環境后,此變數將失效,
實戰常用:
export 更多的時候我們會直接用來零時修改 PATH變數,
例如:export PATH=$PATH:/home/test/mysql/bin
此時新增的PATH 就會立生效,
提示:
在hadoop環境下,因為此框架特有的權限識別機制,還可以使用 export 來零時偽裝用戶身份,如下截圖:

六、硬核總結
環境變數的知識深入來學習的話,還是有很多的知識點可以展開的,但是為了挺高我們學習的高效性,我們只需要了解以下幾點,在作業中就是完全夠用了,
一,環境變數的作用
二、怎么查看環境變數
三、如何定義追加一個新的PATH變數
四、永久保存的PATH變數的檔案位置
五、引入環境變數(export + 環境變數名)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/339731.html
標籤:其他
