環(huán)境變量與文件查找

環(huán)境變量與文件查找

環(huán)境變量

變量 :

計算機(jī)中用于記錄一個值(不一定是數(shù)值,也可以是字符或字符串)的符號薇溃,而這些符號將用于不同的運(yùn)算處理中章喉。通常變量與值是一對一的關(guān)系,可以通過表達(dá)式讀取它的值并賦值給其它變量伴郁,也可以直接指定數(shù)值賦值給任意變量耿战。

變量的作用域即變量的有效范圍(比如一個函數(shù)中、一個源文件中或者全局范圍)焊傅,在該范圍內(nèi)只能有一個同名變量剂陡。一旦離開則該變量無效,如同不存在這個變量一般狐胎。

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

使用 = 號賦值運(yùn)算符鸭栖,將變量 tmp 賦值為 shiyanlou:

讀取變量的值,使用 echo 命令和 $ 符號($ 符號用于表示引用一個變量的值)


并不是任何形式的變量名都是可用的握巢,變量名只能是英文字母晕鹊、數(shù)字或者下劃線,且不能以數(shù)字作為開頭暴浦。

環(huán)境變量

通常會涉及到的變量類型有三種:

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

Shell 本身內(nèi)建的變量公荧。

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

命 令 說 明

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)境變量的變量,也能通過它將自定義變量導(dǎo)出為環(huán)境變量关炼。

使用 vimdiff 工具比較一下它們之間的差別:


使用 vimdiff 工具比較導(dǎo)出的幾個文件的內(nèi)容:


先在 Shell 中設(shè)置一個變量 temp=shiyanlou程腹,然后再新創(chuàng)建一個子 Shell 查看 temp 變量的值:


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

永久生效

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

永久的:需要修改配置文件色鸳,變量永久生效;

臨時的:使用 export 命令行聲明即可见转,變量在關(guān)閉 shell 時失效命雀。

profile 只對當(dāng)前用戶永久生效。而寫在 /etc/profile 里面的是對所有用戶永久生效斩箫,所以如果想要添加一個永久生效的環(huán)境變量吏砂,只需要打開 /etc/profile,在最后加上你想添加的環(huán)境變量.

命令的查找路徑與順序

查看 PATH 環(huán)境變量的內(nèi)容:


練習(xí)創(chuàng)建一個最簡單的可執(zhí)行 Shell 腳本和一個使用 C 語言創(chuàng)建的“ hello world ”程序:


創(chuàng)建一個 C 語言“ hello world ”程序:


在 shiyanlou 家目錄創(chuàng)建一個 mybin 目錄乘客,并將上述 hello_shell.sh 和 hello_world 文件移動到其中,

在 mybin 目錄中分別運(yùn)行你剛剛創(chuàng)建的兩個程序:


添加自定義路徑到“ PATH ”環(huán)境變量

PATH 里面的路徑是以 : 作為分割符的

這里一定要使用絕對路徑狐血。

在每個用戶的 home 目錄中有一個 Shell 每次啟動時會默認(rèn)執(zhí)行一個配置腳本,以初始化環(huán)境易核,包括添加一些用戶自定義環(huán)境變量等等匈织。zsh 的配置文件是 .zshrc,相應(yīng) Bash 的配置文件為 .bashrc 耸成。

直接添加內(nèi)容到 .zshrc 中:


上述命令中 >> 表示將標(biāo)準(zhǔn)輸出以追加的方式重定向到一個文件中报亩,注意前面用到的 > 是以覆蓋的方式重定向到一個文件中,使用的時候一定要注意分辨井氢。

修改和刪除已有變量

變量修改

變量的修改有以下幾種方式:

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

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

