8.6 管道符和作業控制
8.7/8.8 shell變量
8.9 環境變量配置文件
擴展
bashrc和bash_profile的區別 http://ask.apelearn.com/question/7719
簡易審計系統: http://www.68idc.cn/help/server/linux/2014042190951.html
關於PROMPT_COMMAND環境變量的含義 http://www.linuxnote.org/prompt_command-environment-variables.html
一、管道符和作業控制
- 管道:就是把前一個命令輸出結果傳到後面的命令
示例:把ls的輸出結果傳給wc進行統計
- 作業控制
作業控制:ctrl + z 可以暫停一個任務。
比如說正在vi編輯一個文件,可以ctrl + z暫停vi編輯,這時可以在控制檯繼續使用其它操作:
如果想繼續進行vi編輯可以使用fg命令重新調用回來繼續執行:
有多個任務在暫停中,可以使用jobs命令查看:
多個暫停的任務時,指定任務恢復:
fg id號 如下圖先是jobs查看暫停的任務id,然後使用fg id號進行恢復,如果不指定id號那就是恢復最後一次運行的。
如果想把暫停任務放到後臺繼續運行:
如下圖sleep 300 任務是暫停狀態,我們使用bg 命令把它丟到後臺繼續運行,再查看它的狀態已經變爲運行中
在命令後面加入&也可以使命令直接在後臺執行:
二、shell變量
環境變量是在操作系統中一個具有特定名字的對象,它來代替某些程序或數據。
env命令:列出系統預設的全部系統變量
set命令:set不僅可以顯示系統預設的環境變量,還可以顯示用戶自定義的變量。
變量查看:echo $變量名
1.自定義變量規則:
-
a=b,a爲變量名,b爲值,等號兩邊不能有空格。
-
變量名只能由字母,數字以及下劃線組成,而且不能以數字開頭。
-
當變量值帶有特殊字符時,需要加上單引號。
-
變量內容本身就帶有單引號,這個時候需要加上雙引號。
示例:
當變量值有特殊符號時需要使用單引號(''):
變量的累加:
2.全局變量
打開兩個終端,在其中一個終端中設置一個環境變量,在另外一個終端中是查看不到的。 echo $SHH_TTY:可以通過此命令查看當前在哪個終端下
終端1:
終端2:
如果再當前shell中運行bash命令,則會進入一個新的shell中,這個shell是原來shell的子shell
我們可以用pstree來查看當前所在的位置(如果沒安裝則先安裝:yum install -y psmisc)
以上這種情況是本地環境變量,只在當前終端下生效,如果想要變爲全局變量則需要使用:exprot命令
示例:
在另外一個終端中查看:
再重新打開一個終端:
發現變量又沒了,這是因爲全局變量值能向下生效,只能在子shell中生效。
取消環境變量:unset 變量名
三、環境變量配置文件
系統環境變量配置文件分兩個維度:系統層次和用戶層次
- 系統層次:
/etc/profile 用戶登錄的時候會加載到
/etc/bashrc 用戶或系統執行shell腳本時候,會用調用這個文件裏的一些配置
一般不要編輯,如果需要所有用戶使用的全局變量則修改/etc/profile
- 用戶層次
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout 用戶退出時做的一些操作,如:想退出時刪除歷史命令,把刪除命令放入這個文件中即可。
- 使環境變量配置生效
source 配置文件
或者 . 配置文件
- PS1環境變量
PS1是來定義系統提示符的系統變量,一般系統默認的形式是:[username@host 工作目錄]$.
root用戶顯示的是:
普通用戶是:
root是以#結尾,普通用戶是$結尾。
可以同echo $PS1來進行查看:
也可以進行修改
示例:修改顯示絕對路徑
修改顯示顏色:
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
查看PS2模式: