Ich mag es nicht, Fische jedes Mal neu einzugeben, wenn ich das Terminal starte. Ich möchte fish
standardmäßig ein. Wie kann ich auf einem Mac die Fischschale als Standardschale festlegen?
Ich mag es nicht, Fische jedes Mal neu einzugeben, wenn ich das Terminal starte. Ich möchte fish
standardmäßig ein. Wie kann ich auf einem Mac die Fischschale als Standardschale festlegen?
Antworten:
Diese gelten für MacOS Sierra 10.12.5 (16F73) und wahrscheinlich für einige andere aktuelle und kommende Versionen von MacOS.
chsh
reicht nicht aus, um die Standard-Shell zu ändern. Stellen Sie sicher, dass Sie Command+ drücken, ,während Ihr Terminal geöffnet ist, und ändern Sie die Option "Shells geöffnet mit" in "Standard-Anmeldeshell".
Stellen Sie im Fall von Bash sicher, dass Sie ausführen echo $BASH_VERSION
, um zu bestätigen , dass Sie die beabsichtigte Version von Bash ausführen . bash --version
gibt Ihnen keine korrekten Informationen.
Preferences
der Terminal.app . Siehe diese Antwort von Pankaj.
1. sudo nano / etc / shells
2. Fügen Sie / usr / local / bin / fish zu Ihrer Liste der Muscheln hinzu
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
in den Einstellungen von Terminal.app
Mit chsh können Sie die Shell eines Benutzers ä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, wenn sie dem Betriebssystem nicht bekannt ist, zu seiner bekannten Liste hinzufügen : /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
Lösung war es, es zu / etc / shells hinzuzufügen, wie durch @ lorin-hochstein Antwort unten beschrieben
-s
obwohl). Ich werde es bald wieder versuchen.
Vom Terminal:
Fügen Sie Fisch hinzu /etc/shells
, für den ein Administratorkennwort erforderlich ist:
sudo echo /usr/local/bin/fish >> /etc/shells
Machen Sie Fisch zu Ihrer Standardschale mit chsh
:
chsh -s /usr/local/bin/fish
Aus den Systemeinstellungen:
Benutzer und Gruppen → Klicken Sie bei gedrückter Strg-Taste auf Aktueller Benutzer → Erweiterte Optionen ...
Ändern Sie die Login-Shell in /usr/local/bin/fish
Drücken Sie OK, melden Sie sich ab und wieder an
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Hier ist eine andere Möglichkeit:
Angenommen, Sie haben es mit MacPorts installiert. Gehen Sie dazu folgendermaßen vor:
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.
Sobald Sie dies getan haben, können Sie die Shell ändern, indem Sie zu Systemeinstellungen -> Konten gehen. Klicken Sie auf die Sperre, um Ä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.
Das einzige, was für mich funktioniert hat, war eine Kombination all dieser Methoden.
Zuerst musste ich der /etc/shells
Datei Fisch hinzufügen
Dann rannte ich chsh -s /usr/local/bin/fish
Schließlich habe ich Command+ eingegeben ,und dort /usr/local/bin/fish
zum Standardpfad hinzugefügt
Erst nachdem ich alle drei Dinge erledigt hatte, tauchten Fische als Standard für neue Terminalfenster auf.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.In diesem Screenshot zsh
wird die Standardeinstellung festgelegt.
Ich benutze macOS Sierra . Funktioniert auch in macOS Mojave .
Unter 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)
zsh
. Bereits auf macOS Mojave vorhanden. Auf Mojave gebündelt und standardmäßig in Catalina.
So erhalten Sie die neueste Version von Bash unter modernem MacOS (getestet auf Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Dann können Sie die Registerkarte im Vim-Stil vervollständigen, 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"
Mit dem chsh
Programm können Sie Ihre Standard-Shell ändern. Es wird den vollständigen Pfad zur ausführbaren Datei benötigen. Wenn sich Ihre Shell also befindet fish
, müssen Sie die Ausgabe bereitstellen, die bei der Eingabe angegeben wird which fish
.
Sie sehen eine Zeile, die mit " Shell:
" beginnt . Wenn Sie es noch nie bearbeitet haben, steht höchstwahrscheinlich " Shell: /bin/bash
". Ersetzen Sie diesen /bin/bash
Pfad durch den Pfad zu Ihrer gewünschten Shell.
Öffnen Sie im Terminal die Terminaleinstellungen mit Command+ ,.
Wählen Sie auf der Registerkarte "Einstellung" eines der Themen aus und wählen Sie rechts die Registerkarte "Shell".
Sie können den Autostart-Befehl festlegen fish
.
Diese Arbeit für mich auf Neuinstallation von 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 >
Ändern Sie einfach diesen Wert (mit dem Schreibbefehl in dscl
).
Falls Sie Probleme mit den anderen Möglichkeiten haben, haben Sie auf Mac Mojave gearbeitet, sollten aber im Allgemeinen funktionieren.
which fish
Fügen Sie den Ausgabepfad zu "Systemeinstellungen> Benutzer & Gruppen> Rechtsklick Benutzer, Erweiterte Optionen" hinzu. Fügen Sie das Ergebnis in "Anmeldeshell:" ein.
Führen Sie Folgendes aus, um Ihre Standard-Shell auf einem Mac zu ändern:
chsh -s <name-of-shell>
Die Liste der Muscheln, aus denen Sie auswählen können, ist:
Wenn Sie also von der Shell / bin / zsh wechseln möchten, sieht Ihr Befehl folgendermaßen aus:
chsh -s /bin/zsh
Sie können alle verfügbaren Shells auf Ihrem System anzeigen, indem Sie Folgendes ausführen:
cat /etc/shells