Fatmawati Achmad Zaenuri/Shutterstock

|_+_| ist einer der stillen Manipulatoren im Hintergrund Ihres Linux-Computers. Es wirkt sich leise auf Ihre Benutzererfahrung aus, aber es ist nichts Zwielichtiges daran. Wir erklären, was es tut und wie Sie es anpassen können.



Was ist $PATH unter Linux und wie funktioniert es?

Wenn Sie einen Befehl in ein Terminalfenster eingeben und die Eingabetaste drücken, starten Sie ziemlich viel Aktivität, bevor Ihr Befehl überhaupt ausgeführt wird.

Bash ist die Standard-Shell der meisten Linux-Distributionen. Es interpretiert die von Ihnen eingegebene Textzeile und identifiziert die mit den Parametern vermischten Befehlsnamen, Rohre , Weiterleitungen , und was sonst noch da ist. Anschließend sucht es die ausführbaren Binärdateien für diese Befehle und startet sie mit den von Ihnen angegebenen Parametern.

Der erste Schritt, den die Shell unternimmt, um die ausführbare Datei zu finden, besteht darin, festzustellen, ob überhaupt eine Binärdatei beteiligt ist. Wenn sich der von Ihnen verwendete Befehl in der Shell selbst befindet (a eingebaute Schale ) ist keine weitere Suche erforderlich.

Shell-Buildins sind am einfachsten zu finden, da sie in die Shell integriert sind. Es ist, als ob Sie sie in einem Werkzeuggürtel hätten – sie sind immer bei Ihnen.

Anzeige

Wenn Sie jedoch eines Ihrer anderen Werkzeuge benötigen, müssen Sie in der Werkstatt stöbern, um es zu finden. Ist es auf Ihrer Werkbank oder auf einem Wandhänger? Das ist es, was die |_+_| Umgebungsvariable tut. Es enthält eine Liste der Orte, die die Shell durchsucht, und die Reihenfolge, in der sie durchsucht werden.

Wenn Sie sehen möchten, ob ein Befehl a . ist Shell builtin, ein Alias, eine Funktion oder eine eigenständige Binärdatei mv /work/unfile , können Sie die |_+_| Befehl wie unten gezeigt:

$PATH $PATH

Dies sagt uns, dass |_+_| ist eine Binärdatei, und die erste im Pfad gefundene befindet sich unter |_+_|. Möglicherweise haben Sie mehr als eine Version von |_+_| auf Ihrem Computer installiert, aber die Shell versucht, diese zu verwenden.

Es überrascht nicht, dass |_+_| ist eine eingebaute Shell.

Auflisten Ihres $PFAD

Es ist leicht zu erkennen, was Ihnen im Weg steht. Geben Sie einfach Folgendes ein, um die |_+_| . zu verwenden Befehl und drucke den Wert aus gehalten in der |_+_| Variable:

type

Die Ausgabe ist eine Liste von durch Doppelpunkte (|_+_|) getrennten Dateisystemspeicherorten. Die Shell durchsucht den Pfad von links nach rechts und überprüft jeden Speicherort des Dateisystems auf eine passende ausführbare Datei, um Ihren Befehl auszuführen.

Wir können uns durch die Liste navigieren, um die zu durchsuchenden Dateisystemspeicherorte und die Reihenfolge, in der sie durchsucht werden, anzuzeigen:

tabbed windows explorer windows 10
  • clear
  • /usr/bin
  • clear
  • cd
  • echo
  • $PATH
  • :
  • /usr/local/sbin
  • /usr/local/bin
Anzeige

Etwas, das möglicherweise nicht sofort offensichtlich ist, ist, dass die Suche nicht im aktuellen Arbeitsverzeichnis beginnt. Vielmehr arbeitet es sich durch die aufgelisteten Verzeichnisse und nur die aufgelisteten Verzeichnisse.

Wenn sich das aktuelle Arbeitsverzeichnis nicht in Ihrem Pfad befindet, wird es nicht durchsucht. Wenn Sie Befehle in Verzeichnissen gespeichert haben, die nicht im Pfad enthalten sind, findet die Shell sie auch nicht.

Um dies zu demonstrieren, haben wir ein kleines Programm namens |_+_| erstellt. Bei der Ausführung |_+_| gibt den Namen des Verzeichnisses aus, aus dem es im Terminalfenster gestartet wurde. Es befindet sich in |_+_|. Wir haben auch eine neuere Version im |_+_| Verzeichnis.

Wir geben Folgendes ein |_+_| Befehl um uns zu zeigen, welche Version unseres Programms Die Shell findet und verwendet:

/usr/sbin

Die Shell meldet, dass die gefundene Version diejenige ist, die sich im Verzeichnis befindet, das sich im Pfad befindet.

Wir geben Folgendes ein, um es zu starten:

iPhone alle Safari-Tabs schließen
/usr/bin

Version 1.0 von |_+_| läuft und bestätigt unsere Erwartungen waren richtig. Die gefundene und ausgeführte Version befindet sich in |_+_|.

Anzeige

Um eine andere Version von |_+_| . auszuführen Auf diesem Computer müssen wir den Pfad zur ausführbaren Datei in der Befehlszeile verwenden, wie unten gezeigt:

/sbin

Jetzt haben wir der Shell mitgeteilt, wo die Version von |_+_| . zu finden ist wir ausführen möchten, verwendet es Version 1.1. Wenn wir diese Version bevorzugen, können wir sie in das |_+_| . kopieren Verzeichnis und überschreiben Sie das alte.

Nehmen wir an, wir entwickeln eine neue Version von |_+_|. Wir müssen es häufig ausführen, während wir es entwickeln und testen, aber wir möchten keinen unveröffentlichten Entwicklungs-Build in die Live-Umgebung kopieren.

Oder vielleicht haben wir eine neue Version von |_+_| . heruntergeladen und möchten einige Verifizierungstests damit durchführen, bevor wir es öffentlich zur Verfügung stellen.

Wenn wir unser Arbeitsverzeichnis zum Pfad hinzufügen, veranlassen wir die Shell, unsere Version zu finden. Und diese Änderung betrifft nur uns – andere werden weiterhin die Version von |_+_| . verwenden in |_+_| .

Hinzufügen eines Verzeichnisses zu Ihrem $PFAD

Sie können die |_+_| Befehl an ein Verzeichnis hinzufügen zum |_+_|. Das Verzeichnis wird dann in die Liste der Dateisystemspeicherorte aufgenommen, die die Shell durchsucht. Wenn die Shell eine passende ausführbare Datei findet, stoppt sie die Suche, daher sollten Sie sicherstellen, dass sie zuerst Ihr Verzeichnis durchsucht, bevor |_+_|.

Anzeige

Dies ist ganz einfach. In unserem Beispiel geben wir Folgendes ein, um unser Verzeichnis am Anfang des Pfads hinzuzufügen, damit es der erste gesuchte Ort ist:

/bin

Dieser Befehl setzt |_+_| gleich dem Verzeichnis sein, das wir hinzufügen, |_+_|, und dann der gesamte aktuelle Pfad.

Das erste |_+_| hat kein Dollarzeichen (|_+_|). Wir setzen den Wert für |_+_|. Das Finale |_+_| hat ein Dollarzeichen, weil wir auf den Inhalt verweisen, der in |_+_| . gespeichert ist Variable. Beachten Sie auch den Doppelpunkt (|_+_|) zwischen dem neuen Verzeichnis und dem |_+_| Variablennamen.

Mal sehen, wie der Pfad jetzt aussieht:

was ist eine docx datei
/usr/games

Unsere |_+_| Verzeichnis wird am Anfang des Pfades hinzugefügt. Der von uns bereitgestellte Doppelpunkt trennt ihn vom Rest des Pfads.

Wir geben Folgendes ein, um unsere Version von |_+_| . zu überprüfen ist der erste gefundene:

/usr/local/games

Der Beweis im Pudding läuft |_+_|, wie unten gezeigt:

/snap/bin

Die Shell findet Version 1.1 und führt sie von |_+_| aus.

Anzeige

Um unser Verzeichnis am Ende des Pfads hinzuzufügen, verschieben wir es einfach wie folgt an das Ende des Befehls:

rf

Die Änderungen dauerhaft machen

Wie Beth Brooke-Marciniak sagte: Erfolg ist gut, aber Erfolg ist vergänglich. Sobald Sie das Terminalfenster schließen, werden alle Änderungen an |_+_| sind weg. Um sie dauerhaft zu machen, musst du deine |_+_| Befehl in einer Konfigurationsdatei.

Wenn Sie die |_+_| Befehl in Ihrem |_+_| Datei wird der Pfad jedes Mal festgelegt, wenn Sie ein Terminalfenster öffnen. nicht wie |_+_| Sitzungen , für die Sie sich anmelden müssen, werden interaktive Sitzungen genannt.

In der Vergangenheit würden Sie |_+_| Befehl in Ihrem |_+_| -Datei, um den Pfad für die Anmeldung bei Terminalsitzungen festzulegen.

Wir haben jedoch festgestellt, dass, wenn wir |_+_| Befehl entweder im |_+_| oder |_+_| Dateien wird der Pfad sowohl für interaktive als auch für Anmeldeterminalsitzungen korrekt festgelegt. Ihre Erfahrung kann anders sein. Um alle Eventualitäten zu meistern, zeigen wir Ihnen in beiden Dateien, wie es geht.

Verwenden Sie den folgenden Befehl in Ihrem |_+_| Verzeichnis zum Bearbeiten der |_+_| Datei:

rf

Der /usr/local/bin Editor öffnet mit dem |_+_| Datei geladen.

Der gedit-Editor mit dem

Anzeige

Scrollen Sie zum Ende der Datei und fügen Sie dann den folgenden Exportbefehl hinzu, den wir zuvor verwendet haben:

/dave/work

Speicher die Datei. Als nächstes schließen Sie entweder das Terminalfenster und öffnen es erneut oder verwenden die |_+_| Befehl zum Lesen der |_+_| Datei wie folgt:

which

Geben Sie dann Folgendes ein |_+_| Befehl um den Pfad zu überprüfen:

rf

wie man von chromebook profitiert

Dies fügt die |_+_| Verzeichnis an den Anfang des Pfades.

Der Vorgang zum Hinzufügen des Befehls zum |_+_| Datei ist die gleiche. Geben Sie den folgenden Befehl ein:

/usr/local/bin

Die |_+_| Editor startet mit dem |_+_| Datei geladen.

Der gedit-Editor mit dem

Fügen Sie |_+_| . hinzu Befehl an das Ende der Datei und speichern Sie sie dann. Das Schließen und Öffnen eines neuen Terminalfensters reicht nicht aus, um das |_+_| . zu erzwingen Datei neu gelesen werden. Damit die neuen Einstellungen wirksam werden, müssen Sie sich ab- und wieder anmelden oder die |_+_| . verwenden Befehl wie unten gezeigt:

rf

VERBUNDEN: So bearbeiten Sie Textdateien unter Linux grafisch mit gedit

Den Weg für alle setzen

Um den Pfad für alle Benutzer des Systems festzulegen, können Sie |_+_| . bearbeiten Datei.

Sie müssen |_+_| wie folgt verwenden:

Verschieben von Dampf auf ein anderes Laufwerk
rfAnzeige

Wenn die |_+_| Editor startet, fügen Sie den Exportbefehl am Ende der Datei hinzu.

Der gedit-Editor mit dem

Speichern und schließen Sie die Datei. Die Änderungen werden für andere wirksam, wenn sie sich das nächste Mal anmelden.

Ein Hinweis zur Sicherheit

Stellen Sie sicher, dass Sie nicht versehentlich einen führenden Doppelpunkt hinzufügen |_+_| zum Pfad, wie unten gezeigt.

Wenn Sie dies tun, wird zuerst das aktuelle Verzeichnis durchsucht, was ein Sicherheitsrisiko darstellt. Angenommen, Sie haben eine Archivdatei heruntergeladen und in ein Verzeichnis entpackt. Sie sehen sich die Dateien an und sehen eine weitere gezippte Datei. Sie rufen erneut unzip auf, um dieses Archiv zu entpacken.

Wenn das erste Archiv eine ausführbare Datei namens |_+_| . enthielt das war eine bösartige ausführbare Datei, Sie würden diese versehentlich anstelle der echten |_+_| . starten ausführbar. Dies würde passieren, weil die Shell zuerst im aktuellen Verzeichnis suchen würde.

Seien Sie also immer vorsichtig, wenn Sie |_+_| . eingeben Befehle. Verwenden Sie |_+_| $PATH, um sie zu überprüfen und sicherzustellen, dass sie so sind, wie Sie sie haben möchten.

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN