第五節(jié):環(huán)境變量與文件查找

? ? ? ? 本節(jié)我們主要學(xué)習(xí)環(huán)境變量的作用與用法,及幾種搜索文件的方法。學(xué)會(huì)這些技巧可以高效地使用Linux 。

1.環(huán)境變量:

? ? ?(1).變量:變量的作用域即變量的有效范圍(比如一個(gè)函數(shù)中、一個(gè)源文件中或者全局范圍),在該范圍內(nèi)只能有一個(gè)同名變量。一旦離開(kāi)則該變量無(wú)效,如同不存在這個(gè)變量一般。

? ? ?使用declare命令創(chuàng)建一個(gè)變量名為 tmp 的變量:

declared tmp使用=號(hào)賦值運(yùn)算符,將變量 tmp 賦值為 shiyanlou:

tmp=shiyanlou讀取變量的值,使用echo命令和$符號(hào);echo $。

? ? (2).環(huán)境變量:

? ? 通常我們會(huì)涉及到的變量類型有三種:

? ? ?·當(dāng)前Shell 進(jìn)程私有用戶自定義變量,如上面我們創(chuàng)建的 tmp 變量,只在當(dāng)前Shell 中有效。

? ? ?·Shell 本身內(nèi)建的變量。

? ? ·從自定義變量導(dǎo)出的環(huán)境變量。

? ? ?命令說(shuō) 明

? ? ? ? ?set顯示當(dāng)前 Shell 所有變量,包括其內(nèi)建環(huán)境變量(與 Shell 外觀等相關(guān)),用戶自定義變量及導(dǎo)出的環(huán)境變量。env顯示與當(dāng)前用戶相關(guān)的環(huán)境變量,還可以讓命令在指定環(huán)境中運(yùn)行。export顯示從 Shell 中導(dǎo)出成環(huán)境變量的變量,也能通過(guò)它將自定義變量導(dǎo)出為環(huán)境變量。

? ?為了與普通變量區(qū)分,通常我們習(xí)慣將環(huán)境變量名設(shè)為大寫(xiě)。

3.命令的查找路徑與順序:

? ? ? 在Shell 中輸入一個(gè)命令,通過(guò)環(huán)境變量PATH來(lái)進(jìn)行搜索,這個(gè)PATH里面就保存了 Shell 中執(zhí)行的命令的搜索路徑。在Shell 中執(zhí)行一個(gè)命令時(shí),系統(tǒng)就會(huì)按照 PATH 中設(shè)定的路徑按照順序依次到目錄中去查找,如果存在同名的命令,則執(zhí)行先找到的那個(gè)。

? 例如:在腳本中添加如下內(nèi)容,保存并退出;

? ?For((i=0;i<0;i++));do

? ?Echo”hello shell”

? ?Done

? ?Exit 0

? ? 為文件添加可執(zhí)行權(quán)限:chmod 755 hello_shell.sh執(zhí)行腳本:./hello_shell.sh

? ? 創(chuàng)建一個(gè)c語(yǔ)言的程序:

?Int main ()

?{

?Printf(“hello world!\n”);

?Return 0;

?}

? ? ? ?保存后使用gcc 生成可執(zhí)行文件,在shiyanlou 家目錄創(chuàng)建一個(gè)mybin目錄,并將上述 hello_shell.sh 和 hello_world 文件移動(dòng)到其中,就可以在mybin目錄中分別運(yùn)行你剛剛創(chuàng)建的兩個(gè)程序了。

?4.添加自定義路徑:

?注意這里一定要使用絕對(duì)路徑。

? ? ? ? 在每個(gè)用戶的home 目錄中有一個(gè) Shell 每次啟動(dòng)時(shí)會(huì)默認(rèn)執(zhí)行一個(gè)配置腳本,以初始化環(huán)境,包括添加一些用戶自定義環(huán)境變量等等。zsh 的配置文件是.zshrc,相應(yīng)Bash 的配置文件為.bashrc。它們?cè)趀tc下還都有一個(gè)或多個(gè)全局的配置文件。

?5.修改和刪除已有變量

?變量設(shè)置方式說(shuō)明

