TP #1 : Découverte de la ligne de commande

Responsables : Jean-Patrick Gelas, Nicolas Louvet

Version : 0.1b (10/2024)


Objectif : Découvrir et prendre en main la ligne de commande. Mais aussi gagner en autonomie pour trouver les informations requises pour exécuter une commande avec des options particulières.

echo

La tradition veut que lorsque l'on découvre un nouveau langage informatique on apprenne tout d'abord comment afficher le message "Hello World". C'est donc ce que nous allons faire. L'instruction ou la commande que nous allons utiliser est echo. Cette commande prend en paramètre le message à afficher. C'est à dire une chaîne de caractères. Par exemple "Hello World". Essayez la commande suivante.

$ echo "hello world"

Remarque : Ne saisissez pas le caractère $. Il indique l'invite de votre ligne de commande.

Question 1 : Qu'est ce qui s'affiche à l'écran ?


man

Pour obtenir des informations sur une commande vous utiliserez la commande 'man' (comme manuel utilisateur). Son fonctionnement est simple. Il suffit de lui passer en paramètre le nom de la commande pour laquelle vous souhaitez obtenir des informations (son utilité, son usage, ses options, et parfois même des exemples). Par exemple, pour obtenir des informations sur la commande echo vous saisirez les instructions suivantes.

$ man echo

Astuce : Pour sortir de la commande man appuyez sur la touch Q.

Question 2 : Quelles instructions allez-vous saisir pour obtenir des informations sur la commande man ?

$

Question 3 : Déterminez l'option (flag en anglais) de la commande echo qui permet de supprimer le retour à la ligne ?


ls

Pour obtenir la liste des fichiers et dossiers là où vous êtes dans l'arborescence du système de fichiers il suffit de taper la commande ls.

$ ls

Question 4 : Quel option de la commande ls permet d'afficher tous les fichiers (même ceux dont le nom commence par un point, qu'on appel parfois des fichiers cachés).


Remarque : Maintenant que vous connaissez cette option, avouez que les fichiers cachés ne sont pas... très bien cachés.

Question 5 : Quel option unique de la commande ls permet d'afficher beaucoup plus d'informations sur chaque fichier et dossier. Comme par exemple sa taille, sa date de création, son propriétaire, ses droits d'accès,...


Remarque: Nous décrirons plus en détail toutes les informations obtenu à l'écran ultérieurement.

cat

La commande cat permet d'envoyer (d'afficher) à l'écran le contenu d'un fichier. Imaginons un fichier foo.txt contenant la chaîne de caractères bonjour monde. La commande cat foo.txt affichera à l'écran bonjour monde.

Remarque : La commande supporte l'option --help ce qui permet de s'affranchir de la commande man.

$ cat --help

Question 6 : Quels instructions allez vous saisir pour afficher le contenu du fichier /etc/resolv.conf.

$

Question 7 : Quel option de la commande cat allez vous utiliser pour afficher le contenu du fichier /etc/resolv.conf en numérotant chaque ligne ?


touch

Une simple commande qui permet de créer un fichier vide. Saisissez la commande touch bar.txt. Le fichier bar.txt sera créé.

$ touch bar.txt

Question 8 : Comment vous assurez que le fichier existe bien et qu'il est vide ?

$

$

Astuce : Utilisez les commandes vu ci-avant bien sur ! (ls et cat)

mkdir

La commande mkdir permet de créer un dossier (ou répertoire, ou directory en anglais). Son usage est simple. Il suffit de lui passer en paramètre le nom du dossier que l'on souhaite créer.

$ mkdir MonDossier

Rappel : Les systèmes de fichier sous Linux sont sensibles à la casse (Majuscule/minuscule). La chaine de caratères MonDossier est différente de monDossier.

Question 9 : Créer les dossiers MonDossierPerso, MonDossier_a_effacer et .MonDossierSecret (remarquez le caractère point qui prèfixe le nom du dossier).

$

$

$

Remarque : Assurez-vous que les trois dossiers ont bien été créés avec la commande ls.

rmdir

