Premiers traitements sous Linux
A l'issue de ce TP vous
montrerez que vous êtes capable :
- de gérer les processus,
- d'utiliser les outils disponibles pour imprimer
- de traiter des données ou des fichiers en utilisant des
filtres,
- de gérer l'espace disque qui vous est réservé
- de créer et utiliser des fichiers d'archives
compressés.
Ce troisième TP va vous permettre d'ppréhender la notion de
multi-tâches en visualisant les processus (ou programmes) qui sont
exécutées sur votre machine. Vous pourrez ensuite effectuer les
premiers traitements sur le (ou les) résultat(s) de commande(s) de base
sur l'arborescence, les fichiers et les processus. En outre, vous
manipulerez les commandes pour imprimer ou sauvegarder les données
fournies par le serveur web ou celles enregistrées sur votre compte
personnel.
Vous rédigerez un
compte rendu dans lequel vous justifierez les options des commandes que
vous avez utilisé pour réaliser les actions demandées et repérées par
=>.
Rappel : Les contenus des cours, des TD et des TP précédents sont
nécessaires pour faire les TP. Vous devez impérativement les avoir avec
vous et les connaitre pour chaque séance de TP (et avoir revu les TP
précédents).
1 machine sous LINUX
1. Notion de processus et de priorités
Le système Linux est un système multi-utilisateurs
et
multi-processus. Chaque utilisateur peut exécuter plusieurs
programmes en même temps.
Le temps de calcul et l'ordonnancement entre les programmes seront
affectés automatiquement par le système. Cependant, en
tant qu'utilisateur, vous pouvez visualiser l'ensemble des processus
(programmes + environnement) exécutés sur une machine. De
plus, vous pouvez agir sur les processus dont vous êtes
propriétaire en envoyant des signaux ou en précisant une
priorité.
=> Testez et commentez les
commandes :
ps,
top,
kill,
nice
=> Exécutez en tâche
de fond
emacs et
mozilla, notez leur
propriétés et supprimez le processus lié à
emacs,
=> Exécutez le même
traitement à l'aide de l'interface graphique : Menu/Outils
Système/
Moniteur Système,
=> Si cette commande est disponible
sur votre système, lancez la commande
gkrellm,
=> Supprimez le processus
lié au navigateur mozilla (attention : tuez le bon processus,
sinon ... à tout à l'heure !).
=> Lancez la calculatrice par la
commande xcalc. Pour une raison inconnue, imaginons que cette
application ne réponde plus. Plutôt que de
redémarrer le système, vous pouvez "tuer" le processus
lié à cette application graphique par la commande :
xkill
appliquée à la
fenêtre.
rem : pensez à
sauver le travail en cours avant toute utilisation de cette commande !
2. Utilisation du périphérique d'impression
Tout travail d'impression est d'abord stocké dans une file
d'attente avant d'être récupéré par le
processus serveur d'impression nommé "lpd".
Pour partager les ressources imprimantes, l'ensemble des travaux sont
centralisés au niveau du serveur iut-gtr2.
Pour ajouter un travail dans la file d'attente d'impression (donc, pour
imprimer...), vous utiliserez les commandes suivantes : a2ps (pour les
fichiers texte) ou lpr (pour les fichiers postscript uniquement) ou
directement à partir de l'application pour les autres types de
fichiers (ex. OpenOffice)
=> Utilisez l'aide pour
préciser l'imprimante qui reçoit le travail d'impression,
=> Testez et commentez les
commandes :
a2ps,
lpr,
=> Pour connaître
l'état de votre impression (en cours, en attente) ou supprimer un
travail en cours, vous utiliserez les commandes :
lpq,
lpstat,
lprm.
=> Testez et commentez ces commandes avec leurs options
éventuelles.
rem : les fichiers
temporaires nécessaires à l'impression sont stockés
dans une file d'attente dans le répertoire /var/spool; seul le
propriétaire
lp a
accès aux fichiers de cette file d'attente.
3. Les filtres simples
Les filtres vont vous permettre d'effectuer un traitement sur les
données ou sur les fichiers, i.e. ajouter, trier, supprimer des
lignes, des colonnes de données.
A l'aide des commandes
head,
tail et
cut, vous effectuerez les
traitements suivants :
=> Afficher les 5 premières
lignes du fichier <N° de binôme>.txt de la
disquette,
=> Afficher les 5 dernières
lignes du fichier <N° de binôme>.txt,
=> Afficher seulement la 2
ème lignes du fichier <N° de binôme>.txt,
=> Afficher de la 2 à la 5
lignes incluses du fichier <N° de binôme>.txt,
=> Afficher les 20 premiers
caractères de la premiere ligne du fichier <N° de
binôme>.txt,
=> N'afficher que les noms contenus
dans le fichier <N° de binôme>.txt.
A l'aide de la commandes
sort
et
uniq, vous effectuerez les
traitements suivants :
=> Trier la liste des processus par
ordre croissant d'occupation CPU,
=> Afficher la liste des dix
processus qui consomment le plus de CPU,
=> Afficher uniquement les
numéros de processus (PID) classés par ordre
décroissant,
=> Donner la liste des utilisateurs
(sans doublons) qui ont un processus en cours.
4. Le traitement du texte
A l'aide des commandes
comp,
diff et
patch, vous effectuerez les
traitements suivants :
=> Mettez en valeur les
différences et les points communs des fichiers <N° de
binôme>lnx.txt et <N° de binôme>2.txt,
=> A partir d'un fichier java du
TP1 langage faites modifier (améliorer ce source) par votre
voisin ce fichier puis détectez les changements à l'aide
des commandes
comp et
diff,
=> Patchez votre source avec les
améliorations de votre voisin.
5. Tissons des liens...
Liens physiques :
=> Copiez le fichier <N° de
binôme>.txt en <N° de binôme>3.txt,
=> Créez un lien physique
depuis votre répertoire racine nommé lien_phys vers
<N° de binôme>3.txt,
=> Constatez les changements sur le
nombre de liens,
=> Que faut-il faire pour supprimer
le fichier <N° de binôme>3.txt ? Faites-le !
=> Est-il possible d'accéder
aux informations contenues dans le fichier et/ou le lien ?
=> Constatez les changements sur le
nombre de liens ?
=> Refaire la manipulation en
supprimant le lien lien_phys,
=> Est-il possible d'accéder
aux informations contenues dans le fichier et/ou le lien ?
Liens symboliques :
=> Creez un répertoire
binôme dans .../Systeme1
=> Creez un lien symbolique
nommé lien_symb depuis ~ vers ce répertoire binôme
puis :
copiez des
fichiers vers .../Systeme1/binôme,
listez le
contenu de ~/lien_symb,
renomez
binôme en binôme2 et essayez de lister ~/lien_symb,
commentez.
=> Que faut-il définir pour
échanger facilement des fichiers entre binôme ?
6. Gestion de l'espace disque
=> Recherchez sur votre compte
les fichiers (ou répertoires) modifiés depuis ce jour
=> Recherchez les
sous-répertoires de votre répertoire de login (avec et
sans find) et uniquement les sous-répertoires (pas les sous-sous
répertoires)
=> Affichez la taille des fichiers
dont le groupe possède les droits de lecture (format d'affichage
: nom taille)
=> Reprenez la question
précédente et triez le résultat dans l'ordre
ionverse selon la taille
=> Testez et commentez les
commandes
df,
quota et
du,
=> Vous vérifierez, à
l'aide d'une commande, sur chacun des volumes montés, que
l'espace disponible plus l'espace utilisé est égal
à l'espace total.
7. Archivage et sauvegarde
=> Testez et commentez les
commandes
tar, xargs et
gzip,
=> A partir de votre
répertoire de login, archivez (en ligne de commande) tous les
fichiers sources java de votre compte dans un fichier sourcesjava.tgz,
=> Modifiez un de vos fichiers
sources puis mettez à jour votre archive,
=> Transmettez ce fichier archive
sur le compte de votre binôme, qui en visualisera le contenu puis
le décompressera dans un répertoire temporaire de son
compte.
[ Noubliez pas
d'envoyer votre compte-rendu et de le compléter pour la séance suivante
]