Corrigés des exercices sur les commandes Unix élémentaires

Note Les paragraphes signalés par cette icône sont des explications plus techniques pour donner une réponse exacte à certaines questions. Si vous êtes débutant, ce n'est pas nécessaire de les lire maintenant.

Exercice 1 (joe, less, ls)

  1. Créez un fichier premiertexte contenant une ou deux phrases.

    Pour créer un fichier et écrire du texte dedans, il faut l'éditer avec un éditeur de votre choix. Nous proposons nano aux débutants. Il faut donc taper

    bireme ~ $ nano premiertexte
    

    Utilisation de nano : le prompt affichant le nom de la machine disparaît; vous avez à la place une page blanche où vous pouvez taper du texte. Le nom du fichier que vous éditez et le nom de l'éditeur sont affichés en haut. La liste des commandes disponibles est écrite en bas. Vous pouvez faire Ctrl-O pour enregistrer et Ctrl-X pour quitter.

    Vous pouvez maintenant taper ce que vous voulez et quitter en enregistrant (Ctrl-X puis répondre y au moment où nano vous demande si vous voulez enregistrer le texte).

  2. Visualisez le contenu de premiertexte sans l'éditer

    C'est la commande less qui permet de faire cela (ou more, si less n'est pas installée là où vous vous trouvez). Pour lire le contenu de premiertexte, il faut taper

    bireme ~ $ less premiertexte
    

    Pour quitter less ou more, taper q.

  3. Quelle est la taille de premiertexte ?

    C'est l'option -l de ls qui permet de savoir la taille d'un fichier, sa date de dernière modification, etc. Vous tapez donc :

    bireme ~ $ ls -l
    

    Cette commande sans arguments vous donne la liste de tous vos fichiers. Si vous voulez connaître les caractéristiques de premiertexte et rien d'autre, tapez

    bireme ~ $ ls -l premiertexte
    

    La config conscrits propose l'alias ll pour ls -l.

  4. Éditez PREMIERTEXTE. Que constatez-vous ?

    Pour éditer PREMIERTEXTE, vous tapez

    bireme ~ $ joe PREMIERTEXTE
    

    Vous constatez qu'il s'agit d'un nouveau fichier, et que vous ne retrouvez pas le contenu de premiertexte. C'est normal : Unix est case sensitive, c'est-à-dire sensible à la casse des caractères : majuscules et minuscules ne sont pas interchangeables. C'est pourquoi premiertexte et PREMIERTEXTE sont deux fichiers différents.

Exercice 2 (cp, ls, mv)

  1. Faites une copie de premiertexte appelée double

    C'est la commande cp (copy) qui sert à faire une copie d'un fichier, en indiquant le nom du fichier à copier puis nom du nouveau fichier. Il faut donc taper :

    bireme ~ $ cp premiertexte double
    
  2. Comparez leurs tailles

    Comme dans l'exercice 1, c'est l'option -l de ls qui va servir. En tapant ls -l sans argument, vous affichez le contenu du répertoire en entier. Si vous voulez limiter l'affichage aux deux fichiers souhaités, tapez

    bireme ~ $ ls -l premiertexte double
    
  3. Renommez double en introduction

    C'est la commande mv (move) qui sert à renommer un fichier. Pour renommer double, il faut donc taper :

    bireme ~ $ mv double introduction
    

    En tapant ls, vous pouvez vérifier que le fichier double a disparu au profit d'un fichier introduction.

  4. Quelle différence y a-t-il entre mv double introduction et cp double introduction ?

    mv (move) renomme un fichier : seul son nom est modifié, son contenu reste inchangé et aucun autre fichier n'est créé. double disparaît au profit de introduction.

    cp (copy) fait une copie du premier fichier : un nouveau fichier est créé, son contenu est identique à celui du fichier d'origine, mais leurs noms sont différents. double et introduction existent de façon parallèle.

Exercice 3 (mkdir, mv, cp, ls, cd)

  1. Créez un répertoire essai/

    Il faut taper

    bireme ~ $ mkdir essai
    

    (make directory «essai»)

    Vous pouvez vérifier en tapant ls que le répertoire a bien été créé.

  2. Déplacez double dans essai/

    C'est mv (move) qui sert à déplacer des fichiers, ainsi qu'à les renommer :

    bireme ~ $ mv double essai/
    

    Le slash (/) n'est pas obligatoire, c'est en fait un agrément pour identifier plus vite les répertoires dans une liste de fichiers

    Note C'est l'option -F de ls qui fait apparaître ce symbole; vous avez en fait un alias de ls sur ls -F).

  3. Faites une copie de premiertexte appelée copie, et placez-la également dans essai/.

    On peut faire ça de plusieurs façons :

    • Faire la copie dans le répertoire courant, puis déplacer cette copie dans le sous-répertoire essai/ :
      bireme ~ $ cp premiertexte copie
      bireme ~ $ mv copie essai/
      
    • Faire directement la copie dans le sous-répertoire essai/ :
      bireme ~ $ cp premier texte essai/copie
      
    • N'oublions pas le cas où nous ne serions pas dans le répertoire d'accueil, mais dans essai/. On pourrait d'abord faire la copie dans le répertoire père, puis amener cette copie là où on se trouve :
      bireme ~/essai $ cp ../premier texte ../copie
      bireme ~/essai $ mv ../copie .
      

      Ou plus simplement, on pourrait copier le fichier du répertoire père directement dans le répertoire courant :

      bireme ~/essai $ cp ../premiertexte copie
      
  4. Affichez une liste de ce que contient essai/

    Si l'on est dans le répertoire personnel, on tape :

    bireme ~ $ ls essai
    

    pour avoir une liste de ce que contient essai. Le résultat ressemblera à ça :

    bireme ~ $ ls essai
    copie  double
    

    Et si vous vous trouvez alors dans essai/, le résultat sera le suivant :

    bireme ~/essai $ ls
    copie  double
    

Exercice 4 (rmdir, cd, rm)

  1. Essayez de drétuire essai/. Que se passe-t-il ? Que faut-il faire pour détruire un répertoire ?

    C'est la commande rmdir (remove directory) qui sert à détruire les répertoires. Cependant, on ne peut détruire un répertoire qu'à condition qu'il soit entièrement vide, c'est pourquoi le programme vous répond

    rmdir: essai: directory not empty
    

    Il faut donc vider le répertoire pour pouvoir le détruire.

  2. Détruisez tout ce que contient essai/

    C'est la commande rm qui permet de détruire des fichiers. Il faut donc taper :

    bireme ~/essai $ rm double copie
    

    Vous pouvez aussi vous servir de certains caractères spéciaux; ici, c'est * (étoile) qui est utile. «Étoile» signifie «Tout chaîne de caractères ne commençant pas par un point». Donc, pour effacer d'un seul coup tous les fichiers du répertoire, vous pouvez taper :

    bireme ~/essai $ rm *
    

    /!\ Attention /!\

    Il se trouve que votre configuration est ainsi faite que le programme demande confirmation avant d'effacer des fichiers . Cela vient de ce qu'il y a un alias de rm sur rm -i; l'option -i est l'option «interactive», qui demande confirmation.

    Soyez donc prudents : on a vite fait de confondre mv (move) et rm (remove), et l'option -i n'est pas systématiquement mise.

  3. Détruisez essai/

    Revenez dans le répertoire père (cd ..) et tapez :

    bireme ~ $ rmdir essai/
    
    (remove directory «essai»)
Auteur : Émilia Robin, Joël Riou. Dernière modification : Wed Dec 4 16:14:50 2002 +0000 par Joël Riou.