• Séance 2 - Exercices sur le terminal Unix

    Pour pouvoir mieux intégrer ce que avons appris lors du deuxième cours, nous avons résolut les exercices sur le terminal Unix, que nous pouvons trouver à la page du cours sur iCampus et également en suivant ce lien du site Plurital.

     

    Application 1 :

    Nous avons une liste de commandes à saisir dans notre terminal de commandes. Certaines sont formulée en langage naturel.

    Nous sommes placés dans le répertoire Projet_encadre, qui a pour chemin absolu /home/kirsten-gaby/Documents/M1/S1/Projet_encadre et contient le fichier cours1.odt.

    Les commandes mkdir TEST1 et mkdir TEST2 exécutent la création de deux répertoires TEST1 et TEST2 dans le répertoire courant. Nous pouvons le vérifier avec la commande ls.

     

    Séance 2 - Exercices sur le terminal Unix

     

    On nous demande ensuite de créer un répertoire « TEST 3 » sans nous donner de commande. Il faut faire attention à l’écriture, car sur le terminal, les commandes, arguments et options sont séparés par un espace. Si nous écrivons mkdir TEST 3, TEST et 3 vont être considérés comme des éléments à part. La commande est donc mkdir «TEST 3», mais nous pourrions aussi l’écrire de cette façon : mkdir TEST\ 3. Le backslash \ indique au processeur qu’il faut compter l’espace comme un caractère du nom de répertoire, et non comme un séparateur.

     

    Séance 2 - Exercices sur le terminal Unix

     

    La commande suivante cd TEST1 nous déplace dans le répertoire TEST1, qui doit être vide.

    Nous exécutons alors la commande touch vide1.txt ./TEST1/vide2.txt ../TEST2/vide3.txt. La commande touch créé un ou des fichiers vides, en fonction du nombre d’arguments. Ici, le fichier vide1.txt est créé dans le répertoire courant et le fichier vide3.txt dans le répertoire TEST2. Le fichier demandé vide2.txt ne peut être créé, car nous n’avons pas de dossier TEST1 dans le répertoire courant, le terminal nous envoie ce message d’erreur : touch: impossible de faire un touch './TEST1/vide2.txt': Aucun fichier ou dossier de ce type.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Les commandes echo « Kirsten Berland » > vide1.txt et echo « Parents hélicoptères » >> vide1.txt ajoutent du contenu au fichier vide1.txt. Avec cat, nous pouvons voir son contenu. Les deux chevrons >> permettent de ne pas écraser le contenu déjà existant du fichier.

     

    Séance 2 - Exercices sur le terminal Unix

     

    mv vide1.txt jenesuisplusvide.txt déplace vide1.txt en le renommant jenesuisplusvide.txt sur le répertoire courant. Nous n’avons donc plus vide1.txt mais jenesuisplusvide.txt dans TEST1. La commande cp permet de copier un fichier, et de renommer la copie si nous le voulons. Nous avons donc un nouveau fichier dans TEST1 et dans TEST2.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Nous faisons ensuite cat > toto.txt, qui nous demande de saisir du texte. Ce texte sera écrit dans le fichier nouvellement créé toto.txt.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Avec ls > liste.txt, nous inscrivons le contenu du répertoire courant dans le nouveau fichier liste.txt. ls >> liste.txt écrit une nouvelle fois le contenu du répertoire à la suite de la première liste, dont le fichier liste.txt lui-même.

     

    Séance 2 - Exercices sur le terminal Unix

     

    La commande lsd n’existant pas, le ‘2>’ de lsd >> liste.txt 2> erreur.txt permet de créer le fichier erreur.txt et d’y inscrire le message d’erreur émise.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Le contenu du répertoire TEST1 est copié deux fois dans un fichier liste.txt du répertoire TEST2.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Les deux commandes suivantes rm vide2.txt et rmdir ../TEST3 sensées supprimer vide2.txt et le dossier TEST3, mais ceux-ci n’existant pas, nous recevons un message d’erreur.

     

    Séance 2 - Exercices sur le terminal Unix

     

    Application 2 :

    On nous demande d'écrire l'instruction pour compter le nombre de fichiers présent dans notre répertoire de travail. Nous utilisons la commande ls, qui liste le contenu du répertoire courant, et wc, qui compte le nombre de mots, de lignes et de caractères d'un fichier.

    Pour que wc agisse sur le résultat de ls, nous utilisons le pipeline |. La liste donnée par ls est enregistrée en tant qu'argument de wc. L'option -l est ajoutée car nous ne voulons voir que le nombre de fichiers du répertoire.

    Nous avons donc ceci : ls | wc -l

    Cette instruction compte aussi les répertoires, s'il y en a. Nous pouvons donc la réécrire comme ceci : ls *.* | wc -l, l'expression '*.*' cherchant tous les noms comportant un point, les extensions de noms commençant par un point.

    Dans la deuxième question, il s'agissait d'écrire une instruction comptant le nombre de fichiers dans TEST2.

    Rappelons nous que nous nous situons dans le répertoire TEST1. L'instruction devient : ls *.* | wc -l ../TEST2. Nous avons donc trois fichiers dans TEST2 : vide3.txt, jenesuispasvide.txt et liste.txt.


  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :