Nie lubię przepisywać ryb za każdym razem, gdy uruchamiam terminal. Chcę fish
domyś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ę fish
domyś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.
chsh
nie 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_VERSION
aby potwierdzić, że używasz zamierzonej wersji bash. bash --version
nie podaje poprawnych informacji.
Preferences
od 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 shell
ustawienia 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ź
-s
tego). 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/shells
pliku.
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/shells
pliku
Potem pobiegłem chsh -s /usr/local/bin/fish
Na koniec wpisałem Command+ ,i dodałem /usr/local/bin/fish
tam 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 zsh
jest 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 brew
to 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"
chsh
Program 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