歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 深入淺出定制Linux系統環境變量

深入淺出定制Linux系統環境變量

日期:2017/3/6 15:49:28   编辑:關於Unix
Linux是一個多用戶的操作系統。每個用戶登錄系統後,都會有一個專用的運行環境。通常每個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境變量的定義。用戶可以對自己的運行環境進行定制,其方法就是修改相應的系統環境變量。 常見的環境變量 對於
  Linux是一個多用戶的操作系統。每個用戶登錄系統後,都會有一個專用的運行環境。通常每個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境變量的定義。用戶可以對自己的運行環境進行定制,其方法就是修改相應的系統環境變量。
  
  常見的環境變量
  對於PATH和HOME等環境變量大家都不陌生。除此之外,還有下面一些常見環境變量。
  
  ◆ HISTSIZE是指保存歷史命令記錄的條數。
  
  ◆ LOGNAME是指當前用戶的登錄名。
  
  ◆ HOSTNAME是指主機的名稱,許多應用程序如果要用到主機名的話,通常是從這個環境變量中來取得的。
  
  ◆ SHELL是指當前用戶用的是哪種Shell。
  
  ◆ LANG/LANGUGE是和語言相關的環境變量,使用多種語言的用戶可以修改此環境變量。
  
  ◆ MAIL是指當前用戶的郵件存放目錄。
  
  ◆ PS1是基本提示符,對於root用戶是#,對於普通用戶是$。PS2是附屬提示符,默認是“>”。可以通過修改此環境變量來修改當前的命令符,比如下列命令會將提示符修改成字符串“Hello,My NewPrompt :) ”。
  # PS1=" Hello,My NewPrompt :) "
  Hello,My NewPrompt :)
  
  除了這些常見的環境變量,許多應用程序在安裝時也會增加一些環境變量,比如使用Java就要設置JAVA_HOME和CLASSPATH等,而安裝五筆輸入法會增加環境變量"XMODIFIERS=@im=fcitx"等。
  
  定制環境變量
  環境變量是和Shell緊密相關的,用戶登錄系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的Shell。環境變量是通過Shell命令來設置的,設置好的環境變量又可以被所有當前用戶所運行的程序所使用。對於bash這個Shell程序來說,可以通過變量名來訪問相應的環境變量,通過export來設置環境變量。下面通過幾個實例來說明。
  
  1. 顯示環境變量HOME
  $ echo $HOME
  /home/terry
  
  2. 設置一個新的環境變量WELCOME
  $ export WELCOME="Hello!"
  $ echo $WELCOME
  Hello!
  
  3. 使用env命令顯示所有的環境變量
  $ env
  HOSTNAME=terry.mykms.org
  PVM_RSH=/usr/bin/rsh
  SHELL=/bin/bash
  TERM=xterm
  HISTSIZE=1000
  ...
  
  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'
  COLORS=/etc/DIR_COLORS.xterm
  COLUMNS=80
  DIRSTACK=()
  DISPLAY=:0.0
  ...
  
  5. 使用unset命令來清除環境變量
  set可以設置某個環境變量的值。清除環境變量的值用unset命令。如果未指定值,則該變量值將被設為NULL。示例如下:
  $ export TEST="Test..." #增加一個環境變量TEST
  $ env|grep TEST #此命令有輸入,證明環境變量TEST已經存在了
  TEST=Test...
  $ unset $TEST #刪除環境變量TEST
  $ env|grep TEST #此命令沒有輸出,證明環境變量TEST已經存在了
  
  6. 使用readonly命令設置只讀變量
  如果使用了readonly命令的話,變量就不可以被修改或清除了。示例如下:
  $ export TEST="Test..." #增加一個環境變量TEST
  $ readonly TEST #將環境變量TEST設為只讀
  $ unset TEST #會發現此變量不能被刪除
  -bash: unset: TEST: cannot unset: readonly variable
  $ TEST="New" #會發現此也變量不能被修改
  -bash: TEST: readonly variable
  
  7. 用C程序來訪問和設置環境變量
  對於C程序的用戶來說,可以使用下列三個函數來設置或訪問一個環境變量。
  
  ◆ getenv()訪問一個環境變量。輸入參數是需要訪問的變量名字,返回值是一個字符串。如果所訪問的環境變量不存在,則會返回NULL。
  
  ◆ setenv()在程序裡面設置某個環境變量的函數。
  
  ◆ unsetenv()清除某個特定的環境變量的函數。
  
  另外,還有一個指針變量environ,它指向的是包含所有的環境變量的一個列表。下面的程序可以打印出當前運行環境裡面的所有環境變量:
  #include <stdio.h>
  extern char**environ;
  int main ()
  {
  char**var;
  for (var =environ;*var !=NULL;++var)
  printf ("%s \n ",*var);
  return 0;
  }
  
  還可以通過修改一些相關的環境定義文件來修改環境變量,比如對於Red Hat等Linux發行版本,與環境相關的文件有/etc/profile和~/.bashrc等。修改完畢後重新登錄一次就生效了。

Copyright © Linux教程網 All Rights Reserved