昨天晚上ubuntu突然無法登錄了,百度了一下,說是path路徑的問題,因爲ubuntu進入桌面首先要讀取path環境變量,在ubuntu中設置環境變量的地方有兩個,一個是/etc/environment,一個是/etc/profile,前者是設置系統變量,後者是設置用戶變量(可能是這樣),我想了一想,在出現這個問題之前,我在/etc/profile中配置了jdk和android的環境變量,可能是因此而出問題了。
由於進不去桌面,所以我在登錄界面按ctrl+alt+f1進入命令的界面,輸入用戶名和密碼,想要查看profile文件
cat /etc/profile
由於path出問題,所以cat這些命令調用的程序都要自己手動指定路徑
/bin/cat /etc/profile
幸好ubuntu能夠自動提示命令所在的路徑,不然對於我這個新手,找到cat命令的路徑還要費一番功夫
打開了profile後
代碼:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
#set java environment
# 注意bestupon 要替換成你的用戶名
JAVA_HOME=/opt/jdk1.7.0_45
export JRE_HOME=/opt/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#set java environment
export PATH=~/bin:$PATH
export PATH=~/java/android-sdk-linux/platform-tools
問題就出在了最後一句,export命令是設置path用的,而這最後一句相當於是給PATH重新賦值,而不是追加PATH
,系統用到PATH變量中的其他路徑被覆蓋,所以無法登錄
把最後一句改成:
export PATH=~/java/android-sdk-linux/platform-tools:$PATH
就可以了
在bash中可以使用vi來編輯,由於我對vi使用的不熟悉,所以編輯這段代碼用了好長時間,呵呵,vi是linux所有發行版本自帶的,所以要好好學習啊