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

一、關(guān)于環(huán)境變量

1、變量:用于記錄一個(gè)值的符號(hào)

? ?(注意:Shell變量不用專門指定類型名)

變量的作用域: 變量的有效范圍

? ( 注意:在該范圍內(nèi)只能有一個(gè)同名變量)

在shell中如何創(chuàng)建一個(gè)變量:

? ?1) $ ?declare ? 變量名

? ?2) 即用即創(chuàng)建

為變量賦值: 變量名=內(nèi)容

讀取變量的值:echo ? $變量名

變量名的命名規(guī)則:只能是英文、數(shù)字和下劃線,且不能數(shù)字開頭

2、環(huán)境變量:在當(dāng)前進(jìn)程的子進(jìn)程有效的變量,作用域比自定義變量的大。

eg:Shell的環(huán)境變量作用于自身和它的子進(jìn)程。

注意:在shell中運(yùn)行的大部分命令都將以Shell的子進(jìn)程的方式運(yùn)行。

? ? ? ? ?為了將環(huán)境變量和普通變量進(jìn)行區(qū)分:習(xí)慣將環(huán)境變量名設(shè)為大寫

3、通常涉及到的變量類型:

? ? 1)當(dāng)前Shell進(jìn)程私有用戶自定義變量(只在當(dāng)前Shell中有效)

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

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

4、打印環(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)境變量

? ?上述三者區(qū)別在于涉及的變量范圍不同??梢酝ㄟ^vimdiff工具比較三者差別

案例分析:

temp=zhangsan ? ? ? ?創(chuàng)建一個(gè)變量

echo ? $temp ? ? ? ? ? ?查看變量值結(jié)果輸出zhangsan

zsh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?建立一個(gè)子進(jìn)程

echo ? $temp ? ? ? ? ? ? ?查看變量值 ? 結(jié)果輸出為空(說 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?明變量無效)

exit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?退出當(dāng)前子進(jìn)程

export ? temp ? ? ? ? ? ? ?將自定義變量導(dǎo)出為環(huán)境變量 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (臨時(shí)的)

zsh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?重新建立一個(gè)子進(jìn)程

echo ? $temp ? ? ? ? ? ? ? 查看變量值 ? 結(jié)果輸出 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?zhangsan

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(成為環(huán)境變量后有效)

關(guān)機(jī)之后或者關(guān)閉Shell之后環(huán)境變量便消失

5、按變量的生存周期劃分linux中的變量:

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

2)臨時(shí)的:使用export聲明,關(guān)閉Shell便失效;

6、/etc/profile: ?存放環(huán)境變量,對(duì)所有用戶永久生效

/etc/bashrc: ? 存放Shell變量

.profile : ? ?存放環(huán)境變量,只對(duì)當(dāng)前用戶永久生效

( .profile是每個(gè)用戶目錄下的隱藏文件,查看:

? ? ? ? cd ?/home/用戶名

? ? ? ? ls ? ?-a

? ? )

7、添加永久生效環(huán)境變量: ?打開/etc/profile文件 在此文件中添加

8、命令的查找路徑與循序

1) 環(huán)境變量PATH用于搜索Shell中輸入的命令

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

9、添加自定義路徑到"PATH"環(huán)境變量

1) ? PATH里的路徑是以 : 為分割符的

2)命令格式 ?: ?PATH=$PATH:路徑(一定要為絕對(duì)路徑)

eg: ? ?PATH=$PATH:/home/shiyanlou/mybin

3)讓添加的自定義路徑自動(dòng)執(zhí)行

前提:每個(gè)用戶的家目錄都有一個(gè)Shell每次啟動(dòng)時(shí)會(huì)默認(rèn)執(zhí)行一個(gè)配置腳本,用來初始化環(huán)境(包括添加一些用戶自定義環(huán)境變量)

zsh的配置文件: ?. zshrc

Bash的配置文件: ?.bashrc

echo ?"PATH=$PATH:/home/shiyanlou/mybin">> .zshrc: ? 直接添加內(nèi)容到.zshrc

(<<表示將標(biāo)準(zhǔn)輸出以追加的方式重定向到一個(gè)文件中,而<表示以覆蓋的方式重定向到一個(gè)文件中)

10、修改和刪除已有變量

1)變量修改

${變量名#匹配字串}:

從頭到后匹配,刪除符合匹配字串的最短數(shù)據(jù)

${變量名##匹配字串}:

從頭到后匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)

${變量名%匹配字串}:

從后到前匹配,刪除符合匹配字串的最短數(shù)據(jù)

${變量名%%匹配字串}:

從后到前匹配,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)

${變量名/舊的字串/新的字串}:

將符合舊字串的第一個(gè)字串替換為新的字串

${變量名//舊的字串/新的字串}:

將符合舊字串的全部字串替換為新的字串

eg: ?path=$PATH( 將PATH賦給一個(gè)新的自定義變量)

echo $path ? ?(查看path的值)

path=${path%home/shiyanlou/mybin}

2)變量刪除:unset ?變量名

11、讓環(huán)境變量立即生效:

? ? ? ? ? ? ? source ? ? ? ?配置文件/環(huán)境變量名

source相當(dāng)于 ?" ." : . ? 文件(文件必須指定完整的路徑名)

二、有關(guān)搜索文件

1、whereis:簡(jiǎn)單快速

1)whereis ? -b ? 文件名:只能搜索二進(jìn)制文件

2)whereis ? -m ?文件名:只能搜索man幫助文件

3)whereis ? -s ? ?文件名 :只能搜索源代碼文件

4)whereis ? ?文件名:上述三者都能搜索到

whereis搜索很快,因?yàn)樗苯訌臄?shù)據(jù)庫(kù)中查詢

2、locate 快而全

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

eg:

locate ? ?/etc/sh: ?查找/etc下的所有以sh開頭的文件

(還會(huì)自動(dòng)遞歸/etc的子目錄進(jìn)行查找)

locate ? /usr/share/\*jpg: ?查找文件/usr/share下的所有jpg文件

locate ? ?-c ?/user/share/\*jpg: ?返回文件/usr/share下的所有jpg文件數(shù)目

(上邊的\*jpg中的反斜杠的作用是轉(zhuǎn)義,否則無法找到)

locate ? -i ? ?文件名:忽略文件大小寫進(jìn)行查找

locate通過"/var/lib/mlocate.db"數(shù)據(jù)庫(kù)查找,系統(tǒng)使用定時(shí)任務(wù)每天自動(dòng)執(zhí)行updatedb命令更新一次,當(dāng)遇見剛添加的文件找不到時(shí)的情況時(shí),手動(dòng)執(zhí)行一次updatedb命令。

3、which 小而精

1)Shell內(nèi)建的一個(gè)命令;

2)可用來確定是否安裝了某個(gè)軟件

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

4、find ? 精而細(xì)

1)find很強(qiáng)大,可以通過文件類型,文件名,文件屬性(時(shí)間、權(quán)限)來查找文件

2)find ?文件A ?-name ? ?文件名 :在A文件中找指定文件名的文件;

(find的第一個(gè)參數(shù)是要搜索的地方)

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

-atime ?:最后訪問時(shí)間

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

-mtime :最后修改文件屬性的時(shí)間

-mtime ? n:表示n天之前的“一天之內(nèi)“修改過屬性的文件;

-mtime ? +n :表示在n天之前(不包括第n天本身)被修改過的文件;

-mtime ? ?-n :表示在n天之內(nèi)(包括n天本身)本修改過的文件;

newer ? file ?:file 為一個(gè)已經(jīng)存在的文件,列出比file還要新的文件名;

eg: ?find ~ ?-mtime 0:當(dāng)天24小時(shí)內(nèi)有改動(dòng)的文件;

三、特效 數(shù)字雨

1)sudo ? apt-get ?update; sudo apt-get install ?cmatrix

(安裝cmatrix)

2) 打開xfce終端->單擊編輯-> 首選項(xiàng)->顏色->黑底綠字

(修改終端主題配色)

3)在終端輸入 cmatrix 命令便可


?

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

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