TD10 - Des processus au shell

Inès de Courchelle

Durée : 1h30

Consignes :

Durant ce TD l’utilisation de la souris, Touchpad et/ou Trackpoint sont strictement interdit. Seul le clavier est autorisé.

Objectifs :

Ce TD a pour objectif de :

  • Archiver des dossiers et des fichiers en ligne de commandes
  • Connaître les commandes pour afficher les processus en cours d’exécution
  • Gérer l’espace sur son ordinateur
  • Utiliser les expressions régulières
  • Se familiariser avec les variables prédéfinies du shell

Attention :

ne pas oublier de noter les différentes commandes utilisées dans le tp pour ne pas les oublier

Support de cours

TP10 - support de cours

Fichier attaché à la séance

data.tar hp1.txt

1- Les archives

Définition

L’extension utilisée est tar. La commande tar permet de sauvegarder toute une arborescence de fichier dans une archive. Cette archive contiendra tous les fichiers et répertoires du dossier souhaité.

La commande pour compresser de manière classique (tar)

tar -cv kway -f kway.tar
  • -v afficher le nom de tous les fichiers et les répertoires traités
  • -c créer une nouvelle archive
  • -f indiquer le nom du fichier de l’archive

La commande pour faire un zip

tar -cvz kway -f kway.zip
  • -z passer l’archive par l’utilitaire de compression gzip
  • -v afficher le nom de tous les fichiers et les répertoires traités
  • -c créer une nouvelle archive
  • -f indiquer le nom du fichier de l’archive

La commande pour décompresser

tar -xvf kway.tar
  • -x passer en mode extraction
  • -v afficher le nom de tous les fichiers et les répertoires traités
  • -c créer une nouvelle archive
  • -f indiquer le nom du fichier de l’archive

Pour indiquer un répertoire de destination à la décompréssion, il faut utiliser -C. Attention, il faut avoir préalablement créé le répertoire.

mkdir toto
tar -xvf kway.tar -C toto

2- La gestion de l’espace

Afficher l’espace utilisé par mon répertoire

du -hs ~
- *-h* ajouter un suffixe correspondant à l'unité (K, M, G)
- *-s* afficher le total (summarize)

En cliquant ici vous avez plein d’aide pour nettoyer votre ordinateur.

3- Les expressions régulières

À quoi ça sert ?

  • Représenter de manières spécifiques et génériques d’une chaîne de caractères
  • Décrire d’une façon consise et inambiguë des motifs de caractères

Ça ressemble à quoi ?

  • Elles sont composées de caractères ordinaires et de caractères spéciaux qui ont une signification particulières
  • Mais encore …

Petite liste des caractères spéciaux

Les caractères Significations
. Un unique caractère quelconque
? Indique 0 ou une occurrence du caractère ou de la classe précédente
* Indique 0, 1 ou plusieurs occurrences du caractère ou de la classe précédente
^ un début de ligne
$ une fin de ligne
[] un intervalle avec un tiret ou un OU entre deux caractères
{} Les intervalles de reconnaissance

Les intervalles de reconnaissance

Exemple Signification
a{3} correspond exactement à aaa
a{2,} correspond à un minimum de deux a consécutifssoit aa, aaa, aaaaa….
a{2,4} correspond uniquement à aa, aaa, aaaa

Les expressions atomiques

L’expression Significations
a le caractère a
[t-w] un caractère appartenant à l’ensemble t,u,v,w
[a-z] un caractère appartenant à l’ensemble de a à z
[^a-z] un caractère N’appartenant PAS à l’ensemble de a à z
[Rr]ock La chaîne Rock ou la chaîne rock

Il y en a plein !!

Comment s’en servir ?

On peut s’en servir avec les commandes sed, grep, awk, ls ...

  • Lister tous les éléments terminant par “txt”
ls *txt
  • Lister tous les fichiers commençant par la lettre A
ls a*

4- La commande sed

Définition

  • Commande permettant de rechercher des châines conformes à un motif donné et les modifie
  • Sed (Stream EDitor) est une commande pouvant être utilisée comme un filtre

Chercher et remplacer

La commande

sed -e `s/motifRecherché/motifRemplacé/g`
  • -e indique l’utilisation possible d’expression régulière
  • s indique l’utilisation de la fonction de substitution.
  • g remplacer toutes les occurences de chaque ligne. Par défaut le remplacement ne se fait que pour la premier motif trouvé sur la ligne.

Exemples

On considère le fichier coucou.txt suivant :

- Coucou tu vas bien ?
- tranquille et toi ?
- ça roule !
- tant mieux :)

sed -e s/c/z/g coucou.txt

Attention ici, le fichier coucou.txt n’est pas modifié. C’est seulement à l’affichage qu’il sera modifier. Pour modifier le contenu on peut rediriger la sortie standard vers le même fichier ou un nouveau.

sed -e s/c/z/g coucou.txt > coucou2.txt

Suppression d’une ligne

On considère toujours le fichier coucou.txt suivant :

- Coucou tu vas bien ?
- tranquille et toi ?
- ça roule !
- tant mieux :)

On souhaite supprimer la ligne 2 et 3 du fichier

sed -e '2,3d' coucou.txt > coucou2.txt

5- (Rappel) Les processus

Définition

  • Un processus est un programme en cours d’exécution.
  • Il existe une hierarchie des processus (processus père & fils)
  • Un processus est idendifié par son numéro unique (PID)
  • Différents types
    • Interactifs : la plupart des processus s’exécutent en utilisant des E/S avec un utilisateur
    • Non Interactifs : certains processus gèrent en arrière plan des choses sans interaction (démons

Cycle de vie

Lire un processus dans le terminal

nom de la colonne explication
uid Propriétaire du processus
pid Numéro du processus
ppid Père du processus
C Utilisation CPU
stime Temps où le processus à commencer
tty Terminal associé au processus
time Total de CPU utilisé
cmd Nom du processus

Les commandes d’affichage

Processus du prompt en cours

ps

Processus du système en utilisant la syntaxe traditionnelle

ps -ef

Processus du système en utilisant la syntaxe BSD

ps -ax

Afficher de manière dynamique les processus

top

Arborescence des processus

ps -ejH

Processus apartement à l’utilisateur

ps -aux
ps -x -u <login>

Rechercher un processus

Comment ?

  • avec un pipe
  • avec la commande grep

La commande

ps -ef | grep nomduprocessus

Exemple

ps -ef | grep teams

Tuer un processus

solution 1

kill <n° pid>

solution 2

killall <nom du processus>