Vous êtes sur la page 1sur 66

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique

Direction Générale des Études Technologiques


ISET Kélibia
Département Technologies de l’Informatique

Manuel des TP
ATELIER SYSTEMES 2
LMD  L2

Janvier 2018

Faycel CHAOUA (faycelchaoua@gmail.com)


ISET KELIBIA | ROUTE OUED ELKHATF, CAMPUS UNIVERSITAIRE DE KELIBIA
Conditions d’utilisation de ce manuel

Ce manuel des TP est mis à disposition selon les termes de la licence « Creative Commons
Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0
International ».

https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr

Vous êtes autorisé à :

» Partager  copier, distribuer et communiquer le matériel par tous moyens et sous tous
formats.
» Adapter  remixer, transformer et créer à partir du matériel

Selon les conditions suivantes :

» Attribution  Vous devez créditer l'œuvre, intégrer un lien vers la licence et indiquer
si des modifications ont été effectuées à l'œuvre. Vous devez indiquer ces informations
par tous les moyens raisonnables, sans toutefois suggérer que l'offrant vous soutient ou
soutient la façon dont vous avez utilisé son œuvre.
» Pas d’utilisation commerciale  Vous n'êtes pas autorisé à faire un usage commercial
de cette œuvre, tout ou partie du matériel la composant.
» Partage dans les mêmes conditions  Dans le cas où vous effectuez un remix, que
vous transformez, ou créez à partir du matériel composant l'œuvre originale, vous devez
diffuser l'œuvre modifiée dans les même conditions, c'est à dire avec la même licence
avec laquelle l'œuvre originale a été diffusée.

Faycel CHAOUA Atelier systèmes 2 i


Les objectifs généraux

A l’issue des travaux pratiques présentés dans ce manuel, l’apprenant sera capable de :

 Tester une distribution Linux en session live (sans installation).


 Installer et configurer une distribution Linux.
 Gérer des fichiers et des répertoires.
 Distinguer les méthodes de recherche des fichiers.
 Appliquer des filtres et des flux de redirection.
 Gérer les utilisateurs et les groupes.
 Modifier les droits d’accès.
 Gérer les processus.
 Planifier des tâches.
 Gérer des scripts Shell.

Plan des travaux pratiques

Ce manuel est constitué principalement des TP suivants :

 TP 1 : Installation UBUNTU.
 TP 2 : Gestion des fichiers.
 TP 3 : Gestion des filtres et expressions régulières.
 TP 4 et TP 5 : Gestion des utilisateurs et des droits d'accès.
 TP 6 : Gestion des processus.
 TP 7 : Scripts et variables.

Faycel CHAOUA Atelier systèmes 2 ii


Tables des matières

TP (Travaux pratiques) ........................................................................................................................ 1


TP N° 1 ................................................................................................................................................ 2
TP N° 2 .............................................................................................................................................. 10
TP N° 3 .............................................................................................................................................. 19
TP N° 4/5........................................................................................................................................... 24
TP N° 6 .............................................................................................................................................. 28
TP N° 7 .............................................................................................................................................. 32
Correction des TP ................................................................................................................................ 36
Correction du TP N° 1 ....................................................................................................................... 37
Correction du TP N°2 ........................................................................................................................ 38
Correction du TP N° 3 ....................................................................................................................... 45
Correction des TP N° 4/5 .................................................................................................................. 48
Correction du TP N° 6 ....................................................................................................................... 52
Correction du TP N° 7 ....................................................................................................................... 57
Références (Bibliographie / Webographie) ....................................................................................... 62

Faycel CHAOUA Atelier systèmes 2 iii


TP
(Travaux
pratiques)

Faycel CHAOUA Atelier systèmes 2 1


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 3 heures

TP N° 1

1. Objectifs spécifiques

 Installer et configurer une distribution Ubuntu.


 Explorer des applications en mode graphique.
 S’initier à l’utilisation des commandes Shell.

2. Description

Ubuntu est un système d'exploitation libre et entièrement gratuit. Avant que l'installation débute, il est
essentiel de récupérer une copie de son média d'installation. Ceci peut être réalisé de plusieurs manières,
entièrement gratuites et légales.

La mise en œuvre d’un système de gestion de contenu est le résultat de plusieurs compromis techniques
et organisationnels :

 la communication des contenus s’appuie sur un processus de validation et nécessite un travail


de collaboration,
 le système peut évoluer pour s’adapter aux évolutions ou réorganisations nécessaires.

3. Outils

 Ubuntu 16.04 LTS : image .iso de la dernière version bénéficiant du support à long terme
d’Ubuntu.
 MD5Checker : Avant de commencer la gravure de l'image .iso, il est fortement recommandé
d'en contrôler son intégrité grâce à la somme de contrôle MD5. Ce contrôle-qualité assure que
le fichier image d'Ubuntu téléchargé d'Internet est complet et sans erreur.

Faycel CHAOUA Atelier systèmes 2  TP1 2


4. Travail demandé

 Partie 1 (Obtenir un média d'installation d'Ubuntu) :

 Option №1 : Téléchargement depuis Internet

 On télécharge une image du disque d'installation d'Ubuntu (solution gratuite).


 On peut soit créer une clé USB amorçable soit graver l'image disque sur un DVD.
 On vérifie avec MD5Checker que le média d'installation ne contient pas d'erreur.

 Option №2 : Se faire livrer un Live USB

 On reçoit un Live-USB d'Ubuntu par voie postale grâce à la boutique de l'association


Ubuntu-FR (solution payante).

 Option №3 : Autres façons de commander un DVD

 On achète un magazine (ou un livre) à propos d'Ubuntu (accompagné d’un CD


d’installation).
 On récupère un DVD lors d’événements, tels le salon « Solutions Linux » (solution
généralement gratuite).
 On contacte un GUL « Groupe d'Utilisateurs de GNU/Linux » solution généralement
gratuite).
 On achète une copie d'Ubuntu auprès d'un revendeur.

 Partie 2 (Tester Ubuntu en session live) :

 Cette option exécute une session live d'Ubuntu, c'est-à-dire exécute Ubuntu directement
dans la mémoire volatile de l’ordinateur. Cette option est fort utile pour tester Ubuntu et
son bon fonctionnement avec le matériel (affichage, son, etc.) sans rien changer dans
l’ordinateur. On aura ainsi un premier aperçu de ce système. Dans la session-live, on pourra
ensuite exécuter l'outil d'installation d'Ubuntu.
 Une fois la routine d'amorçage terminée, on sera soit en présence d'une interface GNU
Grub2 si l'EFI est pris en charge ou graphique dans le cas contraire.

Faycel CHAOUA Atelier systèmes 2  TP1 3


Interface Grub2 Interface graphique

Sélectionner Try Ubuntu without installing Sélectionner la langue puis Essayer Ubuntu

 On valide et on laisse le chargement en mémoire vive (RAM) de la session live se terminer.


On aura alors un bureau Ubuntu.
 On prend le temps de bien se familiariser avec l'interface d'Ubuntu. On peut aussi vérifier
que le matériel (imprimante, internet) est bien reconnu par Ubuntu.
 Après la phase de test, il suffit de retirer le DVD-ROM d'Ubuntu ou le live USB de
l’ordinateur et au redémarrage suivant, on retrouvera l’ancienne configuration.

 Partie 3 (Installer Ubuntu avec le média d’installation) :

 Dans la phase de test, on a choisi l’entrée de menu "Essayer Ubuntu sans rien changer
sur votre ordinateur".
 Dans la phase d’installation, on doit choisir l'entrée de menu "Installer Ubuntu".

 Étape 1 : Sélection de la langue

Faycel CHAOUA Atelier systèmes 2  TP1 4


 Un écran de bienvenue annonce le démarrage de la procédure d'installation d'Ubuntu.
 On choisit la langue dans laquelle on souhaite poursuivre l'installation. C'est aussi avec
cette langue que le système sera paramétré par défaut.
 On pourra activer des langues supplémentaires une fois l'installation complétée.
 On appuie sur le bouton Suivant pour continuer à l'étape suivante.

 Étape 2 : Préparation de l'installation

 Le second écran demande de vérifier qu’on dispose bien du nécessaire pour poursuivre
l'installation : espace libre sur le disque dur, alimentation secteur et connexion internet.

 Étape 3 : Allouer de l'espace disque

Faycel CHAOUA Atelier systèmes 2  TP1 5


 Ce troisième écran permet de choisir si on souhaite conserver le système d'exploitation
installé (Windows généralement) ou pas.
 On appuie sur le bouton Suivant pour passer à l'étape suivante (ou à l'écran de
partitionnement manuel, si on veut redimensionner les partitions de disque dur et d'en créer
des nouvelles, aux tailles désirées, pour Ubuntu).

 Lorsque le partitionnement est terminé, on clique sur "Installer maintenant" pour débuter
l'installation d'Ubuntu.
 À partir de maintenant, on ne peut plus arrêter l'installation, mais il reste quelques
informations à renseigner dans les étapes ci-dessous.

 Étape 4 : Emplacement géographique

Faycel CHAOUA Atelier systèmes 2  TP1 6


 On clique sur la localité dans la carte interactive, ou bien on saisit le nom de la ville la plus
proche.
 Cela permettra à Ubuntu de régler automatiquement l'horloge à l'heure locale, de se
synchroniser régulièrement avec des serveurs de temps, etc.
 On clique ensuite sur Suivant.

 Étape 5 : Disposition du clavier

 On paramètre la disposition des touches de clavier.


 On clique ensuite sur Suivant.

 Étape 6 : Identité

