Terminal et ligne de commande

Introduction

Bienvenue dans ce cours sur le terminal.
Le terminal est une des applications les plus importantes de votre ordinateur.

Que vous vouliez devenir programmeur, travailler dans une équipe en tant que designer ou même en tant que chef de projet, il est extrêmement probable que vous soyez amené à utiliser un terminal.

En effet, le terminal vous permet d’agir sur les différents dossiers et fichiers de votre ordinateur de façon simple et rapide. Vous serez donc amené à l’utiliser régulièrement lors de votre carrière.

Dans ce cours, nous allons explorer quelques commandes, simples mais fondamentales, qui vous permettront de bien comprendre le fonctionnement du terminal.

Dans un premier temps, vous découvrirez ce qu’est un terminal et apprendrez à écrire vos première lignes de commandes.

Ensuite, vous irez plus loin et manipulerez des fichiers grâce aux lignes de commande !

Objectifs du Cours

  • découvrir les bases du terminal ;
  • manipuler des fichiers avec un terminal.

Prérequis

Aucun prérequis spécifique n’est nécessaire, si ce n’est une attitude d’apprentissage et un intérêt pour la programmation.

Matériel nécessaire

Un poste de travail (PC, Mac, Chromebook…) avec un accès à la ligne de commande.

\pagebreak

Module 1: Découvrez le terminal

Qu’est-ce qu’un terminal ?

Commençons par découvrir ce qu’est un terminal.

Un terminal est une application permettant de dialoguer avec son ordinateur via l’écriture de lignes de commande.

Une ligne de commande est une instruction écrite, qui une fois envoyée à l’ordinateur via le terminal, va effectuer une action, comme par exemple créer un répertoire, lancer un programme ou afficher le contenu d’un fichier.

Historiquement, lorsque les ordinateurs faisaient la taille d’un immeuble, un terminal était un point d’accès physique avec un écran et un clavier, pour envoyer des instructions à la machine et recevoir ses réponses.

file

De nos jours, il s’agit généralement d’un programme, qui a gardé le côté un peu austère de ses premières heures, mais qui a surtout le même usage : dialoguer avec votre ordinateur.

D’une certaine façon, le terminal est l’ancêtre de programmes comme l’explorateur Windows ou Finder (sous Mac).

Mais que permet un terminal ?

Eh bien, entre autres choses, le terminal sert à :

  • naviguer dans une arborescence de fichiers ;
  • créer, supprimer et déplacer des dossiers et des fichiers ;
  • lancer des programmes.

« Console », « terminal », « ligne de commande », « term », tous ces mots sont des synonymes pour désigner la même chose. Dans la suite du cours, l’un ou l’autre de ces termes seront utilisés indifféremment.

De quoi aurez-vous besoin pour commencer ?

Si vous êtes sous Linux, vous pouvez directement ouvrir un terminal en suivant les instructions suivantes :

  • Cliquez sur Applications > Accessoires > Terminal.
  • Vous pouvez également utiliser le raccourci : Ctrl + Alt + T

Si vous êtes sous Mac, vous pouvez accéder à un terminal via :

  • Applications > Utilitaires > Terminal.app

Si vous êtes sous Windows, accéder à un terminal sera un peu plus complexe, car celui-ci n’est pas disponible de base et doit être installé préalablement au cours.

Pour ceci, je vous propose deux options :

  • "Cygwin", que vous pouvez télécharger et installer en suivant les instructions du site officiel (en anglais) ;
  • le shell Bash pour Windows, que vous pouvez installer en suivant les instructions officielles de Microsoft (en français).

Windows possède deux utilitaires directement inspiré du terminal, mais qui ne sont pas des terminaux même si visuellement, ils sont très proches :

  • L’invite de commande (appelée aussi fenêtre de commande DOS).
  • Le powershell (présent sur les Windows les plus récents et qui accepte des commandes plus proches de ce que propose le terminal)

Ces deux programmes ont le même but que le terminal et la même philosophie, mais les commandes acceptés par le terminal ne fonctionneront pas nécessairement avec ces deux programmes, ce pourquoi il est vivement conseillé pour ce cours d’installer un vrai terminal avec Cygwin ou le shell Bash pour Windows.

