1. Introduction

Vous devrez rédiger un compte-rendu de TP qui sera en fin de séance transmis par mail à votre chargé de TP. Ce compte-rendu nous sert à savoir ce que vous avez compris ou non, et vous servira pour réviser les TP ainsi que lors de l’évaluation pratique (les documents seront autorisés). Aussi, attachez-vous à présenter les informations importantes de façon à pouvoir les retrouver facilement.

Manipulations en ligne de commande

Linux ayant hérité de la philosophie des systèmes Unix, il propose une autre interface que l’interface graphique : l’interpréteur de commande (ou shell). Les commandes que veut exécuter l’utilisateur sont entrées dans un terminal en mode texte. Bien que cette interface puisse paraître archaïque, elle est un outil très puissant et possédant de nombreux avantages sur les interfaces graphiques en particulier pour

  • l’automatisation des actions ;
  • la répétition des commandes : faire une même action sur trente six fichiers est plus facile ;
  • la “traçabilité” : un historique des actions est conservé ;
  • l’utilisation à distance : il y a beaucoup moins d’informations à transmettre par le réseau pour une interface textuelle que pour une interface graphique ;
  • l’utilisation sur des matériels peu puissants comme des routeurs.

Pour la suite du TP, nous allons lancer un terminal. Nous aurons ainsi dans notre environnement graphique une fenêtre donnant accès à un shell à côté des autres fenêtres.

Algorithme d’un shell

Les commandes que vous tapez sont analysées et exécutées par l’interpréteur de commandes. Une commande correspond en fait à l’exécution d’un programme dans l’interpréteur avec des options et des données. Pour s’exécuter, la commande que vous tapez peut :

  • avoir besoin d’informations, sous forme de paramètres qui peuvent être des options, des fichiers à manipuler ou des arguments ;
  • produire ou transformer de l’information (par exemple dans des fichiers) ;
  • produire un message d’erreur.

L’algorithme de base d’un interpréteur de commande, c’est-à-dire le schéma de fonctionnement est le suivant :

  1. afficher le prompt (invite de commande) pour indiquer à l’utilisateur qu’il est prêt et attend une commande
  2. attendre l’appui de la touche Entrée
  3. interpréter la ligne de commande
  4. si la commande est bien formée, alors
  5. exécuter la ligne de commande
  6. sinon
  7. produire un message d’erreur
  8. revenir en i.

Pour sortir de cette boucle, il suffit de taper la commande exit. Notez que l’étape 3 peut être complexe (cela inclut par exemple de transformer les noms de fichiers en des descripteurs des fichiers) et que l’étape 5 n’est en réalité pas effectuée par le shell mais consiste à confier au programme voulu de s’exécuter avec les arguments précisés, cette exécution peut produire des messages (y compris d’erreur).

Parmi les informations dont peut avoir besoin une commande, on trouve les options et les arguments. Une commande peut être lancée seule, avec une ou plusieurs options, avec un ou plusieurs arguments ou avec des options et des arguments. La syntaxe de base d’une commande est la suivante :

commande [options] [arg1] [arg2] ... [argN]

Où les crochets indiquent qu’un élément est optionnel (il ne faut pas taper les crochets). Les options sont en général de la forme -a ou --option. Notez que l’espace est interprété comme le séparateur des arguments, la commande commande Le nom de mon fichier est donc compris comme la commande commande avec 5 arguments : Le, nom, de, mon, et fichier.

On peut noter que les lignes de commandes sont similaires à des phrases à l’impératif : la commande correspond au verbe à l’impératif (par exemple make, list, change, remove…), les arguments au complément d’objet, les paramètres à des compléments circonstanciels.

La commande who

Commençons avec un exemple : la commande who. Le système que vous utilisez étant multi-utilisateurs, plusieurs utilisateurs peuvent être connectés simultanément, plusieurs sessions être en cours. La commande who permet de connaître les sessions en cours.

Essayez les lignes de commande suivantes et interprétez leurs résultats :

  • who
  • who -H
  • who am i
  • who -y

Pour chacun, quelle est la commande, quelles sont les options (et leur rôle), quels sont les arguments ?

Les commandes d’aide

Vous avez vu que la commande who vous donne de l’aide sur son usage quand vous utilisez une option inconnue. Il existe une autre source d’informations pour savoir comment utiliser une commande : le manuel. Pour avoir des informations sur la commande w, il suffit de taper

man w

Par exemple, pour le manuel de la commande who, on tapera

man who

Toutes les pages de manuel sont structurées de la même manière. Elles comportent des parties distinctes fournissant chacune une catégorie d’informations particulière :

NAME
nom et courte description de la commande
SYNOPSIS
usage de la commande
DESCRIPTION
description longue de ce que fait la commande
OPTIONS
les différentes options de la commande et leur signification
RETURN VALUE
ce que renvoie la commande
ERRORS
Les erreurs qu’elle peut renvoyer
ENVIRONMENT
variables d’environnement considérées
FILES
Les fichiers touchés
VERSIONS
versions
NOTES
notes
BUGS
problèmes connus de cette commande
EXAMPLE
quelques exemples d’utilisation
AUTHORS
les auteurs du programme
SEE ALSO
autres pages de manuel en relation avec celle-ci

Pour sortir du manuel, appuyer sur la touche q. Pour rechercher un terme, utilisez /terme.

Une autre commande qui va vous être utile est la commande apropos. Elle sert à savoir dans quelle page de manuel on pourra trouver des informations sur un terme donné.

2. Questions

  1. Parcourez les pages de manuel de apropos et man.
  2. Quelles commandes ont un rapport avec le calendrier ?
  3. Affichez un calendrier du mois.
  4. Affichez un calendrier de votre mois de naissance.
  5. Quand a eu lieu le passage du calendrier julien au calendrier grégorien en Grande Bretagne ? Affichez le calendrier du mois en question. Combien comptait-il de jours ?
  6. Quand ce passage a-t-il eu lieu en France ? En Russie ? Afficher les calendriers des mois concernés dans le pays concerné.
  7. (Optionnel) Quand a eu lieu la révolution d’octobre ?
  8. Que fait la commande id ? Expliquer id, id sysadm et id -g sysadm.
  9. Quelles commandes ont un rapport avec les dossiers (directory) ?
  10. Que font les commandes pwd et ls ?

Suite

Après les commandes d’aide, nous allons maintenant manipuler les commandes de création et suppression de fichiers et dossiers.

Énoncé suivant