Bash funktioniert nicht mehr?

697
verity1007

Ich habe versucht, Home Brew zu installieren (ich bin neu in der Kommandozeile und habe ein paar Anleitungen zum Einrichten von Github verfolgt).

Also folgte ich dieser inoffiziellen Update-Methode: Kompiliere Bash aus Quellcode mit Homebrew ( https://security.stackexchange.com/questions/68202/how-to-patch-bash-on-osx-in-wake-of-shellshock )

Folgendes habe ich in das Terminal eingegeben:

$ xcode-select --install  $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  $ brew doctor  $ brew update  $ brew install bash  $ sudo mv /bin/bash /bin/bash_old  $ sudo mv /bin/sh /bin/sh_old  $ sudo chmod a-x /bin/bash_old /bin/sh_old 

Und jetzt funktioniert Bash nicht mehr :( Wenn ich das Terminal öffne, wird folgende Meldung angezeigt:

Du hast eine neue Mail.
login: / bin / bash: Keine solche Datei oder ein solches Verzeichnis
[Vorgang abgeschlossen]

1
Starten Sie Ihr Installationsmedium und machen Sie die vorgenommenen Änderungen rückgängig. Zoredache vor 8 Jahren 0
Wenn Sie den [Grub] -Loader (http://www.gnu.org/software/grub/manual/) verwenden, können Sie die Kernel-Befehlszeile (mit der Taste 'e') bearbeiten und `init = / bin / sh_old hinzufügen ` levif vor 8 Jahren 0
@Zoredache wie kann ich das Installationsmedium booten? verity1007 vor 8 Jahren 0
Sie müssen __must__ Zeilen schreiben, die Sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash / bin / bash (mit der korrekten Version des installierten `bash 'und dem richtigen Pfad) entsprechen, ansonsten Sie werde es nie finden Sie haben "bash" umbenannt und in "sh" mit verschiedenen Namen ("bash_old / sh_old") umbenannt, die Sie vermissen, um die Links zu erstellen. Hastur vor 8 Jahren 1
@Hastur Ich kann nichts mehr in das Terminal eingeben. Gibt es eine Möglichkeit, bash erneut zu installieren? verity1007 vor 8 Jahren 0

1 Antwort auf die Frage

1
svenper

Terminal versucht, / bin / bash zu laden (oder was auch immer die Standard-Shell für den Benutzer ist). Da Sie das verschoben haben, weiß es nicht, was Sie tun sollen, wenn Sie ihm nicht sagen, wo er suchen soll. Es gibt verschiedene Möglichkeiten, die Standard-Login-Shell in OS X zu überschreiben, für die keine aktuelle Shell erforderlich ist.

Für einen bestimmten Benutzer:

Systemeinstellungen → Benutzer und Gruppen → Rechtsklick auf Benutzer → Erweiterte Optionen… → Anmelde-Shell

erweiterte Benutzeroptionen

Für den aktuellen Benutzer:

Terminal → Einstellungen… → Allgemein → Shells öffnen mit: → Befehl (vollständiger Pfad)

Terminal-Standardshell

Für ein bestimmtes Terminalprofil:

Terminal → Einstellungen… → Profile → ‹Profil› → Shell → Befehl ausführen Deaktivieren Sie außerdem das Kontrollkästchen „In Shell ausführen“.

Profil-Standardshell

Wenn Sie über eine funktionierende Shell verfügen, können Sie die Binärdateien wieder in ihre Originale umbenennen und dann Homebrew verwenden und denselben Prozess /usr/local/bin/bashals Login-Shell festlegen . Es ist nicht erforderlich, Binärdateien in zu ersetzen, /binda die Shell Binärdateien aus mehreren Verzeichnissen verwendet, wobei die PATHUmgebungsvariable verwendet wird, einschließlich /usr/local/bindes Standardinstallationsverzeichnisses von Homebrew.