site de Fabien Torre


Travaux pratiques sur Linux et le terminal

Exercices à réaliser dans un terminal pour pratiquer les commandes Linux : déplacement dans les dossiers (cd), accès aux fichiers (ls), recherches sur les noms (find) ou les contenus des fichiers (grep), comptages (wc), découpages (cut), tris (sort et uniq), extractions de textes (pdftolatex et tesseract), récupération depuis le web (wget), conversions (pandoc et pdflatex), codages des textes, visualisation de documents, etc.

[ 1 ] Récupération et installation d'une archive compressée

  1. Télécharger le fichier seance-tp.tar.bz2 à l'url fournie.
    wget --trust-server-names url_fournie
    
  2. Décompresser ce fichier.
    bunzip2 seance-tp.tar.bz2
    
  3. Désarchiver l'archive, puis l'effacer.
    tar xvf seance-tp.tar
    rm seance-tp.tar
    
  4. Observer l'arborescence et les fichiers créés.
    ls -l
    cd seance-tp
    ls -l
    ls *
    

[ 2 ] Visualisation des fichiers du cours

  1. Établir la liste de tous les sous-dossiers et de tous les fichiers présents dans le dossier seance-tp.
    cd seance-tp
    find
    
  2. Trouver l'emplacement d'un fichier introduction.pdf et se rendre dans le dossier contenant ce fichier.
    cd ~
    find -name "introduction.pdf"
    cd seance-tp/latex/
    
  3. Visualiser le fichier pdf.
    atril introduction.pdf &
    
  4. Trouver l'emplacement du fichier demos.html.
    cd ~
    find -name "demos.html"
    cd seance-tp/html-css/
    
  5. Lancer firefox pour visualiser ce fichier et naviguer.
    firefox demos.html
    

[ 3 ] Dans une arborescence : rechercher et compter

  1. Rechercher sur votre compte les fichiers pdf. Faire afficher leur nombre.
    cd ~
    find -name "*.pdf"
    find -name "*.pdf" | wc -l
    
  2. Rechercher dans le dossier seance-tp les occurrences du mot nature.
    cd ~
    man grep
    grep -r --color=auto nature seance-tp
    
  3. Se restreindre au mot lui-même mais autoriser les différences de casse.
    grep -riw --color=auto nature seance-tp
    
  4. Obtenir le nombre de ces occurrences.
    grep -riw nature seance-tp | wc -l
    
    ATTENTION : on compte en fait le nombre de lignes sur lesquelles le mot apparaît... une ou plusieurs fois.    
    
  5. Rediriger les lignes contenant le mot vers un fichier et consulter ce fichier dans un éditeur de texte.
    grep -riw nature seance-tp > ~/resultats.txt
    atom ~/resultats.txt &
    