${變量名##匹配字串} 從頭向后開始匹配岳链,刪除符合匹配字串的最長數(shù)據(jù)

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

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

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

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

修改添加到 PATH 的環(huán)境變量:


使用 unset 命令刪除一個環(huán)境變量:


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

在 Shell 中修改了一個配置腳本文件之后,使用 source 命令來讓其立即生效:


source 命令還有一個別名就是 .掸哑,注意與表示當(dāng)前路徑的那個點(diǎn)區(qū)分開约急,雖然形式一樣,但作用和使用方式一樣苗分,上面的命令如果替換成 . 的方式就該是:


注意第一個點(diǎn)后面有一個空格厌蔽,而且后面的文件必須指定完整的絕對或相對路徑名,source 則不需要摔癣。

搜索文件

whereis 簡單快速

whereis 只能搜索二進(jìn)制文件(-b)奴饮,man 幫助文件(-m)和源代碼文件(-s)。


locate 快而全

通過“ /var/lib/mlocate/mlocate.db ”數(shù)據(jù)庫查找

它可以用來查找指定目錄下的不同文件類型


它不只是在 /etc 目錄下查找择浊,還會自動遞歸子目錄進(jìn)行查找戴卜。

查找 /usr/share/ 下所有 jpg 文件:


注意要添加 * 號前面的反斜杠轉(zhuǎn)義,否則會無法找到琢岩。

如果想只統(tǒng)計數(shù)目可以加上 -c 參數(shù)投剥,-i 參數(shù)可以忽略大小寫進(jìn)行查找,whereis 的 -b担孔、-m江锨、-s 同樣可以使用吃警。

which 小而精

使用 which 來確定是否安裝了某個指定的軟件


find 精而細(xì)

不但可以通過文件類型、文件名進(jìn)行查找而且可以根據(jù)文件的屬性(如文件的時間戳啄育,文件的權(quán)限等)進(jìn)行搜索汤徽。

find 命令最常見的格式,千萬記住 find 的第一個參數(shù)是要搜索的地方

去 /etc/ 目錄下面 灸撰,搜索名字叫做 interfaces 的文件或者目錄:


find 命令的路徑是作為第一個參數(shù)的谒府, 基本命令格式為 find [path] [option] [action] 。

與時間相關(guān)的命令參數(shù):

參數(shù) 說明

-atime 最后訪問時間

-ctime 最后修改文件內(nèi)容的時間

-mtime 最后修改文件屬性的時間

下面以 -mtime 參數(shù)舉例:

-mtime n:n 為數(shù)字浮毯,表示為在 n 天之前的“一天之內(nèi)”修改過的文件

-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改過的文件

-mtime -n:列出在 n 天之內(nèi)(包含 n 天本身)被修改過的文件

newer file:file 為一個已存在的文件完疫,列出比 file 還要新的文件名

列出 home 目錄中,當(dāng)天(24 小時之內(nèi))有改動的文件:


列出用戶家目錄下比 Code 文件夾新的文件:



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末债蓝,一起剝皮案震驚了整個濱河市壳鹤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饰迹,老刑警劉巖芳誓,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異啊鸭,居然都是意外死亡锹淌,警方通過查閱死者的電腦和手機(jī)赠制,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钟些,“玉大人烟号,你說我怎么就攤上這事≌校” “怎么了汪拥?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長篙耗。 經(jīng)常有香客問我迫筑,道長,這世上最難降的妖魔是什么鹤树? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任隘截,我火速辦了婚禮至扰,結(jié)果婚禮上侦镇,老公的妹妹穿的比我還像新娘燃观。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布坟募。 她就那樣靜靜地躺著岛蚤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懈糯。 梳的紋絲不亂的頭發(fā)上涤妒,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音赚哗,去河邊找鬼她紫。 笑死,一個胖子當(dāng)著我的面吹牛屿储,可吹牛的內(nèi)容都是我干的贿讹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼够掠,長吁一口氣:“原來是場噩夢啊……” “哼民褂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疯潭,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赊堪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后竖哩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哭廉,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年期丰,在試婚紗的時候發(fā)現(xiàn)自己被綠了群叶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钝荡。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡埠通,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逛犹,到底是詐尸還是另有隱情,我是刑警寧澤虽画,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站渗柿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏朵栖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一终惑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧雹有,春花似錦、人聲如沸霸奕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽合武。三九已至,卻和暖如春稼跳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汤善。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留红淡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓摇零,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驻仅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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