GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi utiliser echo avant d'installer un nouveau logiciel ?

Normalement la fonction de echo La commande consiste à afficher une chaîne (morceau de texte) sur la console. Mais cette fois, un > caractère est ajouté après le echo commande, redirigeant sa sortie vers un fichier texte, /etc/apt/sources.list.d/ros-latest.list .

Donc, fondamentalement, toute cette commande écrit un morceau de texte dans un fichier texte. Maintenant, voici la partie délicate :

La chaîne écrite dans le fichier peut être différente pour chaque ordinateur. La partie $(lsb_release -sc) est résolu (changé en quelque chose d'autre) lorsque le echo la commande s'exécute.

Vous pouvez ouvrir /etc/apt/sources.list.d/ros-latest.list dans un éditeur de texte avant et après la commande pour voir le changement par vous-même. (Le fichier peut ne pas exister avant cette commande.)


Gestion des packages et dépôts de logiciels

Les distributions Linux basées sur Debian s'appuient sur des référentiels (bases de données de packages d'installation d'applications et de packages de mise à niveau) pour maintenir les systèmes d'exploitation à jour et également pour récupérer et installer facilement de nouveaux packages logiciels. L'emplacement de ces référentiels est stocké dans /etc/apt/sources.list , cependant des sources supplémentaires, généralement propres à des applications spécifiques, peuvent être stockées dans le /etc/apt/sources.list.d annuaire.

Lorsque la commande de mise à jour de l'index du package apt-get update est exécuté, votre système d'exploitation vérifie auprès de ces référentiels de packages les packages disponibles et enregistre les logiciels disponibles comme disponibles pour votre système d'exploitation que vous pouvez ensuite installer en utilisant le traditionnel apt-get install <package> commande.

Voici un exemple de l'une de ces sources logicielles :

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

Il est important que ces sources fassent référence à des versions spécifiques des distributions Linux. Un exemple est fidèle qui est le nom de code d'Ubuntu 14.04. Vous pouvez interroger votre système d'exploitation (basé sur Debian) pour obtenir des détails complets avec lsb_release -a ou lsb_release -sc qui signifie court et nom de code .

Dans votre question, la partie $(lsb_release -sc) est interprété et le résultat de votre système d'exploitation est imprimé dans le fichier source personnalisé ros-latest.list que la commande créera lors de son exécution.

Interprète de langage de commande

Le sh La commande est le bourne shell. Il s'agit d'une coque parmi plusieurs, mais elle est considérée comme l'ancienne norme et généralement celle dont vous pouvez être certain qu'elle existe. Il est également courant de voir bash dans de nombreux scripts shell. Cette déclaration spécifie le shell à utiliser car différents shells utilisent une syntaxe différente.

En ce qui concerne le -c drapeau, citant man bash :

Si l'option -c est présente, les commandes sont lues à partir de la chaîne. S'il y a des arguments après la chaîne, ils sont affectés aux paramètres positionnels, en commençant par $0.

Tout dans le '' est lu comme une chaîne, vous n'auriez pas besoin de comprendre comment échapper divers guillemets ou de vous inquiéter que le shell interprète quelque chose dans le mauvais sens.

tl;dr

La commande imprime deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main à un fichier source personnalisé, remplaçant $(lsb_release -sc) avec la valeur interprétée.


Linux
  1. Comment utiliser la commande showmount pour répertorier les partages sur un serveur NFS

  2. Changer la police dans la commande Echo ?

  3. Commande d'écho Linux

  4. Commande Linux ls - Lister les fichiers

  5. Pourquoi la commande sudo:bundle est-elle introuvable ?

Comment utiliser la commande echo dans les scripts Bash sous Linux

Comment utiliser la commande PS

Comment utiliser la commande TOP

Comment utiliser la commande echo sans retour à la ligne

Le nouvel Ubuntu 18.10 vaut-il la peine d'être installé ?

Comment insérer une nouvelle ligne dans l'e-mail à l'aide de la commande linux mail ?