Nie lubię przepisywać ryb za każdym razem, gdy uruchamiam terminal. Chcę fishdomyślnie włączyć. Jak ustawić skorupkę ryby jako domyślną powłokę na komputerze Mac?
Nie lubię przepisywać ryb za każdym razem, gdy uruchamiam terminal. Chcę fishdomyślnie włączyć. Jak ustawić skorupkę ryby jako domyślną powłokę na komputerze Mac?
Odpowiedzi:
Dotyczą one MacOS Sierra 10.12.5 (16F73) i prawdopodobnie niektórych innych najnowszych i przyszłych wersji MacOS.
chshnie wystarczy, aby zmienić domyślną powłokę. Upewnij się, że naciśniesz Command+, ,gdy terminal jest otwarty, i zmienisz opcję „Otwarte powłoki z” na „Domyślna powłoka logowania”.
W przypadku bash, upewnij się, że wykonałeś, echo $BASH_VERSIONaby potwierdzić, że używasz zamierzonej wersji bash. bash --versionnie podaje poprawnych informacji.
Preferencesod Terminal.app . Zobacz tę odpowiedź autor: Pankaj.
1. sudo nano / etc / shells

2. dodaj / usr / local / bin / fish do swojej listy muszli

3. chsh -s / usr / local / bin / fish
Shell open with: Default login shellustawienia Terminal.app
Możesz użyć chsh, aby zmienić powłokę użytkownika.
Uruchom następujący kod, na przykład, aby zmienić powłokę na Zsh
chsh -s /bin/zsh
Jak opisano w podręczniku systemowym, a przez Lorin, jeśli powłoka nie jest znana przez system operacyjny, trzeba dodać go do swojej znanej listy: /etc/shells.
chsh: /usr/local/bin/fish: non-standard shell Rozwiązanie polegało na dodaniu go do / etc / shells zgodnie z opisem poniżej @ lorin-hochstein odpowiedź
-stego). Spróbuję wkrótce.
Z terminala:
Dodaj Fish do /etc/shells, który będzie wymagał hasła administracyjnego:
sudo echo /usr/local/bin/fish >> /etc/shells
Ustaw Fish jako domyślną powłokę dzięki chsh:
chsh -s /usr/local/bin/fish
Z Preferencji systemowych:
Użytkownik i grupy → kliknij, przytrzymując klawisz Ctrl, Bieżący użytkownik → Opcje zaawansowane ...
Zmień powłokę logowania na /usr/local/bin/fish

Naciśnij OK, wyloguj się i zaloguj ponownie
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Oto inny sposób, aby to zrobić:
Zakładając, że zainstalowałeś go z MacPorts, co można zrobić, wykonując:
sudo port install fish
Twoja muszla będzie się znajdować w /opt/local/bin/fish.
Musisz powiedzieć OSX, że jest to poprawna powłoka. Aby to zrobić, dodaj tę ścieżkę na końcu /etc/shellspliku.
Po wykonaniu tej czynności możesz zmienić powłokę, przechodząc do Preferencji systemowych -> Konta. Kliknij Blokada, aby zezwolić na zmiany. Kliknij konto prawym przyciskiem myszy i wybierz „Opcje zaawansowane ...”. W polu „Powłoka logowania” dodaj ścieżkę do ryb.
Jedyne, co działało dla mnie, to połączenie wszystkich tych metod.
Najpierw musiałem dodać rybę do /etc/shellspliku
Potem pobiegłem chsh -s /usr/local/bin/fish
Na koniec wpisałem Command+ ,i dodałem /usr/local/bin/fishtam domyślną ścieżkę
Dopiero po wykonaniu wszystkich trzech czynności ryby zaczęły pojawiać się jako domyślne dla nowych okien terminali.
Preferences> General> Shells open with:>/bin/fish/usr/local/bin/fish .Zobacz ten zrzut ekranu, gdzie zshjest ustawiony jako domyślny.
Używam macOS Sierra . Działa również w systemie macOS Mojave .
W systemie macOS Mojave musiałem wykonać następujące czynności (na przykładzie zsh):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh. Już dostępny na macOS Mojave. W pakiecie na Mojave i domyślnie w Catalina.
Jak uzyskać najnowszą wersję bash na nowoczesnym systemie macOS (testowany na Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Następnie jesteś gotowy na uzupełnienie karty stylu vim, która jest dostępna tylko w bash> = 4 (aktualna wersja brewto 5.0.2
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
chshProgram pozwala zmienić domyślną powłokę. Będzie potrzebował pełnej ścieżki do pliku wykonywalnego, więc jeśli twoja powłoka jest fish, będzie chciał, abyś podał dane wyjściowe podane podczas pisania which fish.
Zobaczysz linię zaczynającą się od „ Shell:”. Jeśli nigdy go nie edytowałeś, najprawdopodobniej mówi „ Shell: /bin/bash”. Zastąp tę /bin/bashścieżkę ścieżką do żądanej powłoki.
Ta praca dla mnie na świeżej instalacji Mac OSX (Sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
> cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >
wystarczy zmienić tę wartość (za pomocą polecenia write dscl).
W przypadku problemów z innymi sposobami działał na Mac Mojave, ale ogólnie powinien działać.
which fish
dodaj ścieżkę wyjściową do „Preferencji systemowych> Użytkownicy i grupy> użytkownik kliknij prawym przyciskiem myszy, Opcje zaawansowane” Wklej wynik, z którego do „Powłoki logowania:”
Aby zmienić domyślną powłokę na komputerze Mac, wykonaj następujące czynności:
chsh -s <name-of-shell>
Lista muszli do wyboru to:
więc jeśli chcesz zmienić z powłoki na / bin / zsh, twoje polecenie będzie wyglądać następująco:
chsh -s /bin/zsh
możesz zobaczyć wszystkie dostępne powłoki w systemie, uruchamiając:
cat /etc/shells