$PATH anpassen
Dieser Artikel wurde von tuxorials.de (Dokuwiki) hierher migriert! Mögliche Darstellungsfehler bitte ich zu entschuldigen.
Die Shell-Variable $PATH
ist dafür zuständig, Pfade zu Verzeichnissen
festzulegen, in denen die Shell nach ausführbaren Dateien sucht und sie
so in der Lage ist, diese Dateien ohne explizite Pfadangabe auszuführen.
Standardmäßig sind dort alle wichtigen Verzeichnisse wie /bin
,
/usr/bin
, /usr/local/bin
, /sbin
oder /usr/sbin
enthalten, sodass
es möglich ist, die Programme cat
oder grep
ohne Pfadanagbe
auszuführen. Manchmal ist es aber notwendig andere Pfade hinzuzufügen,
um eigene Programme oder Scripts genauso komfortabel ausführen zu
können. Die Anpassung wird nachfolgend dargestellt.
Um diese Variable dauerhaft ändern zu können, muss man wissen, welche Dateien beim Start eines Linux-Systems ausgelesen und interpretiert werden.
HINWEIS Die hier beschriebene Vorgehensweise bezieht sich auf die
Standard-Shell bash
(Bourne-Again-Shell), bei anderen Shells wie der
csh
, tcsh
oder der zsh
ist dieses Vorgehen anders und es gibt
andere Dateien, aber da diese Shells sehr selten sind, lasse ich die
jetzt ganz dreist außen vor.
/etc/bashrc oder unter Debain/Ubuntu /etc/bash.bashrc
Diese Dateien sind global und somit hat dort nur root
Schreibzugriff,
d.h. alles was hier festgelegt wird, gilt für alle Nutzer des Sytems und
es ist sehr einfach und komfortabel durch diese Datei Rahmenbedingung
für die Nutzer festzulegen. Wenn Sie als normaler Nutzer auf einem
System mit mehreren Nutzern arbeiten, wird es Ihnen normalerweise nicht
möglich sein, in der globalen Datei etwas zu ändern und somit verbleiben
Ihnen noch die lokalen Dateien.
Beispiel: Stellen Sie sich vor, dass Sie in Ihrem Homeverzeichnis
einen Ordner Scripts
und einen Ordner Programs
haben, indem Sie Ihre
eigenen Programmierprojekte und Shell-Scripte aufbewahren, die jeweils
alle ausführbar sind. Sie möchten diese aber wie ganz normale Programme
(cat
, less
odergrep
) ohne Pfad-Angabe ausführen. Um das zu
erledigen fügen Sie der Datei /etc/bashrc
oder /etc/bash.bashrc
(Debian/Ubuntu) folgende Zeilen hinzu:
#Erweiterung der PATH-Variable
PATH=$PATH:/home/philipp/Scripts:/home/philipp/Programs
export $PATH
Erklärung: Die erste Zeile bildet nur einen Kommentar, der Ihnen beim
erneuten Aufsuchen der Stelle in der Datei behilflich sein kann. Die
zweite Zeile bedeutet wörtlich: Lege Eine Variable mit dem Namen PATH
an, fülle sie mit dem Wert aus der, schon existierenden, PATH
-Variable
und hänge durch einen Doppelpunkt (wichtig!!!) separiert neue Pfade an.
Die export
-Anweisung in der dritten Zeile bedeutet nur, dass diese
Variable auch an die Subshells weitergegeben wird und somit zum Beispiel
auf in Shellscripten zur Verfügung steht, weil bei deren Aufruf eine
neue Subshell gestartet wird.
~/.bashrc oder mit voller Pfadangabe /home/user/.bashrc Diese Datei
existiert für jeden Benutzer und jeder Benutzer kann sie seinen Wünschen
entsprechend editieren. Sie befindet sich direkt in Ihrem
Homeverzeichnis und um dort Verzeichnisse zu PATH hinzuzufügen, gehen
Sie wie bei der globalen bashrc
vor.