Et enfin, si vous êtes sur un Chromebook, Termux est votre ami.
N.B.: il vous faudra peut-être créer votre machine virtuelle Linux dans les paramètres de votre Chromebook.

  • Lancez l’application "Terminal"
    file
  • Optez pour Linux "Penguin" et vous obtenez un terminal Linux dans une machine virtuelle.

Alors, avez-vous réussi à lancer votre terminal ?

En résumé

Un terminal est une application permettant de dialoguer avec son ordinateur via l’écriture de lignes de commande.

Il sert à naviguer dans une arborescence de fichiers, créer, supprimer et déplacer des dossiers et des fichiers et lancer des programmes.

Vous avez pu lancer votre terminal ! Bravo !

Vous avez envie de lancer votre première ligne de commande ? Rendez-vous dans le prochain module !

\pagebreak

Module 2: Utilisez votre première commande

Découvrez la ligne de commande

Avant toute chose, commencez par lancer votre terminal. Si vous ne savez pas comment faire, il vous suffira de retourner à la fin du premier chapitre et de suivre les instructions.

Il est très probable que l’affichage de votre terminal ne soit pas tout à fait identique à celui des vidéos et des captures d’écran : c’est tout à fait normal. L’affichage dépend de plusieurs paramètres, comme votre système d’exploitation ou diverses options. Par exemple, par défaut, certains n’indiquent ni le nom de l’utilisateur, ni le nom de la machine, simplement un $ et rien d’autre. Cela ne change pas son fonctionnement.

N’ayez pas peur et lancez-vous !

Voici une capture d’écran de mon terminal. J’utilise un Chromebook.

file

Dans cet exemple, “david” est mon nom d’utilisateur. “penguin” est le nom de ma machine (mon ordinateur).

Le “~” signifie que je n’ai pas encore changé de répertoire : je suis dans le répertoire de l’utilisateur “david”, à savoir /home/david. Je peux taper mes instructions derrière le $.

Découvrez où vous êtes sur votre ordinateur : la commande « pwd »

Votre terminal attend maintenant vos instructions. Elles sont transmises par le biais de commandes. La plupart des commandes dans un terminal sont des raccourcis ou des acronymes.

Commençons avec la commande « pwd», qui signifie en réalité « Print Working Directory » (ou, en français, « afficher le répertoire de travail »). Avouez que « pwd » est tout de même plus rapide à écrire !

Dans votre terminal, tapez la commande « pwd », puis appuyez sur « Entrée ».

file

La commande pwd demande au terminal d’indiquer l’endroit où vous vous trouvez dans l’arborescence de fichiers. Dans mon cas, , « /home/david » indique que je me trouve dans le sous-dossier "david", dans le dossier "home", situé dans à la racine de mon disque "/".

file

Chez vous, la réponse à pwd sera probablement légèrement différente par rapport à mon terminal, ce qui est tout à fait normal.

Félicitations, vous venez de lancer votre première commande dans un terminal !

Comprenez les arguments de la ligne de commande

La plupart des instructions de la ligne de commande prennent en compte des “paramètres” (ou “arguments”) qui vont venir “compléter” l’instruction et modifier son comportement.

Par exemple, avec pwd. Au lieu de taper simplement l’instruction “pwd", vous allez rajouter le paramètre “–help”. Cette commande avec l’argument –help n’affiche plus le répertoire dans lequel vous vous trouvez, mais l’aide associée à la commande.

file

L’argument –help a bien modifié ce que faisait la commande.

Avez-vous réussi à afficher l’aide de la commande pwd sur votre machine ?

En résumé

  • Vous avez lancé votre terminal et découvert à quoi il ressemble.
  • Vous avez lancé votre première commande : pwd.
  • Vous avez ajouté un paramètre à la commande pwd : –help.

Ces notions vous seront particulièrement utiles dans les modules à venir, et notamment le suivant qui va vous apprendre à naviguer dans votre système via le terminal !

\pagebreak

Module 3: Naviguez dans le système

Déplacez-vous dans l’arborescence de fichiers

Les fichiers sur votre ordinateur sont rangés dans des dossiers qui peuvent eux-mêmes contenir des sous-dossiers, des fichiers, etc.

Cette organisation est appelée “l’arborescence de fichiers”. C’est ainsi que l’intégralité de vos documents sont “rangés” dans votre machine.

Mais comment faire avec un terminal pour savoir ce que contient un dossier ?

