Terminal gibt für die meisten Befehle Mac OSX nicht gefunden zurück

Ich bin wirklich neu bei Mac OSX- und UNIX-basierten Systemen. Ich wollte ein paar Windows-Spiele auf meinem Mac Mini ausführen, also begann ich mit der Installation von Wine und MacPorts.

Ich denke, die Installationen sind korrekt, aber wenn ich tippe, sudo port install winesehe ich einen nicht gefundenen Fehler in meinem Terminal. Ich habe andere grundlegende Befehle wie sayund ausprobiert clearund alle geben den gleichen nicht gefundenen Fehler zurück.

Meine Recherchen zeigen, dass mein PATH möglicherweise falsch eingestellt ist, aber es fehlen Schritte, die ich implementieren kann.

Insbesondere habe ich diesen Befehl ausgeführt: echo $PATHund es wurde zurückgegeben:

/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin

Ich bin ein absoluter Mac-Neuling und habe keine Ahnung, wo sich .bash_profile oder eine dieser Dateien befindet. Meine Fähigkeiten ermöglichen es mir, Xcode und die Befehlszeilentools für Xcode zu installieren, und ich spüre, dass ich die Pfadverwaltung verbessern muss.

An diesem Punkt brauche ich Hilfe beim Verwalten meiner Punktdateien und beim Ändern meines Pfads, um diese spezifischen Fehler in Mountain Lion zu beheben.

Was sind meine nächsten Schritte?

Antworten (9)

$PATH sollte diese Ordner enthalten: /usr/bin:/usr/sbin:/bin:/sbin.

Versuchen Sie , , , oder (z. B. mit ) zu bearbeiten ~/.bash_profile, und kommentieren Sie alle Zeilen aus, die den Pfad ändern.~/.profile~/.bash_login/usr/bin/open ~/.bash_profile -a TextEdit

export PATH=/opt/local/bin:/opt/local/sbin:$PATHWenn das funktioniert , können Sie eine Zeile wie hinzufügen ~/.bash_profile.

Hinweis: Ab macOS Catalina (10.15) ist die Standard-Shell zsh statt bash, schauen Sie also in ~/.zprofile(oder vielleicht ~/.zshenvoder ~/.zshrc) statt in den Bash-Dateien nach.

Bei mir ist ein ähnliches Problem aufgetreten, also habe ich Folgendes getan:

1) Export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"in das Terminal eingeben, damit es vorübergehend funktioniert

2) Bearbeiten von bash_profile durch Eingabe/usr/bin/open ~/.bash_profile -a TextEdit

3) Als ich meine bash_profile-Datei öffnete, stellte ich fest, dass der Export der letzten Zeile mit einigen seltsamen Symbolen wirklich chaotisch aussah, also änderte ich ihn vollständig inexport PATH=/opt/local/bin:/opt/local/sbin:$PATH

Ich bin ein absoluter Anfänger, aber ich habe es geschafft, diese Schritte zu machen, indem ich Lösungsstücke aus verschiedenen Fragen zu SE gelesen habe, also hoffe ich, dass es jemand anderem helfen könnte.

Dies ist die beste Antwort auf dieses Problem, gut gemacht und vielen Dank, dass Sie es geteilt haben. Ich bin auf das gleiche Problem gestoßen und konnte es erst beheben, als ich Ihres gelesen habe.

Es hört sich so an, als hätten Sie Ihren Pfad überschrieben, anstatt ihn nur hinzuzufügen.

Stellen Sie sicher, dass Sie beim Festlegen Ihres PATH "${PATH}"auch Ihren vorhandenen Pfad einbeziehen.

Standardmäßig ist $PATH in einigen Dateien festgelegt. Technisch gesehen sollten Sie Ihren $PATH in der Datei .bash_profile in Ihrem Home-Verzeichnis hinzufügen.

Ein Vorschlag, ob Sie prüfen sollten, ob ein bestimmter Ordner vorhanden ist, bevor Sie ihn zu Ihrem PATH hinzufügen.

Ich habe zum Beispiel:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

(Der -d directoryBefehl prüft, ob das Verzeichnis existiert)

Bei mir ist genau dieses Problem aufgetreten, als ich versucht habe, ein neues Verzeichnis zu PATH hinzuzufügen, indem ich einen falschen Exportbefehl in meiner ~/.bash_profile. Beide Beispiele unten.

export PATH=/some/new/path:PATH (incorrect, note missing $)

vs

export PATH=/some/new/path:$PATH (correct)

Zusätzlich zu den Fix-It-Antworten möchte ich auch eine Sache zum Testen hervorheben.

Wenn Ihr aktuelles Fenster einfach eine schlechte PATH-Variable hat und Ihr System nicht mehr kaputt ist, können Sie den Pfad einfach reparieren:

echo $PATH
/usr/libexec/path_helper

