Téléchargez une version du dictionnaire "Oxford English Dictionary" avec 36'000 mots en utilisant l'outil curl :
curl -o dictionary.txt https://raw.githubusercontent.com/sujithps/Dictionary/master/Oxford%20English%20Dictionary.txt
Examinez le contenu du fichier dictionary.txt avec l'outil de pagination less. Utilisez l'aide en ligne de less en tapant h ou consultez la man page pour répondre aux questions suivantes :
Avec quelle touche se déplace-t-on au début du fichier ?
g < ESC-< * Aller à la première ligne du fichier (ou ligne N)
Avec quelle touche se déplace-t-on à la fin du fichier ?
G > ESC-> * Aller à la dernière ligne du fichier (ou ligne N)
Comment peut-on commencer à chercher toutes les occurrences du motif admin ?
less -p admin dictionary.txt pour ouvrir le fichier à la première occurrence du mot "admin" /admin pour trouver les occurrences du mot "admin" à la suite du fichier en cours de consultation &admin pour afficher les lignes contenant le mot "admin" dans le fichier en cours de consultation ?admin pour trouver les occurrences du mot "admin" précédemment dans le fichier en cours de consultations cat dictionary.txt | grep "admin"
Comment se déplace-t-on à l'occurrence suivante ?
n pour aller à l'occurrence suivante
N pour aller à l'occurrence précédente
Quel est l'effet de taper -i avant une recherche ? Et un -i répété ? Positionnez-vous au début du fichier et cherchez le motif bob.
-i ignore la casse dans la recherche. Plusieurs -i de changent rien.
Que se passe-t-il si vous ouvrez
un fichier comprimé, par exemple /usr/share/doc/bash/INTRO.gz ?
/usr/share/doc/bash/INTRO.gz => command not found gzip -d /usr/share/doc/bash/INTRO.gz => décompresse le fichier
une archive comprimée, par exemple /usr/share/doc/apg/php.tar.gz
/usr/share/doc/apg/php.tar.gz => command not found tar -C /usr/share/doc/apg/php.tar.gz => décompresse le fichier et l'archive
Répondez aux questions suivantes concernant le manuel Unix. La majorité des informations se trouve dans la man page de la commande man.
Quelles sont les neuf sections du manuel Unix ?
man man
Quelle section du manuel contient les commandes utilisateur telles que cat et ls ?
La section 1. Nous trouvons ceci en tapant
man lsetman cat
![]()
Quelle section documente les formats de fichier, tels que les fichiers de configuration ?
La section 5: "File formats and conventions"
Quelle section contient des commandes d'administration système, telles que shutdown ?
La section "8: System administration commands"
La section SYNOPSIS montre brièvement comment une commande est appelée. Lisez la man page pour man et expliquez ce que les textes de SYNOPSIS suivants veulent dire. Expliquez comment chaque commande peut ou doit être appelée; vouz n'avez pas à savoir ce que les commandes font réellement.
mkpasswd PASSWORD SALT
Change le mot de passe de l'utilisateur SALT et le remplace par "PASSWORD".
uniq [OPTION] ... [INPUT [OUTPUT]]
Permet de repérer et supprimer les doublons.
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
Décompresse un fichier compressé au format .gz
pour
chcon
:
chcon [OPTION]... CONTEXT FILE...
Change le contexte de sécurité du fichier par celui indiqué dans CONTEXT
chcon [OPTION]... [-u USER] [-r ROLE] FILE...
Ajouter l'utilisateur et le rôle dans le contexte de sécurité cible
chcon [OPTION]... --reference=RFILE FILE...
Option qui permet de remplacer le contexte de sécurité cible par celui d'un fichier référencé par RFILE
Lisez les man pages pour man et aussi d'autres man pages (par exemple pour ls, uniq, chmod et adduser) et répondez aux questions suivantes.
Qu'est-ce que vous trouvez normalement dans la section DESCRIPTION ?
Une courte description de la commande et de quelques options ou alternatives très utiles.
Quelle section documente normalement, en détail, ce que fait chaque option de commande ?
La section "OPTIONS".
Disons que vous lisez la man page pour une commande et que l'information que vous cherchez ne s'y trouve pas. Dans quelle partie trouvez-vous des références à d'autres man pages qui pourraient contenir ce que vous cherchez (jetez un oeil à la man page pour reboot, imaginant que vous cherchez une commande pour éteindre l'ordinateur) ?
La section "SEE ALSO".
Dans quelle section trouvez-vous de l'information sur les fichiers de configuration utilisés par un programme ?
La section "FILES".
Utilisez la man page de man pour répondre aux questions suivantes :
Parfois il existe plusieurs man pages (dans des sections différentes) pour le même mot-clé. Quelle option de la commande man pouvez-vous utiliser pour les afficher toutes ?
"whatis"
Parfois vous ne savez pas le nom d'une commande que vous cherchez, mais vous pouvez deviner un terme qui est en relation avec la commande. Quelle option de la commande man pouvez-vous utiliser pour afficher toutes les pages qui mentionnent un terme donné ?
"apropos" et "man -k" qui ont la même fonction.
Faites afficher la man page pour la commande ls.
Que fait la commande ls ?
Elle liste les fichiers et dossiers présents depuis un contexte donné.
Quelle option de ls affiche de l'information sur la taille des fichiers, leur propriétaire, leur groupe, leurs permissions, etc. ?
ls -l
Que fait l'option -R de ls ?
Elle liste les sous-répertoires récursivement.
Installez l'outil tree en tapant sudo apt install tree. Comparez tree avec ls -R.

