Cette fiche reprend les notions vues lors du CTP n°1. Vous retrouverez synthétisées sur cette page les différentes commandes utilisées, leur intérêt et comment nous avons pu les utiliser lors des manipulations sur ordinateur.
Table des matières
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Qu’est-ce qu’une commande ?
Une commande est une séquence de mots se terminant par un caractère de nouvelle ligne. Autrement dit, une commande est une séquence de caractères qui se termine par la touche <Entrée>. Le premier mot est le nom de la commande, les autres sont ses arguments. La commande est exécutée par le shell, qui est un programme qui interprète la ligne de commande.
$ touch file.txt
Ici la commande est touch et son argument est file.txt. Le signe $ au début de la ligne est l'invite de commande. Il ne fait pas partie de la commande.
Chaque mot de la ligne de commande est séparé par un ou plusieurs espaces. Le Shell interprète les espaces comme des séparateurs entre les mots. Le Shell interprète le caractère de nouvelle ligne comme la fin de la commande.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Parcourir les commandes et manipuler le Shell
Lorsque l’on appuie sur la touche ↑, on remonte les commandes entrées.
Lorsque l’on appuie sur la touche ↓, on redescend les commandes entrées depuis là où on est remonté.
Lorsque l’on appuie sur C-l (Ctrl et l en même temps), le Shell remonte la dernière ligne de commande pour l’afficher en haut de la page (sans effacer l’historique précédent).
Lorsque l’on appuie sur C-u, cela permet d’effacer de l’historique une commande spécifique que l’on recherche.
Lorsque l’on appuie sur C-d, on ferme la fenêtre du Shell.
En ouvrant un nouveau terminal Debian, puis en appuyant sur C-p alors on retrouve les commandes entrées dans la fenêtre précédente.
En entrant la commande PS1=’$ ‘, alors on simplifie l’affichage en début de ligne de commande dans le Shell par un simple $.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Chemin d’accès
La référence à une ressource (fichier ou répertoire) s'appelle un chemin d'accès (en anglais : path). Dans ce chemin, sous Linux, les noms des répertoires et éventuel fichier sont séparés par un slash / (alors qu'on utilise un antislash \\ sous Windows).
Il existe deux types de chemin : absolu et relatif.
/, par exemple : /home/debian est le chemin absolu vers le répertoire personnel de l'utilisateur debian. Il reste valable quel que soit le contexte./home/debian, le chemin relatif ./Documents fait référence au répertoire /home/debian/Documents. Un chemin qui commence par autre chose que / ou ~ est un chemin relatif.Le . fait référence au répertoire courant. Les .. font référence au répertoire parent.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Parcourir des répertoires et fichiers
La commande pwd affiche le chemin vers le répertoire courant (celui sur lequel on se trouve).
En entrant la commande ls, on liste tous les fichiers et répertoires présents dans le répertoire courant.
La commande cd permet de se déplacer dans l’arborescence des fichiers.
.. (avec un espace entre cd et ..) pour revenir au répertoire parent./.cd /usr/include).Si l’on souhaite revenir directement au répertoire HOME, alors on passe par le symbole ~ (commande Option - N sur Mac). Par exemple, la commande cd ~ nous ramène directement à ce répertoire.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Afficher le contenu de fichiers
Pour afficher le contenu d’un fichier donné, on utilise la commande cat accompagnée du nom du fichier en argument.
<aside> <img src="/icons/compose_green.svg" alt="/icons/compose_green.svg" width="40px" /> Exemple
En entrant d’abord cd /usr/include on se retrouve dans le répertoire contenant toutes les bibliothèques de langage C.
Pour afficher le contenu de la bibliothèque stdlib.h alors on entre la commande suivante :
$ cat stdlib.h
</aside>
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Créer des répertoires et fichiers
Pour créer un répertoire, on utilise la commande mkdir accompagnée en argument du nom que l’on souhaite lui donner. Le répertoire est alors créé dans le répertoire courant.
Si l’on veut créer un répertoire dans un autre répertoire déjà existant, alors on met le chemin absolu vers l’emplacement en terminant ce chemin par le nom du répertoire que l’on souhaite créer. On peut aussi utiliser la ~ pour créer un répertoire à partir du répertoire HOME.
Si l’on crée un répertoire dans un répertoire qui n’existe pas avec mkdir seulement, alors ça ne fonctionnera pas. Une manière de régler ce problème est de mettre l’option -p après la commande mkdir pour “forcer” la création du répertoire parent qui jusque alors n’existait pas.
<aside> <img src="/icons/compose_green.svg" alt="/icons/compose_green.svg" width="40px" /> Exemple
On a l’arborescence suivante dans le répertoire HOME :

