Wie installiere / installiere ich Befehle im Mac-Terminal neu?

0

Ich habe immer Probleme mit meinem Terminal, weil der Befehl, den ich verwenden möchte, "nicht gefunden" ist. Wenn ich dann versuche, diesen Befehl zu installieren, habe ich einen anderen Befehl, der ebenfalls "nicht gefunden" wurde und den ich installieren muss. Auch wenn ich so etwas wie sudo bekomme, funktioniert es für diese Sitzung, aber wenn ich das nächste Mal das Terminal öffne, muss ich die Befehle neu installieren. Wenn ich mache

echo $PATH

Es kehrt zurück

/opt/local/bin:/opt/local/sbin:’/usr/local/bin:??

Ich habe eine vorübergehende Lösung erhalten, die anständig funktioniert, aber ich muss sie jedes Mal wiederholen, wenn ich das Terminal öffne. Wenn mir also jemand erklären könnte, wie ich das dauerhaft beheben kann, wäre das großartig. Ich weiß, dass echo $ PATH das nicht zurückgeben soll.

Tyler Bloom
quelle
Gibt " Meaning" echo $PATHwirklich zurück, /opt/local/bin:/opt/local/sbin:’/usr/local/bin:??einschließlich dieses einfachen Anführungszeichens und der beiden Fragezeichen?
JakeGould
Ja, das wird kopiert und vom Terminal eingefügt
Tyler Bloom

Antworten:

1

Möglicherweise müssen Sie keine Befehle deinstallieren oder neu installieren. Möglicherweise müssen Sie nur die Fehler beheben, die zur Beschädigung Ihrer PATHVariablen geführt haben.

Geben Sie Folgendes ein, um angemessene Standardeinstellungen für die aktuelle Shell-Sitzung festzulegen:

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

Beachten Sie, dass dies nur das Problem für die aktuelle Shell-Sitzung behebt und das nächste Terminal-Fenster, das Sie öffnen, wieder in den fehlerhaften Zustand versetzt wird.

Um es für das nächste Mal zu beheben, müssen Sie herausfinden, wo es falsch eingestellt ist, und es dort beheben.

In modernen MacOS wird systemweites Pfadmaterial in /etc/pathsund eingerichtet /etc/paths.d/*(das sind textbasierte Konfigurationsdateien). Also überprüfe diese zuerst und stelle sicher, dass sie gesund aussehen.

Außerdem gibt es systemweite Shell-Startskripte /etc/, wie z. B. /etc/profileund /etc/bashrc. Es ist ziemlich üblich, Ihre zu setzen oder zu ergänzenPATHin Shell-Startskripten. Wenn Sie oder ein Installer, Paketmanager oder Installationsskript diese bearbeitet haben, müssen Sie möglicherweise sehen, was es getan hat, und sie korrigieren (dh, Sie müssen diese Skriptdateien in einem Texteditor anzeigen und sie bearbeiten, um sie zu korrigieren, wenn Sie Fehler finden). . Welche Sie überprüfen müssen, hängt davon ab, welche Shells Sie verwenden, wie Sie sie aufrufen und verwenden (dh als Anmelde-, interaktive oder nicht interaktive Shells) und welche Shell-Startskriptdateien vorhanden sind (einige benötigen diese) Vorrang vor anderen Dateien haben, so dass andere Dateien aufgrund des Vorhandenseins einiger Dateien möglicherweise nicht ausgeführt werden). Sie müssen in den Manpages nach den verwendeten Shells suchen, um zu erfahren, welche Shell-Startskripts in welchen Situationen ausgeführt werden.

Dann müssen Sie Ihre eigenen persönlichen Shell-Startskripte in Ihrem eigenen Home-Verzeichnis überprüfen. Welche Skripte ausgeführt werden, hängt wiederum davon ab, welche Shell Sie verwenden, wie Sie sie aufrufen und welche Skriptdateien vorhanden sind. Sie müssen daher die Manpages überprüfen. Sie werden wahrscheinlich zu sehen am Ende brauchen ~/.profileund ~/.bashrc.

Ein letzter Hinweis: Wenn Sie diesen ausgegebenen Text kopieren / einfügen, sieht es so aus, als ob er ein geschweiftes Zitat enthält, was darauf hindeutet, dass eines Ihrer Shell-Startskripts versehentlich ein geschweiftes Zitat enthält. Achten Sie darauf, Shell-Skripte und andere computerlesbare textbasierte Dateiformate (Quellcode, HTML, CSS, JavaScript, JSON, XML, .plists usw.) in GUI-Textverarbeitungsprogrammen / Texteditoren zu bearbeiten. Stellen Sie sicher, dass alle Funktionen zum Ersetzen von Text wie "Kluge Anführungszeichen" und "Kluge Bindestriche" deaktiviert sind, da Sie sonst versehentlich geschweifte Anführungszeichen erhalten, wenn Sie ein gerades Anführungszeichen oder einen Bindestrich mit zwei Bindestrichen benötigen. Die meisten computerlesbaren Formate betrachten einfache Anführungszeichen nur als syntaktisch sinnvoll.

Spiff
quelle
-bash: / etc / path: Berechtigung verweigert -bash: /etc/paths.d/40-XQuartz: Berechtigung verweigert
Tyler Bloom
Ich habe sie nur so eingegeben, wie Sie sie eingegeben haben, aber sollte ich einen Befehl für sie ausführen? Wenn ich es tue, geben sie verschiedene Dinge zurück
Tyler Bloom
ls / etc / path / etc / path
Tyler Bloom
@ TylerBloom Das sind Textdateien. Sie möchten sie mit einem Texteditor mit Root-Rechten bearbeiten. Wenn Sie zum Beispiel wissen, wie man es benutzt vi, können Sie es tun sudo vi /etc/paths.
Spiff
Entschuldigung, ich bin mir nicht sicher, was ein Texteditor ist. Wenn ich sudo vi ausführe, wird / usr / local / bin / usr / bin / bin / usr / sbin / sbin zurückgegeben. 5L, 45C jeweils ~ auf einer separaten Linie obwohl
Tyler Bloom