日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux profile of env

發(fā)布時(shí)間:2025/3/15 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux profile of env 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux profile of env

分類: power 4407人閱讀 評論(1) 收藏 舉報(bào) linuxshellpathbashcolors語言

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

常見的環(huán)境變量

對于PATH和HOME等環(huán)境變量大家都不陌生。

PATH能夠指定命令的搜索路徑,那么動態(tài)鏈接庫的路徑用什么變量指定呢?或者就是在PATH里面?
比如有一個(gè)程序需要/usr/local/lib下面的一個(gè)庫文件,應(yīng)該怎么指定其路徑呢?
經(jīng)常看到有些變量如LD_LIBRARY_PATH,LIBPATH,CLASSPATH等,他們之間有什么不同和關(guān)系?

除此之外,還有下面一些常見環(huán)境變量。

◆ HISTSIZE是指保存歷史命令記錄的條數(shù)。

◆ LOGNAME是指當(dāng)前用戶的登錄名。

◆ HOSTNAME是指主機(jī)的名稱,許多應(yīng)用程序如果要用到主機(jī)名的話,通常是從這個(gè)環(huán)境變量中來取得的。

◆ SHELL是指當(dāng)前用戶用的是哪種Shell。

◆ LANG/LANGUGE是和語言相關(guān)的環(huán)境變量,使用多種語言的用戶可以修改此環(huán)境變量。

◆ MAIL是指當(dāng)前用戶的郵件存放目錄。

◆ PS1是基本提示符,對于root用戶是#,對于普通用戶是$。PS2是附屬提示符,默認(rèn)是“>”。可以通過修改此環(huán)境變量來修改當(dāng)前的命令符,比如下列命令會將提示符修改成字符串“Hello,My NewPrompt? ”。

# PS1=" Hello,My NewPrompt? "

Hello,My NewPrompt

除了這些常見的環(huán)境變量,許多應(yīng)用程序在安裝時(shí)也會增加一些環(huán)境變量,比如使用Java就要設(shè)置JAVA_HOME和CLASSPATH等,而安裝五筆輸入法會增加環(huán)境變量"XMODIFIERS=@im=fcitx"等。

定制環(huán)境變量

環(huán)境變量是和Shell緊密相關(guān)的,用戶登錄系統(tǒng)后就啟動了一個(gè)Shell。對于Linux來說一般是bash,但也可以重新設(shè)定或切換到其它的 Shell。環(huán)境變量是通過Shell命令來設(shè)置的,設(shè)置好的環(huán)境變量又可以被所有當(dāng)前用戶所運(yùn)行的程序所使用。對于bash這個(gè)Shell程序來說,可以通過變量名來訪問相應(yīng)的環(huán)境變量,通過export來設(shè)置環(huán)境變量。下面通過幾個(gè)實(shí)例來說明。

1. 顯示環(huán)境變量HOME

$ echo $HOME

/home/terry

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

$ export WELCOME="Hello!"

$ echo $WELCOME

Hello!

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

$ 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命令來清除環(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)存在了

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

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

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

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

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

-bash: unset: TEST: cannot unset: readonly variable

$ TEST="New" #會發(fā)現(xiàn)此也變量不能被修改

-bash: TEST: readonly variable

7. 用C程序來訪問和設(shè)置環(huán)境變量

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

◆ getenv()訪問一個(gè)環(huán)境變量。輸入?yún)?shù)是需要訪問的變量名字,返回值是一個(gè)字符串。如果所訪問的環(huán)境變量不存在,則會返回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;

}

還可以通過修改一些相關(guān)的環(huán)境定義文件來修改環(huán)境變量,比如對于Red Hat等Linux發(fā)行版本,與環(huán)境相關(guān)的文件有/etc/profile和~/.bashrc等。修改完畢后重新登錄一次就生效了。

?

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

什么是環(huán)境變量

環(huán)境變量是一個(gè)具有特定名字的對象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。許多用戶(特別是那些剛接觸Linux的新手)發(fā)現(xiàn)這些變量有些怪異或者難以控制。其實(shí),這是個(gè)誤會:通過使用環(huán)境變量,你可以很容易的修改一個(gè)牽涉到一個(gè)或多個(gè)應(yīng)用程序的配置信息。

重要的例子

下表羅列了一些Linux系統(tǒng)使用的變量并說明了它們的用處。在表格后面將列舉一些變量例值。

變量說明
PATH這個(gè)變量包含了一系列由冒號分隔開的目錄,系統(tǒng)就從這些目錄里尋找可執(zhí)行文件。如果你輸入的可執(zhí)行文件(例如lsrc-update或者emerge)不在這些目錄中,系統(tǒng)就無法執(zhí)行它(除非你輸入這個(gè)命令的完整路徑,如/bin/ls)。
ROOTPATH這個(gè)變量的功能和PATH相同,但它只羅列出超級用戶(root)鍵入命令時(shí)所需檢查的目錄。
LDPATH這個(gè)變量包含了一系列用冒號隔開的目錄,動態(tài)鏈接器將在這些目錄里查找?guī)煳募?/td>
MANPATH這個(gè)變量包含了一系列用冒號隔開的目錄,命令man會在這些目錄里搜索man頁面。
INFODIR這個(gè)變量包含了一系列用冒號隔開的目錄,命令info將在這些目錄里搜索info頁面。
PAGER這個(gè)變量包含了瀏覽文件內(nèi)容的程序的路徑(例如less或者more)。
EDITOR這個(gè)變量包含了修改文件內(nèi)容的程序(文件編輯器)的路徑(比如nano或者vi)。
KDEDIRS這個(gè)變量包含了一系列用冒號隔開的目錄,里面放的是KDE相關(guān)的資料。
CONFIG_PROTECT這個(gè)變量包含了一系列用空格隔開的目錄,它們在更新的時(shí)候會被Portage保護(hù)起來。
CONFIG_PROTECT_MASK這個(gè)變量包含了一系列用空格隔開的目錄,它們在更新的時(shí)候不會被Portage保護(hù)起來。

下面你可以找到所有這些變量定義的范例:

代碼 1: 定義范例

PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin" ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" MANPATH="/usr/share/man:/usr/local/share/man" INFODIR="/usr/share/info:/usr/local/share/info" PAGER="/usr/bin/less" EDITOR="/usr/bin/vim" KDEDIRS="/usr" CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf //usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ //usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf"

對于bash shell
關(guān)于環(huán)境變量命令介紹:
1.echo 顯示某個(gè)環(huán)境變量值 echo $PATH
2.export 設(shè)置一個(gè)新的環(huán)境變量 export HELLO="hello" (可以無引號)
3.env 顯示所有環(huán)境變量
4.set 顯示本地定義的shell變量
5.unset 清除環(huán)境變量 unset HELLO
6.readonly 設(shè)置只讀環(huán)境變量 readonly HELLO

常見的環(huán)境變量
?? ?? ??? PATH:決定了shell將到哪些目錄中尋找命令或程序
?? ?? ??? HOME:當(dāng)前用戶主目錄
?? ?? ??? MAIL:是指當(dāng)前用戶的郵件存放目錄。
?? ?? ??? SHELL:是指當(dāng)前用戶用的是哪種Shell。
?? ?? ??? HISTSIZE:是指保存歷史命令記錄的條數(shù)
?? ?? ??? LOGNAME:是指當(dāng)前用戶的登錄名。
?? ?? ?? HOSTNAME:是指主機(jī)的名稱,許多應(yīng)用程序如果要用到主機(jī)名的話,通常是從這個(gè)環(huán)境??? ??? ??? 變量中來取得的。
?? ?? ??? LANG/LANGUGE:是和語言相關(guān)的環(huán)境變量,使用多種語言的用戶可以修改此環(huán)境變量。
?? ?? ??? PS1:是基本提示符,對于root用戶是#,對于普通用戶是$。
?? ?? ??? PS2:是附屬提示符,默認(rèn)是“>”。可以通過修改此環(huán)境變量來修改當(dāng)前的命令符,比??? ??? ??? 如下列命令會將提示符修改成字符串“Hello,My NewPrompt :) ”。
??? ??? ??? ??? # PS1=" Hello,My NewPrompt :) "


使用修改.bashrc文件進(jìn)行環(huán)境變量的編輯,只對當(dāng)前用戶有用。
?? ?? ???
使用修改 /etc/profile 文件進(jìn)行環(huán)境變量的編輯,是對所有用戶有用。大家一定要注意區(qū)別。??


如何設(shè)置Shell環(huán)境變量?
Shell設(shè)置添加去除顯示當(dāng)前值注解
shNAME=value1
export NAME
NAME=value2:$NAMEunset NAMEset(internal)或者env(exported)如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export
kshNAME=value1
export NAME
NAME=value2:$NAMEunset NAMEset(internal)或者env(exported)如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export
cshsetenv NAME value1setenv NAME value2:$NAMEunsetenv NAMEset不需要使用export
bashNAME=value1NAME=value2:$NAMEunset NAMEset或者env如果需要子進(jìn)程也看到該環(huán)境變量,需要使用export
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的linux profile of env的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。