一、環境變數 : Shell中的變數也有不同的數據類型,不用專門指定類型名,可以參與運算,有作用域限制。 創建一個變數 可以不用專門聲明,可以即用即創建 變數賦值 echo $tmp 讀取變數的值 Notes: 變數名不能用數字開頭,且只能是英文字母,數字,下劃線 Shell的環境變數作用於自身及它 ...
一、環境變數:
Shell中的變數也有不同的數據類型,不用專門指定類型名,可以參與運算,有作用域限制。
declare tmp
創建一個變數
可以不用專門聲明,可以即用即創建
tmp=shiyanlou
變數賦值
echo $tmp 讀取變數的值
Notes: 變數名不能用數字開頭,且只能是英文字母,數字,下劃線
Shell的環境變數作用於自身及它的子進程,環境變數可以繼承。
通常有以下三種環境變數:
- 當前Shell進程私有用戶自定義變數,如tmp
- Shell本身內建的變數
- 從自定義變數導出的環境變數
與環境變數相關的命令:
set 顯示當前Shell所有環境變數,包括內建環境變數,用戶自定義變數和導出的環境變數
env 顯示與當前用戶相關的環境變數,還可以讓命令在指定環境中運行
export 顯示從Shell中導出的環境變數,也能通過它將自定義變數導出為環境變數
用vimdiff可以比較這幾個命令輸出文件的不同,如截圖所示
zsh創建子Shell, 實驗樓用的是zsh,Ubuntu用的是Bash
然後輸入值為空,表示變數無效
export導出temp為環境變數,然後創建子進程,有效
添加環境變數示例:
PATH = $PATH:/home/shiyanlou/mybin
這裡一定要使用絕對路徑
為了讓該環境變數每次啟動Shell時自動執行添加路徑到PATH,需要把它寫入到配置文件中,zsh的配置文件為.zshrc,Bash的配置文件為.bashrc,在etc下還都有一個或多個全局的配置文件,不過我們一般只修改用戶目錄下的。
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
>是以覆蓋的方式重定向到一個文件中,>>是追加標準輸出到文件中。
變數修改的方式:
${變數名#匹配字元串} 從前向後匹配,刪除符合的最短數據
${變數名##匹配字元串} 從前向後匹配,刪除符合的最長數據
${變數名%匹配字元串} 從後向前匹配,刪除符合的最短數據
${變數名%%匹配字元串} 從後向前匹配,刪除符合的最長數據
${變數名/舊的字串/新的字串} 將符合舊字串的第一個字串替換為新的字串
${變數名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串
用unset刪除變數
讓環境變數立即生效,可以用source命令,
source .zshrc
也可以用它的別名.
,需要指定完整的絕對或者相對路徑名
. ./.zshrc
二、搜索文件:
whereis直接從資料庫中查找,快速,搜索-b, -m, -s文件
locate通過/var/lib/mlocate/mlocate.db資料庫查詢,這個資料庫每天自動update一次,快而全
$ locate /usr/share/*.jpg
\轉義,只統計數目可以加上-c參數,-i可以忽略大小寫查找
which是Shell內建的命令,常用於確定是否安裝了某個指定的軟體,因為它只從PATH環境變數指定的路徑去搜尋
find最為強大,不僅可以通過文件類型,文件名查找,而且可以根據文件的屬性(如時間戳,文件許可權等)查找。基本格式如下:
find [path] [option] [action]
與時間有關的參數:
-atime 最後訪問的時間
-ctime 創建時間
-mtime 最後修改時間
作業提要:
用cmatrix實現《黑客帝國》中的代碼數字雨
F11全屏顯示
本文原載於實驗樓