Mac Terminal: Meine Shell wurde geändert, jetzt kann sie nicht gestartet werden

8887
kch

Ich habe bash 4.0 über MacPorts installiert und dann sudo chsh -s /opt/local/bin/bash my_usermeine Shell geändert.

Vorher habe ich versucht, einfach chshohne zu laufen sudo, aber es erlaubte mir nicht, meine Shell auf diesen Pfad zu ändern.

Wenn ich jetzt versuche, Terminal zu starten, erhalte ich die Meldung, dass meine Shell einen ungültigen Wert hat, sodass das Terminal nicht gestartet wird. Ich klicke auf "Beenden", und es ist nicht überraschend, aber ärgerlich, es wird sofort beendet.

lahmer Terminal

  1. Wie setze ich meine Shell zurück, damit ich Terminal erneut starten kann?
  2. Wie stelle ich meine Shell so ein, dass sie über MacPorts installiert wird, so dass sie funktioniert?
  3. Warum hält Terminal meine Shell für illegal? Steht es auf der Seite der Neo-Prohibitionisten?

Mac OS X 10.5.8. Alles super mega aktuell.

5

4 Antworten auf die Frage

9
Chealion

Eine andere Methode zum Ändern der Shell (ähnlich dem Befehl chsh, aber Verwendung einer GUI) für Ihr Benutzerprofil besteht in der folgenden Vorgehensweise:

  1. Öffnen Sie die Systemeinstellungen.app
  2. Gehen Sie zum Kontoeinstellungen-Bereich
  3. Entriegeln Sie ggf. das Vorhängeschloss
  4. Halten Sie die Kontrolle und klicken oder klicken Sie mit der rechten Maustaste auf Ihr Konto in der Liste der Konten.
  5. Wählen Sie Erweiterte Optionen ...
  6. Ändern Sie den Wert an der Stelle, an der Login Shell: in den Pfad zur gewünschten Bash-Shell steht.

Ich würde empfehlen, es zurück auf / bin / bash zu setzen und dann im Terminal sicherzustellen, dass es /opt/local/bin/bashordnungsgemäß funktioniert, indem es ausgeführt wird, /opt/local/bin/bashbevor es erneut versucht wird, es zu ändern.

Der Grund, warum Sie sagen, dass Sie nicht erlaubt sind, besteht darin, dass Mac OS X eine Liste der "erlaubten" Shells enthält, /etc/shells/so dass Sie diese Datei bearbeiten und /opt/local/bin/bashdieser Liste hinzufügen müssen .

Ich habe vergessen, dass ich meine Bash-Shell in eine vom Homebrew verwandelt habe. es wurde gerade verzerrt und ich konnte es nicht reparieren, bis ich diese Antwort fand. Danke für die Rettung! Joseph Sheedy vor 7 Jahren 0
Du bist großartig. Danke für das Update. Versuchte, zu bash 4.0 zu wechseln, und es brach alle meine Muscheln. djangofan vor 6 Jahren 1
6
Lily Ballard

Das Problem hier ist die /etc/shellsDatei. Diese Datei enthält eine Liste aller Shells, die als Login-Shells verwendet werden dürfen. Wenn Sie die von MacPorts installierte Bash verwenden möchten, müssen Sie diese Datei bearbeiten, um den Pfad zu dieser bestimmten Shell anzugeben.

1
oko

Ich habe das gleiche Problem nach dem Update auf Lion bekommen.

Sie sollten in der Datei / etc nachsehen, ob Sie eine Datei wie Shells ~ orig und Shells finden. Stellen Sie die Muscheln ~ orig wieder her.

Viel Glück.

0
ACoolie

Öffnen Sie ~ / Library / Preferences / com.apple.Terminal.plist und setzen Sie den Schlüssel "Shell" auf "/ bin / bash". Versuchen Sie dann erneut, das Terminal zu öffnen. Wenn dies nicht funktioniert, kann X11.app möglicherweise ein Terminal öffnen. Andernfalls müssen Sie keinen neuen Benutzer mit Administratorrechten erstellen und Ihre Shell dort zurücksetzen.

Stellen Sie sicher, dass / opt / local / bin / bash ausführbar ist, indem Sie es in Terminal ausführen. Wenn nicht:

chmod +x /opt/local/bin/bash 

/ Opt / local / bin / bash sollte auch eine Zeile in / etc / shells sein.

Es gibt keinen Shell-Schlüssel in der Liste von Terminal. X11 öffnet xterm mit einer verwendbaren Sitzung. Von dort aus habe ich `sudo vim / etc / shells` hinzugefügt und die Zeile für die Bash von MacPorts hinzugefügt. Danach konnte ich das Terminal wieder öffnen. `/ opt / local / bash` war bereits 755. kch vor 14 Jahren 1
Ich akzeptiere Ihre Antwort, aber wenn Sie sie bitte bearbeiten könnten, um meine Notizen aus den vorherigen Kommentaren widerzuspiegeln, vor allem der Teil, in dem die Plist-Datei keinen Shell-Schlüssel hat. kch vor 14 Jahren 1
Und ich schätze, für jemanden, der X11 nicht hat (ich denke, es ist eine optionale Installation, oder?), Könnte man trotzdem in den Einzelbenutzermodus booten, für rw einhängen und `/ etc / shells` editieren. kch vor 14 Jahren 1
Der Shell-Schlüssel ist leer oder nicht vorhanden, wenn Sie in den Voreinstellungen "Standard-Login-Shell" ausgewählt haben. Sie sollten ein Element namens "Shell" mit dem Typ "String" und dem Wert "/ bin / bash" hinzufügen. ACoolie vor 14 Jahren 0