變量是計算機系統用于保存可變值的數據類型,我們可以直接通過變量名稱來提取到對應的變量值。在 linux 系統中,環境變量是用來定義系統運行環境的一些參數,比如每個用戶不同的家目錄(HOME)、郵件存放位置(MAIL)等。
值得一提的是,Linux 系統中環境變量的名稱一般都是大寫的,這是一種約定俗成的規范。
我們可以使用 env 命令來查看到 Linux 系統中所有的環境變量,執行命令如下:
[root@localhost ~]# env
ORBIT_SOCKETDIR=/tmp/orbit-root
HOSTNAME=livecd.centos
GIO_LAUNCHED_DESKTOP_FILE_PID=2065
TERM=xterm
shell=/bin/bash
......
Linux 系統能夠正常運行并且為用戶提供服務,需要數百個環境變量來協同工作,但是,我們沒有必要逐一學習每個變量,這里給大家列舉了 10 個非常重要的環境變量,如表 1 所示。
| 環境變量名稱 | 作用 |
|---|---|
| HOME | 用戶的主目錄(也稱家目錄) |
| SHELL | 用戶使用的 Shell 解釋器名稱 |
| PATH | 定義命令行解釋器搜索用戶執行命令的路徑 |
| EDITOR | 用戶默認的文本解釋器 |
| RANDOM | 生成一個隨機數字 |
| LANG | 系統語言、語系名稱 |
| HISTSIZE | 輸出的歷史命令記錄條數 |
| HISTFILESIZE | 保存的歷史命令記錄條數 |
| PS1 | Bash解釋器的提示符 |
| 郵件保存路徑 |
Linux 作為一個多用戶多任務的操作系統,能夠為每個用戶提供獨立的、合適的工作運行環境,因此,一個相同的環境變量會因為用戶身份的不同而具有不同的值。
例如,使用下述命令來查看 HOME 變量在不同用戶身份下都有哪些值:
[root@localhost ~]# echo $HOME
/root
[root@localhost ~]# su - user1 <--切換到 user1 用戶身份
[user1@localhost ~]$ echo $HOME
/home/user1
這里的 su 命令可以臨時切換用戶身份,此命令的具體用法會在后續章節做詳細介紹。
其實,環境變量是由固定的變量名與用戶或系統設置的變量值兩部分組成的,我們完全可以自行創建環境變量來滿足工作需求。例如,設置一個名稱為 WORKDIR 的環境變量,方便用戶更輕松地進入一個層次較深的目錄,執行命令如下:
[root@localhost ~]# mkdir /home/work1
[root@localhost ~]# WORKDIR=/home/work1
[root@localhost ~]# cd $WORKDIR
[root@localhost work1]# pwd
/home/work1
但是,這樣的環境變量不具有全局性,作用范圍也有限,默認情況下不能被其他用戶使用。如果工作需要,可以使用 export 命令將其提升為全局環境變量,這樣其他用戶就可以使用它了:
[root@localhost work1]# su user1 <-- 切換到 user1,發現無法使用 WORKDIR 自定義變量
[user1@localhost ~]$ cd $WORKDIR
[user1@localhost ~]$ echo $WORKDIR
[user1@localhost ~]$ exit <--退出user1身份
[root@localhost work1]# export WORKDIR
[root@localhost work1]# su user1
[user1@localhost ~]$ cd $WORKDIR
[user1@localhost work1]$ pwd
/home/work1
新聞熱點
疑難解答