Explorez le contenu d’un dossier avec « ls »

La commande ls (qui est le raccourci pour "list" en anglais) permet de lister le contenu d’un répertoire. Essayons-la.

file

Faites le test à partir d’un dossier sur votre ordinateur. En tapant ls, vous devriez retrouver le contenu de votre répertoire, avec la liste des sous-dossiers et des fichiers dans votre terminal.

Cependant, dans le terminal, vous ne voyez que les noms des éléments présents dans le dossier. Il est difficile de savoir si ce sont des dossiers ou des fichiers (les extensions comme .txt ou .png sont des indices, certes, mais il est tout à fait possible de créer des fichiers sans extensions ou des répertoires qui en possèdent une, ce n’est donc pas fiable).

De plus, il existe des fichiers et des dossiers “cachés” que vous ne voyez pas avec la commande “ls” de base.

Pour remédier à ces problèmes, vous pouvez ajouter deux paramètres à la commande ls :

  • -l : ce paramètre précise à la commande ls d’afficher plus d’informations sur chacun des éléments présents ;
  • -a : ce paramètre indique que tous les dossiers et fichiers devront apparaître, y compris les dossiers et fichiers cachés.

Il est également possible de combiner ces deux commandes. Cela s’écrira ls -l -a ou plus simplement : ls -la

Vous pouvez constater que l’affichage est nettement plus détaillé.

file

Chaque ligne possède beaucoup d’informations. Vous pouvez par exemple repérer que chaque ligne commence par un “d” ou un “-”. Lorsque la ligne commence par un “d”, pour “directory”, cela signifie que l’élément correspondant est un dossier. Sinon, c’est un fichier.

Vous pouvez également voir la date de dernière modification, ou encore la taille du fichier.

Alors, qu’est-ce qui apparaît chez vous ?

Vous pouvez également constater l’apparition de deux éléments supplémentaires, “.” et “..”.

Ces deux éléments sont en réalité des dossiers cachés, présents dans les répertoires, et aux propriétés un peu particulières :

  • “.” : ce dossier désigne toujours le répertoire dans lequel on se trouve. Autrement dit, si “pwd” vous dit que vous êtes dans /home/david, alors le terminal remplacera automatiquement “.” par “//home/david” ;
  • “..” : ce dossier désigne toujours le répertoire parent (c’est-à-dire le dossier qui contient le dossier dans lequel vous êtes actuellement). Par exemple, si vous êtes dans “/home/david”, le répertoire parent est : “/home”.

Si les dossiers cachés . et .. ne vous semblent pas clair, pas de panique, nous y reviendrons plus en détail dans la suite du cours !

Utilisez différentes options de la commande ls

Vous allez découvrir différentes options de la commande ls.

ls nomDuRepertoire

Commençons par ls nom du répertoire. Vous savez désormais afficher le contenu du répertoire courant, mais comment faire pour afficher le contenu d’un autre répertoire ? Eh bien, vous pouvez utiliser la commande ls nomdurepertoire.

Par exemple ici, si je tape ls Cours1, le contenu du répertoire Cours1 va s’afficher.

file

Comme vous le voyez, simplement en spécifiant le nom du répertoire, il est possible de consulter son contenu !

\pagebreak

ls ..

Découvrons maintenant ls ..

‘..’ quant à lui est un dossier caché qui correspond toujours au répertoire parent. Donc ls .. va afficher le contenu du répertoire parent.

Dans notre exemple, nous sommes dans le dossier "david" du dossier "home". Donc ls .. va afficher le contenu du dossier "home".

file

Pour mieux comprendre, voici l’équivalent depuis mon explorateur Nautilus :

file

ls – la répertoire

Et bien sûr, tous les paramètres peuvent être combinés. 😱

ls -la Cours1 va afficher le contenu du répertoire “Cours1”, avec les dossiers et fichiers cachés (option “a”) et sous forme de liste détaillée (option “l”).

Alors, vous vous en sortez ? 😲

Si vous souhaitez lister le contenu d’un dossier dont le nom contient un espace comme « mon dossier » cela peut poser des problèmes, car la commande « ls » croira que vous cherchez à lister le contenu deux dossiers distincts : "mon" et "dossier". Pour afficher le contenu d’un dossier dont le nom contient un espace, vous pouvez utiliser des guillemets

file