Avec tree, on obtient une arborescence visuelle.
Le schéma suivant montre une partie d'un système de fichier Unix.
/
├── bin/
├── dev/
├── etc/
├── home/
| └── rijag112/
| | └── bin/
| | | ├── mplayer
| | | └── mencoder
| | ├── labs/
| | └── private/
| ├── cosaz039/
| ├── zbicz922/
| ├── tomli839/
| └── ramsi645/
├── lib/
├── proc/
├── sbin/
├── tmp/
├── usr/
├── bin/
| ├── man
| ├── info
| ├── less
| ├── ls
| └── ssh
├── lib/
├── local/
| ├── bin/
| ├── man/
| └── share/
├── sbin/
└── share/
├── doc/
└── man/
Donnez un chemin absolu pour ssh
/usr/bin/ssh
Donnez un chemin relatif pour
ssh
si le répertoire courant est /usr/
bin/ssh
si le répertoire courant est /usr/bin
ssh
si le répertoire courant est /usr/share
../bin/ssh
si le répertoire courant est /usr/local/bin
../
Téléchargez l'archive ex01_files.zip sur votre machine avec la commande curl :
curl -O http://heigvd-ads.s3-website-eu-west-1.amazonaws.com/exercises/ex01_files.zip
Désarchivez l'archive :
unzip ex01_files.zip
Examinez la structure des répertoires et fichiers. Utilisant la ligne de commande, manipulez les répertoires et fichiers pour obtenir la structure suivante :
ex01_files└── play| ├── trip| └── trip_copy└── work └── book ├── chap01 ├── chap02 └── chap03
Juste après que nous ayons désarchivé l'archive, nous nous retrouvons avec la structure suivante:
yanick@ubuntu:~/Documents/labo2/ex01_files$ tree ..├── chap03├── downloads│ └── book│ ├── chap01│ └── chap02├── play│ └── trip└── workNous exécutons les commandes suivantes pour arriver au résultat souhaité:
mv downloads/book workmv chap03 work/bookrmdir downloadscp play/trip play/trip_copyNous vérifions à présent que le résultat est le bon avec la commande
tree ex01_filesyanick@ubuntu:~/Documents/labo2$ tree ex01_filesex01_files├── play│ ├── trip│ └── trip_copy└── work └── book ├── chap01 ├── chap02 └── chap03Le résultat correspond à ce qui était souhaité.
Téléchargez et désarchivez le fichier http://heigvd-ads.s3-website-eu-west-1.amazonaws.com/exercises/ex02_files.zip. Faites un cd dans le répertoire obtenu. Vous avez maintenant les fichiers et répertoires suivants :
.├── index2.html├── index.html├── index.html~├── labs│ ├── index.html│ ├── lab01.html│ └── starter.tar.gz└── lectures └── index.html
Donnez l'arborescence des répertoires et fichiers après exécution des commandes suivantes (certaines des commandes peuvent échouer). Donnez le résultat sans exécuter les commandes sur votre ordinateur, ensuite vérifiez :
mv labs/index.html labs.htmlmv labs labs.dmv index2.html index.htmlrm index.html~echo TBD > lectures/lc01.htmlmkdir downloadscd downloadsmv ../labs/starter.tar.gz .
Nous téléchargeons d'abord l'archive à l'aide de la commande
curl
curl -O http://heigvd-ads.s3-website-eu-west-1.amazonaws.com/exercises/ex02_files.zipPuis la désarchivons à l'emplacement courant
unzip ex02_files.zipFaisons à présent l'exercice de comprendre ce que fait chacune de ces lignes, et établissons l'arborescence qui devrait en résulter.
mv labs/index.html labs.htmldéplace le fichier labs/index.html dans le dossier courant (ex02_files) et le renomme en labs.html
mv labs labs.drenomme le dossier labs en labs.d
mv index2.html index.htmlrenomme le fichier index2.html en index.html. Cette commande risque de poser problème car nous avons déjà à cet emplacement un fichier qui s'appelle index.html
rm index.html~supprime le fichier index.html~
echo TDB > lectures/lc01.htmlCrée un nouveau fichier lc01.html dans le dossier lectures et y insère le contenu "TBD".
mkdir downloadscréé un dossier downloads
cd downloadschange le répertoire courant pour downloads
mv ../labs/starter.tar.gz .déplace le fichier start.tar.gz contenu dans le dossier labs dans le dossier downloads. Cette commande ne devrait pas fonctionner car nous avons précédemment renommé le dossier labs en labs.d.En suivant ces commandes, nous devrions nous retrouver avec l'arborescence suivante (on considère que toutes les commandes on fonctionné)
ex02_files|-- index.html|-- index2.html|-- labs.html|-- labs.d |-- lab01.html |-- starter.tar.gz|-- lectures |-- lc01.html |-- index.html|-- downloadsEffectuons à présent ces commandes dans le dossier et vérifions que la résultat est bien ce que nous attentions.
Nous voyons donc que toutes les commandes ont passé sans erreur, sauf la dernière comme nous l'avions pensé. Voici l'arborescence après toutes ces commandes
En comparant le résultat avec ce que nous avions prédit, nous voyons que la seule différence se trouve au niveau du fichier index.html qui a écrasé le fichier index.html original lors de la commande de renommage
mv index2.html index.html.
Téléchargez et désarchivez le fichier http://heigvd-ads.s3-website-eu-west-1.amazonaws.com/exercises/ex03_files.zip.
Vous trouverez dans le répertoire plusieurs fichiers de logs (simulés). Ils proviennent d'un serveur web qui est composé de différentes composants : le serveur web proprement dit, la base de données, plusieurs applications web. Il y a aussi des logs de composants non identifiés.
Utilisez la commande ls pour
Trouver tous les logs du 1er mars 2015.
ls *2015-03-01 ou ls | grep 2015-03-01
Trouver tous les logs du composant database.
ls *database* ou ls | grep database
Trouver tous les logs des applications.
ls *app* ou ls | grep app