1、系統(tǒng)位置,/etc目錄下的bashrc、profile、environment三個(gè)文件
創(chuàng)新互聯(lián)專注于五河企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。五河網(wǎng)站建設(shè)公司,為五河等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
2、用戶目錄(root或普通用戶)下的.bashrc、.bash_profile兩個(gè)文件,注意這兩個(gè)文件前面都有點(diǎn),是隱藏文件。
按變量的周期劃為永久變量和臨時(shí)性變量2種:
永久變量:通過修改配置文件,配置之后變量永久生效。
臨時(shí)性變量:使用命令如export等命令設(shè)置,設(shè)置之后馬上生效。當(dāng)關(guān)閉shell的時(shí)候失效(這種主要用于測(cè)試比較多)。
按照影響范圍分為用戶變量和系統(tǒng)變量2種:
用戶變量(局部變量):修改的設(shè)置只對(duì)某個(gè)用戶的路徑或執(zhí)行起作用;
系統(tǒng)變量(全局變量):影響范圍是整個(gè)系統(tǒng)。
export命令顯示當(dāng)前系統(tǒng)定義的所有環(huán)境變量,運(yùn)行返回結(jié)果如下:
echo $PATH命令輸出當(dāng)前的PATH環(huán)境變量的值,運(yùn)行返回結(jié)果如下:
直接用export命令修改PATH值 (重啟終端后配置失效)
export PATH=$PATH:/home/sphc/software/bin
該文件為當(dāng)前用戶配置文件,修改后,作用于當(dāng)前用戶的環(huán)境變量。
該文件為當(dāng)前用戶配置文件,修改后,作用于當(dāng)前用戶的環(huán)境變量。
/etc/bashrc為系統(tǒng)環(huán)境配置文件,需要管理員權(quán)限(如root)或者對(duì)該文件的寫入權(quán)限,修改后,作用于所有用戶。
/etc/profile為系統(tǒng)全局配置文件,需要管理員權(quán)限或者對(duì)該文件的寫入權(quán)限,修改后,作用于系統(tǒng)下所有用戶的環(huán)境變量。
/etc/environment為系統(tǒng)環(huán)境配置文件,需要管理員權(quán)限或者對(duì)該文件的寫入權(quán)限,修改后,作用于系統(tǒng)下所有用戶的環(huán)境變量。
Linux的變量種類
按變量的生存周期來劃分,Linux變量可分為兩類:
1 永久的:需要修改配置文件,變量永久生效。
2 臨時(shí)的:使用export命令聲明即可,變量在關(guān)閉shell時(shí)失效。
設(shè)置變量的三種方法
1 在/etc/profile文件中添加變量【對(duì)所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變量,該變量將會(huì)對(duì)Linux下所有用戶有效,并且是“永久的”。
例如:編輯/etc/profile文件,添加CLASSPATH變量
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想馬上生效還要運(yùn)行# source /etc/profile不然只能在下次重進(jìn)此用戶時(shí)生效。
2 在用戶目錄下的.bash_profile文件中增加變量【對(duì)單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變量,改變量?jī)H會(huì)對(duì)當(dāng)前用戶有效,并且是“永久的”。
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
命令用法如下
$ cd (進(jìn)入用戶登陸目錄)
$ls –al .bash_profile(.bash_profile為隱藏文件,因此要用ls –a命令查找)
$vi .bash_profile(用vi編輯.bash_profile)
vi/home/guok/.bash.profile添加如下內(nèi)容:exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
注:修改文件后要想馬上生效還要運(yùn)行$ source /home/guok/.bash_profile不然只能在下次重進(jìn)此用戶時(shí)生效。
3 直接運(yùn)行export命令定義變量【只對(duì)當(dāng)前shell(BASH)有效(臨時(shí)的)】
在shell的命令行下直接使用[export 變量名=變量值] 定義變量,
該變量只在當(dāng)前的shell(BASH)或其子shell(BASH)下是有效的,
shell關(guān)閉了,變量也就失效了,再打開新shell時(shí)就沒有這個(gè)變量,需要使用的話還需要重新定義。
環(huán)境變量的查看
1 使用echo命令查看單個(gè)環(huán)境變量。例如:
echo $PATH
2 使用env查看所有環(huán)境變量。例如:
env
3 使用set查看所有本地定義的環(huán)境變量。
使用unset刪除指定的環(huán)境變量
set可以設(shè)置某個(gè)環(huán)境變量的值。清除環(huán)境變量的值用unset命令。如果未指定值,則該變量值將被設(shè)為NULL。示例如下:
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 #此命令沒有輸出,證明環(huán)境變量TEST已經(jīng)刪除
常用的環(huán)境變量
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當(dāng)前用戶主目錄
HISTSIZE 歷史記錄數(shù)
LOGNAME 當(dāng)前用戶的登錄名
HOSTNAME 指主機(jī)的名稱
SHELL 當(dāng)前用戶Shell類型
LANGUGE 語言相關(guān)的環(huán)境變量,多語言可以修改此環(huán)境變量
MAIL 當(dāng)前用戶的郵件存放目錄
PS1 基本提示符,對(duì)于root用戶是#,對(duì)于普通用戶是$
Linux下設(shè)置和查看環(huán)境變量
Linux下修改.bash_profile 文件改變PATH變量的值
1. Linux export命令簡(jiǎn)介
Linux export命令用于設(shè)置或顯示環(huán)境變量。
在shell中執(zhí)行程序時(shí),shell會(huì)提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續(xù)執(zhí)行的程序使用。export的效力僅及于該次登陸操作。
export命令用于將shell變量輸出為環(huán)境變量,或者將shell函數(shù)輸出為環(huán)境變量。
一個(gè)變量創(chuàng)建時(shí),它不會(huì)自動(dòng)地為在它之后創(chuàng)建的shell進(jìn)程所知。而命令export可以向后面的shell傳遞變量的值。當(dāng)一個(gè)shell腳本調(diào)用并執(zhí) 行時(shí),它不會(huì)自動(dòng)得到原為腳本(調(diào)用者)里定義的變量的訪問權(quán),除非這些變量已經(jīng)被顯式地設(shè)置為可用。export命令可以用于傳遞一個(gè)或多個(gè)變量的值到任何后繼腳本。
Linux export命令簡(jiǎn)介
2. export參數(shù)
-f 代表[變量名稱]中為函數(shù)名稱。
-n 刪除指定的變量。變量實(shí)際上并未刪除,只是不會(huì)輸出到后續(xù)指令的執(zhí)行環(huán)境中。
-p 列出所有的shell賦予程序的環(huán)境變量。
一個(gè)變量創(chuàng)建時(shí),它不會(huì)自動(dòng)地為在它之后創(chuàng)建的shell進(jìn)程所知。而命令export可以向后面的shell傳遞變量的值。當(dāng)一個(gè)shell腳本調(diào)用并執(zhí)行時(shí),它不會(huì)自動(dòng)得到原為腳本(調(diào)用者)里定義的變量的訪問權(quán),除非這些變量已經(jīng)被顯式地設(shè)置為可用。export命令可以用于傳遞一個(gè)或多個(gè)變量的值到任何后繼腳本。
Linux怎么設(shè)置變量環(huán)境
3. 在linux里設(shè)置環(huán)境變量的方法
一般來說,配置交叉編譯工具鏈的時(shí)候需要指定編譯工具的路徑,此時(shí)就需要設(shè)置環(huán)境變量。例如我的mips-linux-gcc編譯器在“/opt/abc/123/bin”目錄下,有如下三種方法來設(shè)置環(huán)境變量:
3.1 直接用export命令,臨時(shí)生效
查看是否已經(jīng)設(shè)好,可用命令export查看:
檢查:
輸出結(jié)果:
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="zcwyou"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32: .tar=01;31: .tgz=01;31: .arc=01;31: .arj=01;31: .taz=01;31: .lha=01;31: .lz4=01;31: .lzh=01;31: .lzma=01;31: .tlz=01;31: .txz=01;31: .tzo=01;31: .t7z=01;31: .zip=01;31: .z=01;31: .Z=01;31: .dz=01;31: .gz=01;31: .lrz=01;31: .lz=01;31: .lzo=01;31: .xz=01;31: .bz2=01;31: .bz=01;31: .tbz=01;31: .tbz2=01;31: .tz=01;31: .deb=01;31: .rpm=01;31: .jar=01;31: .war=01;31: .ear=01;31: .sar=01;31: .rar=01;31: .alz=01;31: .ace=01;31: .zoo=01;31: .cpio=01;31: .7z=01;31: .rz=01;31: .cab=01;31: .jpg=01;35: .jpeg=01;35: .gif=01;35: .bmp=01;35: .pbm=01;35: .pgm=01;35: .ppm=01;35: .tga=01;35: .xbm=01;35: .xpm=01;35: .tif=01;35: .tiff=01;35: .png=01;35: .svg=01;35: .svgz=01;35: .mng=01;35: .pcx=01;35: .mov=01;35: .mpg=01;35: .mpeg=01;35: .m2v=01;35: .mkv=01;35: .webm=01;35: .ogm=01;35: .mp4=01;35: .m4v=01;35: .mp4v=01;35: .vob=01;35: .qt=01;35: .nuv=01;35: .wmv=01;35: .asf=01;35: .rm=01;35: .rmvb=01;35: .flc=01;35: .avi=01;35: .fli=01;35: .flv=01;35: .gl=01;35: .dl=01;35: .xcf=01;35: .xwd=01;35: .yuv=01;35: .cgm=01;35: .emf=01;35: .axv=01;35: .anx=01;35: .ogv=01;35: .ogx=01;35: .aac=01;36: .au=01;36: .flac=01;36: .mid=01;36: .midi=01;36: .mka=01;36: .mp3=01;36: .mpc=01;36: .ogg=01;36: .ra=01;36: .wav=01;36: .axa=01;36: .oga=01;36: .spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
declare -x PWD="/root"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="113.105.164.145 6668 22"
declare -x SSH_CONNECTION="113.105.164.145 6668 113.105.164.151 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="2185"
留意一下輸出的這部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
可以看到已經(jīng)包括了剛剛設(shè)置的變量路徑。
變量路徑和環(huán)境Linux
3.2 修改profile文件,永久生效
把目錄/opt/abc/123/bin在里面加入:
export PATH="
3.3 修改.bashrc文件,永久生效
在里面加入:
export PATH="PATH:/opt/abc/123/bin"¨K14K¨G3G在里面加入:exportPATH="PATH:/opt/abc/123/bin"
檢查結(jié)果:
3.4 修改/etc/re.local文件,永久生效
在里面加入:
export PATH="
“/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經(jīng)在系統(tǒng)環(huán)境變量中了,如果可執(zhí)行文件在這幾個(gè)標(biāo)準(zhǔn)位置,在終端命令行輸入該軟件可執(zhí)行文件的文件名和參數(shù)(如果需要參數(shù)),回車即可。
如果不在標(biāo)準(zhǔn)位置,文件名前面需要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個(gè)“一勞永逸”的辦法是把這個(gè)路徑加入環(huán)境變量。命令 export PATH:/opt/abc/123/bin"“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路徑已經(jīng)在系統(tǒng)環(huán)境變量中了,如果可執(zhí)行文件在這幾個(gè)標(biāo)準(zhǔn)位置,在終端命令行輸入該軟件可執(zhí)行文件的文件名和參數(shù)(如果需要參數(shù)),回車即可。如果不在標(biāo)準(zhǔn)位置,文件名前面需要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個(gè)“一勞永逸”的辦法是把這個(gè)路徑加入環(huán)境變量。命令exportPATH="路徑”(或“PATH=
PATH為環(huán)境變量名,如DVSDK;調(diào)用時(shí)用
export DVSDK)可以把這個(gè)路徑加入環(huán)境變量,但是退出這個(gè)命令行就失效了。要想永久生效,需要把這行添加到環(huán)境變量文件里。有兩個(gè)文件可選:“/etc/profile”和用戶主目錄下的“.bashprofile”,“/etc/profile”對(duì)系統(tǒng)里所有用戶都有效,用戶主目錄下的“.bashprofile”只對(duì)這個(gè)用戶有效。exportPATH="
PATH:路徑1:路徑2:…:路徑n"?。?,意思是可執(zhí)行文件的路徑包括原先設(shè)定的路徑,也包括從“路徑1”到“路徑n”的所有路徑。當(dāng)用戶輸入一個(gè)一串字符并按回車后,shell會(huì)依次在這些路徑里找對(duì)應(yīng)的可執(zhí)行文件并交給系統(tǒng)核心執(zhí)行。那個(gè)“
”。
注意,與DOS/Window不同,UNIX類系統(tǒng)環(huán)境變量中路徑名用冒號(hào)分隔,不是分號(hào)。另外,軟件越裝越多,環(huán)境變量越添越多,為了避免造成混亂,建議所有語句都添加在文件結(jié)尾,按軟件的安裝順序添加。
本文已同步至博客站:
/etc/profile和/etc/bashrc都是系統(tǒng)級(jí)別的,修改后可以在所有用戶中起作用; /.bash_profile、 /.bashrc和~/.bash_logout都是用戶級(jí)別的,修改后只會(huì)作用于當(dāng)前用戶。
帶profile的文件都是需要重新進(jìn)入用戶時(shí)才會(huì)生效,帶bashrc的則是打開新的shell時(shí)生效;
執(zhí)行順序:/etc/profile - (~/.bash_profile | ~/.bash_login | ~/.profile) - ~/.bashrc - /etc/bashrc - ~/.bash_logout
$ echo $HOME
$ export HELLO="Hello"
$ env
¥ set
readonly TEST
之前介紹的使用 export 命令設(shè)置環(huán)境變量是在命令行中直接執(zhí)行,這樣設(shè)置的環(huán)境變量在退出shell時(shí)就會(huì)失效。要想設(shè)置永久有效的環(huán)境變量就需要修改之前提到的文件。
PATH=$PATH:PATH 1:PATH 2:PATH 3:------:PATH N
你可以自己加上指定的路徑,中間用冒號(hào)隔開
需要注意的是,最好不要把當(dāng)前路徑”./”放到PATH里,這樣可能會(huì)受到意想不到的攻擊。
特點(diǎn):所有用戶;永久有效;生效需要重新進(jìn)入用戶
root權(quán)限:
要想修改完文件后就立即生效,可以在命令行中執(zhí)行:
# source /etc/profile
Source命令也稱為“點(diǎn)命令”,也就是一個(gè)點(diǎn)符號(hào)(.)。source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄
網(wǎng)頁題目:linux命令設(shè)置變量 命令行設(shè)置變量
文章分享:http://www.rwnh.cn/article20/doohjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、App開發(fā)、面包屑導(dǎo)航、小程序開發(fā)、電子商務(wù)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)