jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂(lè)、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂(lè)或者寧?kù)o的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          環(huán)境變量配置文件

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


          幾個(gè)環(huán)境變量的優(yōu)先級(jí)

          1>2>3


          設(shè)置永久環(huán)境變量

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

          可以放到/etc/bash/bashrc, 這樣就是系統(tǒng)級(jí)的



          環(huán)境變量命令

          1、引言

          linux系統(tǒng)下,如果你下載并安裝了應(yīng)用 程序,很有可能在鍵入它的名稱時(shí)出現(xiàn)“command not found”的提示內(nèi)容。如果每次都到安裝目標(biāo)文件夾內(nèi),找到可執(zhí)行文件來(lái)進(jìn)行操作就太繁瑣了。這涉及到環(huán)境變量PATH的設(shè)置問(wèn)題,而PATH的設(shè)置也 是在linux下定制環(huán)境變量的一個(gè)組成部分。本文基于RedHat 9.0,詳細(xì)講解了環(huán)境變量定制的問(wèn)題。

          2、變量簡(jiǎn)介

          Linux是一個(gè)多用戶的操作系統(tǒng)。每個(gè)用戶 登錄系統(tǒng)后,都會(huì)有一個(gè)專用的運(yùn)行環(huán)境。通常每個(gè)用戶默認(rèn)的環(huán)境都是相同的,這個(gè)默認(rèn)環(huán)境實(shí)際上就是一組環(huán)境變量的定義。用戶可以對(duì)自己的運(yùn)行環(huán)境進(jìn)行定 制,其方法就是修改相應(yīng)的系統(tǒng)環(huán)境變量。

          3、定制環(huán)境變量

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

          3.1 使用命令echo顯示環(huán)境變量

          #本例使用echo顯示常見(jiàn)的變量HOME

          $ echo $HOME

          /home/xiaosu

          3.2 設(shè)置一個(gè)新的環(huán)境變量

          $ export HELLO=”Hello!”

          $ echo $HELLO

          Hello!

          3.3 使用env命令顯示所有的環(huán)境變量

          $ 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命令來(lái)清除環(huán)境變量

          $ export TEST=”test” #增 加一個(gè)環(huán)境變量TEST

          $ env | grep TEST #此命 令有輸出,證明環(huán)境變量TEST已經(jīng)存在了

          TEST=test

          $ unset $TEST #刪除環(huán)境變量TEST

          $ env | grep TEST #此命 令無(wú)輸出,證明環(huán)境變量TEST已經(jīng)存在了

          3.6 使用readonly命令設(shè)置只讀變量

          如果使用了readonly命令的話,變量就 不可以被修改或清除了。示例如下:

          $ export TEST=”Test…” #增 加一個(gè)環(huán)境變量TEST

          $ readonly TEST #將環(huán)境變 量TEST設(shè)為只讀

          $ unset TEST #會(huì)發(fā)現(xiàn)此變量不 能被刪除

          -bash: unset: TEST: cannot unset: readonly variable
          $ TEST=”New” #
          會(huì)發(fā)現(xiàn)此變量不能被修改

          -bash: TEST: readonly variable

          3.7 C程序來(lái)訪問(wèn)和設(shè)置環(huán)境變量

          對(duì)于C程序的用戶來(lái)說(shuō),可以使用下列三個(gè)函數(shù) 來(lái)設(shè)置或訪問(wèn)一個(gè)環(huán)境變量。

          getenv()訪問(wèn)一個(gè)環(huán)境變量。輸入?yún)?shù) 是需要訪問(wèn)的變量名字,返回值是一個(gè)字符串。如果所訪問(wèn)的環(huán)境變量不存在,則會(huì)返回NULL

          setenv()在程序里面設(shè)置某個(gè)環(huán)境變量 的函數(shù)。

          unsetenv()清除某個(gè)特定的環(huán)境變量 的函數(shù)。

          另外,還有一個(gè)指針變量environ,它指 向的是包含所有的環(huán)境變量的一個(gè)列表。下面的程序可以打印出當(dāng)前運(yùn)行環(huán)境里面的所有環(huán)境變量:

          #include <stdio.h>

          extern char**environ;

          int main ()

          {

          char**var;

          for (var =environ;*var !=NULL;++var)

          printf (”%s \n “,*var);

          return 0;

          }

          3.8 通過(guò)修改環(huán)境變量定義文件來(lái)修改環(huán)境 變量。

          需要注意的是,一般情況下,這僅僅對(duì)于普通用戶適用,避免修改根用戶的環(huán)境定義文件,因?yàn)槟菢涌赡軙?huì)造成潛在的危險(xiǎn)。

          $cd #到用戶根目錄下

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

          $vi .bash_profile #修改 環(huán)境變量定義文件

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

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

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

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

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

          shell 環(huán)境變量

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

          這些變量,要關(guān)注的最多的 就是PATH, 其重要性不要我說(shuō)了吧?

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

          主站蜘蛛池模板: 高唐县| 资中县| 久治县| 抚宁县| 桂平市| 凤阳县| 道孚县| 阿克陶县| 克什克腾旗| 南丹县| 岳阳县| 青川县| 云南省| 叙永县| 陆丰市| 铜陵市| 介休市| 镇原县| 新田县| 连云港市| 巴彦淖尔市| 安泽县| 丽江市| 凤阳县| 竹北市| 安陆市| 吐鲁番市| 本溪| 缙云县| 南木林县| 杭州市| 宁远县| 大关县| 通州区| 休宁县| 顺昌县| 龙游县| 和平县| 五指山市| 永川市| 华宁县|