Faycel CHAOUA Atelier systèmes 2  TP1 7


 On crée un compte d’utilisateur. Ce compte sera aussi paramétré comme étant
administrateur de système Ubuntu.
 On appuie sur le bouton Suivant pour confirmer les paramètres.

 Étape 7 : Fin de l’installation

 On laisse l'installation se poursuivre jusqu'à la fin.

 On patiente jusqu'à ce que l'installation arrive à son terme. Une fenêtre indiquera que
l'installation est terminée et proposera de redémarrer l’ordinateur sur le nouveau système
d'exploitation Ubuntu.

Faycel CHAOUA Atelier systèmes 2  TP1 8


 Partie 4 (Après l’installation) :

 On active la connexion Internet.


 Il est possible d'installer des logiciels supplémentaires dans Ubuntu même si on n’a pas de
connexion Internet. Il suffit de télécharger les logiciels via un autre poste (disposant d'un
accès internet), puis de les mettre sur clé USB ou CD afin de les copier et installer sur le
PC.
 Si on a installé Ubuntu (ou une de ses variantes) sans connexion à Internet, il est possible
que le système et les applications ne soient pas entièrement traduits en français. Dans ce
cas, on peut rendre Ubuntu 100% français.
 Améliorer la reconnaissance matérielle : on accède au menu Paramètres système →
matériels → Pilotes additionnels, Ubuntu sélectionnera automatiquement les pilotes dont
on a besoin, il ne restera plus qu'à les installer.
 Améliorer l'accessibilité : Ubuntu offre un panel de programmes pour les personnes en
situation de handicap : reconnaissance vocale, loupe d'écran, etc.
Installer les principaux codecs multimédia propriétaires (mp3, flash, wmv, DVD, etc.) : il
suffit d'installer le paquet correspondant.
 Rendre Ubuntu plus convivial (changer le fond d'écran, le thème, etc) : Il existe plein de
petits trucs et astuces pour rendre Ubuntu plus facile/agréable à utiliser.
 Faire cohabiter Ubuntu avec Windows : si on a installé Ubuntu en cohabitation avec
Windows, on peut maintenant choisir Ubuntu ou bien Windows au démarrage de
l’ordinateur.

Voila! On a maintenant installé un système GNU/Linux Ubuntu pleinement fonctionnel et


prêt à être utilisé.

Faycel CHAOUA Atelier systèmes 2  TP1 9


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

TP N° 2

1. Objectifs spécifiques

 Manipuler des chemins relatifs et absolus.


 Maitriser les commandes de manipulation des répertoires.
 Maitriser les commandes de manipulation des fichiers.
 Maitriser l’éditeur de texte Vi/Vim.

2. Description

 La console affiche une invite de commandes au début de la ligne. Cette invite rappelle le nom
d'utilisateur, le nom de la machine ainsi que le dossier dans lequel on se trouve.
 On rentre des commandes dans la console pour demander à l'ordinateur d'exécuter des actions.
 Chaque commande peut être complétée de paramètres qui agissent comme des options pour
modifier l'action de la commande.
 Les paramètres sont généralement constitués d'une lettre précédée d'un tiret (-a) ou de plusieurs
lettres précédées de deux tirets (--all).
 Après avoir saisi les premières lettres d'une commande, on peut compléter son nom à l'aide de
la touche Tabulation.
 On peut retrouver les commandes précédentes à l'aide des flèches directionnelles Haut et Bas
ou encore effectuer une recherche parmi les commandes précédentes avec Ctrl + R.
 Il existe de nombreux autres raccourcis clavier qu'il est recommandé de connaître pour pouvoir
profiter pleinement de la console.
 Sous Linux, tout est organisé sous forme de fichiers. Il n'y a pas de lecteur du type C: comme
sous Windows.
 Les dossiers sont imbriqués entre eux à partir du dossier parent principal /. On l'appelle
la racine.
 Le dossier dans lequel les utilisateurs stockent leurs documents est /home. Pour un utilisateur
ayant comme login « user1 », le dossier personnel sera /home/user1.

Faycel CHAOUA Atelier systèmes 2  TP2 10


 La commande pwd permet de savoir en console dans quel dossier on se situe.
 La commande ls affiche la liste des fichiers présents dans le dossier actuel.
 La commande cd permet de changer de dossier.
 cat permet d'afficher tout le contenu d'un fichier, mais lorsque celui-ci est long, il est préférable
d'utiliser more ou less qui affichent le fichier page par page.
 On peut obtenir uniquement le début ou la fin d'un fichier avec head et tail. En utilisant
tail -f on peut suivre l'évolution d'un fichier en temps réel, ce qui est utile sur les fichiers de
log qui enregistrent l'activité du système.
 mkdir permet de créer un dossier, touch permet de créer un fichier vide.

 cp permet de copier un fichier ou un dossier, tandis que mv permet de les déplacer ou de les
renommer.
 rm supprime un fichier. Il n'y a pas de corbeille en console, la suppression est définitive ; il faut
donc être prudent. rmdir supprime les répertoires, s’ils sont vides.
 On peut créer des liens (raccourcis) vers des fichiers et dossiers à l'aide de la commande ln.

Chemin absolu

Chemin relatif

Faycel CHAOUA Atelier systèmes 2  TP2 11


Démonstration de manipulations de fichiers

Faycel CHAOUA Atelier systèmes 2  TP2 12


Démonstration de manipulations de répertoires

Faycel CHAOUA Atelier systèmes 2  TP2 13


 Vim (version améliorée de Vi) est un éditeur de texte très puissant en console. Son grand
concurrent est Emacs.
 Dans Vi/Vim, il existe trois modes : interactif, insertion et commande.
 Le mode par défaut est le mode interactif. Il faut appuyer sur la touche i pour insérer du texte
et sur la touche Echap pour revenir au mode interactif.
 On peut lancer des commandes en appuyant sur la touche deux points « : » depuis le mode
interactif. Par exemple, :w enregistre le fichier, :q quitte Vi/Vim et :wq effectue les deux à la
fois.
 Il existe de nombreux raccourcis à connaître pour bien utiliser Vi/Vim ; il faut prendre le temps
de les apprendre pour exploiter pleinement le logiciel.
 On peut modifier le fichier .vimrc pour activer certaines options de Vim, comme la coloration
automatique du code.

Modes d’exécution de Vi/Vim

Faycel CHAOUA Atelier systèmes 2  TP2 14


3. Travail demandé

 Partie 1 (Manipulation des fichiers et répertoires) :

 Infos système

 Quel est le système installé ?


 Quelle est la distribution installée ?
 Quels sont les utilisateurs en cours du système ?
 Ouvrir un nouveau terminal en utilisant un autre compte.
 Fermer ce terminal.

 La commande man

 Tester la commande man pour obtenir de l'aide sur man.


 Quelles sont les commandes susceptibles d'être documentées dans man ?

 Contenu de répertoires et de fichiers ascii (texte)

 Lister le contenu du répertoire /etc.


 Lister de manière détaillée le contenu du répertoire /etc. Les fichiers nommés "passwd"
et "shadow" sont-ils présents dans /etc ?
 Lister le contenu du répertoire /dev.
 Lister le contenu du fichier /etc/passwd.
 Combien de lignes, de mots et de caractères comporte le fichier /etc/passwd.
 Lister le contenu du fichier /etc/shadow.
 Lister le contenu du fichier /var/log/syslog (affichage progressif).
 Lister le contenu du fichier /var/log/syslog (affichage interactif).
 Lister les premières lignes du fichier /var/log/syslog.
 Lister les dernières lignes du fichier /var/log/syslog.

 Commandes

Déterminer les commandes permettant de réaliser les actions suivantes :

 Déterminer le répertoire par défaut dans la hiérarchie des répertoires.


 Créer un répertoire nommé "TP2".

Faycel CHAOUA Atelier systèmes 2  TP2 15


 Se positionner sous "TP2".
 Y a-t-il des fichiers, des répertoires dans ce répertoire ?
 Entrer du texte dans un fichier nommé "Mon_fichier".
 Lister le contenu de "Mon_fichier".
 Lister le répertoire courant.
 Créer, sous le répertoire "TP2", deux sous-répertoires : "Source" et "Data".
 Se positionner sous "Source".
 Lister le répertoire courant.
 Revenir sous le répertoire "TP2" et détruire "Source".
 Créer un deuxième fichier nommé "Mon_fichier_2".
 Copier chaque fichier en nom_de_fichier.old.
 Créer un répertoire "Old".
 Déplacer les fichiers avec l'extension old vers le répertoire "Old".
 Copier les fichiers sans extension dans le répertoire "Data".
 Sous le répertoire "TP2", créer un lien matériel "Mon_lien" équivalent à "Mon_fichier_2".
 Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro d'inode.
Que remarque-t-on ?
 Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu?
 Sous le répertoire "TP2", créer un lien symbolique "Mon_nouveau_lien" sur
"Mon_fichier_2".
 Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2". Que remarque-t-on ?
 Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu?
 Quelle est la taille totale des fichiers contenus dans le répertoire "TP2" ?
 Effacer tous les fichiers créés dans le répertoire "TP2".

 Partie 2 (L’éditeur de texte Vi/Vim) :

 Lancement et sortie de Vi/Vim

 Lancer l'éditeur de texte Vi/Vim sans argument. Que constate-t-on ?


 Sortir de Vi/Vim.
 Éditer maintenant le fichier /etc/hosts. Que signifient les caractères ~ placés en début
de ligne ?
 Sortir de Vi/Vim.

Faycel CHAOUA Atelier systèmes 2  TP2 16


 Commandes de déplacement

 Éditer le fichier /etc/services.


 Sans utiliser le pavé directionnel du clavier (flèches),
 déplacer le curseur d'une ligne vers le bas.
 déplacer le curseur de douze lignes vers le bas.
 déplacer le curseur de huit lignes vers le haut.
 déplacer le curseur de seize caractères vers la droite.
 déplacer le curseur de neuf caractères vers la gauche.
 Déplacer le curseur en fin de ligne.
 Déplacer le curseur en début de ligne.
 Déplacer plusieurs fois le curseur sur le premier caractère du mot suivant.
 Déplacer plusieurs fois le curseur sur le premier caractère du mot précédent.
 Déplacer plusieurs fois le curseur sur le dernier caractère du mot suivant.
 Déplacer le curseur sur la dernière ligne du fichier.
 Déplacer le curseur sur la première ligne du fichier.
 Déplacer le curseur sur la 45ème ligne du fichier.
 Déplacer le curseur d'une page vers le haut.
 Déplacer le curseur d'une page vers le bas.

 Commandes d'édition et de correction

 Déplacer le curseur sur le sixième caractère de la première ligne du fichier.


 Insérer la chaîne de caractères "un" avant le curseur sur la ligne. On doit entrer dans le
mode "édition" de Vi/Vim.
 Sans utiliser le pavé directionnel du clavier, se déplacer de trois caractères vers la droite et
insérer la chaîne de caractères "deux" après le curseur. N'oublier pas de retourner en mode
"commandes" avant de déplacer le curseur, puis entrer de nouveau en mode "édition".
 Insérer la chaîne de caractères "trois" en début de ligne. Utiliser la commande qui permet
de passer en mode "édition" en insérant directement en début de ligne.
 Insérer la chaîne de caractères "quatre" en fin de ligne. Utiliser la commande qui permet de
passer en mode "édition" en insérant directement en fin de ligne.
 Sans utiliser le pavé directionnel du clavier, déplacer le curseur de six caractères vers la
gauche.
 Supprimer le caractère sous le curseur.
 Supprimer le caractère situé avant le curseur.

Faycel CHAOUA Atelier systèmes 2  TP2 17


 Supprimer les cinq caractères précédant le curseur.
 Effacer tous les caractères se trouvant du curseur à la fin de la ligne. Utiliser la commande
d'effacement suivie de la commande de déplacement adéquate.
 Sans utiliser le pavé directionnel du clavier, déplacer le curseur de six caractères vers la
gauche.
 Effacer tous les caractères se trouvant du début de la ligne au curseur. Utiliser la commande
d'effacement suivie de la commande de déplacement adéquate.
 Coller enfin de ligne le texte qu’on vient de "couper".
 Effacer la totalité de la ligne.
 Copier la dernière ligne du fichier et coller-la en début de fichier.
 Annuler la dernière commande. Est-ce que possible d'annuler aussi les commandes
précédentes ?
 Effacer les quatre premières lignes du fichier.
 Effacer les quatre lignes suivantes. Utiliser la commande de répétition.

 Commandes globales

 Essayer d'enregistrer les modifications qu’on a apportées au fichier. Est-ce que possible ?
 Enregistrer le travail dans le répertoire "TP2" sous le nom de fichier "services2". Utiliser
un chemin personnel pour spécifier le nouveau nom de fichier.
 Supprimer la première ligne du fichier, puis enregistrer et quitter Vi/Vim.
 Ouvrir de nouveau le fichier /etc/services et rechercher la chaîne de caractères "tcp".
 Déplacer le curseur d'occurrence en occurrence de la chaîne de caractères "tcp".
 Déplacer toujours le curseur d'occurrence en occurrence de la chaîne de caractères "tcp",
mais cette fois, dans le sens inverse de la recherche.
 Remplacer toutes les chaînes de caractères "udp" du fichier par "UDP".

 Options de l'éditeur

 Afficher toutes les options de l'éditeur.


 Afficher les numéros de lignes. Activer l'option adéquate.
 Définir le nombre d'espaces à 2 pour représenter une tabulation. Modifier la valeur de
l'option adéquate.
 Sortir de Vi/Vim sans enregistrer et ouvrir de nouveau le fichier /etc/services.
 Les options sont-elles toujours effectives ? Comment faire pour que ces modifications
soient permanentes ?

Faycel CHAOUA Atelier systèmes 2  TP2 18


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

TP N° 3

1. Objectifs spécifiques

 Analyser les commandes de recherche des fichiers.


 Extraire, trier et filtrer des données.
 Traiter les flux de redirection.

2. Description

 Pour rechercher un fichier sur tout le disque, la commande locate est très rapide mais ne
trouvera pas les fichiers qui viennent d'être créés dans la journée. On peut mettre à jour la liste
des fichiers qu'elle connaît en appelant updatedb.

 find est une commande plus puissante mais plus lente qui va parcourir le disque à la recherche
des fichiers. Elle peut s'utiliser avec trois paramètres, dans l'ordre : où chercher, que chercher
et que faire avec.
 On peut rechercher des fichiers en fonction de leur nom (-name), de leur taille (-size), de leur
date de dernier accès (-atime), etc.
 Au lieu d'afficher les fichiers trouvés, on peut automatiquement les supprimer avec -delete
ou exécuter la commande de son choix sur chacun d'eux avec -exec.

Faycel CHAOUA Atelier systèmes 2  TP3 19


 grep est une commande couramment utilisée pour rechercher un mot dans un fichier.
 On peut utiliser des expressions régulières, un système complexe mais puissant, pour effectuer
des recherches précises. On fait dans ce cas appel à la commande egrep.

Caractère spécial Signification


. Caractère quelconque.
^ Début de ligne.
$ Fin de ligne.
[] Un des caractères entre les crochets.
? L'élément précédent est optionnel (peut être présent 0 ou 1 fois).
* L'élément précédent peut être présent 0, 1 ou plusieurs fois.
+ L'élément précédent doit être présent 1 ou plusieurs fois.
| Ou.
() Groupement d'expressions.

 sort trie des lignes de texte par ordre alphabétique. Le paramètre -n permet de trier par ordre
numérique.
 wc compte le nombre de lignes, de mots et d'octets dans un fichier.

 uniq supprime les doublons d'un fichier.

 cut coupe une partie d'un fichier.

 Au lieu d'afficher le résultat d'une commande dans une console, il est possible de l'enregistrer
dans un fichier. Il suffit d'ajouter le symbole > suivi du nom du fichier à la fin de la commande.
Par exemple ls > liste_fichiers.txt enregistre la liste des fichiers dans un fichier plutôt
que de l'afficher en console.
 Le symbole >> enregistre à la fin du fichier au lieu de l'écraser s'il existe déjà.

Faycel CHAOUA Atelier systèmes 2  TP3 20


 Les symboles 2> et 2>> permettent de rediriger seulement les erreurs dans un fichier. Quant à
2>&1 il redirige les erreurs dans le même fichier que les messages normaux.

 < permet de lire des données depuis un fichier et de les envoyer à une commande, tandis que <<
lit les données depuis le clavier.

 Le symbole | combine des commandes : les données de la commande à sa gauche sont envoyées
à la commande à sa droite. Ainsi, du | sort -nr récupère la liste des fichiers avec leur taille
et l'envoie à sort pour qu'il la trie.

Faycel CHAOUA Atelier systèmes 2  TP3 21


3. Travail demandé

 Partie 1 (Recherche des fichiers) :

 locate

 Créer un fichier "essai.txt" dans le répertoire d’accueil.


 Rechercher ce fichier avec la commande locate. Que remarque-t-on ?
 Reconstruire la base de données des fichiers du disque dur.
 Réexécuter la commande locate sur le fichier "essai.txt". Que peut-on conclure ?

 find

 Afficher la liste des fichiers .h situés sous le répertoire /usr/include.


 Afficher la liste des fichiers plus vieux que 3 jours situés sous le répertoire d’accueil.

 Partie 2 (Extraire, trier et filtrer des données) :

 head, tail, tubes

 Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.


 Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.

 tr, more, tubes

 Afficher le fichier /etc/passwd en remplaçant les caractères / par des X.


 Obtenir le résultat précédent page par page.

 grep, cut, uniq, sort et tubes

Étudier la documentation des commandes cut et uniq.

 Afficher la liste des répertoires d’accueil des utilisateurs déclarés dans le fichier
/etc/passwd.

 On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell)


lancé lors de son login. La commande correspondante est indiquée dans le 7ième champ du
fichier /etc/passwd.

Faycel CHAOUA Atelier systèmes 2  TP3 22


 Afficher en une ligne de commande le nombre d’interpréteurs de commandes différents
mentionnés dans /etc/passwd.
 On dispose d'un fichier texte "telephone.txt" contenant un petit carnet d’adresses.
Chaque ligne est de la forme "nom prenom numerotelephone". Les champs sont séparés
par des tabulations.
 Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande
shell :
 Afficher le carnet d’adresse trié par ordre alphabétique de noms.
 Afficher le nombre de personnes dans le répertoire.
 Afficher toutes les lignes concernant les “Dupond”.
 Afficher toutes les lignes ne concernant pas les “Dupond”.
 Afficher le numéro de téléphone (sans le nom) du premier “Dupond” apparaissant dans
le répertoire.
 Afficher le numéro de téléphone (sans le nom) du premier “Dupond” dans l’ordre
alphabétique (ordre basé sur les prénoms).

 Partie 3 (Maitriser les flux de redirection) :

 Redirections, méta-caractères

 Créer un répertoire nommé "inc" dans le répertoire d’accueil (HOME). En utilisant une seule
commande, y copier les fichiers du répertoire /usr/include dont le nom commence par
"std".
 Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
 Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-
ci soit placé dans un fichier nommé "Abc.list" du répertoire d’accueil.
 Afficher le contenu de ce fichier en utilisant la commande cat. Copier avec cat son
contenu dans un nouveau fichier nommé "Copie".
 Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à
bout (concaténation) des fichiers "Abc.list" et "Copie".
 Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc.
 Créer un fichier nommé "Temp" contenant une ligne de texte.
 Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.
 En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include
dont le nom contient la lettre t.

Faycel CHAOUA Atelier systèmes 2  TP3 23


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

TP N° 4/5

1. Objectifs spécifiques

 Manipuler les commandes de gestion des utilisateurs.


 Manipuler les commandes de gestion des groupes.
 Modifier des droits d’accès.

2. Description

 Pour des raisons de sécurité, il est impossible sous Ubuntu de se connecter directement en root
au démarrage de l'ordinateur.
 On peut devenir root temporairement à l'aide de la commande sudo. Cette commande
signifie « Faire en se substituant à l'utilisateur : Substitute User DO ».
 La commande sudo su permet de devenir root indéfiniment.
 Le symbole # à la fin de l'invite de commandes indique qu’on est devenu super-utilisateur. On
peut alors exécuter autant de commandes en root qu’on le veut.
 Pour quitter le mode « root », on tape la commande exit (ou la combinaison CTRL + D).
 La commande useradd (adduser) permet d'ajouter un utilisateur. On doit au minimum fournir
un paramètre : le nom de l'utilisateur à créer.
 La commande passwd permet de changer le mot de passe d’un utilisateur en indiquant en
paramètre le nom du compte à modifier.
 La commande userdel (deluser) permet de supprimer un compte d’utilisateur. Le paramètre
--remove-home permet de supprimer aussi le répertoire personnel de l’utilisateur et tous ses
fichiers personnels.
 Les commandes adduser et deluser ne sont utilisées que sous Debian et tous ses
descendants, dont Ubuntu. Partout ailleurs, on doit utiliser les commandes useradd et
userdel.

 La commande groupadd (addgroup) permet de créer un nouveau groupe.

Faycel CHAOUA Atelier systèmes 2  TP4 & TP5 24


 La commande usermod permet de modifier un utilisateur. Le paramètre -l renomme
l'utilisateur (le nom de son répertoire personnel ne sera pas changé). Le paramètre -g change
de groupe. Le paramètre –G permet d’affecter un utilisateur à plusieurs groupes. On ajoute le
paramètre –a (-aG) pour garder aussi les anciens groupes de l’utilisateur.
 La commande groupdel (delgroup) permet de supprimer un groupe.
 Les commandes addgroup et delgroup n’existent que sous Debian et ses dérivés.
 La commande chown permet de changer le propriétaire d’un fichier.
 La commande chgrp s'utilise exactement de la même manière que la commande chown à la
différence près qu'elle affecte cette fois le groupe propriétaire d'un fichier.
 La commande chown peut aussi changer le groupe propriétaire d'un fichier. L’option –R modifie
tous les sous-dossiers et fichiers contenus dans un dossier pour y affecter un nouvel
utilisateur/groupe.
 Chaque fichier et chaque dossier possède une liste de droits. C'est une liste qui indique qui a le
droit de voir (r) le fichier, de le modifier (w) et de l'exécuter (x).
 Les droits sont découpés en fonction des utilisateurs.

 On constate que r, w et x sont répétés trois fois en fonction des utilisateurs. Le premier triplet
rwx indique les droits que possède le propriétaire du fichier sur ce dernier. Le second triplet
rwx indique les droits que possèdent les autres membres du groupe sur ce fichier. Le dernier
triplet rwx indique les droits que possèdent tous les autres utilisateurs de la machine sur le
fichier.

 La commande chmod permet de modifier les droits d’accès. Le paramètre –R permet d’affecter
les droits récursivement.

Faycel CHAOUA Atelier systèmes 2  TP4 & TP5 25


3. Travail demandé

 Partie 1 (Gestion des utilisateurs et des groupes) :

 Mise en place d'un espace de travail pour 4 utilisateurs

 Définir le lot de commandes à exécuter pour créer 4 utilisateurs en suivant les règles
suivantes :
 Création de 2 groupes (G1 et G2).
 Création de quatre utilisateurs (u1, u2, u3 et u4) avec leurs répertoires home.

 Modification des comptes créés.

 Les premier et deuxième utilisateurs sont membres du premier groupe.


 Les troisième et quatrième utilisateurs sont membres du second groupe.
 Le deuxième utilisateur est aussi membre du second groupe.
 Le quatrième utilisateur est aussi membre du premier groupe.

 Outre leur répertoire de travail, les utilisateurs ont accès à un répertoire commun
/home/groupe1 et/ou /home/groupe2 suivant leur groupe.

Faycel CHAOUA Atelier systèmes 2  TP4 & TP5 26


 Détailler les étapes de création des groupes, des utilisateurs et des répertoires en indiquant
les fichiers utilisés et les commandes utilisées sur ces fichiers.
 Essayer de modifier les deux répertoires en commun avec les différents utilisateurs créés.

 Partie 2 (Droits d’accès) :

 Création d’un utilisateur banalisé

 Se connecter avec le compte de l’utilisateur user1.


 Est-il possible de faire une copie du fichier /etc/passwd ?
 Est-il possible de supprimer ou de modifier le fichier /etc/passwd ?
 Répéter ces tentatives en tant qu'utilisateur root.
 Expliquer la situation à l’aide de la commande ls -l.
 À l’aide de la commande id, vérifier l’identité de user1 connecté et le(s) groupe(s)
au(x)quel(s) il appartient.
 Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais
non modifiable (même pas par son propriétaire user1).
 Créer un répertoire nommé "Secret", dont le contenu est visible uniquement par user1.
Les fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de groupe de
l’utilisateur user1 ?
 Créer un répertoire nommé "Connaisseurs" tel que les autres utilisateurs ne puissent pas
lister son contenu mais puissent lire les fichiers qui y sont placés.

On obtiendra: ls Connaisseurs
ls : Connaisseurs: Permission denied
cat Connaisseurs/toto
<...le contenu du fichier toto (s’il existe)...>
 Chercher dans le répertoire /usr/bin des exemples de commandes ayant la permission
SUID. De quel genre de commande s’agit-il ?

Faycel CHAOUA Atelier systèmes 2  TP4 & TP5 27


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

TP N° 6

1. Objectifs spécifiques

 Distinguer les commandes de gestion des processus.


 Lancer un processus en arrière-plan.
 Passer un processus en arrière-plan.
 Identifier les processus qui tournent en arrière-plan.
 Détacher un processus de la console.
 Reprendre un processus au premier-plan.
 Exécuter un programme à une heure différée.
 Programmer des commandes pour une exécution régulière.

2. Description

 Linux est multi-tâches (plusieurs programmes peuvent tourner en même temps) et multi-
utilisateurs (plusieurs utilisateurs peuvent se servir de la même machine en même temps en s'y
connectant via Internet).
 La commande w indique quels utilisateurs sont sur la machine, ce qu'ils font et quelques autres
statistiques comme la charge de travail de la machine et son uptime.
 La commande ps permet d'obtenir la liste des processus qui tournent au moment où on lance
la commande. Cette liste n'est pas actualisée en temps réel, contrairement à ce que fait la
commande top.
 Avec ps -ef, on peut avoir la liste de tous les processus lancés par tous les utilisateurs sur
toutes les consoles.
 Avec ps –ejH, on peut regrouper les processus sous forme d'arborescence. Plusieurs
processus sont des « enfants » d'autres processus, cela permet de savoir qui est à l'origine de
quel processus.
 Avec ps –u user1, on peut lister les processus lancés par l’utilisateur user1.

Faycel CHAOUA Atelier systèmes 2  TP6 28


 La combinaison de touches CTRL + C permet d'arrêter une commande en cours d'exécution
dans la console afin de pouvoir reprendre la main.
 La commande kill tue un processus, ce qui signifie qu'il lui demande de s'arrêter. Il a besoin
du numéro du processus, généralement fourni par ps ou top. Si le processus ne s'arrête pas, on
peut utiliser le paramètre -9 qui coupe brutalement le processus (avec risque de perte de
données).
 La commande killall permet de tuer plusieurs processus.
 La commande halt commande l'arrêt immédiat de l'ordinateur.
 De même, il existe la commande reboot pour redémarrer l'ordinateur.
 Il est possible d'envoyer des programmes en arrière-plan dans la console afin de garder la main
pour lancer de nouvelles commandes.

 Pour lancer un processus en arrière-plan, on peut ajouter le symbole & à la fin de la commande.
En revanche, lorsqu’on ferme la console, le processus est arrêté. Si on veut qu'il continue, on
utilise plutôt la commande nohup.
 Si on lance une commande normalement (en premier-plan) mais que celle-ci s'éternise, on peut
utiliser le raccourci CTRL + Z pour la mettre en pause et récupérer la main. Si on lance la
commande bg ensuite, elle reprendra son exécution en arrière-plan. On pourra la récupérer au
premier-plan avec fg à tout moment.

Faycel CHAOUA Atelier systèmes 2  TP6 29


 La commande jobs permet de connaître les processus qui tournent en arrière-plan.
 La commande date permet d'obtenir la date et l'heure mais aussi de modifier celles-ci.
 La commande at retarde l'exécution d'une commande à une heure ultérieure.
 On peut exécuter plusieurs commandes d'affilée en les séparant par des points-virgules :
touch fichier.txt ; rm fichier.txt.

 La commande sleep permet de faire une pause entre deux commandes exécutées d'affilée.
 La commande crontab permet de programmer des commandes pour une exécution régulière.
Par exemple : tous les jours à 18 h 30, tous les lundis et mardis à 12 h, tous les 5 du mois, etc.
On modifie la programmation avec crontab -e.

3. Travail demandé

 Partie 1 (Gestion des processus)

 Dans un système Linux, quel est le processus qui n'a pas de père. Quel est son PID ?
 À quoi servent les options –f et –L de la commande ps ?
 Lancer la commande ps ax -f –L et décrire les différentes colonnes affichées.
 Utiliser la commande pstree pour afficher l'arbre des processus en cours avec leur PID.
 Quelle option de pstree permet d'afficher les ancêtres d'un certain processus dont le PID
est donné en argument à la commande ?
 Quelle option de pstree permet d'afficher l'arbre complet des processus en cours (i.e.,
permet d'afficher toutes les occurrences de chaque processus) ?
 Quel signal est lancé par défaut à la commande kill ?
 Que font les signaux suivants : SIGQUIT, SIGKILL, SIGCHLD ?
 Quel caractère permet de lancer une commande en arrière-plan ? Quelle commande permet
de lancer une commande en arrière-plan ?
 Afficher la liste des processus actifs dans le terminal courant en utilisant ps.
 Quelles informations sont affichées par défaut lorsqu’on lance la commande top ?
 Utiliser la commande top pour afficher la liste des processus en temps réel en ajoutant les
colonnes PID et UID dans l'affichage.
 Lancer 3 fois la commande sleep en arrière-plan avec des arguments différents à chaque
fois.
 Afficher la liste des travaux en cours. Que signifient les caractères + et - dans le
résultat obtenu ?
 Lancer ensuite la commande sleep en premier-plan.
 Afficher à nouveau la liste des travaux en cours.

Faycel CHAOUA Atelier systèmes 2  TP6 30


 Relancer en arrière-plan la dernière commande sleep suspendue auparavant.
 Arrêter l'exécution de la première commande sleep en utilisant son PID.
 Arrêter l'exécution de la deuxième commande sleep en utilisant son numéro de
travail.
 Arrêter l'exécution des deux dernières commandes sleep en utilisant la
combinaison de touches CTRL + C.
 Lancer la commande gedit depuis un terminal en premier-plan. Attendre que la fenêtre
de l'application s'ouvre puis fermer le terminal d'où on l’a lancée. Que se passe-t-il ?
 Lancer la commande gedit depuis un terminal en arrière-plan. Attendre que la fenêtre de
l'application s'ouvre puis fermer le terminal d'où on l’a lancée. Que se passe-t-il ?
 À quoi sert la commande nohup ? Comment faire pour à la fois détacher un processus du
shell à partir duquel il est lancé et le lancer en arrière-plan ? Donner un exemple.

 Partie 2 (Traitement différé)

 Utiliser la commande at pour lancer en différé une commande qui écrit l’heure dans un
fichier texte. Décommander cette tâche.
 Utiliser la commande at pour nettoyer /tmp dans 10 minutes.
 Planifier le nettoyage de /tmp tous les soirs à 3h le matin.

Faycel CHAOUA Atelier systèmes 2  TP6 31


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

TP N° 7

1. Objectifs spécifiques

 Créer un script Shell.


 Exécuter un script Shell.
 Manipuler des variables.
 Utiliser les conditions et les boucles.

2. Description

 Contrairement aux apparences, il existe plusieurs environnements console différents : ce sont


les Shells. Ce sont eux qui gèrent l'invite de commandes et ses fonctionnalités comme
l'historique des commandes, la recherche CTRL + R, l'auto-complétion des commandes, etc.
 Le Shell utilisé par défaut sous Ubuntu est bash, mais il existe aussi ksh, zsh, etc.
 Il est possible d'automatiser une série de commandes. On crée pour cela un fichier contenant la
liste des commandes à exécuter, appelé script Shell. On dit que l'on fait de la programmation
Shell.
 En fonction du Shell utilisé, on dispose de différents outils pour créer son script Shell. Si on
utilise bash, donc le fichier de script doit commencer par la ligne #!/bin/bash.
 Dans le fichier de script, il suffit d'écrire les commandes à exécuter les unes après les autres,
chacune sur une ligne différente.
 Pour exécuter le script (et donc exécuter la liste des commandes qu'il contient) il faut donner les
droits d'exécution au fichier (chmod +x script.sh) et lancer l'exécution du script avec la
commande ./script.sh.
 Comme dans la plupart des langages de programmation, on peut créer des variables en Shell qui
stockent temporairement des valeurs en mémoire. Une variable nommée variable est
accessible en écrivant $variable.
 La commande echo affiche un texte ou le contenu d'une variable dans la console.

Faycel CHAOUA Atelier systèmes 2  TP7 32


 La commande read attend une saisie au clavier de la part de l'utilisateur et stocke le résultat
dans une variable.
 On peut effectuer des opérations mathématiques sur des nombres à l’aide de la commande let.
 Certaines variables sont accessibles partout, dans tous les scripts : ce sont les variables
d'environnement. On peut les lister avec la commande env.
 Les paramètres envoyés à notre script (comme ./script -p) sont transmis dans des variables
numérotées : $1, $2, $3, etc. Le nombre de paramètres envoyés est indiqué dans la variable $#.
 On effectue des tests dans ses programmes grâce aux instructions if, elif, else, fi.
 On peut comparer deux chaînes de caractères entre elles, mais aussi des nombres. On peut
également effectuer des tests sur des fichiers : est-ce que celui-ci existe ? Est-il exécutable ?
Etc.
 Au besoin, il est possible de combiner plusieurs tests à la fois avec les symboles && (ET) et ||
(OU).
 Le symbole ! (point d'exclamation) exprime la négation dans une condition.
 Lorsque l'on effectue beaucoup de tests sur une même variable, il est parfois plus pratique
d'utiliser un bloc case in… esac plutôt qu'un bloc if… fi.
 Pour exécuter une série de commandes plusieurs fois, on utilise des boucles.
 L’instruction while permet de boucler tant qu'une condition est remplie. Le
fonctionnement des conditions dans les boucles est le même que celui des blocs if.
 L’instruction for permet de boucler sur une série de valeurs définies. À l'intérieur de la
boucle, une variable prend successivement les valeurs indiquées.

3. Travail demandé

 Partie 1 (variables)

 Tester les exemples suivants.

 Exemple 1

#!/bin/bash
message='Bonjour tout le monde'
pos=`pwd`
echo '1- Le message est : $message'
echo "2- Le message est : $message"
echo "Vous êtes dans le dossier $pos"

Faycel CHAOUA Atelier systèmes 2  TP7 33


 Exemple 2

#!/bin/bash
read nom prenom
echo "Bonjour $nom $prenom !"
echo "Votre nom est $nom et votre prénom est $prenom"

 Exemple 3

#!/bin/bash
read -p 'Entrez votre nom : ' nom
echo "Bonjour $nom !"
read -p 'Entrez votre login (5 caractères max) : ' -n 5 login
echo –e "\nVotre login est $login"
read -p 'Entrez votre mot de passe : ' -s pass
echo -e "\nMerci ! votre mot de passe est $pass !"
read -p 'Entrez le code de la bombe (avant 5sec) : ' -t 5 code
echo -e "\nBoum !"

 Exemple 4

#!/bin/bash
let "a = 5"
let "b = 2"
let "c = a + b"
echo $c

 Exemple 5

#!/bin/bash
echo "Votre éditeur par défaut est $EDITOR"
echo -e "\nLe shell en cours d’exécution est $SHELL"
echo -e "\nla position de votre dossier home est $HOME"
echo -e "\nLe dossier dans lequel vous vous trouvez est $PWD"

 Partie 2 (script)

 Exercice 1

 Créer un script Shell nommé "ex1.sh" qui affiche la date de dernière modification d'un
fichier puis la modifie avec l'heure actuelle et enfin réaffiche la date de dernière
modification du fichier.
 Cette procédure accepte un seul paramètre qui est le nom du fichier.

 Exercice 2

 Créer un script Shell nommé "ex2.sh" réalisant la création d'un répertoire "Ex2" contenant
10 fichiers nommés "Un" à "Dix". Chaque fichier contient une seule ligne :

Faycel CHAOUA Atelier systèmes 2  TP7 34


"Un" contient "Première fichier"
"Deux" contient "Deuxième fichier"
...
"Dix" contient "Dixième fichier"

 Vérifier que le répertoire à créer n'existe pas déjà auquel cas il ne sera pas recréé.

 Exercice 3

 Créer un script Shell nommé "ex3.sh" qui réalise les opérations suivantes :
 Création d'un sous répertoire nommé "annéemoisjour" (20171204 pour le 8 décembre
2015). Vérifier que le répertoire à créer n'existe pas déjà.
 Copie des fichiers de "Ex2" sous ce répertoire puis effacement de ces mêmes fichiers
de "Ex2".
 Création de deux fichiers sous le répertoire d'accueil (HOME) de la personne qui a
lancé le Shell :
 Un fichier nommé "Gros_fichier.numero_du_shell" dans lequel se trouvera le
contenu concaténé des fichiers traités.
 Un fichier nommé "Nom_du_script.numero_du_shell" dans lequel se trouvera le
nom des fichiers traités.

 Exercice 4

 Créer un script Shell nommé "ex4.sh" permettant d'afficher la liste des fichiers du
répertoire /etc accessibles en lecture et ceux accessibles en écriture.

 Exercice 5

 Créer un script Shell nommé "ex5.sh" permettant d'afficher des tables de multiplication.
La commande "./ex5.sh 5 10" aura pour résultat l'affichage :

0 x 5 = 0
1 x 5 = 5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50

Faycel CHAOUA Atelier systèmes 2  TP7 35


Correction
des TP

Faycel CHAOUA Atelier systèmes 2  Correction des TPs 36


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 3 heures

Correction du TP N° 1

Correction des exercices

 Récupérer les outils du TP nécessaires à l’installation et à la vérification de l’intégrité du


système.
 Suivre les étapes d’installation détaillées avec des captures d’écran dans le manuel (TP N° 1).

Faycel CHAOUA Atelier systèmes 2  Correction du TP1 37


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

Correction du TP N°2

Correction des exercices

 Partie 1 (Manipulation des fichiers et répertoires) :

 Infos système

 Quel est le système installé ?


» uname –a
 Quelle est la distribution installée ?
» cat /etc/issue
 Quels sont les utilisateurs en cours du système ?
» who
 Ouvrir un nouveau terminal en utilisant un autre compte.
» su user
 Fermer ce terminal.
» exit

 La commande man

 Tester la commande man pour obtenir de l'aide sur man.


» man man
 Quelles sont les commandes susceptibles d'être documentées dans man ?
» Les commandes externes.

 Contenu de répertoires et de fichiers ascii (texte)

 Lister le contenu du répertoire /etc.


» ls /etc

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 38


 Lister de manière détaillée le contenu du répertoire /etc. Les fichiers nommés "passwd" et
"shadow" sont-ils présents dans /etc ?
» ls -l /etc ou ls –al /etc
» Les fichiers "passwd" et "shadow" sont bien présents dans le répertoire /etc.
 Lister le contenu du répertoire /dev.
» ls /dev
 Lister le contenu du fichier /etc/passwd.
» cat /etc/passwd
 Combien de lignes, de mots et de caractères comporte le fichier /etc/passwd.
» wc /etc/passwd
 Lister le contenu du fichier /etc/shadow.
» cat /etc/shadow : Permission non accordée.

 Lister le contenu du fichier /var/log/syslog (affichage progressif).


» more /var/log/syslog
 Lister le contenu du fichier /var/log/syslog (affichage interactif).
» less /var/log/syslog
 Lister les premières lignes du fichier /var/log/syslog.
» head /var/log/syslog
 Lister les dernières lignes du fichier /var/log/syslog.
» tail /var/log/syslog

 Commandes

Déterminer les commandes permettant de réaliser les actions suivantes :

 Déterminer le répertoire par défaut dans la hiérarchie des répertoires.


» pwd
 Créer un répertoire nommé "TP2".
» mkdir TP2
 Se positionner sous "TP2".
» cd TP2
 Y a-t-il des fichiers, des répertoires dans ce répertoire ?
» ls –al : uniquement les entrées "." et "..".
 Entrer du texte dans un fichier nommé "Mon_fichier".
» echo "bonjour dsi" > Mon_fichier
 Lister le contenu de "Mon_fichier".

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 39


» cat Mon_fichier
 Lister le répertoire courant.
» ls ou ls –al
 Créer, sous le répertoire "TP2", deux sous-répertoires : "Source" et "Data".
» mkdir Source Data
 Se positionner sous "Source".
» cd Source
 Lister le répertoire courant.
» ls ou ls –al
 Revenir sous le répertoire "TP2" et détruire "Source".
» cd ../
» rmdir Source
 Créer un deuxième fichier nommé "Mon_fichier_2".
» touch Mon_fichier_2
 Copier chaque fichier en nom_de_fichier.old.
» cp Mon_fichier Mon_fichier.old
» cp Mon_fichier_2 Mon_fichier_2.old
 Créer un répertoire "Old".
» mkdir Old
 Déplacer les fichiers avec l'extension old vers le répertoire "Old".
» mv *.old Old
 Copier les fichiers sans extension dans le répertoire "Data".
» cp * Data
 Sous le répertoire "TP2", créer un lien matériel "Mon_lien" équivalent à "Mon_fichier_2".
» ln Mon_fichier_2 Mon_lien
 Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro d'inode.
Que remarque-t-on ?
» ls –li
» Leurs numéros d’inode sont identiques donc ces deux fichiers représentent le même
fichier physique.
 Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu?
» rm Mon_lien
» "Mon_fichier_2" existe toujours.
 Sous le répertoire "TP2", créer un lien symbolique "Mon_nouveau_lien" sur "Mon_fichier_2".
» ln –s Mon_fichier_2 Mon_nouveau_lien
 Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2". Que remarque-t-on ?

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 40


» ls –li
» Le lien et le fichier représentent deux fichiers physiques.
 Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu?
» rm Mon_fichier_2
» Le lien existe toujours mais il est brisé.
 Quelle est la taille totale des fichiers contenus dans le répertoire "TP2" ?
» du -b
 Effacer tous les fichiers créés dans le répertoire "TP2".
» rm –r *

 Partie 2 (L’éditeur de texte Vi/Vim) :

 Lancement et sortie de Vi/Vim

 Lancer l'éditeur de texte Vi/Vim sans argument. Que constate-t-on ?


» vi
 Sortir de Vi/Vim.
» :q
 Éditer maintenant le fichier /etc/hosts. Que signifient les caractères ~ placés en début de
ligne ?
» vi /etc/hosts
 Sortir de Vi/Vim.
» :q

 Commandes de déplacement

 Éditer le fichier /etc/services.


» vi /etc/services
 Sans utiliser le pavé directionnel du clavier (flèches),
 déplacer le curseur d'une ligne vers le bas.
» j
 déplacer le curseur de douze lignes vers le bas.
» 12j
 déplacer le curseur de huit lignes vers le haut.
» 8k
 déplacer le curseur de seize caractères vers la droite.
» 16l

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 41


 déplacer le curseur de neuf caractères vers la gauche.
» 9h
 Déplacer le curseur en fin de ligne.
» $
 Déplacer le curseur en début de ligne.
» 0
 Déplacer plusieurs fois le curseur sur le premier caractère du mot suivant.
» w
 Déplacer plusieurs fois le curseur sur le premier caractère du mot précédent.
» b
 Déplacer plusieurs fois le curseur sur le dernier caractère du mot suivant.
» e
 Déplacer le curseur sur la dernière ligne du fichier.
» G
 Déplacer le curseur sur la première ligne du fichier.
» 1G
 Déplacer le curseur sur la 45ème ligne du fichier.
» 45G
 Déplacer le curseur d'une page vers le haut.
» CTRL + b
 Déplacer le curseur d'une page vers le bas.
» CTRL + f

 Commandes d'édition et de correction

 Déplacer le curseur sur le sixième caractère de la première ligne du fichier.


» 1G ; 6l
 Insérer la chaîne de caractères "un" avant le curseur sur la ligne. On doit entrer dans le mode
"édition" de Vi/Vim.
» i ; "un"

 Sans utiliser le pavé directionnel du clavier, se déplacer de trois caractères vers la droite et
insérer la chaîne de caractères "deux" après le curseur. N'oublier pas de retourner en mode
"commandes" avant de déplacer le curseur, puis entrer de nouveau en mode "édition".
» Esc ; 3l ; a ; "deux"
 Insérer la chaîne de caractères "trois" en début de ligne.
» Esc ; 0 ; i ; "trois"

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 42


 Insérer la chaîne de caractères "quatre" en fin de ligne.
» Esc ; $ ; a ; "quatre"
 Sans utiliser le pavé directionnel du clavier, déplacer le curseur de six caractères vers la
gauche.
» Esc ; 6h
 Supprimer le caractère sous le curseur.
» x
 Supprimer le caractère situé avant le curseur.
» h;x
 Supprimer les cinq caractères précédant le curseur.
» 5h ; 5x
 Effacer tous les caractères se trouvant du curseur à la fin de la ligne. Utiliser la commande
d'effacement suivie de la commande de déplacement adéquate.
» d$
 Sans utiliser le pavé directionnel du clavier, déplacer le curseur de six caractères vers la
gauche.
» 6h
 Effacer tous les caractères se trouvant du début de la ligne au curseur. Utiliser la commande
d'effacement suivie de la commande de déplacement adéquate.
» d0
 Coller enfin de ligne le texte qu’on vient de "couper".
» $p
 Effacer la totalité de la ligne.
» dd
 Copier la dernière ligne du fichier et coller-la en début de fichier.
» G ; yy ; 1G ; P

 Annuler la dernière commande. Est-ce que possible d'annuler aussi les commandes
précédentes ?
» u
» Oui, par exemple 4u annule les quatre dernières commandes.
 Effacer les quatre premières lignes du fichier.
» 1G ; 4dd
 Effacer les quatre lignes suivantes. Utiliser la commande de répétition.
» .

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 43


 Commandes globales

 Essayer d'enregistrer les modifications qu’on a apportées au fichier. Est-ce que possible ?
» :w
» Non, le fichier est accessible en lecture seule.
 Enregistrer le travail dans le répertoire "TP2" sous le nom de fichier "services2". Utiliser un
chemin personnel pour spécifier le nouveau nom de fichier.
» :w ~/TP2/services2
 Supprimer la première ligne du fichier, puis enregistrer et quitter Vi/Vim.
» 1G ; dd ; :wq

 Ouvrir de nouveau le fichier /etc/services et rechercher la chaîne de caractères "tcp".


» vi /etc/services ; /tcp
 Déplacer le curseur d'occurrence en occurrence de la chaîne de caractères "tcp".
» n
 Déplacer toujours le curseur d'occurrence en occurrence de la chaîne de caractères "tcp", mais
cette fois, dans le sens inverse de la recherche.
» ?tcp ; n
 Remplacer toutes les chaînes de caractères "udp" du fichier par "UDP".
» :1,$s/udp/UDP/g

 Options de l'éditeur

 Afficher toutes les options de l'éditeur.


» :set all
 Afficher les numéros de lignes. Activer l'option adéquate.
» :set number
 Définir le nombre d'espaces à 2 pour représenter une tabulation. Modifier la valeur de l'option
adéquate.
» :set tabline=2
 Sortir de Vi/Vim sans enregistrer et ouvrir de nouveau le fichier /etc/services.
» :q ; vi /etc/services
 Les options sont-elles toujours effectives ? Comment faire pour que ces modifications soient
permanentes ?
» Non, les modifications ne sont pas effectives. Il faut insérer les commandes dans le
fichier .vimrc. Si le fichier n’existe pas, il faut le créer dans le répertoire d’accueil de
l’utilisateur.

Faycel CHAOUA Atelier systèmes 2  Correction du TP2 44


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

Correction du TP N° 3

Correction des exercices

 Partie 1 (Recherche des fichiers) :

 locate

 Créer un fichier "essai.txt" dans le répertoire d’accueil.


» touch $HOME/essai.txt
 Rechercher ce fichier avec la commande locate. Que remarque-t-on ?
» locate essai.txt ; [Le fichier "essai.txt" n’est pas retrouvé.]
 Reconstruire la base de données des fichiers du disque dur.
» sudo updatedb
 Réexécuter la commande locate sur le fichier "essai.txt". Que peut-on conclure ?
» locate essai.txt ; [Le fichier "essai.txt" est bien retrouvé.]

 find

 Afficher la liste des fichiers .h situés sous le répertoire /usr/include.


» find /usr/include -name "*.h"
 Afficher la liste des fichiers plus vieux que 3 jours situés sous le répertoire d’accueil.
» find $HOME -ctime +3

 Partie 2 (Extraire, trier et filtrer des données) :

 head, tail, tubes

 Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.


» head -5 /etc/passwd
» tail -5 /etc/passwd

Faycel CHAOUA Atelier systèmes 2  Correction du TP3 45


 Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.
» head -7 /etc/passwd | tail -1

 tr, more, tubes

 Afficher le fichier /etc/passwd en remplaçant les caractères / par des X.


» cat /etc/passwd | tr / X
 Obtenir le résultat précédent page par page.
» cat /etc/passwd | tr / X | more

 grep, cut, uniq, sort et tubes

Étudier la documentation des commandes cut et uniq.

 Afficher la liste des répertoires d’accueil des utilisateurs déclarés dans le fichier
/etc/passwd.
» cut -d: -f6 /etc/passwd
 On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes ( shell) lancé
lors de son login. La commande correspondante est indiquée dans le 7ième champ du fichier
/etc/passwd.
 Afficher en une ligne de commande le nombre d’interpréteurs de commandes différents
mentionnés dans /etc/passwd.
» cut -d: -f7 /etc/passwd | sort | uniq | wc -l
 On dispose d'un fichier texte "telephone.txt" contenant un petit carnet d’adresses.
Chaque ligne est de la forme "nom prenom numerotelephone". Les champs sont séparés par
des tabulations.
 Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande shell :
 Afficher le carnet d’adresse trié par ordre alphabétique de noms.
» sort telephone.txt
 Afficher le nombre de personnes dans le répertoire.
» wc -l telephone.txt
 Afficher toutes les lignes concernant les “Dupond”.
» grep "Dupond" telephone.txt
 Afficher toutes les lignes ne concernant pas les “Dupond”.
» grep -v "Dupond"
 Afficher le numéro de téléphone (sans le nom) du premier “Dupond” apparaissant dans
le répertoire.

Faycel CHAOUA Atelier systèmes 2  Correction du TP3 46


» grep "Dupond" telephone.txt | head -1 | cut -d$'\t' -f3
 Afficher le numéro de téléphone (sans le nom) du premier “Dupond” dans l’ordre
alphabétique (ordre basé sur les prénoms).
» sort telephone.txt | grep "Dupond" | head -1 | cut -d$'\t' -f3

 Partie 3 (Maitriser les flux de redirection) :

 Redirections, méta-caractères

 Créer un répertoire nommé "inc" dans le répertoire d’accueil (HOME). En utilisant une seule
commande, y copier les fichiers du répertoire /usr/include dont le nom commence par
"std".
» mkdir inc
» cp /usr/include/std* $HOME/inc
 Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
» find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)
» find /usr/include/ -name "[abc]*"
 Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-
ci soit placé dans un fichier nommé "Abc.list" du répertoire d’accueil.
» find /usr/include/ \( -name 'a*' -o -name 'b*' -o -name 'c*' \)
> Abc.list
» find /usr/include/ -name "[abc]*" > Abc.list
 Afficher le contenu de ce fichier en utilisant la commande cat. Copier avec cat son contenu
dans un nouveau fichier nommé "Copie".
» cat Abc.list ; cat Abc.list > Copie

 Toujours avec cat, créer un nouveau fichier nommé "Double" formé par la mise bout à bout
(concaténation) des fichiers "Abc.list" et "Copie".
» cat Abc.list Copie > Double
 Vérifier que le nombre de lignes a bien doublé à l’aide de la commande wc.
» wc -l Abc.list Copie Double
 Créer un fichier nommé "Temp" contenant une ligne de texte.
» echo "Bonjour ISET" > Temp
 Avec cat, ajouter la ligne "The end" à la fin du fichier "Temp”.
» cat >> Temp ; Taper au clavier "The end" ; CTRL + D

 En une seule ligne de commande, faire afficher le nombre de fichiers de /usr/include dont
le nom contient la lettre t.
» ls /usr/include/*t* | wc -l

Faycel CHAOUA Atelier systèmes 2  Correction du TP3 47


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

Correction des TP N° 4/5

Correction des exercices

 Partie 1 (Gestion des utilisateurs et des groupes) :

 Mise en place d'un espace de travail pour 4 utilisateurs

 Définir le lot de commandes à exécuter pour créer 4 utilisateurs en suivant les règles suivantes:
 Création de 2 groupes (G1 et G2).
» sudo groupadd G1
» sudo groupadd G2
» cat /etc/group
 Création de quatre utilisateurs (u1, u2, u3 et u4) avec leurs répertoires home.

» sudo useradd -m u1
» sudo useradd -m -c "user2" u2
» sudo useradd -m -c "user3" -s "/bin/bash" u3
» sudo useradd -m -c "user4" -s "/bin/bash" u4
» cat /etc/passwd ; sudo cat /etc/shadow ; cat /etc/group ; sudo cat
/etc/gshadow ; ls -l /home
 Modification des comptes créés.

» sudo usermod -c "user1" -s "/bin/bash" u1

Faycel CHAOUA Atelier systèmes 2  Correction des TP4 & TP5 48


» sudo usermod -s "/bin/bash" u2
» cat /etc/passwd
 Les premier et deuxième utilisateurs sont membres du premier groupe.
 Les troisième et quatrième utilisateurs sont membres du second groupe.
 Le deuxième utilisateur est aussi membre du second groupe.
 Le quatrième utilisateur est aussi membre du premier groupe.

» sudo usermod -G G1 u1
» sudo usermod -G G1 u2
» sudo usermod -G G2 u3
» sudo usermod -G G2 u4
» sudo usermod -aG G2 u2
» sudo usermod -aG G1 u4
» cat /etc/group
 Outre leur répertoire de travail, les utilisateurs ont accès à un répertoire commun
/home/groupe1 et/ou /home/groupe2 suivant leur groupe.

» sudo mkdir /home/groupe1 /home/groupe2


» sudo chown adminiset:G1 /home/groupe1
» sudo chown adminiset:G2 /home/groupe2
» sudo chmod g+ws /home/groupe1
» sudo chmod g+ws /home/groupe2
» ls –l /home
 Détailler les étapes de création des groupes, des utilisateurs et des répertoires en indiquant les
fichiers utilisés et les commandes utilisées sur ces fichiers.
 Essayer de modifier les deux répertoires en commun avec les différents utilisateurs créés.
» Il faut activer les différents utilisateurs (création des mots de passe).

Faycel CHAOUA Atelier systèmes 2  Correction des TP4 & TP5 49


» sudo passwd u1 ; sudo passwd u2 ; sudo passwd u3 ; sudo passwd u4

 Partie 2 (Droits d’accès) :

 Création d’un utilisateur banalisé

 Se connecter avec le compte de l’utilisateur user1.


» su u1
 Est-il possible de faire une copie du fichier /etc/passwd ?
» cp /etc/passwd ~
 Est-il possible de supprimer ou de modifier le fichier /etc/passwd ?
» rm /etc/passwd
» echo "bonjour" >> /etc/passwd
» Le fichier est protégé en écriture.
 Répéter ces tentatives en tant qu'utilisateur root.
» sudo su
» Il faut créer une copie du fichier /etc/passwd avant de faire toute modification.
 Expliquer la situation à l’aide de la commande ls -l.
» ls –l /etc/passwd
» root est le propriétaire du fichier /etc/passwd. Il a les droits rw- (tous les privilèges)
sur ce fichier.
 À l’aide de la commande id, vérifier l’identité de user1 connecté et le(s) groupe(s)
au(x)quel(s) il appartient.
» id u1
 Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais
non modifiable (même pas par son propriétaire user1).
» echo "Bonjour Tout le monde !" > f1
» chmod a+r,a-w f1 Ou chmod 444 f1

 Créer un répertoire nommé "Secret", dont le contenu est visible uniquement par user1.
Les fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de groupe de
l’utilisateur user1 ?
» mkdir Secret
» chmod u+r,go-r Secret Ou chmod 711 Secret Ou chmod 700 Secret
» Oui, ils sont lisibles par d’autres utilisateurs.
 Créer un répertoire nommé "Connaisseurs" tel que les autres utilisateurs ne puissent pas lister
son contenu mais puissent lire les fichiers qui y sont placés.

Faycel CHAOUA Atelier systèmes 2  Correction des TP4 & TP5 50


On obtiendra: ls Connaisseurs
ls : Connaisseurs: Permission denied
cat Connaisseurs/toto
<...le contenu du fichier toto (s’il existe)...>
» mkdir Connaisseurs
» chmod o-r Connaisseurs Ou chmod 711 Connaisseurs

 Chercher dans le répertoire /usr/bin des exemples de commandes ayant la permission


SUID. De quel genre de commande s’agit-il ?

» ls -l /usr/bin/ | grep "rws"

Faycel CHAOUA Atelier systèmes 2  Correction des TP4 & TP5 51


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

Correction du TP N° 6

Correction des exercices

 Partie 1 (Gestion des processus)

 Dans un système Linux, quel est le processus qui n'a pas de père. Quel est son PID ?
» Le processus systemd (init). Son PID est 1.
 À quoi servent les options –f et –L de la commande ps ?
» –f : (forêt) affiche les arbres généalogiques des processus.
» –L : (long format) affiche encore plus d’informations détaillées sur chaque processus.

 Lancer la commande ps -fL et décrire les différentes colonnes affichées.

» UID : propriétaire du processus.


» PID : numéro du processus.
» PPID : numéro du processus-père.
» LWP : identifiant lwp (« light weight process » ou « thread ») du processus
léger présenté.
» C : obsolète.
» NLWP : nombre de processus légers (« threads ») dans le processus.
» STIME : heure de début du processus.
» TTY : pseudo-terminal contrôlant le processus.
» TIME : durée d'exécution du processus.
» CMD : nom de la commande.

 Utiliser la commande pstree pour afficher l'arbre des processus en cours avec leur PID.

Faycel CHAOUA Atelier systèmes 2  Correction du TP6 52


 Quelle option de pstree permet d'afficher les ancêtres d'un certain processus dont le PID est
donné en argument à la commande ?
» L’option « -h ».
 Quelle option de pstree permet d'afficher l'arbre complet des processus en cours (i.e., permet
d'afficher toutes les occurrences de chaque processus) ?
 Quel signal est lancé par défaut à la commande kill ?
» Le signal SIGTERM (15).
 Que font les signaux suivants : SIGQUIT, SIGKILL, SIGCHLD ?
» SIGQUIT : instruction (QUIT).
» SIGKILL : ordonne au processus de se terminer inconditionnellement comme dans le
cas des processus qui bouclent.
» SIGCHLD : modification du statut d'un processus fils.

 Quel caractère permet de lancer une commande en arrière-plan ? Quelle commande permet de
lancer une commande en arrière-plan ?
» Le caractère « & » et la commande « bg ».
 Afficher la liste des processus actifs dans le terminal courant en utilisant ps.

 Quelles informations sont affichées par défaut lorsqu’on lance la commande top ?
» La commande top permet surtout de suivre les ressources que les processus utilisent
(quantité de RAM, pourcentage de CPU, durée d’exécution d’un processus depuis son
démarrage, etc.).
 Utiliser la commande top pour afficher la liste des processus en temps réel en ajoutant les
colonnes PID et UID dans l'affichage.

Faycel CHAOUA Atelier systèmes 2  Correction du TP6 53


 Lancer 3 fois la commande sleep en arrière-plan avec des arguments différents à chaque fois.
 Afficher la liste des travaux en cours. Que signifient les caractères + et - dans le résultat
obtenu ?

» Le caractère + représente la dernière commande lancée en arrière-plan alors que le


caractère – représente l’avant dernière commande lancée en arrière-plan.
 Lancer ensuite la commande sleep en premier-plan.
» sleep 3
 Afficher à nouveau la liste des travaux en cours.
» jobs

Faycel CHAOUA Atelier systèmes 2  Correction du TP6 54


 Relancer en arrière-plan la dernière commande sleep suspendue auparavant.
» bg 3
 Arrêter l'exécution de la première commande sleep en utilisant son PID.
» kill 4363
 Arrêter l'exécution de la deuxième commande sleep en utilisant son numéro de travail.
» fg 2
» CTRL + C
 Arrêter l'exécution des deux dernières commandes sleep en utilisant la combinaison de
touches CTRL + C.
» Il faut tout d’abord les faire passer en premier-plan avec fg.
 Lancer la commande gedit depuis un terminal en premier-plan. Attendre que la fenêtre de
l'application s'ouvre puis fermer le terminal d'où on l’a lancée. Que se passe-t-il ?
» La fenêtre de l'application gedit se ferme aussi.
 Lancer la commande gedit depuis un terminal en arrière-plan. Attendre que la fenêtre de
l'application s'ouvre puis fermer le terminal d'où on l’a lancée. Que se passe-t-il ?
» La fenêtre de l'application gedit se ferme aussi.
 À quoi sert la commande nohup ? Comment faire pour à la fois détacher un processus du shell
à partir duquel il est lancé et le lancer en arrière-plan ? Donner un exemple.
» nohup ignore le signal SIGHUP (d’où son nom) puis exécute le programme indiqué en
ligne de commande, de sorte que celui-ci ignorera le signal SIGHUP.
» nohup gedit &

 Partie 2 (Traitement différé)

 Utiliser la commande at pour lancer en différé une commande qui écrit l’heure dans un fichier
texte. Décommander cette tâche.

 Utiliser la commande at pour nettoyer /tmp dans 10 minutes.

Faycel CHAOUA Atelier systèmes 2  Correction du TP6 55


 Planifier le nettoyage de /tmp tous les soirs à 3h le matin.

Faycel CHAOUA Atelier systèmes 2  Correction du TP6 56


Institut Supérieur des Études Technologiques de Kélibia
Département de Technologies de l'Informatique

Matière : Atelier systèmes 2 Enseignant : Faycel CHAOUA

Niveau : LMD ‒ L2 Durée : 6 heures

Correction du TP N° 7

Correction des exercices

 Correction TP7Ex1

 Test d’exécution du TP7Ex1

Faycel CHAOUA Atelier systèmes 2  Correction du TP7 57


 Correction TP7Ex2

 Test d’exécution du TP7Ex2

Faycel CHAOUA Atelier systèmes 2  Correction du TP7 58


 Correction TP7Ex3

 Test d’exécution du TP7Ex3

Faycel CHAOUA Atelier systèmes 2  Correction du TP7 59


 Correction TP7Ex4

 Test d’exécution du TP7Ex4

Faycel CHAOUA Atelier systèmes 2  Correction du TP7 60


 Correction TP7Ex5

 Test d’exécution du TP7Ex5

Faycel CHAOUA Atelier systèmes 2  Correction du TP7 61


Références (Bibliographie / Webographie)

[1] « Tutoriel : Installer Ubuntu avec le média d'installation - Documentation Ubuntu


Francophone ». [En ligne]. Disponible sur: https://doc.ubuntu-
fr.org/tutoriel/installer_ubuntu_avec_le_live_cd. [Consulté le: 18-déc-2017].

[2] « Tutoriel : Compléter l’installation d’Ubuntu - Documentation Ubuntu Francophone ». [En


ligne]. Disponible sur: https://doc.ubuntu-fr.org/tutoriel/completer_installation_ubuntu.
[Consulté le: 18-déc-2017].

[3] Y. Bailly et M. Grenard, « Commandes de bases », Linux par l’exemple : Notions de base
et configurations types, 02-août-1999. [En ligne]. Disponible sur: http://www.linux-
france.org/article/kafkafr/node14.html. [Consulté le: 22-déc-2017].

[4] C. Pivoteau, « Introduction au système ». [En ligne]. Disponible sur: http://igm.univ-


mlv.fr/~pivoteau/LINUX/. [Consulté le: 22-déc-2017].

[5] N. Janey, « Linux ». [En ligne]. Disponible sur: http://raphaello.univ-


fcomte.fr/linux/Linux.htm. [Consulté le: 18-déc-2017].

[6] N. Pons, Linux - Entraînez-vous sur les commandes de base - 2ème édition. ENI, 2009.

[7] M. Nebra, « Reprenez le contrôle à l’aide de Linux ! », OpenClassrooms. [En ligne].


Disponible sur: https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux.
[Consulté le: 18-déc-2017].

[8] R. Kanawati, « Le système Linux : Gestion des processus », 2006-2005. [En ligne].
Disponible sur: http://lipn.univ-paris13.fr/~kanawati/doc/RT-R3-TP3.pdf. [Consulté le: 18-
déc-2017].

[9] M. Rakho, « Partie II – Programmation shell sous Linux », 2013-2012. [En ligne].
Disponible sur: http://igm.univ-mlv.fr/~rakho/fr/l2-s4-unix-shell/2013/tp2/tp2.pdf. [Consulté
le: 18-déc-2017].

[10] « Tutoriel : Introduction aux scripts shell - Documentation Ubuntu Francophone ». [En
ligne]. Disponible sur: https://doc.ubuntu-fr.org/tutoriel/script_shell. [Consulté le: 18-déc-
2017].

Faycel CHAOUA Atelier systèmes 2  Références (Bibliographie / Webographie) 62

Vous aimerez peut-être aussi