Terminalrückgabe für die meisten Befehle unter Mac OS X nicht gefunden

16

Ich bin wirklich neu in 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.

Nachdem ich dies getan hatte, tippte ich ein sudo port install wineund das Terminal gab einen nicht gefundenen Fehler zurück. Ich habe versucht, andere grundlegende Befehle wie sayund clearund alle von ihnen geben den nicht gefundenen Fehler zurück. Ich habe dies gegoogelt und bis jetzt habe ich nur verstanden, dass der Pfad möglicherweise falsch eingestellt ist. Also habe ich diesen Befehl ausgeführt: echo $PATHund er hat Folgendes zurückgegeben:

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

Kann mir jemand sagen, wie man diesen Pfad richtig einstellt? Ich bin ein absoluter Mac-Neuling und habe keine Ahnung, wo sich .bash_profile oder eine dieser Dateien befindet. Wenn es hilft, habe ich auch Xcode und die Befehlszeilentools für Xcode installiert. Ich leite Mountain Lion.

Jack Copeland
quelle
3
Leider denke ich, dass Sie ein Tutorial zu Unix benötigen, da wir die Frage zwar beantworten können, aber wahrscheinlich nicht genügend Hintergrundinformationen liefern können, um Ihnen das Verständnis zu erleichtern. Was Wine betrifft, ist es am einfachsten, Crossover (kostenpflichtig) oder Wineskin (kostenlos) zu testen, für die keine Terminalbenutzung erforderlich ist
user151019

Antworten:

12

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

Versuchen Bearbeitung ~/.bash_profile, ~/.profileoder ~/.bash_login(mit zum Beispiel /usr/bin/open ~/.bash_profile -a TextEdit) , und alle Zeilen Kommentierung heraus , dass der Pfad ändern.

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

Lri
quelle
Ich habe versucht, PATH zu exportieren = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin und es funktioniert, aber sobald ich das Terminal schließe und wieder öffne, wird wieder derselbe Fehler angezeigt. Ich bin ein absoluter Neuling und habe keine Ahnung, wo sich ~ / .bash_profile oder eine dieser Dateien befindet. Ich nehme an, sie sind versteckt?
Jack Copeland
~/ist der Home-Ordner ( /Users/username/). Dateien, die mit einem Punkt beginnen, werden ausgeblendet, aber Sie können sie zum Beispiel mit anzeigen ls -la.
Lri
mein .bash_profile enthält all dies bereits, aber ich habe immer noch das gleiche Problem mit Befehlen wie ng oder mssql, wenn ich sie von terminal
dbnex14
3

Ein ähnliches Problem passierte mir, und so tat ich Folgendes:

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

2) Bearbeiten Sie bash_profile, indem Sie Folgendes eingeben /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 sehr chaotisch aussah, und änderte ihn daher vollständig in export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Ich bin ein absoluter Anfänger, aber ich habe es geschafft, diese Schritte durch das Lesen von Lösungsstücken aus verschiedenen Fragen zu SE zu erreichen. Ich hoffe, es könnte jemand anderem helfen.

Paula Hasstenteufel
quelle
2

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

Stellen Sie sicher, dass Sie beim Festlegen des "${PATH}"Pfads auch den vorhandenen Pfad angeben.

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

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

Zum Beispiel habe ich:

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.)

Sdmeyers
quelle
1

Für mich stieß ich genau auf dieses Problem, als ich versuchte, ein neues Verzeichnis zu PATH hinzuzufügen, indem ich einen falschen Exportbefehl in my verwendete ~/.bash_profile. Beide Beispiele unten.

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

vs

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

Zusätzlich zu dem Fix, den es beantwortet, möchte ich eine Sache zum Testen aufrufen.

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

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 bereitgestellte Zeile und fügen Sie sie path_helperin dieses Terminal ein. Auf einem unveränderten Mac 10.11-System sollte die Ausgabe des Hilfsprogramms folgendermaßen aussehen:

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

Wenn Ihr Pfad angepasst werden muss, lesen Sie auch zu dieser Frage die hervorragenden Antworten.

bmike
quelle
1
Oder Sie könnten ein Problem PATH=$(/usr/bin/getconf PATH)damit haben, einen verwendbaren PATH in der aktuellen Shell abzurufen. /usr/localexistiert nicht auf einem unveränderten System.
fd0
Excellent @fdo - Ich bin mir nicht bewusst, was getconf durcheinander bringen könnte, so dass es genauso gut sein könnte wie harte Codierungssachen. Es ist auch kürzer als mein "Brute Force" Fix.
bmike
path_helperErstellt den Pfad aus dem aktuellen Pfad, der /etc/pathsDatei und allen darin enthaltenen Dateien /etc/paths.d. Sie kann auch durch die PATH-Einstellungen in beeinflusst werden /etc/launchd.conf. getconfdruckt den im Kernel fest codierten System-PATH sysctl user.cs_path.
fd0
0

Möglicherweise wurde das ./bash_profil Ihres Terminals ü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 Zugriff geben sudound nanowelche Sie dann verwenden werden nano .bash_profile. Für mich hat es funktioniert, alles in der Datei zu löschen.

Nugenrules
quelle