La commande rmdir permet de supprimer un dossier vide (c'est à dire qui ne contient ni fichier ni sous-dossier).

Question 10 : Supprimer le fichier MonDossier_a_effacer.

$

mv (renommer)

La commande mv permet (entre autre) de renommer un fichier ou un dossier. Son usage est simple. Le premier paramètre est l'ancien nom. Le second paramètre est le nouveau nom.

$ mv ancienNom nouveauNom

Question 11 : Renommer le dossier MonDossierPerso en MonDossierPro.

$ mv

cd

La commande 'cd' (change directory) permet de se déplacer dans l'arborescence du système de fichier. Il suffit de lui passer en paramètre le nom du répertoire dans lequel vous voulez "descendre".

Exemple

$ cd MonDossierPro

On peut passer à la commande cd en paramètre un chemin absolu ou relatif.

Rappel : Il existe des nommages particuliers qu'il faut connaitre.

  • Les deux points .. représente le répertoire situé immédiatement au-dessus.
  • Le caractère ~ (tilde) représente le chemin de votre répertoire de connexion (user's home directory).
  • Le caractère point . représente le répertoire courant.
  • Le caractère / (slash) situé le plus à gauche d'un chemin absolu représente la racine du système de fichiers. Autre part il n'est qu'un séparateur.

Astuce : Si vous saisissez la commande cd seul sans argument vous retournez directement dans votre répertoire de connexion.

Par exemple sur ma machine personnelle la commande cd ~ équivaut à cd /home/jp. Mais si je veux revenir dans mon répertoire de connexion je saisirai plutôt cd (suivie d'un retour chariot). Le résultat de ces trois dernières commande est identique.

Question 12 : Quelle commande allez-vous saisir pour vous positionner dans le répertoire log situé dans le répertoire var lui même situé à la racine (/) du système de fichier.

$

Astuce : Utilisez un chemin absolu.

pwd

Cette commande permet de savoir où vous vous situez dans l'arborescence de votre système de fichier. Saisissez simplement la commande pwd.

$ pwd

Vous devriez être dans /var/log (cf. question 12 précédente).

Question 13 : Saisissez la commande cd sans argument. Où êtes vous à présent ? Notez le chemin complet obtenu avec la commande pwd.


>

Le caractère > (strictement supérieur) fait partie des opérateurs. Un opérateur est généralement utilisé pour que des programmes puissent interagir. Le caractère > est l'opérateur qui permet de rediriger la sortie d'une commande. Par exemple si j'exécute la commande echo "hello" > greetings.txt, le message hello ne sera pas affiché à l'écran. La sortie de la commande echo sera redirigée dans le fichier greetings.txt. Le message hello se retrouvera donc dans le fichier greetings.txt.

$ echo "hello" > greetings.txt      # Rien ne s'affiche à l'écran
$ ls                    # Un fichier greetings.txt a été créé.
greetings.txt
$ cat greetings.txt
hello
$

Question 14 : Après avoir testé les commandes précédente, saisissez la commande echo "bonjour" > greetings.txt. Que contient le fichier greetings.txt ? (utilisez la commande cat)


Remarque : Si le fichier existe déjà celui-ci est écrasé/effacé. Son contenu est remplacé par le nouveau message.

Question 15 : Donnez la ligne d'instructions pour créer un fichier nommé secrets.txt contenant le message J'aime chanter sous ma douche.


>>

L'opérateur double supérieur (>>) fonctionne comme l'opérateur ci-dessus a la différence majeur qu'il n'efface pas le contenu du fichier destinataire. Il ajoute la sortie de la commande à la fin du fichier (on dit qu'il fait de l'append en anglais).

Par exemple si j'exécute la commande echo "hola" >> greetings.txt, le mot hola sera ajouté à la fin du fichier greetings.txt sans effacer ce qu'il contenait.

$ echo "hola" >> greetings.txt      # Rien ne s'affiche à l'écran
$ ls                    # Le fichier greetings.txt existe toujours.
greetings.txt
$ cat greetings.txt
bonjour
hola                    # une nouvelle ligne est apparu en fin de fichier
$

Question 16 : Donnez la ligne d'instructions pour ajouter le message Je dors avec des chaussettes à la fin du fichier secrets.txt.


mv (déplacer)

La commande mv que nous avons déjà rencontrée ci-avant peut également être utilisée pour déplacer des fichiers et des dossiers.

Son usage est simple : mv file.doc dossierA pour ranger le fichier .doc dans le dossier A, ou mv dossierA dossiers pour ranger/déplacer le dossier A dans le répertoire dossiers.

Par exemple pour déplacer le fichier greetings.txt dans MonDossierPro on utilise la commande mv greetings.txt MonDossierPro.

Question 17 : Comment déplacer le fichier secrets.txt dans le dossier .MonDossierSecret ?


rm

La commande rm (remove) permet d'effacer un fichier. Il suffit de lui passer en paramètre le nom du fichier a effacer.

$ rm fichier_inutile.txt

La commande rm permet également de supprimer un répertoire et tout son contenu. Pour ce faire vous devrez utiliser les options -r et -f ou -rf (plus efficace).

$ rm -rf repertoireAeffacer

ATTENTION : L'usage des options -rf peut être fatal. Sous Linux la récupération de documents supprimés est considéré comme impossible. Donc soyez très vigilant avant de valider une commande de ce type.

Question 18 : A quoi sert l'option -r de la commande rm ?


Question 19 : A quoi sert l'option -f de la commande rm ?


Question 20 : Pourquoi vous ne taperez jamais la commande rm -rf ~ ?

    ATTENTION ! NE TESTEZ PAS CETTE COMMANDE SUR VOTRE COMPTE !

Activités

Voici une arborescence que vous allez devoir reproduire sur votre poste de travail à l'endroit qui vous conviendra dans votre répertoire de connexion.

Arborescence

Activité 1 : Lister les commandes (mkdir et cd) que vous avez utilisé pour obtenir une arborescence identique.











Positionnez vous à présent à la racine de votre répertoire de connexion (dans votre home directory). Vous pouvez utilisez la commande cd sans paramètre (suivi d'Entrée). Saisissez la commande suivante :

touch projet.c tp1.py script.sh fichier.tmp

Activité 2 : Déplacer les fichiers fraichement créé ci-dessus dans les répertoires les mieux adaptés selon vous de l'arborescence créé dans l'activité précédente.


Félicitation ! Vous avez terminé le TP1 #1 : Découverte de la ligne de commande. Si toute les notions vu dans ce TP vous semble relativement clair vous pouvez passé au TP suivant.