.bashrc

Post Reply
Message
Author
Erik

.bashrc

#1 Post by Erik »

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

Jochen

Re: .bashrc

#2 Post by Jochen »

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

Erik

Re: .bashrc

#3 Post by Erik »

Doch shell ist vorhanden.

Und was macht genau der code da unten ?
bzw. wo muss das hin ?

Bin noch nicht so linux bewandert !

Erik

Re: .bashrc

#4 Post by Erik »

Ich meine die Shell ist eingestellt!

Jochen

Re: .bashrc

#5 Post by Jochen »

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

Erik

Re: .bashrc

#6 Post by Erik »

Super Erklärung, danke !

Zur Info, es hat auch funktioniert, habs in die .profile geschrieben und das Problem ist somit
erledigt.

Danke Nochmal

Post Reply