Jak zmienić domyślną powłokę w instancji AWS?

121

Chcę zmienić moją powłokę z domyślnej powłoki bash na zsh w moich instancjach Amazon EC2. Jak mam to zrobić? Dzięki!

Shripad Krishna
źródło

Odpowiedzi:

159

Spróbuj użyć chshpolecenia.

na przykład

chsh -s / bin / zsh

Możesz potwierdzić lokalizację zsh, uruchamiając whereis zshlub alternatywnie po prostu uruchom

chsh -s $ (który zsh)

Jeśli chcesz zmienić powłokę dla konta użytkownika innego niż to, na które jesteś zalogowany, musisz uruchomić ją jako root, więc aby zmienić powłokę Johna, wykonaj:

sudo chsh -s $ (które zsh) John

Pamiętaj, że musisz się wylogować i zalogować ponownie, aby zmiana zaczęła obowiązywać. Jeśli używasz Gnome lub innego menedżera okien, musisz również całkowicie się wylogować z tej sesji - samo zamknięcie i otwarcie terminala jest niewystarczające.

John T.
źródło
Próbowałem tego, ale z użytkownikiem root !! Mój obraz AMI ma raczej Ubuntu niż root. Musiałem przełączyć się na użytkownika Ubuntu, aby zmienić powłokę! Dzięki za podpowiedź :)
Shripad Krishna
3
@Paddy, jeśli jesteś rootem, możesz go zmienić dla innego użytkownika, uruchamiając chsh -s /bin/zsh username.
John T
Super :) O wiele łatwiej. Dziękuję też za te informacje.
Shripad Krishna
3
@ We are the World: Musisz dodać / usr / local / bin / zsh jako nową linię do / etc / shells
Nate Parsons
5
Używam nieco innej wersjisudo chsh -s $(which zsh) $(whoami)
SergioAraujo
20

Otwórz / etc / passwd:

sudo vi /etc/passwd

Znajdź linię ze swoją nazwą użytkownika:

username:x:1634231:100:Your Name:/home/username:/bin/bash

i zamień bash na zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

Wyloguj się i zaloguj ponownie, aby zmiany odniosły skutek.

Georgii Oleinikov
źródło
6
Lepiej jest używać chsh, ale jeśli naprawdę chcesz edytować /etc/passwdręcznie, przynajmniej użyj vipwpolecenia.
Valmiky Arquissandas
Nie mam chsh na moim komputerze. Z jakiegoś dziwnego powodu mój plik / etc / passwd jest regularnie zastępowany przez domyślny. Czy wiesz, dlaczego tak się dzieje?
Georgii Oleinikov
Nie dotykaj / etc / passwd. Są lepsze sposoby na zrobienie tego, które nie wymagają bałaganu za pomocą narzędzia passwd!
Andrew
6

Przybyłem tutaj, aby dodać więcej dodatkowych informacji. Jeśli masz problemy podczas instalacji zsh w Amazon Linux AMI przez Amazon, na przykład podczas uruchamiania:

sudo chsh $(which zsh) : // chsh command not found

Następnie powinieneś zainstalować util-linux-user :

sudo yum install util-linux-user

(domyślnie Amazon Linux AMI ma tylko lchsh , ale nie mogę zrozumieć, jak to działa).

Następnie uruchom następujące polecenie, powinno działać:

sudo chsh -s $(which zsh) $(whoami)
Chau Giang
źródło
5

Na Ubuntu, wewnątrz terminala GNOME, wprowadzanie zmian za pomocą chsh nie przyniesie oczekiwanego efektu ...

Aby rozwiązać ten problem, wykonaj następujące czynności:

  • Kliknij terminal prawym przyciskiem myszy
  • Profile -> Preferencje profilu
  • Na karcie „Tytuł i polecenie” zaznacz „Uruchom niestandardowe polecenie zamiast mojej powłoki” i podaj ścieżkę do pliku wykonywalnego zsh.
  • Uruchom ponownie terminal.

Pokój.

PS Nie mam 10 reputacji do publikowania zdjęć, więc wszystkie instrukcje tekstowe. :)

Ben
źródło
Masz teraz przedstawiciela, którego potrzebujesz. : P
pradyunsg
0

jedna linia

sudo chsh -s $(which zsh) $(whoami)

Dodatkowe informacje: po tym prawdopodobnie będziesz chciał to zrobić

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc 

znajdź wtyczki = (git) Dołącz do zsh-autosugestie i podświetlanie składni zsh do wtyczek () w ten sposób

wtyczki = (git zsh-autosugestie szybkie podświetlanie składni)

source ~/.zshrc
OWADVL
źródło