Linux環境變數
變數
所謂變數就是計算機中用於記錄一個值的符號。作用域可以為一個函數中,一個源文件中或者是全局變數。可以通過
declare temp=111 這種方式來聲明一個變數,通過
echo $temp來查看一個變數。
但是,通過這種方式定義的變數隨著終端的關閉而消亡。
環境變數
環境變數的作用域比自定義變數的作用域要大。如shell的環境變數作用於自身和它的子進程。所用的Unix和類Unix系統每個進程都有其各自的環境變數設置。shell程序也作為一個進程運行在操作系統之上,而我們在shell中運行的大部分命令都將以shell的子進程的方式運行。
在命令行下用export命令可以定義環境變數,但是在關閉shell時失效。
如何讓環境變數永久生效
這裡介紹兩個重要文件/etc/bashrc和/etc/profile分別存放shell變數和環境變數。這兩個路徑有什麼區別,將在下一篇文章中介紹。
(同時在每一個用戶目錄下都有一個隱藏文件.profile,這個.profile裡面書寫的環境變數只對當前用戶永久生效)
shell在初始化的時候會在執行profile等初始化腳本,腳本中定義了一些環境變數,這些變數會在創建子進程時傳遞給子進程。
如果想要添加一個永久生效的環境變數,只需要打開/etc/profile,在最後加上你想添加的環境變數就好
為了讓環境變數立即生效,可以使用source命令
source ~/.bashrc
shell如何找到命令並執行
很早之前就有疑問,我們在 Shell 中輸入一個命令,Shell 是怎麼知道在哪去找到這個命令然後執行的呢?這是通過環境變數PATH來進行搜索的,熟悉 Windows 的用戶可能知道 Windows 中的也是有這麼一個 PATH 環境變數。這個PATH裡面就保存了Shell中執行的命令的搜索路徑。PATH變數中的內容:
/home/hadoop/bin:/home/hadoop/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
通常這一類目錄下放的都是可執行文件,當我們在 Shell 中執行一個命令時,系統就會按照 PATH 中設定的路徑按照順序依次到目錄中去查找,如果存在同名的命令,則執行先找到的那個。
如何做到想使用系統命令一樣執行自己創建的腳本文件或者程序呢?那就要將命令所在路徑添加到PATH環境變數了。注意,要用絕對路徑。
$ PATH=$PATH:/home/busy/text
推薦閱讀:
※ubuntu下搭建自己的伺服器
※Linux是否有類似於IIS統一管理網站的工具?
※安裝VMware12,配置ubuntu系統
※平時寫linux下c有哪些好用的查函數軟體?
※GNU代表了什麼?