MagPI 3 Page 10

De Le French MagPi
Aller à : Navigation, rechercher

La clinique de la ligne de commande

Par Bobby Redmond (bredman)


Dans ce numéro, nous expliquerons pourquoi les commandes Linux se comportent comme elles le font. Nous examinerons également comment réunir des commandes pour faire des blocs structurés en mesure d'accomplir des choses utiles.


La ligne de commande de Linux n'est ni très polie ni très conviviale. Elle ne vous dit jamais quelque chose si les choses se sont bien passées, et elle vous crache du charabia quand ça tourne mal. L'article de ce mois va tenter de vous expliquer pourquoi la ligne de commande Linux se comporte de cette manière et vous aider à comprendre pourquoi il semble que ce soit la manière dont il agisse.


La ligne de commande est tellement rébarbative que vous vous êtes sans doute déjà demandé pourquoi personne ne l'a encore améliorée pour la rendre plus conviviale. La raison est que la sortie de la ligne de commande n'a jamais été conçue pour être lue par un humain, elle a été conçue pour être lue par des programmes informatiques. Prenons l'exemple d'une commande réellement peu conviviale et essayons de comprendre le sens qu'elle a.


L'une des commandes les plus utiles dans Linux et la commande find. Elle vous permet de trouver un fichier si vous connaissez son nom, ou une partie de son nom. Nous allons par exemple essayer de trouver tous les programmes C présents sur le système. Ceux-ci doivent avoir un nom qui se termine par .c. Maintenant essayons cette commande...

find / -name *.c

Cela devrait trouver tous les fichiers nommés "*.c" (où * signifie que nous recherchons tout) à partir de la racine du système de fichiers (/). Malheureusement, tout ce que vous obtiendrez est un tas de baratin sans signification. C'est le genre de choses qui donne à la ligne de commande de Linux une aussi mauvaise réputation. Comment une commande pourrait-elle être utile si vous ne pouvait pas lire son résultat ?


Tout d'abord, nous devons nous débarrasser de toutes les erreurs qui sont affichées. Vous remarquerez que toutes les erreurs contiennent le texte "Permission denied". Cela indique que l'utilisateur ne dispose pas des privilèges suffisants pour faire quoi que ce soit. Lorsque vous voyez "Permission denied", il est souvent judicieux d'ajouter le mot sudo en début de commande. La ligne de commande saura que vous souhaitez exécuter la commande en tant que super-utilisateur et non en tant qu'utilisateur normal. Essayons donc cette commande...

sudo find / -name *.c

Enfin, les erreurs sont parties et nous avons une liste de tous les fichiers C de l'ordinateur. Mais ce n'est pas très convivial. Vous n'avez que la liste, rien au début pour dire "Voici une liste de vos programmes C" et rien à la fin pour dire "Fin de liste, bonne journée". Cette liste n'a évidemment jamais été prévue pour être conviviale. Pourquoi a-t-elle été conçue de cette manière ? Si elle n'est pas destinée à être lue par un humain, à qui s'adresse-t-elle ?


Une des choses magiques sous Linux est que la sortie d'une commande est conçue pour être utilisée comme entrée pour une autre commande. Cela rend possible l'union d'un tas de commandes simples pour créer des résultats plus complexes. Comme exemple, prenons la liste des programmes C et envoyons-la dans un fichier. Essayez cette commande...

sudo find / -name *.c > maliste 

COMMENT SAISIR DE TRÈS LONGUES COMMANDES
En tant que débutant, vous n'avez peut-être jamais imaginé devoir écrire de très longues commandes. Mais dans cet article vous pouvez voir que des commandes simples peuvent être unies pour créer de très longues commandes.


Certaines peuvent être si longues qu'elles vont dépasser de votre écran. Dans ce cas, continuez simplement à taper et laissez le texte s'afficher sur la ligne suivante. N'appuyez pas sur la touche Entrée tant que vous n'avez pas terminé de saisir la commande.


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils