導航:首頁 > 操作系統 > linuxbash環境變數

linuxbash環境變數

發布時間:2023-05-22 11:06:58

linux環境變數怎麼設置方法

Linux環境變數的設置和查看方法

Linux TCP/IP協議的使用和建立 Windows批處理切換IP地址使用方法


1. 顯示環境變數HOME


$ echo $HOME


/home/redbooks


2. 設置一個新的環境變數hello


$ export HELLO="Hello!"


$ echo $HELLO


Hello!


3. 使用env命令顯示所有的環境變數


$ env


HOSTNAME=redbooks.safe.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


環境變數的設置位於/etc/profile文件


如果需要增加新的環境變數可以添加下屬行


export path=$path:/path1:/path2:/pahtN


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


1.Linux的變數種類


按變數的生存周期來劃分,Linux變數可分為兩類:


1.1 永久的:需要修改配置文件,變數永久生效。


1.2 臨時的:使用export命令聲明即可,變數在關閉shell時失效。


2.設置變數的三種方法


2.1 在/etc/profile文件中添加變數【對所有用戶生效(永久的)】


用VI在文件/etc/profile文件中增加變數,該變數將會對Linux下所有用戶有效,並且是「永久的」。


例如:編輯/etc/profile文件,添加CLASSPATH變數


# vi /etc/profile


export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib


註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。


2.2 在用戶目錄下的.bash_profile文件中增加變數【對單一用戶生效(永久的)】


用VI在用戶目錄下的.bash_profile文件中增加變數,改變數僅會對當前用戶有效,並且是「永久的」。


例如:編輯guok用戶目錄(/home/guok)下的.bash_profile


$ vi /home/guok/.bash.profile


添加如下內容:


export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib


註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。


2.3 直接運行export命令定義變數【只對當前shell(BASH)有效(臨時的)】


在shell的命令行下直接使用[export 變數名=變數值] 定義變數,該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變數也就失效了,再打開新shell時就沒有這個變數,需要使用的話還需要重新定義。


3.環境變數的查看


3.1 使用echo命令查看單個環境變數。例如:


echo $PATH


3.2 使用env查看所有環境變數。例如:


env


3.3 使用set查看所有本地定義的環境變數。


unset可以刪除指定的環境變數。


4.常用的環境變數


PATH 決定了shell將到哪些目錄中尋找命令或程序


HOME 當前用戶主目錄


HISTSIZE歷史記錄數


LOGNAME 當前用戶的登錄名


HOSTNAME指主機的名稱


SHELL 當前用戶Shell類型


LANGUGE 語言相關的環境變數,多語言可以修改此環境變數


MAIL當前用戶的郵件存放目錄


PS1基本提示符,對於root用戶是#,對於普通用戶是$

② linux環境變數配置

Shell變數有局部變數、環境變數之分。局部變數就是指在某個Shell中生效的變數,只在此次登錄中有效。環境變數通常又稱「全局變數」,雖然在Shell中變數默認就是全局的,但是為了讓子Shall繼承當前Shell的變數,需要使用export內建命令將其導出為環境變數。

按變數的生存周期劃分:

永久的:需要修改配置文件,變數永久生效。
臨時的:使用export命令聲明即可,變數在關閉shell時失效。

在配置永久的環境變數時,又可以按照作用范圍分為:

用戶環境變數
系統環境變數。
系統環境變數對所有系統用戶都有效,用戶環境變數僅僅對當前的用戶有效。

全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件。

它也是全局(公有)的 bash執行時,不管是何種方式,都會讀取此文件。

不要輕易修改此文件

用戶環境變數通常被存儲在下面的文件中:

若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存在,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。

若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。
只有bash是以login形式執行時,才會讀取.bash_profile,Unbutu默認沒有此文件,可新建。 通常該配置文件還會配置成去讀取 ~/.bashrc 。

當bash是以non-login形式執行時,讀取此文件。若是以login形式執行,則不會讀取此文件。

~/.bash_profile 是互動式、login 方式進入 bash 運行的
~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用後者。

如想將一個路徑加入到環境變數(例如$PATH)中,可以像下面這樣做(修改/etc/profile):

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

bash會在用戶登錄時,讀取下列四個環境配置文件:

全局環境變數設置文件: /etc/profile 、 /etc/bashrc 。 用戶環境變數設置文件: ~/.bash_profile 、 ~/.bashrc 。

讀取順序:① /etc/profile 、② ~/.bash_profile 、③ ~/.bashrc 、④ /etc/bashrc 。