Déplacez-vous dans votre répertoire avec la commande « cd »

Maintenant que vous savez afficher ce qui se trouve dans un répertoire donné, voyons comment vous rendre dans ce même répertoire.

Pour cela, la commande « cd », pour « Change Directory » (« changer de répertoire », en français) vous permettra de naviguer d’un répertoire à l’autre.

Le fonctionnement est très simple, il suffit de taper “cd” suivi du répertoire de destination.

Par exemple en tapant “cd Cours1”, je vais me rendre dans mon répertoire appelé “Cours1”.

file

Pour vérifier que la commande cd s’est bien exécutée, vous pouvez utiliser pwd.

Pour retourner dans le dossier parent, nous utilisons le .. que nous avons vu précédemment :

Entraînez-vous à naviguer d’un dossier à l’autre !

\pagebreak

Découvrez quelques raccourcis utiles

Il peut parfois être un peu fastidieux de retaper à la main toutes ces commandes. Mais heureusement pour vous, il existe un certain nombre de « raccourcis » pour éviter de le faire :

  • la [flèche haut] et la [flèche bas] permettent de naviguer dans l’historique du terminal et de relancer des commandes déjà tapées précédemment ;
  • [tab] permet de faire de l’autocomplétion, c’est-à-dire compléter automatiquement une commande ou un chemin si on a commencé à en taper le début. Si plusieurs options sont disponibles, taper une deuxième fois sur cette touche affichera la liste des options possibles ;
  • [ctrl] + r : cette combinaison permet de faire une recherche dans l’historique des commandes. Faites d’abord [ctrl]+r pour passer en mode “recherche”, puis tapez une partie de la commande que vous voulez rejouer. Lorsque votre recherche a porté ses fruits, vous n’avez plus qu’à valider en appuyant sur Entrée;
  • [ctrl] + a et [ctrl] + e : ces deux combinaison permettent respectivement d’aller automatiquement au tout début ou à la toute fin de la ligne de commande que vous êtes en train de taper, ce qui peut être pratique lorsque vous êtes en train d’écrire une commande particulièrement longue.

En résumé

  • Vous avez découvert que les dossiers sont généralement organisés en sous-dossiers et en fichiers.
  • Vous avez appris à vous déplacer à l’intérieur d’un dossier grâce à la commande “cd”.
  • Vous avez utilisé différents variantes de la commande ls.

Dans le prochain module, vous irez plus loin encore et vous apprendrez à manipuler des dossiers et des fichiers !

\pagebreak

Module 4: Créez vos fichiers et vos dossiers

Utilisez mkdir

mkdir est la contraction de “make directory”, c’est-à-dire “Créer un répertoire”, en français.

La syntaxe de mkdir est simple : il suffit de taper "mkdir" suivi du nom du répertoire que l’on désire créer. Par exemple, si je tape “mkdir test”, cela créera un répertoire appelé “test” à l’endroit où je me trouve :

file

Dans l’exemple ci-dessus, j’ai commencé par un ls pour voir l’ensemble des dossiers et fichiers présents, puis j’ai créé un nouveau répertoire appelé “test” et j’ai enfin exécuté un second “ls” pour vérifier que mon nouveau répertoire a bien été créé.

En tapant cd test, vous pouvez même vous rendre à l’intérieur de ce nouveau répertoire.

Alors, avez-vous réussi à créer un dossier ?

Que faire si le nom possède un espace ?

Si vous voulez créer un dossier dont le nom possède un espace, par exemple “mon dossier”, la première idée est simplement d’écrire “mkdir mon dossier”.

Vous pourriez constater que deux dossiers seraient créés. Le premier s’appelle “dossier” et le second “mon”.

En effet, le terminal considère l’espace comme un séparateur entre deux dossiers, alors que “mon dossier”, est en réalité le nom complet.

Il faut donc indiquer au terminal que cet espace est bien un caractère et pas un séparateur.

La façon la plus simple de faire est d’entourer le nom du dossier avec des guillemets.

L’autre manière de faire est “d’échapper” le caractère espace, c’est-à-dire d’indiquer au terminal que l’espace en question n’est pas un séparateur mais doit se comporter comme une “lettre” normale. Le caractère d’échappement s’appelle un “antislash” (ou backslash) : .

Il suffit de le mettre devant le caractère à “échapper”.

