Jak można zmienić domyślną powłokę? Obecnie envpolecenie mówi:
SHELL=/bin/tcsh
i chcę to zmienić na Bash.
Jak można zmienić domyślną powłokę? Obecnie envpolecenie mówi:
SHELL=/bin/tcsh
i chcę to zmienić na Bash.
Odpowiedzi:
Wypróbuj polecenie linux chsh.
Szczegółowe polecenie to chsh -s /bin/bash. Poprosi Cię o podanie hasła. Domyślna powłoka logowania to /bin/bashteraz. Musisz się wylogować i zalogować ponownie, aby zobaczyć tę zmianę.
Ze strony podręcznika cytowano:
Polecenie chsh zmienia powłokę logowania użytkownika. Określa nazwę początkowej komendy logowania użytkownika. Normalny użytkownik może zmienić powłokę logowania tylko dla swojego konta, administrator może zmienić powłokę logowania dla dowolnego konta
To polecenie zmieni trwale domyślną powłokę logowania.
Uwaga: jeśli twoje konto użytkownika jest zdalne, na przykład przy uwierzytelnianiu Kerberos (np. Enterprise RHEL), nie będziesz mógł z niego korzystać chsh.
chsh: can only change local entries; use ypchsh instead. Zatem ypchsh nie ma żadnej -sopcji
/etc/passwd, ale nie sprawdziłem go dwukrotnie.
exec /bin/bashsię ~/.profile, co pozwoliło mi, aby zalogować się bezpośrednio do bash bez dokonywania jakichkolwiek zmian na serwerze. (Oryginalna domyślna powłoka była właśnie /bin/sh)
exitbash? Czy wylogujesz się bezpośrednio z serwera, czy po prostu wyjdziesz z basha i przejdziesz do sh, a inny exitwymagany do wylogowania z serwera?
Możesz zmienić plik passwd bezpośrednio dla konkretnego użytkownika lub użyć poniższego polecenia
chsh -s /usr/local/bin/bash username
Następnie wyloguj się i zaloguj
which bashprzed wywołaniem powyższego polecenia; Twój przebieg może się różnić w zależności od lokalizacji. W moim przypadku znaleziono go w/bin/bash
chshpolecenie jest częścią util-linuxpakietu; i chsh -s $(which bash) $USERpowinien dać wynik taki sam jak powyżej.
-lopcja: „wydrukuj listę powłok”.
chsh -s /bin/bash usernamedla mnie
/etcPrawdopodobnie powinieneś mieć gdzieś szkielet /etc/skeleton, lub sprawdzić ustawienia domyślne, prawdopodobnie /etc/defaultczy coś. Są to skrypty definiujące standardowe zmienne środowiskowe ustawiane podczas logowania.
Jeśli dotyczy to tylko Twojego konta: sprawdź (ukryty) plik ~/.profilei ~/.login. Lub wygeneruj je, jeśli nie istnieją. Są one również oceniane przez proces logowania.
/etc/default/useradd