Vergleichen Sie die Ausgabe der beiden obigen Befehle. Wenn Sie zu einem "sicheren" Pfad zurückkehren möchten, kopieren Sie einfach die Zeile, die der path_helperbereitstellt, und fügen Sie sie in dieses Terminal ein. Auf einem unveränderten Mac 10.11-System sollten Sie diese Ausgabe des Hilfsprogramms haben:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Wenn Ihr Pfad angepasst werden muss, dann schauen Sie sich auch zu dieser Frage die hervorragenden Antworten an.

Oder Sie könnten ausgeben PATH=$(/usr/bin/getconf PATH), um einen verwendbaren PATH in der aktuellen Shell zu erhalten. /usr/localexistiert nicht auf einem unveränderten System.
Ausgezeichnet @fdo - Mir ist nicht bekannt, was getconf durcheinander bringen könnte, so dass es genauso gut sein könnte wie nur harte Codierungsdinge. Es ist auch kürzer als mein "Brute-Force"-Fix.
path_helperkonstruiert den PATH aus dem aktuellen PATH, der /etc/pathsDatei und allen Dateien innerhalb von /etc/paths.d. Es kann auch durch beliebige PATH-Einstellungen in beeinflusst werden /etc/launchd.conf. getconfgibt den im Kernel fest codierten System PATH aus sysctl user.cs_path.

Das ./bash_profile Ihres Terminals wurde möglicherweise überschrieben.

Verwenden Sie export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binim Terminal, um die aktuellen PATH-Einstellungen vorübergehend neu zu schreiben. Dies sollte Ihnen Zugang zu sudound geben, nanodie Sie dann verwenden werden nano .bash_profile. Bei mir hat es funktioniert, alles in der Datei zu löschen.

Überprüfen Sie, ob die Ordneradresse in der PATH - Variablen vorhanden ist. Geben Sie am Terminal ein:

echo $PATH

Das Terminal zeigt Folgendes an: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin... ( andere Pfade in Verkettung )

Meine Hauptmotivation, diese Antwort zu teilen, ist, dass Sie zuerst prüfen müssen, ob PATHdie Variable die gesuchte Ordneradresse als einen ihrer Werte enthält. Darüber hinaus PATHruft der seine Werte von mehreren Orten ab, z. B. /etc/path, ~/.bash_profile, /etc/path.d, ~/.zshrcWenn Sie Ihren nicht finden können, ist es offensichtlich, dass folder-address in enthalten sein muss PATH. Wenn dies nicht der Fall ist, PATHwird Ihr Befehl nicht erkannt. Sie können dies auf diese 2 Arten erreichen:

(Methode 'B' hat bei mir wie ein Zauber funktioniert)

A. (Kann funktionieren) Schreiben Sie es in die Datei .bash_profile~ im Ordner Home (wie viele vorherige Antworten oben erwähnt haben).

B. (100% funktioniert) Schreiben Sie es in die /etc/pathsDatei. ( paths -Datei befindet sich im /etcOrdner. Stellen Sie erstens sicher, dass Sie über Lese- und Schreibzugriff verfügen, um diese Datei zu bearbeiten. Zweitens lassen die Systemeinstellungen keine Bearbeitung zu, da durch die Bearbeitung eine doppelte Kopie dieser Datei erstellt wird, die irrelevant ist. Daher besser damit bearbeiten vim ). Fügen Sie einfach die Ordner-Adresse in einer neuen Zeile in dieser Datei ein.

Starten Sie Ihr Terminal neu und starten Sie den Befehl, nach dem Sie suchen möchten.

Vielen Dank! @nohillside für die Korrektur.

Es lohnt sich, Ihre Terminaleinstellungen zu überprüfen. Drücken Sie auf der Tastatur die Befehls- und Kommatasten [⌘ ,]. Klicken Sie dann auf "Profile" und wählen Sie den Reiter "Shell". Stellen Sie sicher, dass der Startbefehl den richtigen Befehl enthält. (Standardmäßig leerer Text.) Versuchen Sie, die Option „Befehl ausführen“ zu deaktivieren, und öffnen Sie eine andere Terminal-Registerkarte. Es sollte standardmäßig die Standard-Shell Ihres Systems sein.

Standardeinstellung für das Terminal-Shell-Profil

Irgendwie wurde während des Upgrade-Prozesses zwischen Mojave und BigSur meine Einstellung im Shell-Run-Befehl in "-bash" geändert ... Dies verursachte die

-bash: -bash: Befehl nicht gefunden

Fehler in meinem Fall, da es keine Probleme mit meinen .profile, .bashrc, und .bash_profileDateien gab.

Keine der Lösungen hat bei mir funktioniert. Also habe ich die Dateien im Stammordnerpfad manuell entfernt. Dann funktionierte. Der Pfad, den ich gefunden habe, war /Users/...**. Es waren versteckte Dateien, also sichtbar gemacht und bash_profile und zprofile entfernt. Dann funktionierte das Mac-Terminal einwandfrei.

So wie es derzeit geschrieben steht, ist Ihre Antwort unklar. Bitte bearbeiten Sie , um zusätzliche Details hinzuzufügen, die anderen helfen zu verstehen, wie dies die gestellte Frage beantwortet. Weitere Informationen zum Verfassen guter Antworten finden Sie in der Hilfe .