mkdir mon\ dossier

Essayez de refaire l’opération. Alors, vous trouvez cela plus facile maintenant ?

Apprenez à utiliser touch

Vous savez désormais créer des dossiers, mais comment créer des fichiers ?

Cette fois-ci, vous allez utiliser touch, avec la même syntaxe, c’est-à-dire : touch nomDuNouveauFichier.

Par exemple, pour créer un fichier appelé fichier1.txt, il suffira de taper : touch fichier1.txt

file

Pour créer un nom de fichier avec espace, il faudra prendre les mêmes précaution que pour la création d’un dossier, c’est-à-dire soit :

  • entourer le nom du fichier avec des guillemets : “nom fichier" ;
  • échapper l’espace avec un antislash : nom\ fichier.

En résumé

Dans ce chapitre, vous avez appris :

  • à créer des dossiers avec la commande mkdir ;
  • à créer des fichiers avec la commande touch ;
  • à manipuler des noms de dossiers et de fichiers comportant des espaces.

L’étape suivante va être de manipuler des fichiers existants, en les déplaçant, en les copiant et même en les supprimant !

\pagebreak

Module 5: Manipulez des éléments

Déplacez du contenu avec mv

Pour déplacer un fichier, la commande à utiliser est mv pour “move”, déplacer, en français. La syntaxe sera donc : mv elementADeplacer destination.

Par exemple, pour déplacer le fichier “monfichier.txt” à l’intérieur du répertoire “dossier”, nous écrirons :

file

Pensez à vérifier que vos commandes se sont bien passées à l’aide de ls !

Dans l’image ci-dessus, nous pouvons voir que le fichier “fichier.txt” qui était initialement présent dans le répertoire "test" a bien disparu, mais se retrouve à l’intérieur du dossier “dossier”.

Alors, vous avez réussi à déplacer des fichiers ?

Découvrez les wildcards

Vous savez désormais déplacer du contenu, mais comment s’y prendre si on veut déplacer beaucoup de fichiers d’un coup ?

Il est possible de retaper “mv” pour chaque fichier, mais si vous avez une centaine de fichiers à déplacer, vous risquez de vous ennuyer assez vite :-).

C’est pour cette raison que l’on a créé des “wildcards” ou “jokers”. Ce sont des caractères qui “remplacent” une partie du nom d’un fichier.

Il en existe plusieurs, mais le plus connu d’entre eux est probablement le caractère *. Ce caractère peut être utilisé comme substitut pour n’importe quelle autre chaîne de caractères dans une recherche.

Plutôt qu’un long discours, voici un exemple :

file

Avec ls, vous pouvez constater que j’ai deux fichiers qui commencent par “fi” dans mon répertoire courant.

Si je tape ls fi, alors fi va être remplacé, au moment de l’exécution de la commande, par tous les noms qui “correspondent” à fi*, ici fichier1.txt et fichier2.txt.

Taper ls fi* revient donc en réalité à taper ls fichier1 fichier2, mais en plus rapide (et si vous avez 100 cours, en beaucoup plus rapide ! ):D

Et cela fonctionne avec toutes les commandes

Copiez du contenu avec cp

Pour copier du contenu, nous allons procéder exactement de la même manière que ce que nous avons fait pour la commande mv, mais avec la commande “cp”.

La syntaxe pour copier un élément est cp elementACopier destination.

Par exemple pour copier le fichier “fichier2.txt” dans le répertoire “test” :

file

Après la copie, nous pouvons voir que le fichier est présent à deux endroits, là où je suis et dans le répertoire “dossier”.

Second exemple : pour copier le fichier “fichier2.txt” dans le même répertoire, mais avec un nouveau nom, ici “fichier3.txt”.

file

Dernier exemple, la copie d’un répertoire :

file

Notez le message d’erreur :

cp -r not specified

Celui-ci est apparu parce que j’ai tenté de faire la copie directement, comme je l’aurais fait pour un fichier. Cependant, le terminal a ici indiqué qu’il manquait l’option “-r”.

En effet, copier un répertoire signifie copier également les éventuels sous-répertoires et fichiers qu’il contient, ce qui peut concerner potentiellement beaucoup de fichiers (imaginez que vous copiez le répertoire "Windows", par exemple…).

