Ich habe mir mit einem Kollegen einen Root-Server gemietet und haben folgendes Problem.
Wir haben das Gefühl, als ob die .bashrc nicht ausgeführt wird, einige Programme laufen erst nachdem ich
bash eingebe !
Kann mir dafür jemand eine Erklärung und evtl. Lösung geben
Rgds
.bashrc
Re: .bashrc
Vielleicht ist eine Shell eingestellt? Ein Blick in die /etc/passwd (oder ein ps) sagen da was aus. Ansonsten könnte ein <blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
if [ -x $HOME/.bashrc ] ; then
. $HOME/.bashrc
fi</font><hr></pre></blockquote>auch weiterhelfen.
Jochen
if [ -x $HOME/.bashrc ] ; then
. $HOME/.bashrc
fi</font><hr></pre></blockquote>auch weiterhelfen.
Jochen
Re: .bashrc
Doch shell ist vorhanden.
Und was macht genau der code da unten ?
bzw. wo muss das hin ?
Bin noch nicht so linux bewandert !
Und was macht genau der code da unten ?
bzw. wo muss das hin ?
Bin noch nicht so linux bewandert !
Re: .bashrc
Argh, man sollte nicht in Hast tippen. Ich meinte natürlich, ob eine <i>andere</i> Shell als die Bash eingestellt sein könnte. Ist zwar eher selten, aber möglich. Ansonsten gehört das Skriptchen in die .bash_profile.
Die bash geht wie folgt vor: Login-Shells lesen die /etc/profile, dann das erste lesbare File mit Namen ~/.bash_profile, ~/.bash_login und ~/.profile, in dieser Reihenfolge. Aber wenn die bash unter dem Namen "sh" aufgerufen wird (/bin/sh ist nur ein Link auf /bin/bash unter Linux), wird nur die /etc/profile und die ~/.profile bearbeitet. Wenn also root als Login-Shell "/bin/sh" in der /etc/passwd stehen hat, dann arbeitet root zwar mit der bash, aber die ~/.bash_profile und ~/.bash_login werden nie ausgeführt, auch wenn sie existieren.
Die ~/.bashrc wird ausgeführt, wenn eine interaktive Shell gestartet wird, die nicht Login-Shell ist (wie in einem xterm beispielsweise). Das Auslesen der Datei muss bei einer Login-Shell also von Hand gemacht werden, dazu ist das Skriptchen oben da. Baue es in die ~/.bash_profile oder ~/.profile von root ein, dann wird auch dort die .bashrc verarbeitet.
Und zu guter Letzt eine winzige Korrektur des Skripts:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
</font><hr></pre></blockquote>So lautet zumindest das Fragment bei mir in der .bash_profile; das Execute-Bit muss nicht gesetzt sein, daher sollte man es auch nicht prüfen.
Jetzt hoffentlich etwas klarer?
Jochen
Die bash geht wie folgt vor: Login-Shells lesen die /etc/profile, dann das erste lesbare File mit Namen ~/.bash_profile, ~/.bash_login und ~/.profile, in dieser Reihenfolge. Aber wenn die bash unter dem Namen "sh" aufgerufen wird (/bin/sh ist nur ein Link auf /bin/bash unter Linux), wird nur die /etc/profile und die ~/.profile bearbeitet. Wenn also root als Login-Shell "/bin/sh" in der /etc/passwd stehen hat, dann arbeitet root zwar mit der bash, aber die ~/.bash_profile und ~/.bash_login werden nie ausgeführt, auch wenn sie existieren.
Die ~/.bashrc wird ausgeführt, wenn eine interaktive Shell gestartet wird, die nicht Login-Shell ist (wie in einem xterm beispielsweise). Das Auslesen der Datei muss bei einer Login-Shell also von Hand gemacht werden, dazu ist das Skriptchen oben da. Baue es in die ~/.bash_profile oder ~/.profile von root ein, dann wird auch dort die .bashrc verarbeitet.
Und zu guter Letzt eine winzige Korrektur des Skripts:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
</font><hr></pre></blockquote>So lautet zumindest das Fragment bei mir in der .bash_profile; das Execute-Bit muss nicht gesetzt sein, daher sollte man es auch nicht prüfen.
Jetzt hoffentlich etwas klarer?
Jochen
Re: .bashrc
Super Erklärung, danke !
Zur Info, es hat auch funktioniert, habs in die .profile geschrieben und das Problem ist somit
erledigt.
Danke Nochmal
Zur Info, es hat auch funktioniert, habs in die .profile geschrieben und das Problem ist somit
erledigt.
Danke Nochmal