最近由於重裝了系統,因此須要從新配置java環境變量,原本打算在/etc/environment中配置的,可是配置好之後重啓發現登陸不進圖形界面了,ctrl+alt+F2~6均可以進入命令行,可是在命令行中嘗試用sudo su切換到root用戶又會失敗,查了一些資料後發現是由於environment中不要用export來配環境變量,這樣會致使登陸失敗的問題,並且由於配java路徑的時候咱們在原來的PATH前面添加了一些路徑,致使後面的/bin和/usr/bin等目錄都找不到了,所以也就沒法找到sudo命令。java
解決辦法以下:linux
ctrl+alt+F2~6進入命令行,而後用普通用戶登陸,使用絕對路徑去調用sudo命令,如:shell
/usr/bin/sudo /usr/bin/vi /etc/environment
打開以後把以前添加的環境變量配置都刪了,還原爲系統原來的樣子。而後在/etc/profile的末尾添加環境變量的配置:
bash
export JAVA_HOME=/home/joey/softwares/jdk1.7.0_79 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
這樣就配置好java了。另外,這裏也備註一下linux各個配置文件被調用的狀況:spa
(1)/etc/enviroment 是系統的環境變量。命令行
(2)/etc/profile: 是全部用戶的環境變量。當用戶第一次登陸時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。code
(3)/etc/bashrc: 爲每個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取。繼承
(4)~/.bash_profile: 每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時,該文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件。class
(5)~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登陸時以及每次打開新的shell時,該該文件被讀取。登錄
(6) ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件. 另外,/etc/profile中設定的變量(全局)的能夠做用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承 /etc/profile中的變量,他們是」父子」關係。
(7)~/.bash_profile 是交互式、login 方式進入 bash 運行的~/.bashrc 是交互式 non-login 方式進入 bash 運行的一般兩者設置大體相同,因此一般前者會調用後者。