第5章 使用Linux環境變量

bash shell 用一個稱作環境變量的特性存儲有關shell會話和工作環境的信息。
這也是他們爲什麼被稱作環境變量的原因,它允許你在內存中存儲數據,以便在運行在shell上的程序和腳本訪問。

這也是存儲永久數據的一種簡便方法,這些數據可以使用來識別用戶賬戶、系統、shell的特性以及任何其他你需要存儲的數據。

p101

全局環境變量和局部環境變量。
全局:哪都可見,在進入bash之前就已經存在了。 printenv 查看全局環境變量。
局部:只有當前shell進程可見。
Linux系統中,並沒有這樣一個命令只顯示局部環境變量。
set命令:會顯示爲某個特定進程設置的所有環境變量。當然,也包括全局環境變量。

設置環境變量

[root@localhost bin]# test=hellogood
[root@localhost bin]# echo $test
hellogood
警告:在環境變量名稱、等號和值之間沒有空格,這一點非常重要。
如果你在賦值表達式中放了空格,bash shell就會把值當做一個單獨的命令。

在另一個進程(包括子進程)中,是無法訪問的。

export :設置全局環境變量: export test
刪除環境變量: unset test,在處理全局環境變量時,如果你是在子進程裏面刪除了一個全局環境變量,它只對子進程有效。

有一些默認的shell環境變量。

PATH 變量同時顯示了shell查找命令的順序。

修改PATH: $PATH:bin/..

登陸shell會從4個不同的啓動文件裏讀取命令:
/etc/profile
HOME/.bashprofile HOME/.bash_login
$HOME/.profile
第一個是主啓動文件,系統上的每個用戶登陸都會執行這個啓動文件,另外三個啓動文件是用戶專有的,可以定製。

只要你登陸了Linux系統,bash就會執行/etc/profile文件中的命令。具體見 p115

交互式shell:
如果你的bash shell不是登錄時啓動的(比如你在命令行提示符下敲入bash啓動),你啓動的shell稱作交互式的shell。不會去訪問/etc/profile的,而是去HOME目錄查看.bashrc是否存在。

非交互式shell:系統執行shell腳本時用的就是這種shell。你不用擔心它沒有命令行提示符,但當你每次在系統上運行時仍要運行特定的啓動命令。(沒讀懂)

支持數組。但是不常用。

別名:alias -p

可以用alias 來創建自己的別名:
例如:alias li=‘ls -il’
命令別名的行爲和局部變量差不多,他們通常只在定義他們的shell進程中有效。

$HOME/.bashrc 是命名別名的好地方,因爲bash shell在啓動交互式shell時總是會讀取位於該地方的啓動文件。

看到了 P122 文件權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章