一、什麼是環境變量?
Linux是一個多用戶的操作系統。多用戶意味着每個用戶登錄系統後,都有自己專用的運行環境。而這個環境是由一組變量所定義,這組變量被稱爲環境變量。用戶可以對自己的環境變量進行修改以達到對環境的要求。
二、定製環境變量
環境變量是和Shell緊密相關的,它是通過Shell命令來設置的。環境變量又可以被所有當前用戶所運行的程序所使用。對於bash來說,可以通過變量名來訪問相應的環境變量。
下面通過幾個實例來說明
1.顯示環境變量HOME
$ echo $HOME
/home/admin
2.設置一個新的環境變量NAME
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng
3.使用env命令顯示所有的環境變量
$ env
HOSTNAME=test
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=202.xxx.xxx.xxx 53694 22
CATALINA_BASE=/usr/local/jakarta-tomcat
SSH_TTY=/dev/pts/0
ANT_HOME=/usr/local/ant
JAVA_OPTS=-server
USER=admin
...
4.使用set命令顯示所有本地定義的Shell變量
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
CATALINA_BASE=/usr/local/jakarta-tomcat
CATALINA_HOME=/usr/local/jakarta-tomcat
...
5.使用unset命令來清除環境變量
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng
$ unset NAME
$ echo $NAME
6.使用readonly命令設置只讀變量
$ export NAME="RaidCheng"
$ readonly NAME
$ unset NAME
-bash: unset: NAME: cannot unset: readonly variable
$ NAME="New" #會發現此也變量不能被修改
-bash: TEST: readonly variable
三、常見的環境變量
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME 指主機的名稱
SHELL 前用戶Shell類型
LANGUGE 語言相關的環境變量,多語言可以修改此環境變量
MAIL 當前用戶的郵件存放目錄
PS1 基本提示符,對於root用戶是#,對於普通用戶是$
PS2 附屬提示符,默認是“>”
四、通過C程序來訪問和設置環境變量
對於C程序的用戶來說,可以使用下列三個函數來設置或訪問一個環境變量。
getenv()訪問一個環境變量。輸入參數是需要訪問的變量名字,返回值是一個字符串。如果所訪問的環境變量不存在,則會返回NULL
setenv()在程序裏面設置某個環境變量的函數
unsetenv()清除某個特定的環境變量的函數
另外,還有一個指針變量environ,它指向的是包含所有的環境變量的一個列表。下面的程序可以打印出當前運行環境裏面的所有環境變量:
#include
extern char**environ;
int main ()
{
char**var;
for (var =environ;*var !=NULL;++var)
printf ("%s /n ",*var);
return 0;
}
linux常用環境變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
《UNIX環境高級編程》學習筆記之標準I/O庫
第五章 標準I/O庫 1. Unix系統標準I/O庫是在系統調用函數基礎上構造的。 2. 流和FILE對象: ♥ 流的概念:ANSI C對程
chenlilong84
2020-07-03 11:32:47
UNIX 環境編程 之 fork 函數詳解
别逗爷很凶
2020-04-06 07:15:54
UNIX/Linux 系統實現限制
王慧勇a
2020-02-22 03:41:37
UNIX/Linux 下文件類型及權限
王慧勇a
2020-02-22 03:41:37
UNIX/Linux 下終端控制字符
王慧勇a
2020-02-22 03:41:37
UNIX/Linux 下命令和腳本中的特殊符號
王慧勇a
2020-02-22 03:41:37
linux 內核與用戶空間通信之netlink使用方法
acp小鸡炖蘑菇
2018-09-03 23:20:46
Tcpdump 和 Wireshark 的結合使用(二)
acp小鸡炖蘑菇
2018-09-03 23:20:44
Liunx下Qos功能實現簡析
chenlilong84
2018-09-03 00:01:16
linux內核與用戶之間的通信方式——虛擬文件系統、ioctl以及netlink
chenlilong84
2018-09-03 00:01:16