一拜秧、關(guān)于環(huán)境變量
1奈嘿、變量:用于記錄一個(gè)值的符號
? ?(注意: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)境變量,對所有用戶永久生效
/etc/bashrc: ? 存放Shell變量
.profile : ? ?存放環(huán)境變量氮凝,只對當(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:路徑(一定要為絕對路徑)
eg: ? ?PATH=$PATH:/home/shiyanlou/mybin
3)讓添加的自定義路徑自動執(zhí)行
前提:每個(gè)用戶的家目錄都有一個(gè)Shell每次啟動時(shí)會默認(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ù)
${變量名##匹配字串}:
從頭到后匹配傅是,刪除符合匹配字串的最長數(shù)據(jù)
${變量名%匹配字串}:
從后到前匹配匪燕,刪除符合匹配字串的最短數(shù)據(jù)
${變量名%%匹配字串}:
從后到前匹配,刪除符合匹配字串的最長數(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:簡單快速
1)whereis ? -b ? 文件名:只能搜索二進(jìn)制文件
2)whereis ? -m ?文件名:只能搜索man幫助文件
3)whereis ? -s ? ?文件名 :只能搜索源代碼文件
4)whereis ? ?文件名:上述三者都能搜索到
whereis搜索很快溃斋,因?yàn)樗苯訌臄?shù)據(jù)庫中查詢
2界拦、locate 快而全
可以用來查找指定目錄下的不同文件類型
eg:
locate ? ?/etc/sh: ?查找/etc下的所有以sh開頭的文件
(還會自動遞歸/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ù)庫查找梗劫,系統(tǒng)使用定時(shí)任務(wù)每天自動執(zhí)行updatedb命令更新一次,當(dāng)遇見剛添加的文件找不到時(shí)的情況時(shí)截碴,手動執(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)有改動的文件鱼鼓;
三拟烫、特效 數(shù)字雨
1)sudo ? apt-get ?update; sudo apt-get install ?cmatrix
(安裝cmatrix)
2) 打開xfce終端->單擊編輯-> 首選項(xiàng)->顏色->黑底綠字
(修改終端主題配色)
3)在終端輸入 cmatrix 命令便可
?