Jak można zmienić domyślną powłokę? Obecnie env
polecenie mówi:
SHELL=/bin/tcsh
i chcę to zmienić na Bash.
Jak można zmienić domyślną powłokę? Obecnie env
polecenie 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/bash
teraz. 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 -s
opcji
/etc/passwd
, ale nie sprawdziłem go dwukrotnie.
exec /bin/bash
się ~/.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
)
exit
bash? Czy wylogujesz się bezpośrednio z serwera, czy po prostu wyjdziesz z basha i przejdziesz do sh, a inny exit
wymagany 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 bash
przed 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
chsh
polecenie jest częścią util-linux
pakietu; i chsh -s $(which bash) $USER
powinien dać wynik taki sam jak powyżej.
-l
opcja: „wydrukuj listę powłok”.
chsh -s /bin/bash username
dla mnie
/etc
Prawdopodobnie powinieneś mieć gdzieś szkielet /etc/skeleton
, lub sprawdzić ustawienia domyślne, prawdopodobnie /etc/default
czy coś. Są to skrypty definiujące standardowe zmienne środowiskowe ustawiane podczas logowania.
Jeśli dotyczy to tylko Twojego konta: sprawdź (ukryty) plik ~/.profile
i ~/.login
. Lub wygeneruj je, jeśli nie istnieją. Są one również oceniane przez proces logowania.
/etc/default/useradd