Befehle sind nicht nur Befehle des Betriebssystems. Der Pfad ist eine Liste von Verzeichnissen, in denen die Shell nach Bedienungssystembefehlen und anderen Befehlen sucht. Befehle sind wie kurze Programmdateien. Befehle sind also ausführbare. Jede auf dem Computer installierte Anwendung wird mit einer ausführbaren Datei geliefert. Um die Anwendung auszuführen, ist die ausführbare Datei zuerst eingesetzt. Diese ausführbaren Dateien werden auch als Befehle bezeichnet.
Ohne die Pfadvariable würde jeder Befehl mit dem absoluten Pfad befohlen, wie in,
/Home/John/dir1/dir2/Befehl.exe
wo das erste / das Wurzelverzeichnis ist; John ist das Benutzerverzeichnis für den Benutzer, John; DIR1 und DIR2 sind Unterverzeichnisse; und Befehl.exe ist der Name der ausführbaren Datei.
Viele andere Namen sind für die ausführbare Datei möglich. In der Tat Befehl.exe ist symbolisch, hier. Wenn sich das Verzeichnis,/Home/John/dir1/dir2 (ohne die Datei), in der Pfadvariablen befindet, führt der Benutzer John aus, der Befehl ausführt.exe an der Eingabeaufforderung, John@host: ~ $ durch einfach tippt, Befehl.exe, ohne den vorhergehenden Weg. Das ist:
John@Host: ~ $ Command.exe
und dann drücken Sie die Eingabetaste.
Um die aktuelle Liste der Pfadverzeichnisse im Computer anzuzeigen, geben Sie ein:
$ echo $ path
und drücken Sie die Eingabetaste am Terminal. Das Ergebnis wäre so etwas wie,
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Die Frage ist jetzt: Wie ist ein Verzeichnis (und sein vorhergehender Pfad), der der Pfadvariablen hinzugefügt wird? Mit einigen Installationen wird das Verzeichnis automatisch hinzugefügt. Mit anderen muss es manuell hinzugefügt werden. In diesem Artikel werden die beiden Hauptmethoden erläutert, in denen das Verzeichnis hinzugefügt wird. Das Verzeichnis wird nicht hinzugefügt (enthalten), wie es mit einem Array erledigt werden würde. Die beiden Hauptmethoden werden als vorübergehende Ergänzung und dauerhafte Ergänzung bezeichnet. Bash ist die Shell, die für die Codebeispiele in diesem Artikel verwendet wird.
Artikelinhalt
Vorübergehende Ergänzung
Temporärer Addition bedeutet, dass die Zugabe nur im Speicher stattfindet. Es wird nicht für die Verwendung gespeichert, wenn der Computer neu gestartet wird.
Der in Bourne Shell eingebaute Exportbefehl
In einfachen Worten lautet der Exportbefehl:
$ export [name [= value]]
In diesem Fall gibt es einen Wert zu einer Variablen im Speicher zu.
Die Pfadvariable im Speicher hat möglicherweise bereits Wert wie,
Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Nehmen Sie an, dass das zugefügte Verzeichnis/home/John/dir1/dir2 ist. Wenn der Exportbefehl als tippt wird,
$ Export Path =/home/John/dir1/dir2
dann/home/John/dir1/dir2 würde alles ersetzen, was sich bereits im Speicher als Wert für die Pfadvariable befindet.
Wenn der Exportbefehl als tippt wird,
$ export path = $ path:/home/John/dir1/dir2
Dann würde sich/Home/John/Dir1/DIR2 am Ende dessen anbringen, was sich bereits in der Variablen befindet. Die neue Variable wäre also:
Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/ Home/John/Dir1/Dir2
Beachten Sie, dass in der vorherigen Codezeile oben der Teil des Wertes, der bereits ist, vom neuen Teil mit einem Dickdarm getrennt ist, das ist ':' '. $ Path in der Codezeile, erweitert (wird ersetzt) durch den Wert des Pfades, der bereits im Speicher ist.
Jetzt kann der gleiche Befehl in mehr als einem Verzeichnis sein. Wenn ein ausführbarer Befehl ohne den vorhergehenden Pfad an der Eingabeaufforderung eingegeben wird, beginnt die Shell mit der Suche nach dem Wert (Zeichenfolge) der Pfadvariablen im Speicher von links nach rechts. Also würde mit der obigen Codezeile/Home/John/dir1/dir2 endlich in der Suche eintreffen. Wer möchte, dass sein Verzeichnis zuletzt ankommt? - Niemand. Ein besserer Weg, das Verzeichnis zu schließen (hinzufügen), ist also wie folgt:
$ export path =/home/John/dir1/dir2: $ path
/Home/John/Dir1/DIR2 ist jetzt am Anfang, getrennt vom nächsten Verzeichnis, mit einem Dickdarm. Also mit einer Aufforderung von "John@Host: ~ $",
John@Host: ~ $ Export Path =/home/John/dir1/dir2: $ path
Nach dem Eingeben und Drücken der Eingabetaste den Befehl, Befehl.exe im Verzeichnis, DIR2, würde ausgeführt mit:
John@Host: ~ $ Command.exe
Solange der Computer nicht heruntergefahren ist, wird der Benutzer den Befehl weiter ausführen.exe ohne den vorhergehenden Weg zu tippen.
Wenn der Computer heruntergefahren wird, wird alles im Zufallszugriff gelöscht. Die schlechte Nachricht ist, dass der Computerbenutzer diesen Prozess des Hinzufügens seines Verzeichnisses bei der Pfadvariablen jedes Mal wiederholen muss. Niemand will das heute tun. Der dauerhafte Additionsansatz ist also der empfohlene Ansatz. Das heißt, die Hinzufügung des Pfades muss gerettet werden (in die Festplatte).
Permanente Addition
Aus der obigen Diskussion besteht die Idee darin, die vorgenommene Änderung zu retten (in die Festplatte). Wenn also die Änderung in einer Datei gespeichert wird, die Shell jedes Mal liest, wenn der Computerstiefel in Ordnung ist, wäre dies in Ordnung. Das heißt, jedes Mal, wenn die Computerstiefel startet, wird die Pfadvariable im Speicher entsprechend aktualisiert. Wenn ein Computer beim Booten beginnt, liest er bestimmte Dateien. Eine der Dateien Die Bash -Shell für Linux -Lesungen lautet ~/.bashrc . Der Dateiname ist .bashrc , Beginnend mit dem Punkt. Es befindet sich im Benutzerverzeichnis.
Bash ist nur eine Hülle, wahrscheinlich die beliebteste Shell für Linux heute. Eine andere Shell für Linux ist ZSH. Mit ZSH ist die entsprechende Datei ~//.ZSHRC, Immer noch im Benutzerverzeichnis. Wenn die Shell beim Booten beginnt, liest sie diese Datei. Für Bash ist die Datei ~/.bashrc . Also, wenn der obige Additionscode in das ~/ getippt wird.Bashrc -Datei, das Verzeichnis wird immer im Speicher sein, als ~/.Bashrc wird es immer in Pfad enthalten, jedes Mal, wenn der Computer startet. Es bleibt im Speicher, bis der Computer heruntergefahren ist.
In Bash, ~/.Bashrc ist eine versteckte Datei, daher wird die gewöhnliche Verwendung des Befehls nicht angezeigt. ~/.Bashrc enthält einige Bash (Shell) -Fandte. Ubuntu ist eine Variante von Linux. Ubuntu kommt mit einem Texteditor. Auf dem Computer des Autors ist der Hintergrund des Ubuntu -Texteditors schwarz.
Der obige Additionsbefehl (ohne Eingabeaufforderung) sollte in das ~/ enthalten sein.BASHRC -Datei. Es ist gut, es am Ende der Datei hinzuzufügen, um mit seinen verfügbaren Inhalten nicht zu mildern, das funktioniert wahrscheinlich in Ordnung.
~//.Bashrc in Ubuntu, geben Sie Folgendes in die Eingabeaufforderung am Terminal ein und drücken Sie die Eingabetaste:
$ nano ~/.bashrc
Wo Nano der Texteditor ist. Hier ist Nano ein Befehl (ausführbar), dessen Argument ist, ~/.bashrc . Der Inhalt der Datei sollte im Texteditor geöffnet werden, um das Terminalfenster zu überlagern.
Das ~//.Die BASHRC -Datei wird im Texteditor geöffnet, wahrscheinlich mit einem schwarzen Hintergrund. Der Cursor blinkt in der oberen linken Ecke.
Drücken Sie die Taste zum Herunterarm auf der Tastatur kontinuierlich, bis der Cursor das Ende der Datei erreicht. Fügen Sie eine neue Linie von hinzu,
$ export path =/home/John/dir1/dir2: $ path
Das ist nicht alles. Die Änderung zum ~//.Die BASHRC -Datei wurde nicht gespeichert. Um die Datei mit der vorgenommenen Änderung zu speichern, drücken Sie Strg+O und befolgen Sie alle anderen Anweisungen, die angezeigt werden. Um den Texteditor zu beenden, drücken. Anschließend können andere Shell -Befehle ausgestellt werden.
Wenn „Echo $ path“ ausgestellt wird, wird das neue Verzeichnis nicht im Display angezeigt. Es gibt zwei Möglichkeiten, von hier aus fortzufahren: entweder den Computer neu starten oder den neuen Inhalt des ~/ erhalten.BASHRC -Datei in den Speicher mit dem Quellbefehl bashrc. Es ist einfach, den Befehl "Quell" wie folgt zu verwenden:
$ source ~/.bashrc
Wenn der Quellbefehl ohne Neustart ausgestellt wird, zeigt „Echo $ path“ das neue Verzeichnis, das im Ergebnis hinzugefügt wurde (Anzeige), hinzugefügt (Anzeige). Der Interessesbefehl kann dann ohne den vorhergehenden Pfad tippt werden.
Notiz: Verwechseln Sie nicht zwischen dem Ende des Pfadwerts (Liste) und dem Ende des ~/.BASHRC -Datei. Verwechseln Sie auch nicht zwischen einem Verzeichnis im Speicherverzeichnis und einer ausführbaren Datei im Verzeichnis in der Festplatte.
Abschluss
Pfad ist eine integrierte Variable in Linux-Shells. Der Wert des Pfades ist eine Liste von Verzeichnissen, die von Kolons getrennt sind. Für jedes dieser Verzeichnisse befindet sich ein Befehl (ausführbare Datei) in der Festplatte. Wenn ein Befehl beim Verkauf ausgestellt wird, ohne ihm mit einem Pfad zu bestehen, wird die Shell diese Verzeichnisse für den Befehl untersuchen. Wenn der Befehl in keinem der Verzeichnisse angezeigt wird, wird der Befehl nicht ausgeführt. In diesem Fall muss der Befehl seinen Pfad vorausgehen, um den Befehl auszuführen. Der Befehl kann in mehr als einem Verzeichnis im Pfadwert sein. Sobald die Shell das erste Verzeichnis hat, hat sie den Befehl. Der Pfadwert ist tatsächlich eine Zeichenfolge, die aus Verzeichnissen besteht, die von Kolons getrennt sind.
Das Problem ist, wie Sie das Verzeichnis für die ausführbare Datei einer neuen Anwendung in den Pfad hinzufügen können. In einigen Fällen erfolgt dies automatisch durch das Installationsprogramm der neuen Anwendung. In anderen Fällen muss es manuell erfolgen. Es gibt zwei Möglichkeiten, es manuell zu tun, die als: vorübergehende Ergänzung und dauerhafte Ergänzung bezeichnet werden. Die temporäre Zusatz verwendet den Befehl exportieren und fügt das Verzeichnis nur hinzu, während sich der Computer eingeschaltet hat. Die dauerhafte Ergänzung muss die Befehlszeile der Export in der ~/ speichern.BASHRC -Initialisierungsdatei (BASH) für zukünftige Operationen.