OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

3.2. Orientierung im Dateisystem‌‌


3.2.1. Der Weg


Wenn Sie möchten, dass das System einen Befehl ausführt, müssen Sie fast nie den vollständigen Pfad zu diesem Befehl angeben. Wir wissen zum Beispiel, dass die ls Befehl ist in der /Behälter Verzeichnis (überprüfen Sie mit welche -a ls), wir müssen den Befehl jedoch nicht eingeben /bin/ls damit der Computer den Inhalt des aktuellen Verzeichnisses auflistet.


Das PATH Dafür sorgt die Umgebungsvariable. Diese Variable listet die Verzeichnisse im System auf, in denen ausführbare Dateien zu finden sind, und erspart dem Benutzer somit viel Tipparbeit und das Merken von Befehlsspeicherorten. Der Pfad enthält also natürlich viele Verzeichnisse Kasten irgendwo in ihren Namen, wie der Benutzer unten demonstriert. Der Echo Mit dem Befehl wird der Inhalt („$“) der Variablen angezeigt PATH:


rogier:> echo $PFAD

/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin

rogier:> echo $PFAD

/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin

In diesem Beispiel die Verzeichnisse /opt/local/bin, /usr/X11R6/bin, / usr / bin, / usr / sbin und

/Behälter Anschließend wird nach dem gewünschten Programm gesucht. Sobald eine Übereinstimmung gefunden wird, wird die Suche gestoppt, auch wenn nicht jedes Verzeichnis im Pfad durchsucht wurde. Dies kann zu seltsamen Situationen führen. Im ersten Beispiel unten weiß der Benutzer, dass ein Programm aufgerufen wird SMS senden um eine SMS-Nachricht zu senden, und ein anderer Benutzer auf demselben System kann sie verwenden, sie selbst jedoch nicht. Der Unterschied liegt in der Konfiguration des PATH Variable:


[jenny@blob jenny]$ SMS senden bash: sendsms: Befehl nicht gefunden [jenny@blob jenny]$ echo $PATH

/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony

Passwort: tony:~>which sendsms

sendsms ist /usr/local/bin/sendsms


tony:~>echo $PATH

/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\

/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin

[jenny@blob jenny]$ SMS senden bash: sendsms: Befehl nicht gefunden [jenny@blob jenny]$ echo $PATH

/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony

Passwort: tony:~>which sendsms

sendsms ist /usr/local/bin/sendsms


tony:~>echo $PATH

/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\

/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin

Beachten Sie die Verwendung der su (Benutzer wechseln)-Funktion, mit der Sie eine Shell in der Umgebung eines anderen Benutzers ausführen können, sofern Sie das Kennwort des Benutzers kennen.


Ein Backslash gibt die Fortsetzung einer Zeile in der nächsten an, ohne ein Enter eine Linie von der anderen trennen.


Im nächsten Beispiel möchte ein Benutzer die anrufen wc (word count), um die Anzahl der Zeilen in einer Datei zu überprüfen, aber es passiert nichts und er muss seine Aktion mit abbrechen Ctrl+C Kombination:


Jumper:~> wc -l test


(Strg-C)

Jumper:~> welches wc

wc ist gehasht (/home/jumper/bin/wc)


Jumper:~> echo $PFAD

/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin

Jumper:~> wc -l test


(Strg-C)

Jumper:~> welches wc

wc ist gehasht (/home/jumper/bin/wc)


Jumper:~> echo $PFAD

/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin

Die Verwendung des welche Der Befehl zeigt uns, dass dieser Benutzer eine hat Kasten-Verzeichnis in seinem Home-Verzeichnis, das ein ebenfalls aufgerufenes Programm enthält wc. Da das Programm in seinem Home-Verzeichnis beim Durchsuchen zuerst gefunden wird


Wege auf einen Ruf hin wc, wird dieses „selbstgemachte“ Programm ausgeführt, mit Eingaben, die es wahrscheinlich nicht versteht, also müssen wir es stoppen. Um dieses Problem zu lösen, gibt es mehrere Möglichkeiten (unter UNIX/Linux gibt es immer mehrere Möglichkeiten, ein Problem zu lösen): Eine Antwort könnte darin bestehen, den Benutzer umzubenennen wc Programm, oder der Benutzer kann den vollständigen Pfad zu dem genauen Befehl angeben, den er möchte, den er mithilfe von finden kann -a Option zum welche Befehl.


Wenn der Benutzer häufiger Programme in den anderen Verzeichnissen nutzt, kann er seinen Pfad ändern, um zuletzt in seinen eigenen Verzeichnissen zu suchen:


Jumper:~> export PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin

Jumper:~> export PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin


ImageÄnderungen sind nicht dauerhaft!

 

Top OS Cloud Computing bei OnWorks: