chsh -s / usr / bin / zsh nie działa


24

Próbuję trwale zmienić moją powłokę na zsh za pomocą chshpolecenia, ale to nie działa.

Zsh jest zainstalowany (przez apt) i działa dobrze, gdy wywołuję go bezpośrednio z terminala zachęty bash. Ale nie mogę domyślnie załadować zsh do terminali, a chsh robi coś dziwnego:

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

Wygląda na to, że chsh poprawnie zmienił / etc / passwd, ale nie zmienną env zmiennej $ SHELL. W związku z tym nowe terminale zawsze zaczynają się od bash, a nie zsh.

Nie jestem pewien, gdzie szukać rozwiązania tego problemu. .bashrc, nawet jeśli nie jest wywoływany, dopóki nie zostanie określona powłoka? Każda pomoc doceniona.


1
Nie możesz zmienić powłoki po ponownym zalogowaniu w systemie?
vine_user

Sprawdź tę odpowiedź .
Pablo A

Odpowiedzi:


34

Musisz wylogować się ponownie, aby zmiany odniosły skutek. Powłoka zdefiniowana w pliku / etc / passwd jest twoją powłoką logowania :-) Więc musisz się w tym celu zalogować.


2
Dzięki. Jestem tak przyzwyczajony, że mogę wprowadzać zmiany w Linuksie bez restartu, po prostu nie przyszło mi to do głowy.
Kurtosis

Musiałem faktycznie zrestartować komputer, aby zadziałał - myślę, że w jakiś sposób łączyło mnie to z istniejącą sesją powłoki.
Chris Kimpton

Podczas korzystania z połączenia ssh, nawet jeśli wyjdziesz, serwer może nie zamknąć połączenia i powłoki do końca. Może być konieczne zabicie procesów (ssh i sh) należących do użytkownika. (Miałem ten problem i łatwo było znaleźć rozwiązanie, ale mimo to musiałem przejść do tego postu, aby zobaczyć, że muszę się wylogować.)
John Hamilton,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.