2 .bashrc 和 .bash_profile 的區別

.bash_profile 會用在登陸shell, .bashrc 使用在互動式非登陸 shell 。簡單說來,它們的區別主要是 .bash_profile 是在你每次登錄的時候執行的; .bashrc 是在你新開了一個命令行窗口時執行的。
當通過控制台進行登錄(輸入用戶名和密碼):在初始化命令行提示符的時候會執行.bash_profile 來配置你的shell環境。但是如果已經登錄到機器,在Gnome或者是KDE也開了一個新的終端窗口(xterm),這時,.bashrc會在窗口命令行提示符出現前被執行。當你在終端敲入/bin/bash時.bashrc也會在這個新的bash實例啟動的時候執行。

所以對於我自己,我寫了一個 .pathrc 文件
然後在 .bashrc , .zshrc , .bash_profile , /etc/profile 中都加了

下面是 .pathrc 文件

現在,當你從控制台登錄機器的時候,.bashrc就會被執行。

四、常用的環境變數

BASH Bash Shell的全路徑
CDPATH 用於快速進入某個目錄。
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME 指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL 當前用戶的郵件存放目錄
PS1 基本提示符,對於root用戶是#,對於普通用戶是$

Reference
[1] /etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc
http://blog.chinaunix.net/uid-26435987-id-3400127.html
[2] Linux如何修改env看到的環境變數? .bashrc和.bash_profile區別
http://blog.csdn.net/xifeijian/article/details/13355031
[3] linux環境變數,bashrc與bashprofile
http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html

③ Linux設置環境變數

linux設置環境變數一、環境變數環境變數是包含關於系統及當前登錄用戶的環境信息的字元串,一些軟體程序使用此信息確定在何處放置文件(如臨時文件)。設置環境變數說白了就是指定一個軟體的路徑。環境變數是包含諸如驅動器、路徑或文件名之類的字元串。環境變數控制著多種程序的行為。例如,TEMP
環境變數指定程序放置臨時文件的位置。
path,
是告訴系統,
當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,
系統除了在當前目錄下面尋找此程序外,
還應到那些目錄下去找
www.dnjsb.com
【許可權問題】任何用戶都可以添加、修改或刪除用戶的環境變數。但是,只有管理員才能添加、修改或刪除系統環境變數。linux是一個多用戶的操作系統。每個用戶登錄系統後,都會有一個專用的運行環境。為了使每個用戶默認的環境相同,需要設置一組環境變數。通過修改相應的系統環境變數,對自己的運行環境進行定製。註:linux的環境變數名稱一般使用大寫字母。二、環境變數的設置1.顯示環境變數本例使用echo顯示常見的變數HOME$
echo
$HOME/home/kevin2.設置新的環境變數$
export
MYNAME=my
name
is
kevin
www.dnjsb.com
$
echo
$
MYNAMEmy
name
is
Kevin3.修改已存在的環境變數接上個示例$
MYNAME=change
name
to
jack$
echo
$MYNAMEchange
name
to
jack4.顯示所有的環境變數$
env
www.dnjsb.com
HOSTNAME=localhost.localdomainSHELL=/bin/bashTERM=xtermHISTSIZE=1000SSH_CLIENT=192.168.136.151
1740
22QTDIR=/usr/lib/qt-3.1SSH_TTY=/dev/pts/05.顯示所有本地定義的Shell變數$
setBASH=/bin/bashBASH_ENV=/root/.bashrc
www.dnjsb.com
6.使用unset命令來清除環境變數$
export
TEMP_KEVIN=kevin
#增加一個環境變數TEMP_KEVIN$
env
|
grep
TEMP_KEVIN
#查看環境變數TEMP_KEVIN是否生效(存在即生效)TEMP_KEVIN=kevin
#證明環境變數TEMP_KEVIN已經存在$
unset
TEMP_KEVIN
#刪除環境變數TEMP_KEVIN$
env
|
grep
TEMP_KEVIN
#查看環境變數TEMP_KEVIN是否被刪除,沒有輸出顯示,證明TEMP_KEVIN被清除了。7.使用readonly命令設置只讀變數註:如果使用了readonly命令的話,變數就不可以被修改或清除了。$
export
TEMP_KEVIN
=kevin
#增加一個環境變數TEMP_KEVIN$
readonly
TEMP_KEVIN
#將環境變數TEMP_KEVIN設為只讀$
env
|
grep
TEMP_KEVIN
#查看環境變數TEMP_KEVIN是否生效TEMP_KEVIN=kevin
#證明環境變數TEMP_KEVIN已經存在
www.dnjsb.com
$
unset
TEMP_KEVIN
#會提示此變數只讀不能被刪除-bash:
unset:
TEMP_KEVIN:
cannot
unset:
readonly
variable$
TEMP_KEVIN
=tom
#修改變數值為tom會提示此變數只讀不能被修改-bash:
TEMP_KEVIN:
readonly
variable8.通過修改環境變數定義文件來修改環境變數。需要注意的是,一般情況下,僅修改普通用戶環境變數配置文件,避免修改根用戶的環境定義文件,因為那樣可能會造成潛在的危險。$
cd
~
#到用戶根目錄下$
ls
-a
#查看所有文件,包含隱藏的文件$
vi
.bash_profile
#修改用戶環境變數文件例如:編輯你的PATH聲明,其格式為:
www.dnjsb.com
PATH=$PATH:<PATH
1>:<PATH
2>:<PATH
3>:------:<PATH
N>你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在用戶下次登陸時生效。如果想立刻生效,則可執行下面的語句:$source
.bash_profile需要注意的是,最好不要把當前路徑./放到PATH里,這樣可能會受到意想不到的攻擊。完成後,可以通過$
echo
$PATH查看當前的搜索路徑。這樣定製後,就可以避免頻繁的啟動位於shell搜索的路徑之外的程序了。三、總結常用的:env
顯示所有環境變數

