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

Warum sollte man Echo verwenden, bevor man neue Software installiert?

Normalerweise die Funktion von echo Der Befehl besteht darin, eine Zeichenfolge (ein Stück Text) auf der Konsole anzuzeigen. Aber diesmal eine > Zeichen wird nach echo hinzugefügt Befehl, der seine Ausgabe in eine Textdatei umleitet, /etc/apt/sources.list.d/ros-latest.list .

Im Grunde schreibt dieser ganze Befehl also ein Stück Text in eine Textdatei. Jetzt kommt der knifflige Teil:

Die in die Datei geschriebene Zeichenfolge kann für jeden Computer unterschiedlich sein. Das Teil $(lsb_release -sc) aufgelöst (in etwas anderes geändert) wird, wenn echo Befehl wird ausgeführt.

Sie können /etc/apt/sources.list.d/ros-latest.list öffnen in einem Texteditor vor und nach dem Befehl, um die Änderung selbst zu sehen. (Die Datei existiert möglicherweise nicht vor diesem Befehl.)


Paketverwaltung und Software-Repositories

Auf Debian basierende Linux-Distributionen verlassen sich auf Repositories (Datenbanken mit Anwendungsinstallationspaketen und Upgrade-Paketen), um die Betriebssysteme auf dem neuesten Stand zu halten und neue Softwarepakete einfach herunterzuladen und zu installieren. Der Ort dieser Repositories wird in /etc/apt/sources.list gespeichert , jedoch können zusätzliche Quellen, die normalerweise nur für bestimmte Anwendungen gelten, in /etc/apt/sources.list.d gespeichert werden Verzeichnis.

Wenn der Paketindex-Aktualisierungsbefehl apt-get update ausgeführt wird, prüft Ihr Betriebssystem diese Paket-Repositorys auf verfügbare Pakete und registriert die verfügbare Software als für Ihr Betriebssystem verfügbar, die Sie dann mit dem herkömmlichen apt-get install <package> installieren können Befehl.

Ein Beispiel für eine dieser Softwarequellen ist:

deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted

Es ist wichtig, dass diese Quellen auf bestimmte Versionen von Linux-Distributionen verweisen. Ein Beispiel ist trusty Dies ist der Codename für Ubuntu 14.04. Sie können Ihr Betriebssystem (auf Debian basierend) mit lsb_release -a nach vollständigen Details abfragen oder lsb_release -sc was kurz bedeutet und Codename .

In Ihrer Frage der Teil $(lsb_release -sc) interpretiert und das Ergebnis von Ihrem Betriebssystem gedruckt in die benutzerdefinierte Quelldatei ros-latest.list die der Befehl bei der Ausführung erstellt.

Befehlsspracheninterpreter

Die sh Befehl ist die Bourne-Shell. Dies ist eine von mehreren Shells, wird aber als alter Standard angesehen und ist im Allgemeinen einer, von dem Sie sicher sein können, dass er existiert. Es ist auch üblich, bash zu sehen in vielen Shell-Skripten. Diese Deklaration gibt die zu verwendende Shell an, da verschiedene Shells unterschiedliche Syntax verwenden.

In Bezug auf -c Flag, unter Anführung von man bash :

Wenn die Option -c vorhanden ist, werden Befehle aus Zeichenfolge gelesen. Wenn hinter der Zeichenkette Argumente stehen, werden sie den Positionsparametern zugewiesen, beginnend mit $0.

Alles innerhalb von '' als String gelesen wird, müssten Sie nicht herausfinden, wie Sie verschiedenen Anführungszeichen entkommen oder sich Sorgen darüber machen, dass die Shell etwas falsch interpretiert.

tl;dr

Der Befehl gibt deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main aus in eine benutzerdefinierte Quelldatei, wobei $(lsb_release -sc) ersetzt wird mit dem interpretierten Wert.


Linux
  1. Linux-Echo-Befehl

  2. Echo-Befehlsbeispiele in Linux

  3. Echo:Befehl nicht gefunden

  4. Warum wird der Befehl sudo:bundle nicht gefunden?

  5. Kann ich einen Befehl (z. B. Baum) verwenden, ohne ihn systemweit zu installieren?

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

So verwenden Sie den PS-Befehl

So verwenden Sie den TOP-Befehl

So verwenden Sie den Echo-Befehl ohne Zeilenumbruch

Lohnt es sich, das neue Ubuntu 18.10 zu installieren?

Wie füge ich mit dem Linux-Mail-Befehl eine neue Zeile in die E-Mail ein?