? $ ? {變量名#匹配字串}從頭向后開(kāi)始匹配,刪除符合匹配字串的最短數(shù)據(jù)

? $ ? {變量名##匹配字串}從頭向后開(kāi)始匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)

? $ ? {變量名%匹配字串}從尾向前開(kāi)始匹配,刪除符合匹配字串的最短數(shù)據(jù)

? $ ? {變量名%%匹配字串}從尾向前開(kāi)始匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)

? $ ? {變量名/舊的字串/新的字串}將符合舊字串的第一個(gè)字串替換為新的字串

? $ ? {變量名//舊的字串/新的字串}將符合舊字串的全部字串替換為新的字串

?6.如何讓環(huán)境變量立即生效:

? ? ?我們可以使用source命令來(lái)讓其立即生效,如:source.zshrc ? source命令還有一個(gè)別名就是.,注意與表示當(dāng)前路徑的那個(gè)點(diǎn)區(qū)分開(kāi),雖然形式一樣,但作用和使用方式一樣,上面的命令如果替換成.的方式: ??. ./ .zshrc

7.搜索文件:

? ?與搜索相關(guān)的命令常用的有whereis,which,find和locate。

·whereis簡(jiǎn)單快速

? ? whereis只能搜索二進(jìn)制文件(-b),man 幫助文件(-m)和源代碼文件(-s)。如果想要獲得更全面的搜索結(jié)果可以使用locate命令。

·locate快而全

? ? ? 通過(guò)“ /var/lib/mlocate/mlocate.db ”數(shù)據(jù)庫(kù)查找,不過(guò)這個(gè)數(shù)據(jù)庫(kù)也不是實(shí)時(shí)更新的,系統(tǒng)會(huì)使用定時(shí)任務(wù)每天自動(dòng)執(zhí)行updatedb命令更新一次,剛添加的文件,它可能會(huì)找不到,需要手動(dòng)執(zhí)行一次updatedb命令。它可以用來(lái)查找指定目錄下的不同文件類型,如查找 /etc 下所有以 sh 開(kāi)頭的文件:注意,它不只是在/etc 目錄下查找,還會(huì)自動(dòng)遞歸子目錄進(jìn)行查找。

? ? ? 查找/usr/share/ 下所有 jpg 文件:注意要添加*號(hào)前面的反斜杠轉(zhuǎn)義,否則會(huì)無(wú)法找到。如果想只統(tǒng)計(jì)數(shù)目可以加上-c參數(shù),-i參數(shù)可以忽略大小寫(xiě)進(jìn)行查找,whereis 的-b、-m、-s同樣可以使用。

·which小而精

? ? ? which本身是 Shell 內(nèi)建的一個(gè)命令,我們通常使用which來(lái)確定是否安裝了某個(gè)指定的軟件,因?yàn)樗粡腜ATH環(huán)境變量指定的路徑中去搜索命令:

·find精而細(xì)

? ? ? find相比較功能較為強(qiáng)大,它不但可以通過(guò)文件類型、文件名進(jìn)行查找而且可以根據(jù)文件的屬性(如文件的時(shí)間戳,文件的權(quán)限等)進(jìn)行搜索。find命令強(qiáng)大到,要把它講明白至少需要單獨(dú)好幾節(jié)課程才行,我們這里只介紹一些常用的內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,125評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,506評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,614評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,402評(píng)論 6 404
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,934評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,168評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,690評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,596評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,784評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評(píng)論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,027評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,404評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,662評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,398評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,743評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容

  • 一、環(huán)境變量 1. 變量 變量就是計(jì)算機(jī)中用于記錄一個(gè)值(數(shù)值,字符或字符串)的符號(hào)。通常變量與值是一對(duì)一的關(guān)系,...
    睡不醒醒閱讀 938評(píng)論 0 1
  • 一、關(guān)于環(huán)境變量 1、變量:用于記錄一個(gè)值的符號(hào) (注意:Shell變量不用專門(mén)指定類型名) 變量的作用域: 變...
    bewhyy閱讀 498評(píng)論 0 0
  • 一、實(shí)驗(yàn)介紹 1.1 實(shí)驗(yàn)內(nèi)容 本節(jié)實(shí)驗(yàn)介紹環(huán)境變量的作用與用法,及幾種搜索文件的方法。學(xué)會(huì)這些技巧可以高效地使用...
    harrytc閱讀 397評(píng)論 0 0
  • 一、環(huán)境變量 1. 變量所謂變量就是計(jì)算機(jī)中用于記錄一個(gè)值(不一定是數(shù)值,也可以是字符或字符串)的符號(hào),而這些符號(hào)...
    e9f3ca3721bc閱讀 394評(píng)論 0 0
  • 環(huán)境變量與文件查找 環(huán)境變量 變量 : 計(jì)算機(jī)中用于記錄一個(gè)值(不一定是數(shù)值,也可以是字符或字符串)的符號(hào),而這些...
    魚(yú)擺擺_a8ac閱讀 481評(píng)論 0 0