1.安裝完oracle后,用終端登錄,因為不是直接用oracle用戶登錄的,所以我就執行
$ su oracle
切換成oracle用戶之后,執行“echo $ORACLE_HOME”,結果顯示空
原因:如果直接su oracle,
shell會去讀取此用戶(oracle用戶)home目錄下的隱藏文件,如果是bash的話,為 .bashrc。我查了oracle用戶的 .bashrc沒有配置$ORACLE_HOME,/etc/bashrc也沒有配置$ORACLE_HOME,讀取出來就是空。
我用oracle用戶登錄linux,執行“echo $ORACLE_HOME”,結果顯示就不為空了。
下面是.bashrc文件和profile文件的一些簡單介紹:
linux給大家提供了自動設置環境變量的方法,那就是修改 .bashrc 文件。一般說來,有兩個文件可以提供這種“進入系統時自動設置”的功能,一個是 /etc/bashrc,另一個是 ~/.bashrc。其中/etc/bashrc是被每個用戶執行的,而~/.bashrc只被當前用戶執行。所以/etc/bashrc只有root用戶能更改,而~/.bashrc是各個用戶私有的文件。 "~"指的是用戶的home目錄。
這樣,各個用戶有自己獨立的".bashrc"文件,可以根據需要自行更改,而不會互相干擾。 /etc/bashrc文件則是共享的,整個Linux中只有一份。一般來說,用戶的"~/.bashrc"開頭都會調用/etc/bashrc,因此更改/etc/bashrc會影響到所有用戶,這個文件一般是root用戶管理的。
提問:Linux系統中/etc/profile與/etc/bashfile文件作用的區別?
(1)/etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。他是為用戶定制系統定制環境變量。
(2)/etc/bashrc: 是為每一個bash shell的用戶定制環境變量,當bash shell被打開時,該文件被讀取。~/bashrc是為某個bash shell用戶定制環境變量
/etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.
並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile:每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該
文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.
~/.bashrc:該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該
該文件被讀取.
2.oracle安裝完成之后,用普通用戶登錄終端,再用su命令切換到oracle用戶,執行sqlplus命令,提示:bash: sqlplus: command not found...
原因同1所示。直接用oracle用戶登錄,就能識別sqlplus命令了。
另外注意一點:不要以為root命令能識別所有命令,例如root用戶就不能識別這個sqlplus,原因也一樣的。
3.oracle安裝完成之后,用普通用戶登錄終端,再用su命令切換到oracle用戶,執行lsnrctl命令,同樣提示:bash: lsnrctl: command not found...
原因也如1所說。