GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Quellbefehl unter Linux erklärt

Der Quellenbefehl unter Linux ist eine ziemlich beliebte Funktion, die täglich von Systemadministratoren ausgeführt wird.

Aber was ist die Funktion des Quellbefehls?

Wird verwendet, um die aktuelle Shell-Umgebung zu aktualisieren , kann der source-Befehl auch verwendet werden, um Funktionen in andere Bash-Skripte zu importieren oder um Skripte auszuführen in die aktuelle Shell-Umgebung.

Im heutigen Tutorial werden wir sehen, wie der Quellbefehl unter Linux verwendet werden sollte.

Die Befehle werden in einer Debian 10-Umgebung mit GNOME ausgeführt, funktionieren aber für jede Distribution.

Interna des Quellbefehls

Bevor Sie beginnen, ist es wichtig, dass Sie vollständig verstehen, was Umgebungs- und Shell-Variablen sind

Standardmäßig besitzt Ihr System unter Linux bereits ein paar Umgebungsvariablen, um verschiedene Informationen zu speichern, wie die zu verwendende Shell, Ihren Hostnamen oder Ihren aktuellen Benutzernamen.

Umgebungsvariablen werden vom System initialisiert und von allen Prozessen auf dem System geerbt. Wenn Sie also eine Shell-Instanz ausführen, müssen Sie den Wert von Umgebungsvariablen auf Ihrem System abrufen.

$ echo $USER
devconnected

Andererseits sind Shell-Variablen Variablen, die im Kontext einer Shell-Instanz deklariert werden und sie werden nicht mit anderen Shells oder untergeordneten Prozessen geteilt.

$ VARIABLE=devconnected
$ echo $VARIABLE
devconnected

Wenn Sie unter Linux ein Skript ausführen, wird es höchstwahrscheinlich in einer Subshell ausgeführt.

Infolgedessen können Sie die in Ihrer ersten Shell definierten Variablen nicht im Skript ausführen, sie teilen sich einfach nicht dieselbe Umgebung.

Das löst der source-Befehl.

Der Quellbefehl wird verwendet, um die als Argument übergebene Datei im Kontext der aktuellen Ausführung auszuwerten. Der als „.“ abgekürzte Quellbefehl wird hauptsächlich im Zusammenhang mit Shells verwendet, die in Terminalfenstern ausgeführt werden.

$ source filename [arguments]

Beachten Sie, dass wenn Argumente bereitgestellt werden, diese als Positionsparameter für das angegebene Skript gesetzt werden.

Hinweis :Die Quelldokumentation befindet sich in der Bash-Dokumentation. Um es zu lesen, geben Sie „man bash“ ein und suchen Sie nach dem Quellbefehlsabsatz.

Quelle zum Aktualisieren Ihrer aktuellen Shell-Umgebung (.bashrc)

Einer der Hauptgründe für die Verwendung von source ist das Aktualisieren der aktuellen Shell-Umgebung durch Ausführen der bashrc-Datei.

Zur Erinnerung:.bashrc ist eine Skriptdatei, die immer dann ausgeführt wird, wenn Sie eine interaktive Shell-Instanz starten.

Es wird pro Benutzer definiert und befindet sich in Ihrem Home-Verzeichnis.

Nehmen wir zum Beispiel an, Sie möchten Ihrer Shell-Umgebung einen neuen Alias ​​hinzufügen.

Öffnen Sie Ihre .bashrc-Datei und einen neuen Eintrag dazu.

alias ll='ls -l'

Versuchen Sie nun, Ihren neuen Alias-Befehl direkt im Terminal auszuführen.

Wie Sie sehen können, wurden die Änderungen nicht direkt in Ihrer aktuellen Umgebung übernommen.

Führen Sie den source command with the .bashrc aus, damit die Änderungen angewendet werden Datei als Argument.

$ source ~/.bashrc

Alternativ können Sie es auch mit der Punktsyntax

ausführen
$ . ~/.bashrc

Wenn Sie versuchen, Ihren Alias ​​erneut auszuführen, sollten Sie ihn ausführen können

Quelle zum Ausführen eines Skripts im aktuellen Kontext

Wie zuvor erklärt, kann der Quellbefehl verwendet werden, um ein Skript im Kontext der aktuellen Umgebung auszuführen .

Um diesen Punkt zu veranschaulichen, definieren wir eine lokale Shell-Variable in Ihrer aktuellen Shell-Umgebung.

$ VARIABLE=devconnected

Erstellen Sie nun ein neues Skript und fügen Sie den folgenden Inhalt darin ein

#!/bin/bash

echo $VARIABLE
echo $LOGNAME

Die Variable VARIABLE stellt die lokale Shell-Variable dar, die wir zuvor erstellt haben, und die Variable LOGNAME ist eine Umgebungsvariable auf Ihrem Host.

Speichern Sie Ihr Skript und erteilen Sie Ihrem neu erstellten Skript Ausführungsberechtigungen (Sie benötigen sudo-Berechtigungen, um diesen Befehl auszuführen)

