it-swarm.com.de

Wie kann ich meine Standard-Shell auf dem Mac einstellen?

Ich mag es nicht, Fische jedes Mal neu einzugeben, wenn ich das Terminal starte. Ich möchte fish standardmäßig einschalten. Wie kann ich Fish Shell als Standard-Shell auf einem Mac festlegen?

Diese gelten für MacOS Sierra 10.12.5 (16F73) und wahrscheinlich auch für einige andere aktuelle und kommende Versionen von MacOS.

  1. chsh reicht nicht aus, um die Standard-Shell zu ändern. Stellen Sie sicher, dass Sie drücken Command+, Wenn Ihr Terminal geöffnet ist, ändern Sie die Option "Shells öffnen mit" in "Standardanmeldeshell".

  2. Stellen Sie im Falle von bash sicher, dass Sie echo $BASH_VERSION ausführen, um zu bestätigen, dass Sie die beabsichtigte Version von bash ausführen. bash --version gibt Ihnen keine korrekten Informationen.

24
Tushar Vazirani

1. Sudo nano/etc/shells enter image description here

2. füge/usr/local/bin/fish zu deiner Liste von Shells hinzu enter image description here

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

199
user391339

Sie können chsh verwenden, um die Shell eines Benutzers zu ändern.

Führen Sie beispielsweise den folgenden Code aus, um Ihre Shell in Zsh zu ändern

chsh -s /bin/zsh

Wie in der Manpage und von Lorin beschrieben, müssen Sie die Shell der bekannten Liste hinzufügen, wenn die Shell dem Betriebssystem nicht bekannt ist: /etc/shells.

64
Aif

Vom Terminal:

  1. Fügen Sie Fish zu /etc/shells hinzu, was ein Administratorkennwort erfordert:

    Sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Machen Sie Fish zu Ihrer Standard-Shell mit chsh:

    chsh -s /usr/local/bin/fish
    

In den Systemeinstellungen:

  1. Benutzer und Gruppen → Klicken Sie bei gedrückter Strg-Taste auf Aktueller Benutzer → Erweiterte Optionen ...

  2. Ändern Sie die Login-Shell in /usr/local/bin/fish.

    login Shell

  3. Drücken Sie OK, melden Sie sich ab und wieder an

61
Paolo Moretti

Hier ist eine andere Möglichkeit:

Angenommen, Sie haben es mit MacPorts installiert. Dies kann folgendermaßen geschehen:

Sudo port install fish

Ihre Shell befindet sich in /opt/local/bin/fish

Sie müssen OSX mitteilen, dass dies eine gültige Shell ist. Fügen Sie dazu diesen Pfad am Ende der /etc/shells-Datei hinzu.

Wenn Sie dies getan haben, können Sie die Shell über Systemeinstellungen -> Konten ändern. Klicken Sie auf das Schloss, um die Änderungen zuzulassen. Klicken Sie mit der rechten Maustaste auf das Konto und wählen Sie "Erweiterte Optionen ...". Fügen Sie im Feld "Login Shell" den Pfad zum Fisch hinzu. 

20
Lorin Hochstein

Das einzige, was für mich funktioniert hat, war eine Kombination all dieser Methoden.

  1. Zuerst musste ich der Datei /etc/shells Fisch hinzufügen

  2. Dann habe ich chsh -s /usr/local/bin/fish ausgeführt

  3. Schließlich habe ich getippt Command+, und /usr/local/bin/fish zum dortigen Standardpfad hinzugefügt

Erst nachdem ich alle drei Dinge erledigt hatte, tauchten Fische als Standard für neue Terminalfenster auf.

11
quaintm
9
Gumbo
  1. Öffnen Sie Ihr Terminal und drücken Sie command+, (Komma). Dies öffnet ein Einstellungsfenster.
  2. Die erste Registerkarte ist "Allgemein".
  3. Suchen Sie die Einstellung 'Shells öffnen mit' und wählen Sie die zweite Option, die den vollständigen Pfad zur Shell benötigt.
  4. Fügen Sie den Link zu Ihrem Fisch-Befehl ein, der im Allgemeinen /usr/local/bin/fish lautet.

Ich benutze macOS Sierra.

4
Pankaj

Auf macOS Mojave musste ich Folgendes tun (am Beispiel von zsh):

brew install zsh
Sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
4
MagicDude4Eva

Öffnen Sie im Terminal die Terminaleinstellungen mit Command+,.

Wählen Sie auf der Registerkarte "Einstellungen" eines der Themen aus und wählen Sie rechts die Registerkarte "Shell".

Sie können den Autostart-Befehl fish setzen.

4
holsety

mit dem Programm chsh können Sie Ihre Standard-Shell ändern. Der vollständige Pfad zur ausführbaren Datei wird angezeigt. Wenn Ihre Shell fish ist, müssen Sie die Ausgabe angeben, die bei der Eingabe von which fish angegeben wird.

Sie sehen eine Zeile, die mit "Shell:" beginnt. Wenn Sie es noch nie bearbeitet haben, wird höchstwahrscheinlich "Shell: /bin/bash" angezeigt. Ersetzen Sie diesen /bin/bash-Pfad durch den Pfad zu Ihrer gewünschten Shell.

4
rejj
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 >

Ändern Sie einfach diesen Wert (mit dem Schreibbefehl in dscl).

2
user23743

So erhalten Sie die neueste Version von bash auf modernem MacOS (getestet auf Mojave).

brew install bash
which bash | Sudo tee -a /etc/shells
chsh -s $(which bash)

Dann sind Sie bereit, die Fertigstellung der Registerkarte im Vim-Stil zu erhalten die nur für bash> = 4 verfügbar ist (die aktuelle Version in brew ist 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"
1
Bruno Bronosky

Falls Sie Probleme mit den anderen Methoden haben, haben Sie mit Mac Mojave gearbeitet, sollten aber im Allgemeinen funktionieren.

which fish

fügen Sie den Ausgabepfad zu "Systemeinstellungen> Benutzer und Gruppen> Rechtsklick-Benutzer, Erweiterte Optionen" hinzu. Fügen Sie das Ergebnis in "Login Shell:" ein.

0
SLuck

Diese Arbeit für mich auf Neuinstallation von Mac OSX (Sierra):

  1. Definieren Sie den aktuellen Benutzer als Eigentümer von Shells
Sudo chown $(whoami) /etc/shells
  1. Füge Fisch zu/etc/shells hinzu
Sudo echo /usr/local/bin/fish >> /etc/shells
  1. Machen Sie Fish zu Ihrer Standard-Shell mit chsh
chsh -s /usr/local/bin/fish
  1. Definieren Sie root als Besitzer von Muscheln neu
Sudo chown root /etc/shells
0