Die PATH-Variable wird immer zurückgesetzt. Wie kann man das beheben?

9

Vor einiger Zeit habe ich herausgefunden, dass ich mit der Erweiterung der PATH-Variablen benutzerdefinierte Commandterminals erstellen kann. Leider wird es immer wieder angeklebt, wenn ich das Terminal schließe und wieder öffne.

Wissen Sie, wie Sie dieses Problem beheben können?

Denn wenn ich ein paar Skripte mit Terminalbefehlen starten möchte, möchte ich die PATH-Variable nicht jedes Mal vorher erweitern ...

Jenne
quelle
1
Legen Sie es in Ihre .bashrc?
gniourf_gniourf
Wie geht das? Ich bin neu unter Linux;)
Jenne
2
Öffnen Sie Ihre .bashrcDatei wie gedit ~/.bashrcfolgt : und fügen Sie alles ein, was Sie möchten (am Ende der Datei ist es besser), z. B. PATH="~/my/cool/path/:$PATH"und exportieren Sie diese Variable: Fügen Sie nach der gerade eingegebenen Zeile export PATHdie Datei ein, speichern Sie sie, schließen Sie das Terminal und öffnen Sie sie erneut es und jetzt werden Ihre ausführbaren Dateien in ~/my/cool/pathgefunden.
gniourf_gniourf
Ich habe es als vollständige Antwort für Sie geschrieben ...:)
gniourf_gniourf
Mögliches Duplikat von Wie füge ich dem PATH ein Verzeichnis hinzu?
David Foerster

Antworten:

15

Ich verstehe, dass Sie einige ausführbare Dateien in einem Ihrer Home-Ordner haben, z. B. in, ~/binund Sie möchten sie ausführen können, ohne immer den vollständigen Pfad einzugeben ~/bin/my_cool_executable.

Sie haben bereits festgestellt, dass beim Betreten PATH=~/bin:$PATHIhres Terminals alles funktioniert hat ... aber nur, bis Sie das Terminal schließen. Wenn Sie eine neue PATHVariable öffnen, wird Ihre frühere Variable auf ihren ursprünglichen Wert zurückgesetzt. Übrigens, ich denke, Sie wissen, wie Sie jederzeit den Wert der PATHVariablen überprüfen können: wie folgt:

echo "$PATH"

Wie können Sie Ihre Änderung dauerhaft machen, damit Ihre Änderung PATHbeim erneuten Öffnen eines neuen Terminals unverändert bleibt? Es ist sehr einfach, Sie müssen nur Ihre .bashrcDatei bearbeiten . Verwenden wir den geditEditor: Geben Sie in einem Terminal Folgendes ein:

gedit ~/.bashrc

Dies öffnet den geditEditor. Scrollen Sie zum Ende der Datei und fügen Sie Folgendes hinzu:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

und speichern Sie die Datei und beenden Sie gedit. Schließen Sie dann Ihr Terminal und öffnen Sie ein neues. Jetzt sollte Ihre PATHVariable ~/bindavor stehen, damit auf Ihre Befehle ~/binzugegriffen werden kann, ohne den vollständigen Pfad einzugeben. Und Sie wissen, wie Sie das überprüfen können : echo "$PATH".

Genießen!

Warnung . Es wird als schlechte Praxis und Sicherheitslücke angesehen, .Ihre PATHVariable einzugeben.

gniourf_gniourf
quelle
Das war wirklich schön, aber jetzt kann ich die Programme nicht starten, wenn ich root bin. Wissen Sie warum und wie Sie das beheben können? :)
Jenne
In diesem Fall besteht eine Möglichkeit darin, Ihre Programme /usr/local/bineinzulegen, anstatt mit der PATHVariablen herumzuspielen ... oder in, /usr/local/sbinwenn nur über root auf sie zugegriffen werden muss.
gniourf_gniourf
Einige müssen als root ausgeführt werden, andere nicht. Es wäre also schön, wenn es keine Rolle spielen würde und sie sich in einem benutzerdefinierten Verzeichnis befinden könnten. Kann es das also? :)
Jenne