Linux env Befehl für Anfänger (5 Beispiele)

In diesem Artikel werden wir ein Kommandozeilen-Tool – env – besprechen, das nicht nur den Zugriff auf die Shell-Umgebung ermöglicht, sondern es Ihnen auch ermöglicht, bei Bedarf Änderungen daran vorzunehmen.

Aber bevor wir das tun, ist es erwähnenswert, dass alle in diesem Tutorial erwähnten Befehle und Anweisungen auf der Bash-Shell unter Ubuntu 18.04 LTS getestet wurden.

Linux env Befehl

Per Definition ermöglicht der Befehl env die Ausführung eines Programms in einer modifizierten Umgebung. Es folgt die Syntax des Befehls, wie auf der Manualseite erwähnt:

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

Und hier ist, was die Man Page über env sagt:

Set each NAME to VALUE in the environment and run COMMAND.

Die folgenden Beispiele im Q&A-Stil sollen Ihnen eine bessere Vorstellung davon vermitteln, wie dieser Befehl funktioniert:

Q1. Wie kann man mit dem Befehl env auf alle Umgebungsvariablen zugreifen?

Die Bash-Umgebung besteht, wie Sie vielleicht schon wissen, aus VARNAME=VALUE-Einträgen. Um auf alle Umgebungsvariablen und die damit verbundenen Werte zuzugreifen, führen Sie den Befehl env ohne Option aus.

env

Hier ist die Ausgabe des obigen Befehls in unserem Fall:

Wie man mit dem Befehl env auf alle Umgebungsvariablen zugreift

Q2. Wie kann man mit env die Umgebung vorübergehend verändern?

Das Hauptmerkmal von env ist die Möglichkeit, die Umgebung für einen Prozess vorübergehend zu ändern. Zum Beispiel haben wir eine kleine ausführbare Datei – genannt env – erstellt, die den Wert der USER-Umgebungsvariablen bei der Ausführung anzeigt.

Hier ist die Ausgabe im Normalfall:

Wie man mit env die Umgebung vorübergehend ändert.

Nun, was wir getan haben, war, dass wir den env-Befehl verwendet haben, um den Wert der USER-Umgebungsvariablen von ‚himanshu‘ vorübergehend auf ‚HTF‘ für die ausführbare Datei/Prozess zu ändern. Es folgt der Befehl, den wir in diesem Fall verwendet haben:

env USER=HTF ./env

Und hier ist der Output, der in diesem Fall produziert wird:

env Befehlsausgabe

So können Sie sehen, dass die ausführbare Datei den neuen Wert zurückgegeben hat.

Hinweis: Wie in der generischen Syntax des Tools vorgeschlagen, können Sie Werte mehrerer Umgebungsvariablen optimieren und den Prozess dazu bringen, diese neuen Werte zu verwenden.

Q3. Wie kann man einen Prozess dazu bringen, die bestehende Umgebung mit env zu ignorieren?

Wenn Sie möchten, können Sie einen Prozess auch dazu bringen, bestehende/ererbte Umgebungen zu ignorieren und stattdessen mit einer leeren zu beginnen. Dies kann mit der Option -i oder –ignore-environment geschehen.

Zum Beispiel:

Wie man einen Prozess dazu bringt, die bestehende Umgebung mit env zu ignorieren.

Q4. Wie kann env NUL anstelle von Zeilenumbruchzeichen in der Ausgabe verwenden?

Im ersten Beispiel, das wir oben besprochen haben, werden die von env erzeugten Ausgabelinien durch newline getrennt. Wenn Sie möchten, können Sie env jedoch das Zeichen NUL als Trennzeichen verwenden lassen. Auf diese Funktion kann über die Befehlszeilenoption –null zugegriffen werden.

env --null

Nachfolgend ein Beispiel-Screenshot;

Wie man env dazu bringt, NUL anstelle von Zeilenumbruchzeichen in der Ausgabe zu verwenden.

Q5. Wie kann man den Fehler anhand des Status des env-Befehls erkennen?

Der Befehl env erzeugt die folgenden Ausgangscodes: 0, 125, 126 und 127. Nachfolgend finden Sie die zugehörigen Fehlerbeschreibungen:

0   if no COMMAND is specified and the environment is output
125 if ‘env’ itself fails
126 if COMMAND is found but cannot be invoked
127 if COMMAND cannot be found

Falls Sie einen anderen Fehlercode als die oben genannten erhalten, dann ist das der Exit-Status, der von dem Prozess / Befehl zurückgegeben wird, der mit modifizierter Umgebung ausgeführt wurde.

Fazit

Wenn Sie ein kompletter Anfänger in der Kommandozeile sind, besteht die Möglichkeit, dass Sie dieses Tool nicht täglich benötigen. Das heißt aber nicht, dass es nicht wissenswert ist – env ist in vielen Situationen wirklich nützlich. Die Beispiele, die wir in diesem Tutorial geteilt haben, sollten ausreichen, um Ihnen einen Vorsprung zu verschaffen. Weitere Informationen finden Sie auf der Man Page des Befehls, oder besser gesagt, führen Sie den folgenden Befehl aus:

info coreutils env invocation

Das könnte dich auch interessieren …