[ 4 ] Extraction du texte d'un document

  1. Ouvrir les fichiers présents dans le dossier misc, contiennent-ils le mot nature ?
    cd seance-tp
    cd misc
    soffice chs-juin-2011.doc &
    atril Programme.pdf &
    atril risque-alcool.pdf &
    atril pdyf-p55.pdf &
    ristretto cake.png &
    
  2. Extraire le texte contenu dans le document pdf nommé Programme.pdf.
    Idem avec le fichier caviarder.pdf (observer le d'abord avec un lecteur de documents pdf).
    pdftotext -layout Programme.pdf
    
  3. OCRiser l'image de document nommée de cake.png pour en obtenir le texte.
    tesseract -l fra cake.png cake
    
  4. Tester ces deux techniques sur d'autres fichiers présents dans le dossier (misc).
    pdftotext -layout pdyf-p55.pdf          # NE DONNE RIEN CAR LE PDF EST UNE IMAGE
    tesseract -l fra pdyf-p55.pdf yemba     # NE MARCHE PAS CAR TESSERACT NE TRAITE PAS LES PDF
    pdftoppm -png pdyf-p55.pdf pdyf-p55
    tesseract pdyf-p55-1.png yemba
    
    pdftoppm -png risque-alcool.pdf risque-alcool
    tesseract -l fra risque-alcool-1.png risque
    

[ 5 ] Dans un fichier : découper, chercher, compter

  1. Pour le fichier introduction.tex, obtenir : le nombre de lignes, le nombre de mots, le nombre de caractères et le nombre de diapositives.
    cd seance-tp/latex/
    wc introduction.tex
    grep frametitle introduction.tex | wc -l
    
  2. À partir du fichier kdos.txt, extraire les appellations des jouets.
    cut -d\; -f2 kdos.txt
    cut --delimiter=\; --fields=2 kdos.txt 
    
  3. Idem en se restreignant aux jouets pour enfants de 3 ans.
    grep '3 ans' kdos.txt | cut -d\; -f2
    
  4. Idem en classant les jouets par ordre alphabétique et en écartant les éventuels doublons.
    grep '3 ans' kdos.txt | cut -d\; -f2 | sort | uniq
    
  5. Mêmes questions pour les jouets sans précision d'âge.
    grep -vw ans kdos.txt | grep -vw mois | cut -d\; -f2 | sort | uniq
    
  6. À partir du fichier nat2020.csv, établir la liste des prénoms donnés en France depuis 1901.
    cut -d\; -f2 nat2020.csv | sort | uniq
    cut -d\; -f2 nat2020.csv | sort | uniq | wc -l
    

[ 6 ] Structuration de documents et changement de formats

À partir du format Markdown

  1. Se déplacer dans le dossier contenant les fichiers avec l'extension .md et observer le contenu de ces fichiers.
    find -name *.md
    cd markdown	
    
  2. Transformer automatiquement le fichier exemple.md en html, voir le résultat.
    pandoc exemple.md -o exemple.html
    ls	
    firefox exemple.html &
    
  3. Transformer automatiquement le document alice.md en epub, voir le résultat.
    pandoc alice.md -o alice.epub
    ls
    atril alice.epub &
    
  4. Décompresser le fichier alice.epub obtenu comme s'il s'agissait d'un fichier avec l'extension .zip
    unzip alice.epub
    ls
    cd EPUB/text
    firefox ch001.xhtml &
    

À partir du format LaTeX

  1. Compiler le fichier introduction.tex pour obtenir un fichier pdf.
    pdflatex introduction.tex
    pdflatex introduction.tex
    
  2. Constater que des fichiers ont effectivement été créés par la compilation.
    ls -l
    
  3. Effacer les autres fichiers produits à l'exception du pdf.
    rm *.aux *.log *.nav *.out *.snm *.toc *.vrb
    
  4. Produire un fichier pdf à partir de introduction.tex en mode handout.
  5. Partir du fichier minimal.tex, l'enrichir et produire un document pdf.

[ 7 ] Codages des fichiers

  1. Lire le cours codage, en particulier la section sur le codage des caractères et l'exemple de codage/décodage.
  2. Convertir en utf-8 les fichiers précédemment repérés comme étant en latin1.
    cd seance-tp/textes
    file *
    iconv -f iso-8859-1 -t utf-8 horla.txt > horla-utf8.txt
    file *
    
  3. Constater le changement en affichant le contenu de ces fichiers dans le terminal.

[ 8 ] Manipulation de fichiers

  1. Copier le dossier seance-tp sur le bureau, renommer ce dossier.
    cd
    cp -r seance-tp/ Bureau/
    cd Bureau/
    mv seance-tp fichiers-seance-linux
    
  2. Donner l'accès en lecture à tous au dossier créé sur le bureau.
    chmod a+r fichiers-seance-linux
    ls -l
    
  3. Enlever les droits de lecture sur le fichier demos.html pour les personnes n'appartenant pas au groupe.
    cd fichiers-seance-linux/html-css/
    chmod o-r demos.html
    ls -l
    
  4. Pour tous, enlever les droits d'écriture sur les fichiers présents dans le dossier latex.
    chmod a-w fichiers-seance-linux/latex/*
    ls -l fichiers-seance-linux/latex/*
    
  5. À chaque étape, observer que les droits sont effectivement modifiés.
    ls -l
    
  6. Dans le dossier latex, créer un nouveau dossier nommé essai.
    cd fichiers-seance-linux/latex/
    mkdir essai
    
  7. Effacer la copie présente sur le bureau. Que se passe-t-il ? Modifier ce qui doit l'être pour effectivement effacer le dossier.
    rm -r fichiers-seance-linux
    chmod 644 fichiers-seance-linux/latex/*
    rm -r fichiers-seance-linux
    
  8. Obtenir l'emplacement précis de votre compte.
    cd ~
    pwd
    
  9. Lister le contenu de votre répertoire et en particulier les fichiers et dossiers cachés.
    ls -a
    
  10. Faire apparaître les droits et les tailles des fichiers.
    ls -alh
    
  11. Obtenir la taille du dossier seance-tp.
    cd ~
    du -h seance-tp
    
  12. Archiver et compresser ce dossier, puis observer la taille du fichier obtenu.
    tar cvf tp.tar seance-tp
    ls -lh
    bzip2 tp.tar
    ls -lh
    

[ 9 ] Programmes et processus

lancement de commandes

  1. Quels sont les emplacements des commandes pdflatex, firefox et ls ?
  2. Afficher toutes les commandes effectuées depuis le début de la séance.
  3. Dans cette liste, ne conserver que les utilisations de la commande cd.
  4. Afficher la liste des processus en cours d'exécution sur la machine, puis se restreindre à ceux appartenant à l'utilisateur.

exécution de programmes perl

  1. Se rendre dans le dossier perl.
  2. Observer les droits associés aux fichiers présents et constater qu'ils sont exécutables.
  3. Les exécuter à tour de rôle et observer les deux comportements.
  4. Ouvrir et comparer les deux fichiers perl dans un éditeur de texte.

[ 10 ] Récupération d'informations du web

  1. Trouver un dictionnaire de cuisine sur le web.
  2. Récupérer l'une des pages de définition depuis le terminal.
  3. Idem mais en redirigeant le résultat dans un fichier, puis ouvrir ce fichier dans l'éditeur de texte et repérer le mot défini sur la page d'origine.
  4. À nouveau, récupérer la page dans le terminal en isolant le mot défini.

Question subsidiaire : comment automatiser ce traitement ?


Fabien Torre Valid HTML5! Valid CSS!
Accueil > Enseignement > En pratique > Informatique de base > Linux
(contenu mis à jour )
site de Fabien Torre, université de Lille

Description

Survoler un lien de navigation pour lire sa description ici...