④ 環境變數-Linux

我們經常在shell中輸入一個命令然後就開始執行,但是shell是如何從 電腦裡面找到這條指令的呢?
shell是通過 環境變數PATH 來進行 搜索 的,同樣的在win裡面也有這個PATH環境變數,這個PATH保存了shell中執行的命令的搜索路徑

通常會得到:

我們可以看到,基本都是bin或者sbin路徑,這種路徑下都是二進制可執行文件。
系統會按照path中設定的路徑按照順序依次到目錄中去查找,如果存在同名的命令,則執行先找到的那個。

如果我們有一個自定義的路徑 /home/user/mybin 我們想把這個路徑添加到PATH以便於直接在shell中執行這個命令,添加方式:

但是到這里還有一個問題:我們添加的這個路徑只在當前shell下有效。
如何是添加的環境變數全局有效?

在每個用戶的home目錄中有一個shell每次啟動時會默認執行一個配置腳本,以初始化環境,包括添加一些用戶自定義環境變數等等。
這個配置文件是 .zshrc 相應的bash配置文件為 .bashrc
我們只需要修改.zshrc就可以了

上述命令中 >> 表示將輸出以追加的方式重新定向到一個文件中
前面提到的 > 是以覆蓋的方式重定向

讓環境變數立刻生效:

⑤ Linux怎麼用命令清空Bash環境變數

打開終端應用程序並輸入下面的其中一個命令:
1.printenv

1.env
輸出樣例:

Fig.01: Unix/Linux: 列出所有環境變數
統計環境變數數目
輸入下面的命令:
1.env | wc -l
2.printenv | wc -l # 或者
輸出樣例:
1.20
在干凈的 bash/ksh/zsh 環境中運行程序
語法如下所示:
1.env -i your-program-name-here arg1 arg2 ...
例如,要在不使用 http_proxy 和/或任何其它環境變數的情況下運行 wget 程序。臨時清除所有 bash/ksh/zsh 環境變數並運行 wget 程序:
1.env -i /usr/local/bin/wget www.cyberciti.biz
2.env -i wget www.cyberciti.biz # 或者
這當你想忽視任何已經設置的環境變數來運行命令時非常有用。我每天都會多次使用這個命令,以便忽視 http_proxy 和其它我設置的環境變數。

⑥ 怎麼設置 linux環境變數配置

1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經設好,可用命令export查看:
[root@localhost bin]# export
declare -x BASH_ENV="/root/.bashrc"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x INPUTRC="/etc/inputrc"

⑦ 如何定義bash環境變數

聲明一個環境變數:export AA="hello world",相對普通變數而言,只需在前面加上export即可

查看環境變數有兩種方法:方法一,使用set命令,這種方法會顯示普通變數和環境變數,方法二:使用env命慶段令,這種方法只顯示環境變數

刪除環境變數:使用unset 變數名即可

查看常見環境變數路徑:echo $PATH

添加常用常用環境變數路徑: 使用PATH="$PATH":/root/,拼接即可,但是一旦退出當前系統,需要重新定義

