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

Quellbefehl nicht gefunden

Wenn wir an Linux arbeiten, sind wir oft auf einen ziemlich häufigen Fehler in Bezug auf die Quelle gestoßen. Dieser Fehler ist Quelle:Befehl nicht gefunden, und heute werden wir Ihnen alles erklären, was Sie darüber wissen müssen.

In diesem Artikel erfahren Sie, was die Quelle ist, warum dieser Fehler auftritt, und natürlich erfahren Sie auch, wie Sie ihn beheben können. Wenn Sie also den Fehlerquellenbefehl erhalten, der auf Ihrem Linux-System nicht gefunden wurde, lesen Sie bitte weiter>

Zunächst einmal, was ist der Quellbefehl genau? Es ist wichtig festzuhalten, dass source kein tatsächliches Linux-Softwarepaket ist , es ist kein richtiges Programm wie zum Beispiel du, egrep, find usw. Quelle ist ein eingebauter Befehl , es ist Teil des Bash-Softwarepakets .

Um zu verstehen, was es tut, müssen wir zuerst wissen, was Shell-Variablen und Umgebungsvariablen unter Linux sind. Jedes Mal, wenn wir eine neue SSH-Sitzung auf einem Linux-System öffnen, lädt die Shell automatisch einige Standardvariablen. Diese Variablen sind für die meisten Aufgaben in Ordnung, aber für andere müssen wir möglicherweise einige Änderungen vornehmen, und hier kommt der Quellbefehl ins Spiel.

Wenn wir einige Variablen ändern möchten, um beispielsweise ein Skript auszuführen, verwenden Sie am besten source. Wenn wir ein Skript unter Linux ausführen, wird es meistens in einer Subshell ausgeführt und daher nicht in derselben Umgebung wie unsere aktuelle Shell-Sitzung. Nun, Source wird das lösen, wenn wir einige benutzerdefinierte Variablen verwenden müssen.

Zuerst müssen wir eine Variable in unserer aktuellen Shell-Umgebung definieren. Sobald dies erledigt ist, können wir source verwenden, um die Umgebung des von uns ausgeführten Skripts zu ändern und sie zu unserer aktuellen Umgebung zu machen, wodurch die neue Variable für das von uns ausgeführte Skript verfügbar wird.

Dies kann in manchen Situationen sehr nützlich sein, wir können sogar noch mehr mit Source machen, obwohl das nicht der Sinn dieses Artikels ist. Wenn wir also etwas falsch machen, während wir die Quelle verwenden, erhalten wir möglicherweise Fehler, und einer davon wird natürlich Source command not found sein, also lassen Sie uns sehen, was diesen Fehler verursacht.

Ursachen für nicht gefundenen Quellbefehl

Normalerweise erhalten wir diesen Fehler als „source:command not found“ oder, wenn wir sudo verwenden, als „sudo:source:command not found“. In beiden Fällen besteht das Problem darin, dass die Shell-Sitzung erwartet, dass wir ein Programm ausführen , aber denken Sie daran, dass Quelle kein Programm ist , wir führen tatsächlich eine eingebaute Bash aus, wie zuvor erklärt.

Da das Terminal denkt, dass wir versuchen, ein Programm namens „source“ auszuführen, wird es den Fehler „nicht gefunden“ ausgeben.

Dieser Fehler tritt auch auf, wenn wir versuchen, ein Programm auszuführen, das nicht auf unserem System installiert ist. Wenn wir beispielsweise versuchen, etwas auszuführen, das nicht existiert, wie „somethingsomething“, erhalten wir denselben Fehler:

[[email protected] ~]$ somethingsomething
bash: somethingsomething: command not found

Also, wie können wir das dann lösen? Das werden wir jetzt erklären.

Wie kann ich den Fehler Source command not found unter Linux beheben?

Der beste und einfachste Weg, dieses Problem zu lösen, besteht darin, den Befehl stattdessen mit root auszuführen , also müssen wir eine Root-Sitzung mit su starten oder sudo -s . Wenn Sie einen Authentifizierungsfehler oder einen Berechtigungsfehler erhalten, bedeutet dies, dass Sie sich mit Ihrem aktuellen Benutzer nicht als Root anmelden können. Bitten Sie die verantwortliche Person, die Berechtigungen zu ändern, damit Sie sich vorübergehend als Root anmelden können, um das Problem zu lösen.

Sobald Sie als Root angemeldet sind, versuchen Sie, den Befehl auszuführen, der zuvor den Quellfehler zurückgegeben hat:Diesmal sollte er problemlos ausgeführt werden.

Eine andere Möglichkeit, dies zu beheben, besteht darin, die Verwendung von Bash zu erzwingen . In einigen Linux-Distributionen ist die integrierte Quelle standardmäßig nicht verfügbar, da der Befehl sh nicht bash aufruft, sondern andere Programme wie beispielsweise „dash“. In diesem Fall können wir also das Skript bearbeiten, das wir auszuführen versuchen, und /bin/sh oben in /bin/bash ändern, wie folgt:

#!/bin/bash

Eine dritte Lösung, die zwar nicht immer funktioniert, besteht darin, einen Punkt anstelle von source zu verwenden . Ja, es funktioniert genauso, also wenn wir ein Skript wie dieses ausführen:

source ./myshinyscript

Wir müssen Quelle durch einen Punkt ersetzen. Ja, ein Punkt:

. ./myshinyscript

Es ist sehr wichtig, dass zwischen den beiden Punkten ein Leerzeichen steht, genau wie im Beispiel.

Schlussfolgerung

Das war also ziemlich einfach, wie Sie gesehen haben. Das eigentliche Problem mit dem Fehler source command not found besteht darin, zu verstehen, warum es passiert, und jetzt wissen Sie, dass es passiert, weil die Shell-Sitzung die Quelle mit einem Programm verwechselt, obwohl es sich tatsächlich um ein in Bash integriertes Programm handelt.

Sobald wir das verstanden haben, ist die Lösung des Problems einfach. Tatsächlich haben wir Ihnen drei Lösungen gegeben, die Sie ausprobieren können, die das Skript als root ausführen, das Skript so modifizieren, dass es die Ausführung von bash erzwingt, oder einen Punkt anstelle von source verwenden in der Befehlszeile.

Quellbefehl nicht gefunden wurde zuletzt geändert:9. April 2020 von Esteban Borges
Linux
  1. ifrename:Befehl nicht gefunden

  2. netstat:Befehl nicht gefunden

  3. kubectl:Befehl nicht gefunden

  4. tvservice:Befehl nicht gefunden

  5. lspci:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

df:Befehl nicht gefunden

du:Befehl nicht gefunden

rm:Befehl nicht gefunden

mv:Befehl nicht gefunden

Quellbefehl nicht gefunden