$ sudo chmod ugo+x <script>

Wenn Sie versuchen, das Skript auszuführen, sollten Sie das folgende Ergebnis sehen

Wie Sie sehen können, wurde die lokale Variable $VARIABLE nicht in die Standardausgabe ausgegeben.

Dies liegt daran, dass das Skript in einer Subshell mit einem eigenen Satz lokaler Variablen ausgeführt wurde. Die Umgebungsvariable wurde jedoch ausgegeben.

Um dieses Skript im Kontext unserer aktuellen Shell auszuführen, verwenden wir den Quellbefehl.

Wie Sie sehen können, wurde in diesem Fall die Variable $VARIABLE korrekt in die Standardausgabe ausgegeben.

Quelle zum Importieren einer Skriptfunktion

Eines der großartigen Features des Source-Befehls ist das Aktualisieren einer Skriptfunktion, was eine größere Wiederverwendbarkeit Ihrer vorhandenen Shell-Funktionen ermöglicht.

Um diesen Punkt zu veranschaulichen, nehmen wir das Beispiel einer Funktion, die den aktuellen Benutzer auf der Standardausgabe ausgibt.

Erstellen Sie eine neue Skriptdatei und fügen Sie den folgenden Inhalt darin ein.

$ nano script

#!/bin/bash
# Print the current user to the standard output
printUser() {
   echo $USER
}

Erstellen Sie ein weiteres Skript und verwenden Sie die Quellfunktion, um Ihre printUser-Funktion zu importieren.

$ nano import-script

#!/bin/bash
source ./script
printUser

Weisen Sie der Datei, die Sie ausführen möchten, die richtigen Berechtigungen zu. Sie benötigen keine Ausführungsberechtigungen für die Datei, die die Funktion enthält, die Sie importieren möchten.

$ sudo chmod u+x import-script
$ ./import-script

Das sollten Sie auf Ihrem Bildschirm sehen.

Wie Sie sehen können, wurde die Funktion korrekt importiert und ausgeführt und gab den Namen des aktuellen Benutzers meines Hosts aus.

Quelle zum Lesen von Variablen aus einer Datei

Eine weitere großartige Verwendung des Quellbefehls unter Linux ist das Lesen von Variablen aus einer Datei.

Nehmen wir zum Beispiel an, Sie haben eine Datei mit folgendem Inhalt in einer Datei namens „Variablen

NAME=devconnected
WEBSITE=devconnected.com
DESCRIPTION="best educational website online"

In einer anderen Skriptdatei könnten Sie diese Variablen verwenden, indem Sie den Quellbefehl verwenden, um Variablen zu lesen.

Erstellen Sie ein Skript und fügen Sie den folgenden Inhalt darin ein.

$ nano variable-script

#!/bin/bash
source ./variables
echo $NAME is a website located at $WEBSITE and it is probably the $DESCRIPTION

Fehlerbehebung

In einigen Fällen können Fehler auftreten, wenn Sie versuchen, Ihre Dateien mit dem Quellbefehl zu beziehen.

Hier ist eine Liste der häufigsten Fehler beim Versuch, Dateien zu beschaffen.

Quellbefehl unter Linux nicht gefunden

In einigen Fällen kann dieser Fehler auftreten

$ source: command not found

Oder wenn Sie sudo verwenden, haben Sie möglicherweise auch einen Fehler, dass der Quellbefehl nicht gefunden wurde.

$ sudo: source: command not found

Die einfache Lösung besteht darin, den Befehl als Root-Benutzer auszuführen, indem Sie „su“ verwenden.

$ sudo -s
$ source .bashrc

Beachten Sie, dass Sie auch die „Punkt-Syntax“ verwenden können, die dem Quellbefehl entspricht.

$ . .bashrc

Schlussfolgerung

Im heutigen Tutorial haben Sie gelernt, was der Quellbefehl unter Linux ist und wie Sie damit Skripte im Kontext der aktuellen Umgebung ausführen können.

Sie haben auch gelernt, dass es verwendet werden kann, um Funktionen oder Variablen aus einer einfachen Datei in eine Skriptdatei zu importieren.

Wenn Sie weitere Tutorials zur Linux-Systemadministration wünschen, haben wir auf devconnected eine vollständige Kategorie dafür. Klicken Sie auf das Bild unten, um sie zu lesen.


Linux
  1. Verlaufsbefehl in Linux ausführlich erklärt

  2. ls-Befehl unter Linux:17 nützliche Beispiele erklärt

  3. Linux-mv-Befehl

  4. Linux-Du-Befehl

  5. Linux-IP-Befehl

Quellbefehl unter Linux

procinfo-Befehl in Linux erklärt

Bildschirmbefehl unter Linux erklärt

Arping-Befehl unter Linux erklärt

Exportbefehl in Linux erklärt

Exportbefehl unter Linux | Erklärt