管道符和作業控制,shell變量,環境變量配置
筆記內容:
8.6 管道符和作業控制
8.7/8.8 shell變量
8.9 環境變量配置文件
筆記日期:2017.8.15
8.6 管道符和作業控制
管道符可以把一個文件的輸出內容,傳遞給後面的命令:
所以管道符簡單的說就是把前面的命令執行結果交給後面的命令執行。
作業控制:
Ctrl+z可以臨時停止當前的命令:
這時vim的命令就被丟到後臺了。
現在如果想要繼續vim命令,就需要使用fg命令:
Ctrl+z可以停止多個命令:
jobs可以查看當前暫停的命令:
fg命令加id號可以繼續指定的命令:
因為繼續了第一個命令,所以還剩下兩個命令被暫停著:
fg命令不加id號則是默認繼續最後那條命令:
bg命令可以將暫停的命令轉到後臺去運行:
在命令的末尾加&符號可以將一條命令丟到後臺去執行:
命令在後臺運行完之後會顯示完成:
如果打開一個新終端是看不到另一個終端的在後臺執行的命令的:
8.7/8.8 shell變量
我們知道PATH是系統內置變量,還有HOME、PWD、LOGNAME等變量,這些變量是在系統裏的配置文件規定的,env命令可以獲取到系統變量,系統的變量一般都是大寫的,變量的值則可以是字符串或數字:
set命令也可以查看變量,不過不僅僅查看系統的變量,還能查看用戶自定義的變量,在CentOS6之前這個命令只會顯示系統變量和自定義變量,在CentOS7則多了很多shell腳本相關的東西:
用戶自定義變量:
用戶自定義變量可以在set裏體現出來:
寫shell腳本的時候經常要使用變量,變量的命名規則:變量可以以字母、下劃線開頭,但是不能以數字開頭:
變量值有特殊符號時需要用單引號括起來:
echo $SSH_TTY命令可以查看當前在哪個終端下:
變量的累加:
bash命令可打開子shell,相當於打開了一個終端:
全局變量:
在當前終端自定義的變量在子shell裏是查看不到的,因為這種定義的變量不是全局變量,是本地變量,如果要定義全局變量需要使用export命令:
export定義的全局變量是向下的,也就是說如果在子shell裏定義的全局變量在這個子shell的父shell上是查看不到的:
全局變量在另一個終端中也是查看不到的:
取消變量:
unset命令後面跟變量的名稱,就可以取消掉這個變量的值:
8.9 環境變量配置文件
環境變量的配置文件有兩大類,一是系統層次維度的配置文件在etc目錄下,二是用戶層次維度的配置文件在用戶的家目錄下。
profile文件是用戶登錄的時候會加載到
bashrc文件是在用戶、系統執行一些shell腳本的時候會加載到
系統層次的profile和bashrc文件一般情況下不要去動,如果要修改的話就修改用戶層次的.bashrc_profile和.bashrc文件。
.bashrc_profile文件加載的時候會調用.bashrc文件,.bashrc文件又會去調用etc目錄下的bashrc文件。
.bashrc_loguot文件用來定義用戶退出時的需要做的一些操作,如果你想讓用戶退出時刪除歷史命令,可以把刪除歷史命令的命令寫在.bashrc_loguot文件裏。
PS1變量是在etc目錄下的bashrc文件裏面定義的:
在登錄系統時左邊會有串字符串顯示則當前登錄系統的用戶名和主機名還有當前所在的目錄:
PS1變量就是用來配置這個字符串顯示的內容的:
PS1變量的值可以自定義修改,例如我把方括號去掉:
例如我把大寫的W改成小寫的w,這樣的就會顯示絕對路徑:
PS2是用在另外一種環境的,例如mysql的命令行:
擴展
bashrc和bash_profile的區別:
http://ask.apelearn.com/question/7719
本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1972601
管道符和作業控制,shell變量,環境變量配置