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

1. Premières commandes

<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>

2. Répertoires et fichiers

<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.

  1. Un chemin absolu se base sur la racine de l'arborescence et commence par /, 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.
  2. Un chemin relatif est a priori relatif au répertoire courant où se trouve l'utilisateur. Par exemple, si le répertoire courant est /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.

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 :

Untitled

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 :

</aside>

<aside> <img src="/icons/comment_blue.svg" alt="/icons/comment_blue.svg" width="40px" /> Copier des répertoires et fichiers

</aside>

3. Types de commandes - Aide Manuel