Jeśli nie możesz uruchomić, chshponieważ nie masz uprawnień administratora, porozmawiaj z kimś, kto ma uprawnienia .
Najprawdopodobniej nie można użyć go chshjako użytkownika innego niż root, ponieważ używany system jest skonfigurowany tak, chshaby nie działał, na przykład ponieważ system używa NIS lub LDAP, a nie tylko /etc/passwdpliku. A może administrator twojego systemu chce po prostu zachować kontrolę.
Procedura zmiany powłoki zależy od zasad organizacji. Może istnieć polecenie lokalne, które robi to, co chshzwykle. Lub może być konieczne przesłanie zgłoszenia do pomocy technicznej z prośbą o zmianę powłoki.
Większość pozostałych odpowiedzi jest dobra, ale jeśli administratorzy reagują dość szybko, możesz nie chcieć kłopotać się włamywaniem skryptów startowych. Prawdopodobnie zsh -lpo zalogowaniu wywołam ręcznie, dopóki administrator nie zacznie aktualizować mojego konta.
Kolejna rzecz, o której należy pamiętać: czasami różne powłoki mogą korzystać z tych samych plików startowych. Na przykład, sha bashmoże obie wykonać $HOME/.profile, a cshi tcshmoże zarówno wykonać $HOME/.logini $HOME/.cshrc(choć powłoka specyficzne pliki startowe, takie jak .bashrc, .bash_profilei .tcshrcmoże zastąpić tych). Jeśli twoją domyślną powłoką jest /bin/cshi chcesz użyć /bin/tcsh, zaktualizowanie twojego .logininvoke /bin/tcsh -lmoże stworzyć nieskończoną pętlę. zshnie zdarza się bashuruchamiać plików startowych specyficznych dla użytkownika, więc nie stanowi to problemu.
Większość muszle ustawić zmienne, które identyfikują który Shell używasz ( $BASH_VERSION, $tcsh, $ZSH_VERSION). Jeśli zamierzasz napisać kod startowy, aby wywołać preferowaną powłokę, nie jest złym pomysłem, aby umieścić go w iftak, aby był wykonywany tylko wtedy, gdy nie korzystasz już z tej powłoki. Za pomocą kodu z odpowiedzi konsoli konsolebox :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(Dodana komplikacja sprawdzania "${ZSH_VERSION:-unset}"zamiast tylko "$ZSH_VERSION"pozwala na to, że już to zrobiłeś set -o unset, opcję, która powoduje, że odwołanie do niezdefiniowanej zmiennej jest błędem).
zshw.bashrcpliku. Wyloguj się i zaloguj i gotowe!