PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : $PATH ändern



tux-pet
01.04.05, 15:07
Hallo

Ich habe ein Frage zur Reihefolge der Einträge in der
$PATH Variable:

mein Path sieht folgendermassen aus:

test@linux1:~> echo $PATH

/home/test/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin

test@linux1:~>

ich hätte nun gern die Reihenfolge der Einträge geändert und gewisse
Einträge dazugefügt oder gelöscht.
Wie kann ich dass machen?

Die Einträge sollen zudem permanent erfolgen, d.h. beim nächsten Start
des Systems sollen die gemachten Aenderungen am Path weiterhin Bestand
haben.

Ich verwende SuSE 9.2 Prof.

Besten Dank im Voraus

Peter

ChandlerBing
01.04.05, 15:28
In /etc/profile stehen imho die Pfadeinträge, die für alle Nutzer gleich sind.
Jeder Nutzer hat dann noch seine eigene ~/.bashrc (non-login shell) bzw. ~/.bash_profile (login shell) in denen die individuellen Pfade eingestellt werden können.

carnil
01.04.05, 15:57
Hallo tux-pet

Als kleine Ergänzung: vielleicht zwei Links die Dich weiter interessieren könnten:

www.linuxfibel.de
www.selflinux.org

Viel Freude damit ;)

MfG carnil

DrunkenFreak
02.04.05, 14:47
sollte die reihenfolge der einträge nicht egal sein? es wird doch meines wissens einfach überall nachgeguckt und wo was gefunden wird wird es auch benutzt oder nicht?

so long

tictactux
02.04.05, 15:59
sollte die reihenfolge der einträge nicht egal sein?Nein.

es wird doch meines wissens einfach überall nachgeguckt und wo was gefunden wird wird es auch benutzt oder nicht?Ja, in der angegebenen Reihenfolge. Deswegen setzt man /usr/local/* oder $HOME/bin
vor den System-Pfad, wenn man gleichnamige Befehle aus letzterem überschreiben will...
Gruss,
Wolfgang

L00NIX
03.04.05, 11:20
Nein.
Ja, in der angegebenen Reihenfolge. Deswegen setzt man /usr/local/* oder $HOME/bin
vor den System-Pfad, wenn man gleichnamige Befehle aus letzterem überschreiben will...


Und in dieser Reihenfolge kann dieses "Überschreiben" zu der Problematik der Endlosschleife führen.

Beispiel:

Eigenes Skript mit namen "ls" in $HOME/bin benutzt das ls Kommando. Wenn in diesem selbst geschriebenen Skript nun kein exliziter PATH gesetzt ist oder absolute Pfade verwendet werden kracht's bei fork().

Deswegen habe ich zumindest $HOME/bin am Ende stehen und benutze soweit es geht beim "Überschreiben" Aliase (man bash, suchen nach alias).

Aber /usr/local/bin sollte schon vorne stehen...


Gruß
L00NIX

tictactux
03.04.05, 13:29
Hi L00NIX,

Und in dieser Reihenfolge kann dieses "Überschreiben" zu der Problematik der Endlosschleife führen.

Beispiel:

Eigenes Skript mit namen "ls" in $HOME/bin benutzt das ls Kommando. Wenn in diesem selbst geschriebenen Skript nun kein exliziter PATH gesetzt ist oder absolute Pfade verwendet werden kracht's bei fork().

Deswegen habe ich zumindest $HOME/bin am Ende stehen und benutze soweit es geht beim "Überschreiben" Aliase (man bash, suchen nach alias).

Aber /usr/local/bin sollte schon vorne stehen...
Natürlich ist ein "Überschreiben" von Standardtools immer mit Vorsicht
zu genießen, wie auch rekursive Aufrufe (die man auch bei Aliasen/Funktionen
im Kopf haben sollte).
In bestimmten Umgebungen (Shell-Accounts und damit verbunden, eigene
Programminstallationen unter $HOME/) ist das aber gängige Praxis, und Aliase
nicht immer anwendbar, z.B. wg. Vererbung in subshells.
Insofern stimme ich zu: besser wäre $HOME/bin am Ende des Pfades (was ich
privat auch so mache).
Gruss,
Wolfgang