如果需要長期使用該路徑,需要在配置文件下配置。/etc/profile和/etc/配猜bashrc文件對所有用戶有效,~/bashrc和~/.bash_profile只對當前用戶有效,下面舉一個譽賣譽在linux環境下配置JDK的環境變數的例子

⑧ Linux環境變數PATH設置

/etc/profile和/etc/bashrc都是系統級別的,修改後可以在所有用戶中起作用; /.bash_profile、 /.bashrc和~/.bash_logout都是用戶級別的,修改後只會作用於當前用戶。

帶profile的文件都是需要重新進入用戶時才會生效,帶bashrc的則是打開新的shell時生效;

執行順序:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

$ echo $HOME

$ export HELLO="Hello"

$ env

¥ set

readonly TEST

之前介紹的使用 export 命令設置環境變數是在命令行中直接執行,這樣設置的環境變數在退出shell時就會失效。要想設置永久有效的環境變數就需要修改之前提到的文件。

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
你可以自己加上指定的路徑,中間用冒號隔開
需要注意的是,最好不要把當前路徑」./」放到PATH里,這樣可能會受到意想不到的攻擊。

特點:所有用戶;永久有效;生效需要重新進入用戶
root許可權:

要想修改完文件後就立即生效,可以在命令行中執行:
# source /etc/profile
Source命令也稱為「點命令」,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登錄

⑨ Linux下環境變數配置文件

環境變數配置的兩個方法:

在/etc/profile里設置系統環境變數時,路徑末尾不能以"/"結尾,否則將導致整個PATH變數出錯

各個配置文件作用
家目錄中配置文件裡面默認有shell來判斷如果父配置文件不存在才讀取此文件
/etc/profile: 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc: 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變數,執行用戶的.bashrc文件.
~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.
~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該文件.

另外,/etc/profile中設定的變數(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關系.

⑩ Linux系統環境變數載入過程

Linux中環境變數包括系統級和用戶級,系統級的環境變數是每個登錄到系統的用戶都要讀取的系統變數,而用戶級的環境變數則是該用戶使用系統時載入的環境變數(在用戶主目錄下$HOME/)。
使用默認Bash時,用戶登錄後載入環境變數的流程如下:

說明:
bash首先執行/etc/profile腳本,/etc/profile腳本先依次執行/etc/profile.d/*.sh,隨後bash會執行用戶主目錄下的.bash_profile腳本,.bash_profile腳本會執行用戶主目錄下的.bashrc腳本,而.bashrc腳本會執行/etc/bashrc腳本至此,所有的環境變數和初始化設定都已經載入完成。bash隨後調用terminfo和inputrc,完成終端屬性和鍵盤映射的設定。

(1)/etc/profile: 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。
(2)/etc/bashrc: 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取。
(3)~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變數,執行用戶的.bashrc文件。
(4)~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。
(5) ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件. 另外,/etc/profile中設定的變數(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變數(局部)只能繼承 /etc/profile中的變數,他們是"父子"關系。
(6)~/.bash_profile 是互動式、login 方式進入 bash 運行的~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用後者。

tcsh是一個加強的csh,目前大多數系統的csh都使用這個shell代替原來的csh,為csh提供命令補全和命令行編輯功能。/bin/csh實際上是/bin/tcsh的符號連接。這樣一來,載入環境變數的流程如下:

閱讀全文

與linuxbash環境變數相關的資料

熱點內容
程序員的工作是重復性的嗎 瀏覽:63
照片怎麼轉換成pdf 瀏覽:131
女生學編程好嗎 瀏覽:240
目前絕地求生怎麼看伺服器地址大全 瀏覽:825
論人類不平等的起源pdf 瀏覽:436
壓縮機螺桿加工 瀏覽:368
怎麼把網站伺服器設置在境外 瀏覽:162
單片機編程取反 瀏覽:897
51單片機課程設計課題 瀏覽:900
手機淘寶登錄怎麼加密碼 瀏覽:486
linux快捷方式圖標 瀏覽:38
陽光車險的app叫什麼名字 瀏覽:462
購買單片機的器件時需要給商家啥 瀏覽:535
並行編譯技術的發展 瀏覽:550
阿里雲伺服器安裝管理 瀏覽:551
java手機開發教程 瀏覽:675
我的世界怎麼刪除伺服器數據 瀏覽:672
linux內存子系統 瀏覽:973
加密思維幣 瀏覽:691
魅族訪客文件夾 瀏覽:53