So setzen Sie Bash unter Mac OS X zurück: .bash_profile ist beschädigt und bash funktioniert nicht mehr

17

Ich arbeite auf einem MacBook Pro mit der neuesten Version von Mountain Lion.

Ich brauche dringend Hilfe. Ich habe es geschafft, mein .bash_profile so zu beschädigen, dass ich bei jedem Öffnen des Terminals den unten aufgeführten Fehler erhalte.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

Ich bin nicht sicher, was passiert ist, ich habe keine Sudo, CD oder normale Befehle. Die einzige Möglichkeit, in eines der Hauptverzeichnisse zu gelangen, ist der Befehl go to folder im Finder und der Versuch, die Datei ohne Erfolg zu finden.

Um das Ganze abzurunden, habe ich eine Datei erstellt, die möglicherweise das Problem verursacht. Ich wollte das .bash_profile bearbeiten, damit ich es eingebe

sudo nano ./bash_profile

Dies öffnet eine neue Datei in Nano, von der ich denke, dass sie dann gespeichert wurde. Danach habe ich das echte .bash_profile geöffnet, um es in den Pfad für node.js einzufügen.

Wenn ich zum .bash_profile gelangen kann, denke ich, dass ich es wieder in Ordnung bringen kann, aber ich kann es nicht finden, sollte ich bash neu installieren? Wenn ja, wie würde ich das auf einem Mac machen, habe ich es mit versucht

brew install bash

zu dem ich komme

-bash: brew: command not found
Seltsamerweise
quelle
Als erstes würde ich versuchen, auf eine andere Shell umzusteigen, um das Problem zu lösen: Informationen dazu finden Sie hier unter support.apple.com/de/kb/TA27005 . Dies sollte es Ihnen ermöglichen, die fehlerhafte Datei zu ändern / entfernen und die Shell wieder auf zu ändern bash.
Gjallar
Vielen Dank, ich habe versucht, bash neu zu installieren, aber das einzige, was sich geändert hat, ist, dass -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifieres weg ist. Das einzige, womit ich zu kämpfen habe, ist, dass ich in meinem .bash_profile, .profile und .bashrc nachgesehen habe, wo die erste Zeile gespeichert sein könnte, aber nichts.
Strangeone
Ok, also habe ich /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binzu meinem .bash_profile hinzugefügt und es scheint, dass Bash behoben wurde, aber ich erhalte immer noch diese Fehlermeldung. -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierIrgendwelche Ideen?
Strangeone
Kannst du folgendes probieren: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesUnd in einer neuen Leitung export PATH.
Gjallar
Danke, das scheint geklappt zu haben. Kann ich Sie fragen, warum das Ihrer Meinung nach funktionieren würde?
Strangeone

Antworten:

12

Füge einfach alle meine Kommentare zusammen, um eine Antwort zu erhalten:

Als erstes sollten Sie die Shell ändern. Auf diese Weise können Sie eine Shell festlegen, die die Bash-Init-Skripte ( .bashrc, .bash_profile) nicht lädt. Wie dies für die Mac OS X-Terminal-App geschieht, erfahren Sie hier: Apple-Support

Jetzt sollten Sie in der Lage sein, ein Terminal erneut zu öffnen und die .bash_profileDatei mit Ihrem bevorzugten Befehlszeileneditor zu öffnen (z. B. nanooder vi):

In dieser Datei müssen Sie Ihre PATHVariable zurücksetzen , die vom Terminal verwendet wird, um die Programme zu finden, die es ausführen kann.

Dies kann mit den folgenden zwei Zeilen erfolgen:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

Dies setzt zuerst die Verzeichnisse, die Sie auf Ihrem PATH haben möchten, und exportiert diesen PATH, um ihn für alle Programme verfügbar zu machen, die von dieser Shell aus gestartet wurden (per Export).

Gjallar
quelle
21

⇧⌘. zeigt versteckte Dateien in Dateidialogen. Sie können versuchen, ~ / .bash_profile mit TextEdit zu öffnen und es vorübergehend leer zu machen.

Lri
quelle
+1 für die nützliche Tastenkombination, die ich nicht wusste :)
Michel
note: .bash_profile befindet sich in Ihrem Ausgangsverzeichnis (Users / [Benutzername] /. bash_profile
Amos
danke @Lri, habe meinen Tag gerettet!
Vicky_Vignesh
4

Ich lief auf dem gleichen Problem und fand gerade einfachere Lösung:

/usr/bin/nano .bash_profile

lösche dein gesamtes Chaos und speichere die Datei

Fajar Ulin Nuha
quelle
Beste Antwort. Einfach und garantiert zu arbeiten.
Nikk Wong
3

Ich weiß, dass dies ein alter Thread ist, wollte aber nur meine Lösung hier lassen, in der Hoffnung, dass jemand anderes das gleiche Problem hat.

Als ich das Terminal unter MacOS ausführte, war es für meinen eigenen Benutzer in Ordnung, aber als ich zu sudo gewechselt habe, konnte es nicht funktionieren (Befehl nicht gefunden).

Am Ende habe ich es behoben mit:

nano ~/.bashrc

Nur den Pfad entfernt, der den Fehler verursacht hat. Terminal neu gestartet und alles funktioniert jetzt.

mau
quelle
0

Ich habe kürzlich festgestellt, dass DOS-Stildateien Probleme für beide .bash * -Skripte in OS-X verursachen. Ich muss DOS-Dateiendungen für Code verwenden, der für Windows-Benutzer freigegeben ist. Wenn ich also .bash_profile bearbeite, während ich mich in diesem Git-Repository befinde, werden beim Ausführen des Skripts (bei der Anmeldung) viele Fehlermeldungen angezeigt. Das Dienstprogramm dos2unix hat das Problem behoben.

Rechnung
quelle
-1

Neben dem bereits erwähnten Anzeigen ausgeblendeter Dateien und der Verwendung eines Texteditors gibt es auch eine einfachere Möglichkeit, eine neue Shell zu öffnen, ohne die Standard-Shell zu ändern. Sie können auch bei gedrückter Alt-Taste auf die Terminal-App klicken und "Neuer Befehl ..." auswählen. Geben Sie dann "sh" in das Dialogfeld ein und führen Sie das aus. Dies würde eine Nicht-Bash-Shell öffnen und Sie könnten die Datei dort bearbeiten. In Zukunft ist es ratsam, eine Shell offen zu halten oder das neue .bash_profile vor dem Beenden zu testen.

CortexCompiler
quelle