On 03.11.05 16:16:27, André Bischof wrote: > Harald Weidner schrieb: > >>Das ganze übrigens über eine ssh-Shell, ich glaube man unterscheidet da ja > >>auch zwischen "login-Shells" und "interaktiven Shells" (das wären dann die > >>lokalen?), ist das richtig? > >Diesen Unterschied gibt es, aber mit Umlauten hat er allenfalls am > >Rande zu tun. Eine Login-Shell unterscheidet sich von einer nicht-login > >Shell im Wesentlichen dadurch, dass bei ersterer die /etc/profile > >und ~/.profile bzw. ~/.bash_profile eingelesen werden. In der Manual- > >Page zur bash kann man unter dem Stichwort INVOCATION mehr dazu > >nachlesen. > > So hatte ich das auch halbwegs verstanden, und ich dachte, dass eine dieser > Dateien dann die /etc/environment sourced, die Angaben zu den Lokalen enthält > - und hier sah ich den Zusammenhang mit den Umlauten.
/etc/environment wird durch ein PAM-Modul eingelesen (naemlich pam_env), normalerweise beim Login. > Sprachlich ist mir der Unterschied der Shell-Arten nicht klar, da ich mich > doch > in beiden einloggen muss - ist also eine Login-Shell quasi eine > "Remote-Shell" > und eine nicht-login-Shell eine lokale? Eine Remote-Shell ist einfach nur eine Shell die nicht auf dem Lokalen Rechner geoeffnet wurde. Die kann dabei ebenso eine login-shell sein, wie eine nicht-login shell oder eine interaktive oder nicht-interaktive und beliebige Kombinationen aus diesen. Lokal gibts ebenso alle Kombinationen. Beim Einloggen mittels Displaymanager (z.B. gdm oder kdm) wird (i.A.) eine nicht-interaktive login-Shell gestartet (was bedeutet die profile-Dateien werden eingelsen, die bashrc-Dateien nicht). Beim Login auf einem tty mittels des login-Programms welches dort nach dem Starten laeuft wird normalerweise eine interaktive login-shell gestartet. Du kannst nun aus einer laufenden Shell eine neue login-shell starten, indem du bash -l aufrufst, damit werden dann die profile-Dateien neu eingelesen und die bashrc ebenso da es eine interaktive Shell wird. Nicht-Interaktive Shells kannst du starten indem du direkt ein auszufuehrendes Programm angibts, z.B. so: bash -c "ls" dabei wird eine nicht-interaktive nicht-login Shell gestartet die "ls" ausfuehrt und sich dann beendet. Mit bash -l -c "ls" hast du eine nicht-interaktive login-shell die ls ausfuehrt. Das alles steht auch in man bash, allerdings verstreuter und vor allem in English... Andreas -- Hope that the day after you die is a nice day. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)