Jak ustawić domyślną powłokę na komputerze Mac?


190

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:


31

Dotyczą one MacOS Sierra 10.12.5 (16F73) i prawdopodobnie niektórych innych najnowszych i przyszłych wersji MacOS.

  1. 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”.

  2. W przypadku bash, upewnij się, że wykonałeś, echo $BASH_VERSIONaby potwierdzić, że używasz zamierzonej wersji bash. bash --versionnie podaje poprawnych informacji.


3
Ponieważ ta odpowiedź jest zaakceptowana, być może zamiast być uzupełnieniem przypuszczalnie do innej odpowiedzi , można uczynić z niej kompletną odpowiedź, zawierającą dodatek.
Jason R. Coombs

Odpowiedzi na to teraz znajdują się w dokumentacji .
reergymerej

@ JasonR.Coombs Gotowe.
Tushar Vazirani

1
Aktualizacja: Możemy teraz ustawić domyślną powłokę w Preferencesod Terminal.app . Zobacz tę odpowiedź autor: Pankaj.
Basil Bourque

Wspomniałem skrót klawiszowy do preferencji.
Tushar Vazirani

242

1. sudo nano / etc / shells wprowadź opis zdjęcia tutaj

2. dodaj / usr / local / bin / fish do swojej listy muszli wprowadź opis zdjęcia tutaj

3. chsh -s / usr / local / bin / fish


2
I powinieneś zmienić Shell open with: Default login shellustawienia Terminal.app
Tichonow Alexander

77

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.


13
Wypróbowałem i otrzymałem 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ź
lmsurprenant

dbright @ PowerMac: ~ $ chsh -s / Users / dbright / sys / bin / bash Zmiana powłoki dla dbright. Hasło do dbright: chsh: / Users / dbright / sys / bin / bash: niestandardowa powłoka dbright @ PowerMac: ~ $ ls -l / etc / shells -rw-r - r-- 1 koło root 179 września 23 2007 / etc / shells
don bright

Hum, ostatnio próbowałem chsh, który działał jako prosty użytkownik (bez -stego). Spróbuję wkrótce.
Aif

73

Z terminala:

  1. Dodaj Fish do /etc/shells, który będzie wymagał hasła administracyjnego:

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Ustaw Fish jako domyślną powłokę dzięki chsh:

    chsh -s /usr/local/bin/fish
    

Z Preferencji systemowych:

  1. Użytkownik i grupy → kliknij, przytrzymując klawisz Ctrl, Bieżący użytkownik → Opcje zaawansowane ...

  2. Zmień powłokę logowania na /usr/local/bin/fish

    powłoka logowania

  3. Naciśnij OK, wyloguj się i zaloguj ponownie


8
Musiałem dokonać drobnych sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
poprawek w

Jeszcze jeden sposób na zrobienie tego samego, o czym wspomniał echo /usr/local/bin/fish | sudo tee -a /etc/shells
@purpletonic

20

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.


dzięki! działało to świetnie i sprawiło, że ryby stały się moim domyślnym terminalem wszędzie. po prostu zmieniając go w terminalu, jak jedna z pozostałych odpowiedzi, powodował, że terminal pytał mnie za każdym razem, gdy zamykałem okno, a chsh po prostu nie działało dla mnie.
jasongregori

12

Jedyne, co działało dla mnie, to połączenie wszystkich tych metod.

  1. Najpierw musiałem dodać rybę do /etc/shellspliku

  2. Potem pobiegłem chsh -s /usr/local/bin/fish

  3. 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.



8

Terminal.app > Preferences> General> Shells open with:>/bin/fish

  1. Otwórz terminal i naciśnij command+, (przecinek). Otworzy się okno preferencji.
  2. Pierwsza zakładka to „Ogólne”.
  3. Znajdź ustawienie „Otwarte powłoki z” i wybierz drugą opcję, która wymaga pełnej ścieżki do powłoki.
  4. Wklej link do polecenia ryby, którym ogólnie jest /usr/local/bin/fish .

Zobacz ten zrzut ekranu, gdzie zshjest ustawiony jako domyślny.

zrzut ekranu wprowadzania <code> / bin / zsh </code> w preferencjach Terminal.app

Używam macOS Sierra . Działa również w systemie macOS Mojave .


2
W końcu! Rozwiązanie, które działa dla użytkownika innego niż sudo!
Ébe Isaac

7

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)

Uwaga: Możesz użyć tej dokładnej metody, aby również uzyskać najnowszą wersję bash. stackoverflow.com/a/55011144/117471 Sam wymyśliłem prawie dokładnie ten sam kod.
Bruno Bronosky,

1
Nie trzeba instalować zsh. Już dostępny na macOS Mojave. W pakiecie na Mojave i domyślnie w Catalina.
Basil Bourque

5

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"

4

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.


4

W terminalu otwórz preferencje terminala, używając Command+ ,.

Na karcie Ustawienia wybierz jeden z motywów i wybierz kartę powłoki po prawej stronie.

Możesz ustawić polecenie autostartu fish.


4

Ta praca dla mnie na świeżej instalacji Mac OSX (Sierra):

  1. Zdefiniuj bieżącego użytkownika jako właściciela powłok
sudo chown $(whoami) /etc/shells
  1. Dodaj Fish do / etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Ustaw Fish jako domyślną powłokę za pomocą chsh
chsh -s /usr/local/bin/fish
  1. Przedefiniuj roota jako właściciela muszli
sudo chown root /etc/shells

2
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).


Pojawia się ten błąd, gdy uruchamiam odczyt leeg: <dscl_cmd> Błąd DS: -14136 (eDSRecordNotFound)
Léo Léopold Hertz z

1
Tak. To dlatego, że leeg to moja nazwa użytkownika, a nie twoja: P

0

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:”


0

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:

  1. / bin / bash
  2. / bin / csh
  3. / bin / dash
  4. / bin / ksh
  5. / bin / sh
  6. / bin / tcsh
  7. / bin / zsh

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.