歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 讓Unix環境變量永遠有效

讓Unix環境變量永遠有效

日期:2017/2/28 16:46:00   编辑:Linux教程

在Unix操作系統中可以在shell中通過set命令給環境變量賦值。但是如果采用這種方式對環境變量進行賦值的話,當重新啟動操作系統或者重新啟動這個會話的話,原先設置的環境變量就會丟失。也就是說,如果在shell會話中設置環境變量,這只對當前的會話有效。當系統工程師退出這個會話、下次重新登陸時,操作系統又會采用默認值。但是大部分時候系統工程師可能希望這些環境變量能夠永久生效。此時就需要把這些環境變量定義在啟動腳本中。

  啟動腳本是用戶登錄到Unix操作系統中第一個執行的程序。通常情況下,每個shell都需要有一個啟動腳本,以用來初始化用戶的使用環境。筆者現在就已profile啟動腳本為例,談談如何通過這個腳本文件讓環境變量永遠有效,以及在配制過程中需要注意的地方。

  一、.profile與profile 的關系。

  通常情況下,在為每個用戶創建帳號的時候,操作系統會在這個用戶帳號的主目錄下面創建一個啟動腳本(.profile)文件。默認情況下,這個賬戶的環境變量都是保存在這個文件中。也就是說,不同的用戶有不同的啟動腳本,可以設置不同的環境變量。不同用戶之間的環境變量是不共享的。

  但是在/etc目錄下面還有一個profile文件。這個文件跟用戶目錄下的profile文件類似,也是一個啟動腳本,也可以用來保存環境變量的設置。通常情況下,操作系統啟動的時候,是先執行這個腳本文件,然後再去執行用戶目錄下的.profile腳本文件。那麼這兩個啟動腳本文件,對於環境變量的設置有什麼不同呢?在談這個不同之前,大家先來回顧一下在Windows操作系統中設置環境變量的時候,有“用戶環境變量”與“系統環境變量”的區別。在用戶環境變量中設置的環境變量,只對這個用戶有效。而在系統環境變量中設置的環境變量,在對登陸到這個操作系統的所有用戶都有效。其實在Unix操作系統中,這個兩個腳本文件對於環境變量的設置,跟Windows操作系統差不多。在/etc/profile中設置的環境變量,是所有用戶在登陸時都必須采用的環境變量,就相當於Windows操作系統中的系統環境變量,供所有用戶使用。而在用戶主目錄下的profile啟動腳本,則只對當前用戶有效,這相當於Windows操作系統中的用戶環境變量。

  所以在環境變量設置過程中,如果系統工程師認為所有用戶都需要這個環境變量,那麼就需要在/etc/profile腳本文件中進行設置。相反,如果只有某個特殊的用戶需要使用這個環境變量的話,那麼就只對當前用戶進行設置。如在Unix操作系統上部署Oracle數據庫系統時,往往是創建一個Oracle用戶。然後在這個用戶下部署Oracle操作系統。同時必須給Oracle用戶設置一個$ORACLE_HOME環境變量,否則的話,系統無法正常啟動Oracle操作系統。此時該在什麼地方設置這個環境變量呢?一般來說,在/etc/profile下設置環境變量的話,也未嘗不可。因為在這個地方設置環境變量的話,對全體用戶都有效,當然也包括Oracle用戶了。但是這麼操作的話,會導致一個問題。就是各個用戶下跑的應用程序可能會發生相互干擾的情況。而如果只在Oracle用戶下設置$ORACLE_HOME環境變量,那麼對於其他用戶來說是不起作用的。這就可以保障在Unix服務器操作系統上跑的各個應用相對來說是獨立的。

  所以系統工程師在設置環境變量的時候,如果只是個別用戶使用的,那麼最好是在用戶主目錄下的啟動腳本文件中進行設置。只有那些對於全局用戶都有影響的環境變量,才在/etc/profile腳本文件中進行設置,如采用的語言等等。

Copyright © Linux教程網 All Rights Reserved