Le terminal demande donc une confirmation avec l’option -r (r pour “récursif” qui signifie au terminal qu’il va devoir aller à l’intérieur du dossier, et des sous-dossiers, et ainsi de suite).

Une fois la commande lancée avec cette option, la copie s’effectue alors sans problème.

Supprimez des fichiers et des répertoires avec rm

Dernier point et pas des moindres, la suppression.

La suppression se fait avec rm, remove, qui signifie tout simplement “supprimer”, en français.

Soyez vigilant avec cette commande car elle supprime du contenu ! N’hésitez pas à faire vos tests dans un répertoire à part pour plus de sécurité.

La syntaxe de rm est très simple : rm elementASupprimer. Par exemple, pour supprimer le fichier “fichier3.txt” je n’ai qu’à écrire rm fichier3.txt.

Essayons maintenant de supprimer un répertoire.

Comme pour ce que nous avons vu avec cp, supprimer un répertoire signifie également supprimer ses éventuels sous-répertoires et fichiers. Par mesure de sécurité, la commande rm exige que l’on précise que l’on veut réellement supprimer le dossier et tout ce qu’il contient.

Pour cela, c’est la même option à utiliser, -r.

En résumé

Dans ce chapitre, vous avez appris à :

  • créer des dossiers et des fichiers ;
  • les déplacer ;
  • les supprimer.

Nous sommes presque à la fin de ce cours d’introduction à la ligne de commande.

Le prochain chapitre explorera d’autres commandes pour aller plus loin encore et vous donner un aperçu de toute la puissance du terminal, au-delà de la manipulation de fichiers !

\pagebreak

Module 6: Utilisation avancée

Affichez le manuel d’une commande avec man

La première de ces commandes à explorer est le “man”.

La commande “man” affiche l’aide associée à une commande. Pour cela, il suffit de taper man commande.

Par exemple pour afficher l’aide de la commande pwd, on tapera man pwd :

file

Comme vous pouvez le constater, l’écran entier a été remplacé par l’aide de la commande pwd.

Pour naviguer dans cette aide, vous pouvez utiliser [flèche haut] et [flèche bas]. Et pour sortir de cette aide, vous pouvez taper sur la touche q (q pour pour "quitter").

En cas de doute sur le fonctionnement d’une commande, ou pour connaître l’ensemble des options disponibles, man sera votre meilleur allié.

Si vous tapez “man ls” vous verrez qu’il existe de nombreuses autres options que nous n’avons pas explorées. Et vous pouvez même taper “man man” pour avoir l’aide de man :-).

Utilisez cat, less et more pour connaître le contenu d’un fichier

Nous savons comment connaître le contenu d’un répertoire avec ls, mais comment connaître le contenu d’un fichier ?

Pour cela il existe cat, less et more.

Ces trois commandes ont le même but, à savoir afficher le contenu d’un fichier.

Par exemple, si je veux afficher le contenu du fichier “fichier.txt”, je vais taper cat fichier.txt.

cat fichier.txt

Le contenu du fichier s’affiche tel quel dans le terminal.

Pour “less”, la différence, c’est que cet affichage va être “paginé”. C’est-à-dire qu’au lieu d’afficher le contenu directement sous la commande, le terminal va utiliser le même mode de visualisation qu’avec la commande “man”.

Ainsi, si le fichier est très long, vous pourrez naviguer dedans à l’aide de flèche haut et flèche bas, et pour quitter, là encore, il suffira de taper q.

file

"more" est une ancienne version de “less”, avec des options navigation en moins. Je précise cependant son existence ici, car il est encore très répandu.

Découvrez les redirections

Ce qui suit n’est pas réellement une commande mais une “redirection”.

Il en existe plusieurs types, mais nous ne verrons ici que la plus commune : “>”.

Une redirection consiste à prendre la “sortie” d’une commande (par exemple pour “ls”, la sortie est tout simplement : afficher la liste des répertoires à l’écran) et à la rediriger vers autre chose, ici vers un fichier.

L’intérêt est notamment de pouvoir garder une trace des commandes que l’on a pu faire, en enregistrant leur résultat dans un fichier pour s’en resservir plus tard.

Voici un exemple simple pour mieux comprendre :

file

ls -l est censé afficher la contenu de mon répertoire courant. Cependant, vous pouvez constater que ls -l > liste.txt n’affiche rien.

