配置bash.
1?問題由來:(參見)
我在FC5下安裝JDK1。5時建立了兩個靜態鏈接,
#cd /usr/bin \\
#ln -s -f /usr/local/jdk1.5.0_05/jre/bin/java \\
#ln -s -f /usr/local/jdk1.5.0_05/bin/javac\\
ln?命令的?-f?參數的作用是強制覆蓋原來已經存在的?/usr/local/java?靜態鏈接文件。由于?jdk?目錄下的?bin?文件夾內容可以代替?/jdk1.5.0_02/jre/bin?的內容,因而也可以直接使用?/jdk1.5.0_02/bin?這個路徑。\
之后當我打開besh時出現下列錯誤提示
[huan@Huan-Linux ~]$ su
口令:
bash: \: command not found
bash: \: command not found
bash: \: command not found
bash: \: command not found
bash: export: `\': not a valid identifier
[root@Huan-Linux huan]#?
2?分析問題
??????????在普通用戶huan下登錄shell并不會出現上述錯誤提示,root帳戶下卻會出現,初步斷定是環境變量配置的問題,并且不同權限用戶的shell怕配置文件可能不同。
3?驗證問題所在
先看一下關于bash的配置文檔
/etc/bashrc?存有整個系統的別名和功能;
/etc/profile?存有整個系統的環境參數和啟動程式;
$HOME/.bashrc?存有用戶的的別名和功能;每次打開新的?shell?時,要執行的命令
$HOME/.bash_profile?存有用戶的環境參數和啟動程式;
$HOME/.bash_logout?存有退出系統時的結束方式;
$HOME/.inputrc?存有主要綁定數值和其他位元數值;
???
來到/home/huan下
ls -a
cat .bashrc
顯示如下:
[huan@Huan-Linux ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
????????. /etc/bashrc
fi
# User specific aliases and functions
而在/root下
ls -a
cat .bashrc
顯示如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
JAVA_HOME=/usr/local/jdk1.5.0_05 \\
JAVA_BIN=/usr/local/jdk1.5.0_05/bin \\
PATH=$PATH:$JAVA_HOME/bin \\
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \\
export JAVA_HOME JAVA_BIN PATH CLASSPATH \\
# Source global definitions
if [ -f /etc/bashrc ]; then
????. /etc/bashrc
fi
?從兩者對比可以看出來,在boot啟動shell時會多執行關于java環境變量的配置,而錯誤提示正是由于沒有正確找到java路徑引起的。
??
4問題解決
?解決方法很簡單,就是修改.bashrc?將其中的\\全部去掉。
本文轉自 abner110 51CTO博客,原文鏈接:http://blog.51cto.com/abner/147442,如需轉載請自行聯系原作者
我在FC5下安裝JDK1。5時建立了兩個靜態鏈接,
#cd /usr/bin \\
#ln -s -f /usr/local/jdk1.5.0_05/jre/bin/java \\
#ln -s -f /usr/local/jdk1.5.0_05/bin/javac\\
ln?命令的?-f?參數的作用是強制覆蓋原來已經存在的?/usr/local/java?靜態鏈接文件。由于?jdk?目錄下的?bin?文件夾內容可以代替?/jdk1.5.0_02/jre/bin?的內容,因而也可以直接使用?/jdk1.5.0_02/bin?這個路徑。\
之后當我打開besh時出現下列錯誤提示
[huan@Huan-Linux ~]$ su
口令:
bash: \: command not found
bash: \: command not found
bash: \: command not found
bash: \: command not found
bash: export: `\': not a valid identifier
[root@Huan-Linux huan]#?
2?分析問題
??????????在普通用戶huan下登錄shell并不會出現上述錯誤提示,root帳戶下卻會出現,初步斷定是環境變量配置的問題,并且不同權限用戶的shell怕配置文件可能不同。
3?驗證問題所在
先看一下關于bash的配置文檔
/etc/bashrc?存有整個系統的別名和功能;
/etc/profile?存有整個系統的環境參數和啟動程式;
$HOME/.bashrc?存有用戶的的別名和功能;每次打開新的?shell?時,要執行的命令
$HOME/.bash_profile?存有用戶的環境參數和啟動程式;
$HOME/.bash_logout?存有退出系統時的結束方式;
$HOME/.inputrc?存有主要綁定數值和其他位元數值;
???
來到/home/huan下
ls -a
cat .bashrc
顯示如下:
[huan@Huan-Linux ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
????????. /etc/bashrc
fi
# User specific aliases and functions
而在/root下
ls -a
cat .bashrc
顯示如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
JAVA_HOME=/usr/local/jdk1.5.0_05 \\
JAVA_BIN=/usr/local/jdk1.5.0_05/bin \\
PATH=$PATH:$JAVA_HOME/bin \\
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \\
export JAVA_HOME JAVA_BIN PATH CLASSPATH \\
# Source global definitions
if [ -f /etc/bashrc ]; then
????. /etc/bashrc
fi
?從兩者對比可以看出來,在boot啟動shell時會多執行關于java環境變量的配置,而錯誤提示正是由于沒有正確找到java路徑引起的。
??
4問題解決
?解決方法很簡單,就是修改.bashrc?將其中的\\全部去掉。
本文轉自 abner110 51CTO博客,原文鏈接:http://blog.51cto.com/abner/147442,如需轉載請自行聯系原作者
總結
- 上一篇: 动态表单数据库设计
- 下一篇: 使用openstack构建私有云计算平台