1. 程式人生 > >Linux20180423五周第四次課(4月23日)

Linux20180423五周第四次課(4月23日)

shell 環境變量 配置文件

五周第四次課(4月23日)

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



管道符和作業控制

技術分享圖片

管道府就是將前面輸出傳遞給後面的命令


比如

cat 1.txt | wc -l
cat 1.txt |grep 'aaa'

這個就是將前面的內容傳給後面的wc命令去查看多少line


用法比較靈活,比如ls |wc -l 可以查看當前目錄下有多少文件

技術分享圖片

技術分享圖片

作業控制


作業就是當前的操作

ctrl z 就是暫停一個工作

比如 sleep 100 忽然就停了 這個時候可以ctrl z 停止

技術分享圖片

然後有一個命令交做 bg 後臺操作 fg 前臺顯示操作

技術分享圖片

可以看到 首先是被停止了 然後bg 到後臺運行了 查看目前的工作 jobs可以看到還在運行

技術分享圖片

bg fg如果不加id號的話,就是默認最後一個




shell變量

技術分享圖片


env 查看系統變量,通常都是大寫字母

set不僅僅是系統變量還有自定義變量,如果自己自定義了變量,在這裏就可以查看到。echo命令可以查看變量的值

技術分享圖片

技術分享圖片

註意單引號和雙引號的區別,單引號不會解析變量的內容

技術分享圖片


set | less 把set的結果傳到less命令中

技術分享圖片

技術分享圖片

也找到了a=111 這個自定義的變量


變量名命名規則


- 字母,數字,下劃線可以,首位不能是數字

- 變量值有特殊符號的時候,如果想顯示特殊符號就用單引號引起來。

技術分享圖片

技術分享圖片

單引號會將原樣輸出而雙引號會將變量值輸出


全局變量

w可以看到當前登陸的用戶和tty終端

技術分享圖片


echo $SSH_TTY可以查看當前本機使用的tty

技術分享圖片


如果不同的tty下創建的變量,是不能互相訪問的

技術分享圖片

技術分享圖片

所以可以從上面看出 TTY0創建$A變量的值 TTY2是無法訪問到的

如果是一個TTY下創建的新的bash下的bash也是無法訪問上一級bash的變量的,這種變量叫做本地變量 local

技術分享圖片


想把變量變成全局變量,需要使用export 變量=值 才行

export A 這個時候所有下層的bash就可以訪問到父級和爺級的變量了,但是反之如果子輩或孫輩創建的變量,父輩或者爺爺輩是不能訪問的,也就是全局變量是自上而下,而非自下而上

export 變量=值

技術分享圖片


技術分享圖片


取消變量 unset 變量名 記得變量名不包括$


環境變量的配置文件

技術分享圖片

配置文件要從兩個層面理解,一個是系統層面,就是一旦改動了全部的用戶都受影響。另一個是用戶層面,就是只是對當前用戶生效。

系統層面

etc/profile 用戶環境變量,交互,登陸才執行

etc/bashrc 用戶不用登陸,執行shell生效


用戶層面 用戶家目錄下 所謂的/. 這個點的作用就是source命令的作用,就是讓這個文件生效。但是不能執行這個文件。(調用順序 .bash_profile---->.bashrc----->/etc/bashrc)

~/.bashrc 系統/用戶執行shell腳本的時候啟用。不一定需要用戶登陸。 這個文件裏又會調用/etc/bashrc這個文件

技術分享圖片

~/.bash_profile 用戶登陸時候加載 有一些相關的設定都可以在用戶的這個文件裏定義 當然這樣定義的話只是針對當前用戶

這裏面會自動加載調用 .bashrc

技術分享圖片

~/.bash_history

~/.bash_logout 定義用戶退出的時候的操作。比如每次用戶退出的時候刪除所有的操作歷史,就可以把這個命令放到這個文件裏。


profile 和 bashrc的文件區別是 profile是用戶登陸的時候自動加載profile文件, 然後調用bashrc。bashrc是執行shell腳本的時候調用bashrc裏的配置。



$PS1變量,指的就是用戶登錄後命令行左側顯示的信息。

技術分享圖片

u 用戶 h hostname W 最後一層 當然也可以改

當我們登陸的時候,shell界面的左邊會顯示出一串東西。

第一個是當前用戶

第二個是@

第三個是hostname

第四個所在目錄的最後一個層級目錄


如果把PS1變量的值改了換可以看看 比如W換成w

技術分享圖片

或者去掉方括號

技術分享圖片


也可以加顏色



PS2是用在另一個shell終端裏面的。mysql命令行使用的就是PS2

技術分享圖片

Linux20180423五周第四次課(4月23日)