Weitere Informationen zum tatsächlichen Komprimieren von Dateien und Beispiele zum Erstellen von Archiven finden Sie in Kapitel 9.
7.2. Ihre Textumgebung
7.2.1. Umgebungsvariablen
7.2.1.1. Allgemeines
Wir haben bereits einige Umgebungsvariablen erwähnt, wie z PATH und HOME. Bisher haben wir nur Beispiele gesehen, bei denen sie der Hülle einen bestimmten Zweck erfüllen. Aber es gibt viele andere Linux-Dienstprogramme, die Informationen über Sie benötigen, um gute Arbeit leisten zu können.
Welche weiteren Informationen benötigen Programme außer Pfaden und Home-Verzeichnissen?
Viele Programme möchten wissen, welche Art von Terminal Sie verwenden. Diese Informationen werden im gespeichert TERM Variable. Im Textmodus ist dies der linux Terminalemulation, die Sie wahrscheinlich im grafischen Modus verwenden werden Xterm. Viele Programme möchten wissen, was Ihr Lieblingseditor ist, falls sie einen Editor in einem Unterprozess starten müssen. Die von Ihnen verwendete Shell wird im gespeichert SHELL Variable, geben Sie das Betriebssystem ein OS usw. Eine Liste aller Variablen, die derzeit für Ihre Sitzung definiert sind, können Sie im eingeben printenv Befehl.
Die Umgebungsvariablen werden von der Shell verwaltet. Im Gegensatz zu regulären Shell-Variablen werden Umgebungsvariablen von jedem Programm geerbt, das Sie starten, einschließlich einer anderen Shell. Neuen Prozessen wird eine Kopie dieser Variablen zugewiesen, die sie lesen, ändern und wiederum an ihre eigenen untergeordneten Prozesse weitergeben können.
An Variablennamen gibt es nichts Besonderes, außer dass die gebräuchlichen Namen laut Konvention in Großbuchstaben geschrieben sind. Sie können sich einen beliebigen Namen ausdenken, es gibt jedoch auch Standardvariablen
wichtig genug, um auf jedem Linux-System gleich zu sein, z PATH und HOME.
7.2.1.2. Variablen exportieren
Der Inhalt einer einzelnen Variable wird normalerweise mit angezeigt Echo Befehl, wie in diesen Beispielen:
debby:~> echo $PFAD
/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:/usr/local/bin
debby:~> echo $MANPATH
/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man
debby:~> echo $PFAD
/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:/usr/local/bin
debby:~> echo $MANPATH
/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man
Wenn Sie den Inhalt einer Variablen so ändern möchten, dass er für andere Programme nützlich ist, müssen Sie den neuen Wert aus Ihrer Umgebung in die Umgebung exportieren, in der diese Programme ausgeführt werden. Ein häufiges Beispiel ist das Exportieren von PATH Variable. Sie können es wie folgt deklarieren, um mit der darin enthaltenen Flugsimulatorsoftware spielen zu können /opt/FlightGear/bin:
debby:~> PATH=$PATH:/opt/FlightGear/bin Dadurch wird die Shell angewiesen, nicht nur Programme im aktuellen Pfad zu durchsuchen, sondern $ PATH, sondern auch im Zusatzverzeichnis /opt/FlightGear/bin.
Solange jedoch der Neuwert der PATH Wenn die Variable der Umgebung nicht bekannt ist, funktioniert die Sache trotzdem nicht:
debby:~> runfgfs
bash: runfgfs: Befehl nicht gefunden
debby:~> runfgfs
bash: runfgfs: Befehl nicht gefunden
Das Exportieren von Variablen erfolgt mit dem in der Shell integrierten Befehl exportieren:
debby:~> PATH exportieren
debby:~> runfgfs
--Flugsimulator startet--
debby:~> PATH exportieren
debby:~> runfgfs
--Flugsimulator startet--
In Bash erledigen wir dies normalerweise in einem eleganten Schritt:
exportieren VARIABLE=Wert
Die gleiche Technik wird für die verwendet MANPFAD Variable, die das sagt Mann Befehl, wo nach komprimierten Manpages gesucht werden soll. Wenn dem System neue Software in neuen oder ungewöhnlichen Verzeichnissen hinzugefügt wird, befindet sich die Dokumentation dazu wahrscheinlich auch in einem ungewöhnlichen Verzeichnis. Wenn Sie die Manpages für die neue Software lesen möchten, erweitern Sie die MANPFAD Variable:
debby:~> export MANPATH=$MANPATH:/opt/FlightGear/man
debby:~> echo $MANPATH
/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/FlightGear/man
debby:~> export MANPATH=$MANPATH:/opt/FlightGear/man
debby:~> echo $MANPATH
/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/FlightGear/man
Sie können vermeiden, diesen Befehl in jedem geöffneten Fenster erneut einzugeben, indem Sie ihn zu einer Ihrer Shell-Setup-Dateien hinzufügen, siehe Abschnitt 7.2.2.
7.2.1.3. Reservierte Variablen
Die folgende Tabelle gibt einen Überblick über die häufigsten vordefinierten Variablen:
Tabelle 7-1. Gemeinsame Umgebungsvariablen
Variablennamen | Gespeicherte Informationen |
DISPLAY | Wird vom X-Window-System zur Identifizierung des Anzeigeservers verwendet |
DOMAIN | Domainnamen |
EDITOR | speichert Ihren bevorzugten Zeileneditor |
HISTGRÖSSE | Größe der Shell-Verlaufsdatei in Anzahl Zeilen |
HOME | Pfad zu Ihrem Home-Verzeichnis |
HOSTNAME | lokaler Hostname |
EINGANG | Speicherort der Definitionsdatei für Eingabegeräte wie Tastatur |
SPRACHE | Bevorzugte Sprache |
LD_LIBRARY_PATH | Pfade zur Suche nach Bibliotheken |
LOGNAME | Benutzername |
Speicherort Ihres Posteingangsordners | |
MANPFAD | Pfade zur Suche nach Manpages |
OS | Zeichenfolge, die das Betriebssystem beschreibt |
OSTYP | Weitere Informationen zur Version usw. |
PAGER | Wird von Programmen wie verwendet Mann die wissen müssen, was zu tun ist, falls die Ausgabe mehr als ein Terminalfenster umfasst. |
PATH | Suchpfade für Befehle |
PS1 | primäre Eingabeaufforderung |
PS2 | sekundäre Eingabeaufforderung |
PWD | aktuelles Arbeitsverzeichnis |
SHELL | aktuelle Shell |
TERM | Terminaltyp |
UID | Benutzer-ID |
NUTZERNAME) | Benutzername |
VISUAL | Ihr bevorzugter Vollbild-Editor |
XUMGEBUNG | Ort Ihrer persönlichen Einstellungen für das X-Verhalten |
XFILESEARCHPATH | Pfade zur Suche nach grafischen Bibliotheken |
Viele Variablen sind nicht nur vordefiniert, sondern auch über Konfigurationsdateien voreingestellt. Diese besprechen wir im nächsten Abschnitt.
7.2.2. Shell-Setup-Dateien
Beim Betreten des ls -al Befehl, um eine lange Liste aller Dateien in Ihrem Home-Verzeichnis zu erhalten, einschließlich derjenigen, die mit einem Punkt beginnen, werden Sie eine oder mehrere Dateien sehen, die mit einem beginnen. und endet in rc. Für den Fall von bash, Dies .bashrc. Dies ist das Gegenstück zur systemweiten Konfigurationsdatei / Etc / bashrc.
Wenn Sie sich bei einer interaktiven Login-Shell anmelden, login führt die Authentifizierung durch, stellt die Umgebung ein und startet Ihre Shell. Im Fall von bash, der nächste Schritt ist das Lesen des Allgemeinen profile für / Etc, falls diese Datei existiert. bash dann sucht ~ / .bash_profile, ~ / .bash_login und ~ / .profile, in dieser Reihenfolge, und liest und führt Befehle aus dem ersten Befehl aus, der existiert und lesbar ist. Wenn keine vorhanden ist, / Etc / bashrc wird angewandt.