env是顯示變量 set和export是設(shè)置變量 set用于csh環(huán)境 export用于bash環(huán)境 格式:set DISPLAY 192.168.1.1:0 export DISPLAY=192.168.1.1:0
成都創(chuàng)新互聯(lián)公司是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站營(yíng)銷、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為陽(yáng)光房等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。
1.使用命令echo顯示環(huán)境變量
本例使用echo顯示常見(jiàn)的變量HOME
$ echo $HOME
/home/kevin
2.設(shè)置一個(gè)新的環(huán)境變量
$ export MYNAME=”my name is kevin”
$ echo $ MYNAME
my name is Kevin
3.修改已存在的環(huán)境變量
接上個(gè)示例
$ MYNAME=”change name to jack”
$ echo $MYNAME
change name to jack
4.使用env命令顯示所有的環(huán)境變量
$ env
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
SSH_CLIENT=192.168.136.151 1740 22
QTDIR=/usr/lib/qt-3.1
SSH_TTY=/dev/pts/0
……
5.使用set命令顯示所有本地定義的Shell變量
$ set
BASH=/bin/bash
BASH_ENV=/root/.bashrc
……
6.使用unset命令來(lái)清除環(huán)境變量
$ export TEMP_KEVIN=”kevin” #增加一個(gè)環(huán)境變量TEMP_KEVIN
$ env | grep TEMP_KEVIN #查看環(huán)境變量TEMP_KEVIN是否生效(存在即生效)
TEMP_KEVIN=kevin #證明環(huán)境變量TEMP_KEVIN已經(jīng)存在
$ unset TEMP_KEVIN #刪除環(huán)境變量TEMP_KEVIN
$ env | grep TEMP_KEVIN #查看環(huán)境變量TEMP_KEVIN是否被刪除,沒(méi)有輸出顯示,證明TEMP_KEVIN被清除了。
7.使用readonly命令設(shè)置只讀變量
注:如果使用了readonly命令的話,變量就不可以被修改或清除了。
$ export TEMP_KEVIN ="kevin" #增加一個(gè)環(huán)境變量TEMP_KEVIN
$ readonly TEMP_KEVIN #將環(huán)境變量TEMP_KEVIN設(shè)為只讀
$ env | grep TEMP_KEVIN #查看環(huán)境變量TEMP_KEVIN是否生效
TEMP_KEVIN=kevin #證明環(huán)境變量TEMP_KEVIN已經(jīng)存在
$ unset TEMP_KEVIN #會(huì)提示此變量只讀不能被刪除
-bash: unset: TEMP_KEVIN: cannot unset: readonly variable
$ TEMP_KEVIN ="tom" #修改變量值為tom會(huì)提示此變量只讀不能被修改
-bash: TEMP_KEVIN: readonly variable
8.通過(guò)修改環(huán)境變量定義文件來(lái)修改環(huán)境變量。
需要注意的是,一般情況下,僅修改普通用戶環(huán)境變量配置文件,避免修改根用戶的環(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)隔開(kāi)。
環(huán)境變量更改后,在用戶下次登陸時(shí)生效。
如果想立刻生效,則可執(zhí)行下面的語(yǔ)句:$source .bash_profile
需要注意的是,最好不要把當(dāng)前路徑”./”放到PATH里,這樣可能會(huì)受到意想不到的攻擊。
完成后,可以通過(guò)$ echo $PATH查看當(dāng)前的搜索路徑。這樣定制后,就可以避免頻繁的啟動(dòng)位于shell搜索的路徑之外的程序了。
1、最強(qiáng)大的搜索命令:find 查找各種文件的命令
2、在文件資料中查找文件:locate
3、搜索命令所在的目錄及別名信息:which
4、搜索命令所在的目錄及幫助文檔路徑:whereis
5、在文件中搜尋字符串匹配的行并輸出:grep
6、分頁(yè)顯示一個(gè)文件或任何輸出結(jié)果:more
7、分頁(yè)顯示一個(gè)文件并且可以回頭:less
8、指定顯示前多少行文件內(nèi)容:head
9、指定顯示文件后多少行內(nèi)容:tail
10、查看一個(gè)文件:cat
11、查看文件內(nèi)容多少字符多少行多少字節(jié):wc
12、排序文件內(nèi)容:sort
這兩者是不一樣的:
set 顯示當(dāng)前shell的變量,包括當(dāng)前用戶的變量
env 顯示當(dāng)前用戶的變量
每個(gè)shell都有自己特有的變量,這和用戶變量是不同的。當(dāng)前用戶變量和你用什么shell無(wú)關(guān),不管你用什么shell都是存在的。比如HOME,SHELL等這些變量,但shell自己的變量,不同的shell是不同的,比如BASH_ARGC, BASH等,這些變量只有set才會(huì)顯示,是bash特有的。
這樣表達(dá)應(yīng)該清楚吧,可以說(shuō),env顯示的內(nèi)容是set顯示內(nèi)容的一個(gè)子集。
env最常用的功能是查詢環(huán)境變量,直接輸入env即可,例如:
bash是Linux下的命令解釋器,目前CentOS,ubuntu,rhce默認(rèn)都使用bash作為解釋器。