Zsh Login-Shell in Ubuntu

3

Ich habe eine Neuinstallation von Ubuntu Natty. Ich habe meine Shell in zsh geändert.

Wenn ich mich anmelde, scheint meine ~ / .zprofile-Datei nicht zu quellen. Wird gnome nicht in einer Login-Shell Ihrer gewählten Shell ausgeführt? Ist es immer sh?

Ich habe in / etc / gdm gesucht und festgestellt, dass gdm immer ~ / .profile enthält, wenn es existiert, aber ich konnte nichts finden, was darauf hindeutet, dass es etwas spezielles für meine ausgewählte Shell gibt.

Kann mir jemand helfen zu verstehen, was hier los ist?

Jeremy Cantrell
quelle

Antworten:

1

GDM (Version 2, ich bin mir nicht sicher über 3) liest nur /etc/profile. ~/.profile. /etc/xprofile, und ~/.xprofile. Alles läuft mit sh.

Eine mögliche Lösung ist zu verwenden ~/.xprofile und beziehe es von deinem ~/.zprofile wenn Sie das Material nicht in mehreren Dateien duplizieren möchten. Erinnere dich daran ~/.xprofile stammt aus Sch Sie können also keine verwenden zsh Syntax oder Befehle darin.

Arrowmaster
quelle
1

Die Login-Shell wirkt sich nur auf Sitzungen im Textmodus aus (d. H. Wenn Sie Ihr Kennwort im Textmodus eingeben oder wenn Sie sich remote anmelden), nicht auf Sitzungen im Grafikmodus (d. H. Wenn Sie Ihr Kennwort in die GUI eingeben).

Um eine einzige Datei für die Definition der Anmeldezeit zu haben, geben Sie alles ein ~/.profileund diese aus ~/.zprofile. Ein einfacher Weg ist es, Ihre ~/.zprofile enthalten die einzelne Zeile

emulate sh -c '~/.profile'

Gdm arrangiert das Laden ~/.profile Als Teil des Sitzungs-Setups sind Sie also vollständig abgesichert.

Siehe auch Zsh schlägt nicht ~ / .profile .

Gilles
quelle
KDM führt die Sitzung tatsächlich in der von Ihnen gewählten Shell aus, sodass alles, was Sie erwarten würden, funktioniert. In diesem Sinne denke ich, dass GDM das "Falsche" macht.
Jeremy Cantrell
@Jeremy Nachdem ich mir KDM angesehen habe, kann ich dir versichern, dass es "den falschen Weg" macht, auch wenn es eine gute Idee sein könnte.
Arrowmaster
Was ist deine Rechtfertigung dafür?
Jeremy Cantrell