歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下關於環境變量的一些心得

Linux下關於環境變量的一些心得

日期:2017/2/28 16:20:27   编辑:Linux教程

一、Linux下環境變量的定義

首先,環境變量分為兩種,系統環境變量和用戶環境變量。
系統環境變量對所有用戶都有效,二用戶環境變量只對某個用戶有效。
Linux下,環境變量被分別保存在多個文件中。

第一級:

/etc/profile
該文件在用戶第一次登錄的時候被加載(?引用他處,為什麼是第一次登錄),也是操作系統定義環境變量時讀取的第一個文件。

此文件為所有的用戶設置環境信息。
在我使用的Ubuntu 10.10中,該文件默認並沒有直接定義全局變量,而是通過讀取/etc/profile.d 、/etc/profile.d/*.sh和/etc/bash.bashrc。

第二級:

/etc/environment
該文件是用戶在登錄操作系統之後,操作系統配置環境時所使用的第二個文件。
顧名思義,該文件中保存了一系列環境變量,這些變量將對所有的用戶和終端起效。

到這一級為止,文件定義的都是系統環境變量,之後的文件都是在定義用戶變量。

第三級:
~/.bash_profile
在登錄的時候配置環境所用到的第三個文件。
值得注意的是在不同Linux中,這個文件的名字不同,可能的名字有~/.bash_profile、~/.bash_login、~./profile其中的一種或者幾種。www.linuxidc.com如果存在的話,執行的順序為~/.bash_profile、~/.bash_login、~/.profile。
在我手裡的Ubuntu10.10中,只有一個~/.profile
在我的操作系統中,該文件定義了變量的使用,通常情況下第四級中的~/.bashrc被忽略。

第四級:
~/.bashrc
該文件包含了專用於一個用戶的bash的環境信息,每次登錄或者新開shell的時候(包括在圖形界面下打開新的終端),該文件被讀取。
該文件只會在新開的終端中起效。原有終端不會受到影響。

~/.bash_logout
該文件在每次退出bash的時候被執行。

二、Linux下環境變量的使用

1、shell命令
set顯示當前shell的變量,包括了當前用戶的變量。
注意,"shell的變量"包括當前用戶的一系列文件以及shell自身的變量,比如BASH、BASH_ARGC等。
shell變量的定義可以通過直接輸入命令"aaa=bbb",來實現定義變量aaa的值為bbb。

在我手中的Ubuntu10.10中這個命令如果不帶參數直接執行的話,不會顯示變量,而是顯示了大量的代碼。
若要查詢某個shell變量的值,可以使用命令"set|grep 變量名"。

env則只顯示當前用戶的變量。
export若不帶參數則顯示用戶變量的shell變量,若帶參數,則將該shell參數添加至用戶變量。

readonly命令可以將變量設定為只讀,只讀的參數不能被修改或者刪除。

2、C程序命令
getenv()返回一個環境變量。

setenv()設置一個環境變量。

unsetenv()清除一個環境變量。

3、常見的環境變量
PATH:決定了shell將在哪些目錄中尋找命令和程序
HOME:當前用戶的主目錄
MAIL:當前用戶的郵件存放目錄
SHELL:當前用戶用的是那種Shell
HISTSIZE:保存歷史命令記錄的條數
LOGNAME:當前用戶的登錄名
HOSTNAME:主機的名稱。
LANG/LANGUGE:和語言相關的環境變量,使用多種語言的用戶可以修改此環境變量
PS1:基本提示符,對於root是#,對於普通用戶為$,在我手中的ubuntu10.10中則是一個字符串,顯示了用戶名、系統名和當前目錄名在內的信息。
PS2:是附屬提示符,默認是">"。可以修改此環境變量來修改當前的命令符。

Copyright © Linux教程網 All Rights Reserved