jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          shell 環境變量配置文件相關

          Posted on 2010-11-25 11:16 幻海藍夢 閱讀(2283) 評論(0)  編輯  收藏 所屬分類: Linux

          環境變量配置文件

          Ubuntu中有如下幾個文件可以設置環境 變量
          1
          /etc/profile:在登錄時,操作系統定制用戶環境時使用的第一個文件,此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。
          2
          /etc/environment:在登錄時操作系統使用的第 二個文件,系統在讀取你自己的profile,設置環境文件的環境變量。
          3
          ~/.bash_profile:在 登錄時用到的第三個文件是.profile文件,每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該 文件僅僅執行一次!默 認情況下,他設置一些環境變游戲量,執行用戶的.bashrc文件。/etc/bashrc:為每一個運行bash shell的用戶執行此文件.bash shell被打開時,該文件被讀取.
          4
          ~/.bashrc:該 文件包含專用于你的bash shellbash信息,當登錄時以及每次打開新的shell,該 該文件被讀取。


          幾個環境變量的優先級

          1>2>3


          設置永久環境變量

          1.環境變量配置中,要先刪除.bash_profile中的三行關于.bashrc的定義,然后把環境變量配置在.bashrc
          2.
          選擇要使用的java環境:update-alternatives –config java
          3.
          要使得剛修改的環境變量生效:source .bashrc
          4.
          查看環境變量:env

          可以放到/etc/bash/bashrc, 這樣就是系統級的



          環境變量命令

          1、引言

          linux系統下,如果你下載并安裝了應用 程序,很有可能在鍵入它的名稱時出現“command not found”的提示內容。如果每次都到安裝目標文件夾內,找到可執行文件來進行操作就太繁瑣了。這涉及到環境變量PATH的設置問題,而PATH的設置也 是在linux下定制環境變量的一個組成部分。本文基于RedHat 9.0,詳細講解了環境變量定制的問題。

          2、變量簡介

          Linux是一個多用戶的操作系統。每個用戶 登錄系統后,都會有一個專用的運行環境。通常每個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境變量的定義。用戶可以對自己的運行環境進行定 制,其方法就是修改相應的系統環境變量。

          3、定制環境變量

          環境變量是和Shell緊密相關的,用戶登錄 系統后就啟動了一個Shell。對于Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。根據發行版本的情況,bash有兩個基本的系統級配置文件:/etc/bashrc/etc/profile。這些配置文件包含兩組不同的 變量:shell變量和環境變量。前者只是在特定的shell中固定(如bash),后者在不同shell中 固定。很明顯,shell變量是局部的,而環 境變量是全局的。環境變量是通過Shell命令來設 置的,設置好的環境變量又可以被所有當前用戶所運行的程序所使用。對于bash這個Shell程 序來 說,可以通過變量名來訪問相應的環境變量,通過export來 設置環境變量。下面通過幾個實例來說明。

          3.1 使用命令echo顯示環境變量

          #本例使用echo顯示常見的變量HOME

          $ echo $HOME

          /home/xiaosu

          3.2 設置一個新的環境變量

          $ export HELLO=”Hello!”

          $ echo $HELLO

          Hello!

          3.3 使用env命令顯示所有的環境變量

          $ env

          SSH_AGENT_PID=1875

          HOSTNAME=xiaosu-latop

          SHELL=/bin/bash

          TERM=xterm

          HISTSIZE=1000

          ……

          3.4 使用set命令顯示所有本地定義的Shell變量

          $ set

          BASH=/bin/bash

          ……

          3.5 使用unset命令來清除環境變量

          $ export TEST=”test” #增 加一個環境變量TEST

          $ env | grep TEST #此命 令有輸出,證明環境變量TEST已經存在了

          TEST=test

          $ unset $TEST #刪除環境變量TEST

          $ env | grep TEST #此命 令無輸出,證明環境變量TEST已經存在了

          3.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

          3.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;

          }

          3.8 通過修改環境變量定義文件來修改環境 變量。

          需要注意的是,一般情況下,這僅僅對于普通用戶適用,避免修改根用戶的環境定義文件,因為那樣可能會造成潛在的危險。

          $cd #到用戶根目錄下

          $ls -a #查看所有文件,包含隱藏的文 件

          $vi .bash_profile #修改 環境變量定義文件

          然后編輯你的PATH聲明,其格式為:

          PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:——:<PATH N>

          你可以自己加上指定的路徑,中間用冒號隔開。環境變量更改后,在用戶下次登陸時生效,如果想立刻生效,則可執行下面的語句:$source .bash_profile

          需要注意的是,最好不要把當前路徑”./”放 到PATH里,這樣可能會受到意想不到的攻擊。完成 后,可以通過$ echo $PATH查看當前的搜 索路徑。這樣定制后,就可以避免頻繁的啟動位于shell搜 索的路徑之外的程序了。

          -------------------------------

          shell 環境變量

          shell 環境變量是所有shell 程序都會接受的參數。shell程序運行時,都會接收一組變量,這組變量就是環境變量。常用的環境變量:
          名稱 描述
          PATH 命令搜索路徑,以冒號為分隔符.注意與DOS下 不同的是, 當前目錄不在系統路徑里
          HOME 用戶home目錄的路徑名,是cd命令的默認參 數
          COLUMNS 定義了命令編輯模式下可使用命令行的長度
          EDITOR 默認的行編輯器
          VISUAL 默認的可視編輯器
          FCEDIT 命令fc使用的編輯器
          HISTFILE 命令歷史文件
          HISTSIZE 命令歷史文件中最多可包含的命令條數
          HISTFILESIZE 命令歷史文件中包含的最大行數
          IFS 定義SHELL使用的分隔符
          LOGNAME 用戶登錄名
          MAIL 指向一個需要SHELL監視其修改時間的文件. 當該文件修改后, SHELL將發消息You hava mail給用戶
          MAILCHECK SHELL檢查MAIL文件的周期,單位是秒
          MAILPATH 功能與MAIL類似.但可以用一組文件,以冒號分隔,每個文件后可跟一個問號和一條發向用戶的消息
          SHELL SHELL的路徑名
          TERM 終端類型
          TMOUT SHELL自動退出的時間,單位為秒,若設為0則禁止SHELL自動退出
          PROMPT_COMMAND 指定在主命令提示符前應執行的命令
          PS1 主 命令提示符
          PS2 二級命令提示符,命令執行過程中要求輸入數據時用
          PS3 select 的命令提示符
          PS4 調試命令提示符
          MANPATH 尋找手冊頁的路徑,以冒號分隔
          LD_LIBRARY_PATH 尋找庫的路徑,以冒號分隔

          這些變量,要關注的最多的 就是PATH, 其重要性不要我說了吧?

          http://blog.csdn.net/xiaosu_521/archive/2008/03/09/2160458.aspx

          主站蜘蛛池模板: 石城县| 临泉县| 自贡市| 东乌珠穆沁旗| 平泉县| 德江县| 英超| 土默特左旗| 铜川市| 涞源县| 韩城市| 玛多县| 本溪市| 靖安县| 凭祥市| 富源县| 教育| 深水埗区| 航空| 安平县| 汉阴县| 曲松县| 镇平县| 江阴市| 克什克腾旗| 桦甸市| 马公市| 荣成市| 精河县| 建宁县| 徐水县| 沐川县| 抚顺市| 眉山市| 河北区| 清水河县| 延安市| 奉新县| 禄丰县| 巴林右旗| 偃师市|