Si l’on entre la commande :
$ mkdir tp_shell
alors on a créé le répertoire tp_shell dans le répertoire HOME.
Mais la commande
$ mkdir vivant/plante/fleur
ne permet pas la création des répertoires indiqués en argument.
Pour régler ce problème, on entre alors la commande suivante :
$ mkdir **-p** vivant/plante/fleur
On a donc, dans le répertoire HOME, le répertoire vivant qui contient le répertoire plante, qui lui-même contient le répertoire fleur.
</aside>
Pour créer des fichiers, on utilise la commande touch en utilisant le chemin absolu ou relatif en argument pour définir l’emplacement et le nom du fichier vide à créer.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Supprimer des répertoires vides
On utilise la commande rmdir en indiquant en argument le chemin (absolu ou relatif) vers le répertoire vide cherché.
Comme pour mkdir et touch, on peut supprimer plusieurs répertoires vides en même temps dans une seule ligne de commande en séparant chaque élément à supprimer par un espace.
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Supprimer des fichiers et des répertoires non vides
La commande rm permet de supprimer des fichiers en indiquant directement en argument le chemin vers le fichier cherché.
On peut également utiliser cette commande pour supprimer des répertoires non-vides, pour cela on rajoute l’option -r (ou -R cela revient au même) sans quoi la commande ne fonctionnerait pas.
Une dernière fonctionnalité intéressante de rm est d’y ajouter l’option -i qui permet d’afficher un message de confirmation avant la suppression (1 message par fichier supprimé).
<aside> <img src="/icons/thought_lightgray.svg" alt="/icons/thought_lightgray.svg" width="40px" /> Remarque
La commande rm seule ne permet pas de supprimer des répertoires vides. Par contre, si on ajoute l’option -r dans ce cas la suppression est possible. On a, par exemple :
$ mkdir test
$ ls
bin dir Downloads Pictures Templates Videos
Desktop Documents Music Public test
$ rm test
rm: cannot remove 'test': Is a directory
$ rm -r test
$ ls
bin dir Downloads Pictures Templates
Desktop Documents Music Public Videos
</aside>
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Déplacer et renommer des répertoires et fichiers
La commande mv a une double fonction :
Déplacer un fichier ou un répertoire selon la syntaxe suivante :
$ mv <source> <destination>
<aside> <img src="/icons/compose_green.svg" alt="/icons/compose_green.svg" width="40px" /> Exemple
Créons, depuis le répertoire HOME, deux nouveaux répertoires :
$ mkdir abeilles ~/arbres
<aside> <img src="/icons/arrow-right_lightgray.svg" alt="/icons/arrow-right_lightgray.svg" width="40px" /> Remarque
À noter que l’on aurait pu simplement écrire arbres au lieu de ~/arbres étant donné que l’on se positionne déjà dans le répertoire HOME (donc pas besoin de faire le chemin pour y “revenir”).
</aside>
Puis on déplace ces deux répertoires dans le répertoire vivant précédemment créé avec la commande :
$ mv abeilles arbres vivant/
</aside>
Renommer un fichier ou un répertoire selon la syntaxe suivante :
$ mv <nom_original> <nouveau_nom>
<aside> <img src="/icons/compose_green.svg" alt="/icons/compose_green.svg" width="40px" /> Exemple
En reprenant l’arborescence des exemples précédents :
$ mv vivant vie
permet de renommer le répertoire vivant en vie.
Maintenant, créons un fichier vide file1 dans vie :
$ touch vie/file1
Puis on souhaite renommer ce fichier en file2 depuis le répertoire courant (sans le déplacer !). Pour cela, on utilise :
$ mv vie/file1 vie/file2
On vérifie que cela ait bien fonctionné :
$ ls vie
file2
<aside> <img src="/icons/thought_lightgray.svg" alt="/icons/thought_lightgray.svg" width="40px" /> Remarque
</aside>
</aside>
</aside>
<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Copier des répertoires et fichiers
</aside>