Ich habe meine Pfadvariable durcheinander gebracht, und jetzt geben einige von mir ausgeführte Apps bei Befehlen wie Datum und Ruhezustand die Fehlermeldung "Befehl nicht gefunden" (Fehler 127) aus . Diese Befehle funktionieren einwandfrei, wenn sie direkt in der Shell ausgeführt werden.
Ich vermute, das hat etwas mit einer fehlerhaften $ PATH-Variablen zu tun und muss wissen, wie man sie zurücksetzt. Ich habe die Dateien ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc und ~ / .bashrc und ~ / .profile gelöscht .
Welche anderen Dateien könnten meinen $ PATH enthalten ? Gibt es eine einfachere Möglichkeit, den Pfad zurückzusetzen, als in die unzähligen Dateien zu graben, die meinen Pfad enthalten könnten?
Beachten Sie, dass dieses Pfadproblem nur bei meinem Benutzer auftritt. Ich habe einen Testbenutzer auf meinem System erstellt, und der Pfad war in Ordnung, wieder normal.
UPDATE: Danke. Ich weiß nicht, welche der gelöschten Dateien es getan hat, aber die Dinge funktionieren wieder. Ihr habt getan, was die "Experten" nicht konnten. Und ja, Chris, du hattest recht. Die von mir vorgenommenen PATH-Anpassungen befanden sich in bash_login. Aber irgendwie hat es funktioniert, ohne dass ich diese Anpassungen gelöscht habe. Ich glaube, es könnte sein, dass ich dieses Prefpane namens 'RCEnvironment' verwendet habe und einen Pfad mit Anführungszeichen und: PATH eingegeben habe. Ich weiß nicht, ob es Anführungszeichen braucht, und es ersetzt nicht: $ PATH, so dass wahrscheinlich die Wurzel des Fehlers ist. Ich habe vergessen, dass ich dieses Prefpane hatte!
Antworten:
Wenn Sie eine ~ / .MacOSX / environment.plist-Datei haben, überprüfen Sie, ob sie einen Standard-PATH-Wert enthält.
Wenn es sich um ein XML-Format handelt (Plists können in vielen Formaten vorliegen), können Sie es mit einem beliebigen Texteditor bearbeiten. Überprüfen Sie es mit,
plutil -lint ~/.MacOSX/environment.plist
wenn Sie es von Hand bearbeiten.Sie können auch Befehle wie Defaults oder PlistBuddy verwenden , um kontrollierte Änderungen an Plist- Dateien im XML- oder Binärformat vorzunehmen.
Sie können in den Initialisierungsdateien Ihrer Shell jederzeit einen eigenen Pfad festlegen.
Fügen Sie in die Startdateien Ihrer Shell (
.bashrc
, oder.bash_profile
/.bash_login
/.profile
) Folgendes ein :Dadurch wird der beim Start der Shell festgelegte Standard-PFAD außer Kraft gesetzt (der erste
PATH=
wird nicht verwendet$PATH
, daher wird immer nur mit dem begonnen, was Sie ihm geben).Nur eine der Dateien ‚login‘ wird immer (das erste, das existiert und lesbar von verwendet werden
~/.bash_profile
,~/.bash_login
und~/.profile
wird verwendet werden)..profile
Dies dient der Abwärtskompatibilität mit anderen Shells. Wenn Sie diese verwenden, müssen Sie darauf achten, dass Sie keine für Bash spezifische Syntax verwenden . Wenn Sie mit.bash_login
oder gehen.bash_profile
(sie sind funktionell bis auf die Namen gleichwertig), verwenden Sie eine Zeile wie[[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]
oben, damit die Login-Shells auch die Anpassungen erhalten, die in Ihrem vorgenommen wurden.bashrc
.Wenn Sie möchten, dass alle Instanzen von bash denselben PATH haben, verwenden Sie
.bashrc
. Wenn Sie häufig feststellen, dass Sie den PATH einer einzelnen Shell über die Befehlszeile interaktiv ändern und diesen geänderten PATH in Subshells verwenden möchten (ein Fall, der wahrscheinlich nicht besonders häufig vorkommt), sollten Sie die Anweisungen stattdessen in eine der Anmeldedateien einfügen . Wählen Sie nur eine der Anmeldedateien aus und verwenden Sie sie.quelle
1.Öffnen Sie Ihr Terminal
2.Sie können zunächst nur Ihren aktuellen
$PATH
Typ überprüfenzum Terminal
3.Wenn das
$PATH
Terminal den gewünschten Pfad zurückgegeben hat, sind Sie gut. wenn nicht, tippe, dann tippe
, und geben Sie dann ein
Wenn sich ein EditText öffnet, geben Sie den gewünschten Pfad in diesen EditText ein. Geben Sie beispielsweise ein
( Dies ist die Standardeinstellung
$PATH
für Mac, wenn Sie das zurücksetzen möchten,$PATH
sodass Sie dies wahrscheinlich eingeben sollten.) Speichern Sie es, schließen Sie EditText und schließen Sie dann Terminal.4.Nun haben Sie Ihren
$PATH
Mac bereits geändert oder auf die Standardeinstellungen zurückgesetzt$PATH
!quelle
touch
ist erforderlich? Wenn Sie das Terminal sowieso schließen, warum sollten Sie dann dasexport
in der Befehlszeile ausführen , anstatt es nur zu~/.bash_profile
(was auch erforderlichexport
ist) hinzuzufügen und damit fertig zu sein? (Alternativ können Sie auch ausführensource ~/.bash_profile
, um die Änderungen auf das aktuelle Fenster anzuwenden.)Die
rc/profile
gezeigten Bearbeitungen von Chris Johnson funktionieren auch in/etc/profile
.Ich habe gerade angehängt:
Zu meiner
/etc/profile
Datei in Mac OS X 10.9 Mavericks, um die MariaDB-Installation abzuschließen (die als hervorragender Ersatz für MySQL fungiert).quelle
Wenn Sie ZSH verwenden, scheint sich die Pfadvariable dankbar zu erholen, wenn Sie Ihre Terminalsitzung neu starten.
https://github.com/robbyrussell/oh-my-zsh
https://www.iterm2.com/
quelle