Travaux pratiques sur Linux et le terminal
Exercices à réaliser dans un terminal pour pratiquer les commandes Linux : déplacement dans les dossiers, accès aux fichiers, recherches sur les noms ou les contenus des fichiers, comptages, visualisation et manipulation de documents, etc.
[ 1 ] Récupération et installation d'une archive compressée
- Télécharger le fichier seance-tp.tar.bz2 à l'url fournie.
wget --trust-server-names url_fournie
- Décompresser ce fichier.
bunzip2 seance-tp.tar.bz2
- Désarchiver l'archive, puis l'effacer.
tar xvf seance-tp.tar rm seance-tp.tar
- Observer l'arborescence et les fichiers créés.
ls -l cd seance-tp ls -l ls *
[ 2 ] Visualisation des fichiers du cours
- Établir la liste de tous les sous-dossiers et de tous les fichiers
présents dans le dossier seance-tp.
cd seance-tp find
- 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/
- Visualiser le fichier pdf.
atril introduction.pdf &
- Trouver l'emplacement du fichier demos.html.
cd ~ find -name "demos.html" cd seance-tp/html-css/
- Lancer firefox pour visualiser ce fichier et naviguer.
firefox demos.html
[ 3 ] Dans une arborescence : rechercher et compter
- Rechercher sur votre compte les fichiers pdf. Faire afficher leur nombre.
cd ~ find -name "*.pdf" find -name "*.pdf" | wc -l
- Rechercher dans le dossier seance-tp les occurrences du mot nature.
cd ~ man grep grep -r --color=auto nature seance-tp
- Se restreindre au mot lui-même mais autoriser les différences de casse.
grep -riw --color=auto nature seance-tp
- 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.
- 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
- 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 &
- 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
- OCRiser l'image de document nommée de cake.png pour en obtenir le texte.
tesseract -l fra cake.png cake
-
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
- 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
- À partir du fichier kdos.txt,
extraire les appellations des jouets.
cut -d\; -f2 kdos.txt
- Idem en se restreignant aux jouets pour enfants de 3 ans.
grep '3 ans' kdos.txt | cut -d\; -f2
- 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
- Mêmes questions pour les jouets sans précision d'âge.
grep -vw ans kdos.txt | grep -vw mois | cut -d\; -f2 | sort | uniq
- À 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
- Se déplacer dans le dossier contenant les fichiers avec l'extension .md et observer le contenu de ces fichiers.
- Transformer automatiquement le fichier exemple.md en html, voir le résultat.
- Transformer automatiquement le document alice.md en epub, voir le résultat.
À partir du format LaTeX
- Compiler le fichier introduction.tex pour obtenir un fichier pdf.
pdflatex introduction.tex pdflatex introduction.tex
- Constater que des fichiers ont effectivement été créés par la compilation.
ls -l
- Effacer les autres fichiers produits à l'exception du pdf.
rm *.aux *.log *.nav *.out *.snm *.toc *.vrb
- Produire un fichier pdf à partir de introduction.tex en mode handout.
- Partir du fichier minimal.tex, l'enrichir et produire un document pdf.
[ 7 ] Codages des fichiers
- Lire le cours codage, en particulier la section sur le codage des caractères et l'exemple de codage/décodage.
- 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 *
- Constater le changement en affichant le contenu de ces fichiers dans le terminal.
[ 8 ] Manipulation de fichiers
- 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
- Donner l'accès en lecture à tous au dossier créé sur le bureau.
chmod a+r fichiers-seance-linux ls -l
- 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
- 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/*
- À chaque étape, observer que les droits sont effectivement modifiés.
ls -l
- Dans le dossier latex, créer un nouveau dossier nommé essai.
cd fichiers-seance-linux/latex/ mkdir essai
- 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
- Obtenir l'emplacement précis de votre compte.
cd ~ pwd
- Lister le contenu de votre répertoire et en particulier les fichiers et dossiers cachés.
ls -a
- Faire apparaître les droits et les tailles des fichiers.
ls -alh
- Obtenir la taille du dossier seance-tp.
cd ~ du -h seance-tp
- 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
- Quels sont les emplacements des commandes pdflatex, firefox et ls ?
- Afficher toutes les commandes effectuées depuis le début de la séance.
- Dans cette liste, ne conserver que les utilisations de la commande cd.
- 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
- Se rendre dans le dossier perl.
- Observer les droits associés aux fichiers présents et constater qu'ils sont exécutables.
- Les exécuter à tour de rôle et observer les deux comportements.
- Ouvrir et comparer les deux fichiers perl dans un éditeur de texte.
[ 10 ] Récupération d'informations du web
- Trouver un dictionnaire de cuisine sur le web.
- Récupérer l'une des pages de définition depuis le terminal.
- 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.
- À nouveau, récupérer la page dans le terminal en isolant le mot défini.
Question subsidiaire : comment automatiser ce traitement ?