woher weiss Linux, wo die Datei oder das Programm sich befindet, welches er anwählen soll, wenn ich in der Konsole das entsprechende Programm aufrufe, ohne im entsprechenden Verzeichnis zu sein?
Beispielsweise kann ich von überall her den Java-Compiler javac oder emacs> aufrufen, ohne zu wissen, in welchem Verzeichniss sich das befindet.
Ich denke, ich muß eine bestimmte Datei editieren, wie das unter DOS (command.com) üblich war; stimmt das, wenn ja: welche Datei?
sagt Dir, welches Programm gefunden wurde, bei mehreren Fundorten wird immer der zuerst gefundene ausgefuehrt.
Nimm in Deine ~/.bashrc die Zeile
export PATH=$HOME/bin:blush:PATH
auf. Genauer:
Erstelle erstmal das Verzeichnis ~/bin. Dann log Dich neu ein (auch auf Konsole moeglich). Mit
echo $PATH
siehst Du den gefundenen Pfad. Sollte ~/bin nicht drin auftauchen, s.o. Dann musst Du nur noch die Java1.3-Programme in Dein bin-Verzeichnis linken:
ln -s /bin/* ~/bin
Evtl. muss noch die classlib korrekt gesetzt werden, das wieder in der ~/.bashrc:
export CLASSLIB=/lib/??.jar
Dort kann jeweils die Variable PATH editiert werden.
Und das funktioniert nur, wenn man als Shell die bash hat. Wenn man aber die Z-Shell (zsh) gebraucht, intressiert niemanden die .bashrc. Die .bashrc ist eigentlich fuer Konfigurationseinstellungen der bash gedacht, darum auch rc dran (Runtime Configuration). Einstelleungen, die unabhaengig von der Shell sind, wie z.B. eine Latte von Umgebeungsvariablen (PATH, TERM, TAPE, GSVGAMODE blabla…) gehoeren in die .profile im Heimatverzeichnis. Die in /etc/profile ist Standart fuer alle und das Feintuning uebernimmt die .profile, darum heissen die auch gleich und wird von jeder Shell abgearbeitet.