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

原文鏈接:https://www.shiyanlou.com/courses/reports/527972

變量定義

#定義變量
declare $變量名
#或者直接賦值也自動(dòng)定義變量,注意變量之前不帶"$"
變量名=值
#打印變量的值,"$"代表引用變量的值
echo $變量名

在所有的 UNIX 和類 UNIX 系統(tǒng)中时迫,每個(gè)進(jìn)程都有其各自的環(huán)境變量設(shè)置,且默認(rèn)情況下,當(dāng)一個(gè)進(jìn)程被創(chuàng)建時(shí),處理創(chuàng)建過程中明確指定的話,它將繼承其父進(jìn)程的絕大部分環(huán)境設(shè)置。

通常我們會(huì)涉及到的環(huán)境變量有三種:

  • 當(dāng)前 Shell 進(jìn)程私有用戶自定義變量窿祥,如上面我們創(chuàng)建的 temp 變量,只在當(dāng)前 Shell 中有效蝙寨。
  • Shell 本身內(nèi)建的變量晒衩。
  • 從自定義變量導(dǎo)出的環(huán)境變量片林。
相關(guān)命令 說明
set 顯示當(dāng)前 Shell 所有環(huán)境變量,包括其內(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)境變量

輸出環(huán)境變量

#將普通變量輸出為環(huán)境變量逛犹,能被子進(jìn)程繼承
export 變量名
#比較文件的命令
vimdiff 1.txt 2.txt 3.txt ....

命令的查找路徑與順序

$PATH環(huán)境變量設(shè)置命令搜索路徑

#輸出當(dāng)前命令搜索路徑的設(shè)置
echo $PATH

#./程序名 表示執(zhí)行當(dāng)前目錄下的指定程序

$PATH中臨時(shí)添加自定義路徑,用冒號(hào)連接路徑

PATH=$PATH:/home/shiyanlou/Code

如果永久添加需要修改配置文件
zsh是.zshrc bash是.bashrc
本次修改用戶目錄下的文件

$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc

變量修改

變量設(shè)置方式 說明
${變量名#匹配字串} 從頭向后開始匹配,刪除符合匹配字串的最短數(shù)據(jù)
${變量名##匹配字串} 從頭向后開始匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名%匹配字串} 從尾向前開始匹配届惋,刪除符合匹配字串的最短數(shù)據(jù)
${變量名%%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名/舊的字串/新的字串} 將符合舊字串的第一個(gè)字串替換為新的字串
${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串

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

變量設(shè)置方式 說明
${變量名#匹配字串} 從頭向后開始匹配菠赚,刪除符合匹配字串的最短數(shù)據(jù)
${變量名##匹配字串} 從頭向后開始匹配脑豹,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最短數(shù)據(jù)
${變量名%%匹配字串} 從尾向前開始匹配衡查,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名/舊的字串/新的字串} 將符合舊字串的第一個(gè)字串替換為新的字串
${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串

變量刪除

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

$ unset temp

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

$ source .zshrc

或者

$ . ./.zshrc

注意第二種方式必須指定完整的絕對(duì)或相對(duì)路徑

二瘩欺、搜索文件

與搜索相關(guān)的命令常用的有如下幾個(gè)whereis,which,find,locate

  • whereis
    簡(jiǎn)單快速

whereis搜索很快拌牲,因?yàn)樗]有從硬盤中依次查找俱饿,而是直接從數(shù)據(jù)庫中查詢。whereis
只能搜索二進(jìn)制文件(-b)塌忽,man幫助文件(-m)和源代碼文件(-s)拍埠。

  • locate
    快而全

通過"/var/lib/mlocate/mlocate.db"數(shù)據(jù)庫查找,系統(tǒng)會(huì)使用定時(shí)任務(wù)每天自動(dòng)執(zhí)行updatedb
命令更新一次該數(shù)據(jù)庫土居,有時(shí)需要手動(dòng)執(zhí)行一次updatedb
命令將新的文件數(shù)據(jù)添加進(jìn)數(shù)據(jù)庫枣购,它可以用來查找指定目錄下的不同文件類型,可以遞歸子目錄進(jìn)行查找嬉探,如查找 /etc 下所有以 sh 開頭的文件:
$ locate /etc/sh$ locate /home/shiyanlou/Code/*.txt

經(jīng)測(cè)試好像locate 后面要跟絕對(duì)路徑,另外"*"必須用*來轉(zhuǎn)義
-c 是僅統(tǒng)計(jì)數(shù)目 -i 是不區(qū)分大小寫

  • which
    小而精

    它只從PATH
    環(huán)境變量指定的路徑中去搜索命令

$ which man

#查找系統(tǒng)中所有文件名中含D且在第三位的.txt文件
find / -name \?\?D\*.txt
#顯示結(jié)果含有權(quán)限不夠的信息,可以如下屏蔽
find / -name \?\?D\*.txt 2>/dev/null

#還可以加sudo執(zhí)行
#另外棉圈,文件名加引號(hào)涩堤,可以直接用?或*,不用轉(zhuǎn)義
#查找大小在10k-20k之間的*.txt
find / -name '*.txt' -size +10k -size -20k
#查找空目錄和空文件
find . -empty
#查找實(shí)驗(yàn)樓組的文件
find . -group shiyanlou

#在/tmp目錄中查找大于100000000字節(jié)并且在48小時(shí)內(nèi)修改的某個(gè)文件
find /tmp -size +10000000c -and -mtime +2

#在/tmp目錄中查找所有不屬于panda的文件
find /tmp ! -user panda

#查找屬于shiyanlou用戶的文件并顯示文件信息
find . -user shiyanlou -ls

#刪除找到的*.txt
find . -name '*.txt' -exec rm {} \;
#以上 \; 是為了轉(zhuǎn)義;字符



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末分瘾,一起剝皮案震驚了整個(gè)濱河市胎围,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芹敌,老刑警劉巖痊远,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異氏捞,居然都是意外死亡碧聪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門液茎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逞姿,“玉大人,你說我怎么就攤上這事捆等≈驮欤” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵栋烤,是天一觀的道長(zhǎng)谒养。 經(jīng)常有香客問我,道長(zhǎng)明郭,這世上最難降的妖魔是什么买窟? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮薯定,結(jié)果婚禮上始绍,老公的妹妹穿的比我還像新娘。我一直安慰自己话侄,他們只是感情好亏推,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著年堆,像睡著了一般吞杭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘀韧,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天篇亭,我揣著相機(jī)與錄音,去河邊找鬼锄贷。 笑死译蒂,一個(gè)胖子當(dāng)著我的面吹牛曼月,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柔昼,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哑芹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了捕透?” 一聲冷哼從身側(cè)響起聪姿,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乙嘀,沒想到半個(gè)月后末购,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虎谢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年盟榴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婴噩。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡擎场,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出几莽,到底是詐尸還是另有隱情迅办,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布章蚣,位于F島的核電站站欺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纤垂。R本人自食惡果不足惜镊绪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洒忧。 院中可真熱鬧,春花似錦够颠、人聲如沸熙侍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛉抓。三九已至,卻和暖如春剃诅,著一層夾襖步出監(jiān)牢的瞬間巷送,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工矛辕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笑跛,地道東北人付魔。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像飞蹂,于是被迫代替她去往敵國(guó)和親几苍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • 一陈哑、環(huán)境變量 1.變量 要解釋環(huán)境變量妻坝,得先明白變量是什么,準(zhǔn)確的說應(yīng)該是 Shell 變量惊窖,所謂變量就是計(jì)算機(jī)中...
    xuzhougeng閱讀 1,040評(píng)論 0 4
  • 一刽宪、實(shí)驗(yàn)介紹 1.1 實(shí)驗(yàn)內(nèi)容 本節(jié)實(shí)驗(yàn)介紹環(huán)境變量的作用與用法,及幾種搜索文件的方法界酒。學(xué)會(huì)這些技巧可以高效地使用...
    harrytc閱讀 393評(píng)論 0 0
  • 一圣拄、環(huán)境變量 1. 變量 變量就是計(jì)算機(jī)中用于記錄一個(gè)值(數(shù)值,字符或字符串)的符號(hào)盾计。通常變量與值是一對(duì)一的關(guān)系售担,...
    睡不醒醒閱讀 932評(píng)論 0 1
  • 一、環(huán)境變量 1. 變量所謂變量就是計(jì)算機(jī)中用于記錄一個(gè)值(不一定是數(shù)值署辉,也可以是字符或字符串)的符號(hào)族铆,而這些符號(hào)...
    e9f3ca3721bc閱讀 386評(píng)論 0 0
  • 一、關(guān)于環(huán)境變量 1哭尝、變量:用于記錄一個(gè)值的符號(hào) (注意:Shell變量不用專門指定類型名) 變量的作用域: 變...
    bewhyy閱讀 490評(píng)論 0 0