En revanche, si j’affiche le contenu du fichier “liste.txt” (grâce à la commande “cat” que nous venons juste de voir), alors nous retrouvons bien la liste des fichiers. La sortie de ls (c’est-à-dire l’affichage sur l’écran) a été redirigée à l’intérieur du fichier.

Appréhendez grep

La dernière commande que nous allons voir dans ce chapitre est grep.

Grep sert à chercher des éléments à l’intérieur d’un fichier sans même avoir besoin de les ouvrir.

La syntaxe est : grep ceQueVousVoulezChercher làOùVousVoulezChercher

Par exemple, si vous voulez afficher toutes les lignes qui contiennent le mot “Cours” dans le fichier liste.txt, il faudra taper grep Cours liste.txt

file

Et vous pouvez constater que les trois lignes contenant le mot “Cours” se sont affichées à l’écran.

Si nous voulons chercher par exemple “txt” dans l’intégralité des fichiers du répertoire courant, alors la commande sera

grep txt *

file

Ce qui s’est passé, c’est que grep a cherché la chaîne “txt” dans tous les éléments du répertoire courant un par un (grâce à * que nous avons vu précédemment et qui permet de cibler l’ensemble des fichiers).

Comme grep fait ses recherches dans des fichiers, lorsqu’il rencontre un élément qui est un répertoire, il affiche un message pour préciser que cet élément est un répertoire et qu’il ne peut donc pas vérifier si la chaîne se trouve bien à l’intérieur.

Par exemple, ici, "Cours1", "Cours2", "Cours3"… sont des répertoires.

Lorsque grep rencontre des fichiers, il les vérifie et soit il reste silencieux quand il n’y a rien à l’intérieur qui corresponde à la recherche (par exemple, le fichier "image.png" ne contient pas, à l’intérieur, la chaîne "txt") soit il affiche le contenu qui correspond (par exemple “liste.txt” contient cinq lignes avec “txt” dedans, et ces lignes sont bien affichées).

En résumé

Dans ce chapitre, nous avons appris :

  • man pour afficher le manuel ;
  • cat/less/more pour afficher un contenu ;
  • la redirection “>” pour envoyer le résultat d’une commande à l’intérieur d’un fichier ;
  • grep pour faire des recherches.

N’hésitez pas à faire quelques tests afin de bien prendre en main ces différentes commandes. En particulier, “man” peut vous donner de précieuses informations sur les options disponibles pour chacune d’entre elles.

\pagebreak

Conclusion

Vous devriez désormais être un peu plus à l’aise avec l’utilisation de la ligne de commande.

Comme il était dit en introduction, ce cours n’avait pas pour vocation à vous apprendre tout ce qu’il est possible de réaliser avec le terminal, mais simplement de vous faire prendre conscience que cet outil, même s’il peut sembler un peu aride au premier abord, est très simple d’utilisation.

Je pense que vous êtes prêt !

Pour rappel, voici toutes les commandes que nous avons vues ensemble, tout au long de ce cours :

  • pwd : permet d’afficher le répertoire courant ;
  • ls : permet d’afficher le contenu d’un répertoire ;
    • ls -a : l’option -a affiche également les fichiers et dossiers cachés,
    • ls -l : l’option -l modifie l’affichage pour rajouter de nombreuses informations ;
  • cd dossier : permet de se déplacer à l’intérieur d’un répertoire ;
  • mkdir dossier : permet de créer un dossier ;
  • touch nomFichier : permet de créer un fichier ;
  • mv source destination : permet de déplacer des éléments ;
  • * : est un caractère qui peut être utilisé comme substitut pour n’importe quel caractère dans une recherche ;
  • cp source destination : permet de copier des éléments ;
  • cp -r : l’option -r permet de copier un répertoire ;
  • rm fichiers : permet de supprimer des fichiers ;
  • rm -r dossiers : l’option -r permet de supprimer des répertoires ;
  • man commande : permet d’afficher le manuel d’une commande ;
  • cat/less/more nomFichier : permet d’afficher le contenu d’un fichier ;
  • > : permet de rediriger le résultat d’une commande vers un fichier ;
  • grep motif chemin : permet de faire des recherches dans des fichiers.

↵ retour vers: Opérations & manipulation des systèmes

Pour accéder au contenu réservé aux enseignants, contactez david@goprof.be.