Vous êtes sur la page 1sur 185

SYSTÈMES D'EXPLOITATION

« OPEN SOURCE »

Mme LAHLALI
SOMMAIRE
 Installer et désinstaller des systèmes d'exploitation
 Introduction au monde Gnu/Linux
 Présentation générale du système Gnu/Linux
 Installation d’une distribution Gnu/Linux
 Adapter les systèmes en fonction des besoins particuliers
 Environnement graphique sous Gnu/Linux (KDE)
 Environnement graphique sous Gnu/Linux (GNOME)
 Effectuer les opérations de base concernant l’exploitation des fonctions
du système d’exploitation.
 Commandes Gnu/Linux de base
 Les systèmes de fichiers sous Gnu/Linux
 Utilisation du shell Bash
 L’Editeur de texte vii
 Réaliser des tâches d’administration du système d’exploitation
 Gestion des utilisateurs et de la séurité sous Gnu/Linux
 Planification des tâches sous Gnu/Linux
 Installer une imprimante
 Configuration de l’imprimante sous Gnu/Linux
 Protéger des données
 Sauvegarde des données sous Gnu/Linux
 Gérer des paquetages
 Installation d’applications sous Gnu/Linux
 Documenter les interventions effectuées.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Effectuer les opérations de base
concernant l’exploitation des
fonctions du système d’exploitation

Mme LAHLALI
SOMMAIRE
1. Historique
2. Introduction au système linux
3. GNU et commandes Unix
4. Login et déconnexion
5. Arrêt et redémarrage du système
6. Pages de manuel
7. Opérations de base sur les répertoires
8. Notions sur les chemins Unix
9. Opérations de base sur les fichiers
10. Autres commandes utiles
a. Gestion des liens
b. Recherche de fichiers
c. Recherche d'un texte dans un fichier
d. Remplacement de texte dans les fichiers
e. Compression et décompression des fichiers
f. Archivage de fichiers
g. Passage en mode superviseur
h. Changement des droits des fichiers, du propriétaire et du groupe
11. vi, l'éditeur de fichiers de base
12. Administration de base
13. Utilisation du shell Bash

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Module 01 : Introduction au système
linux

Mme LAHLALI
Le système de fichiers
Le système de fichiers virtuel VFS

Mme LAHLALI
Le système de fichiers
/

bin boot dev etc home lib mnt proc sbin sys tmp usr var …

Mme LAHLALI
Le tableau suivant vous présente les principaux Shells ainsi que leurs
caractéristiques

Nom Description
(Bourne Again Shell) offre l'édition de la ligne de commande et le
bash
rappel des commandes précédentes
(C Shell) développé à Berkeley, compatible avec le shell Bourne. Pas
csh
d'édition de la ligne de commande ni d'historique des commandes
(Korn Shell) offre l'édition de la ligne de commande (touches
ksh
compatibles Emacs)
sh le shell original, pas d'édition de la ligne de commande.
version améliorée du csh, avec un support de l'édition de la ligne de
tcsh
commande avec correction des commandes tapées
shell similaire au Korn shell, avec plus de dynamisme lors des
zsh
affichages et gère la non redondance des commandes.

Mme LAHLALI
Commandes de base

Le format des commande se base sur:


command option(s) argument(s)

-Pour afficher les information du système

# Uname -a Afficher toutes les informations décrites ci-dessus

-m, --machine Afficher le type (matériel) de machine.

-n, --nodename Afficher le nom d'hôte de la machine sur le


réseau.

-r, --release Afficher le numéro de version du système


d'exploitation

Mme LAHLALI
Commandes de base

-Pour Afficher ou configurer la date et l'heure du système


# date

Pour afficher la date de l'avant-veille :


date --date '2 days ago'

Pour afficher la date du jour à venir dans 3 mois plus un jour :


date --date '3 months 1 day'

Mme LAHLALI
Commandes de base

Pour afficher le numéro du jour de Noël de l'année en cours :


date --date '25 Dec' +%j

Pour afficher la date actuelle dans un format incluant le jour du


mois suivi du nom complet du mois :
date '+%d %B'

Pour afficher le calendrier


# cal

Mme LAHLALI
Commandes de base

- Pour effacer le terminale :


# clear

-Pour exécuter deux commande une après l’autre:


# date ; uname -sr

Mme LAHLALI
Les caractères de contrôle sur le clavier

Mme LAHLALI
Utilisation de la commande man

La commande man affiche toute la documentation relative à une


commande (syntaxe, utilisation, options...).
les pages de manuel se trouvent dans le répertoire /usr/man,
mais peuvent également se trouver en d'autres endroits plus
spécialisés

La syntaxe à utiliser est : man nom_de_la_commande

Exemples :
$ man man
$ man cat

Mme LAHLALI
Classement en sections

La documentation est clasée en 8 sections numérotées de 1 à 8 :


1.commandes UNIX
2. appels système
3. sous-programmes de bibliothèques
4. format de fichiers UNIX: a.out, dir, fs
5. "divers" (table ASCII ...)
6. jeux
7. fichiers spéciaux
8. administration (démarrage, génération...)

chercher la page voulue :


# man 2 ls
# man 8 ls

Mme LAHLALI
Commande apropos

La documentation man est limitée puisqu'il faut connaître le nom


de la commande.
On peut avoir une ébauche de la solution en faisant une
recherche par mot-clef. Pour cela,
on utilise la commande apropos, dont la syntaxe est la suivante :
apropos mot-clef

Exemple : apropos editor ou apropos lock

Mme LAHLALI
Les opérations de base
 Login et déconnexion
 Déconnexion
L'arrêt du système est une opération qui est du ressort de l'administrateur.
On ne peut donc le réaliser que sous le compte root. Plusieurs commandes
sont disponibles, les plus simples sont données ci-dessous :
halt, qui permet d'arrêter le système.
reboot, qui permet de le redémarrer.
logout
exit
CTRL+d
Ces commandes sont en fait des scripts permettant d'effectuer les opérations
d'arrêt et de redémarrage du système rapidement. Si elles ne sont pas
disponibles sur votre distribution, vous devrez sans doute utiliser la
commande générique suivante :
shutdown [-r] now où l'option -r permet de demander un redémarrage et non
un arrêt simple.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Login et déconnexion
 Les terminaux
 Linux fournit, pour l'utilisateur local, plusieurs terminaux virtuels. Cela signifie qu'il
est possible de se connecter plusieurs fois dans le système dans des terminaux
différents.
 Pour passer d'un terminal virtuel à un autre, il suffit de taper les combinaisons de
touches ALT+DROITE ou ALT+GAUCHE, où DROITE et GAUCHE sont
respectivement les flèches du curseur droite et gauche.
 Il est également possible d'accéder à un terminal donné à l'aide de la combinaison
de touches ALT+Fn, où Fn est l'une des touches de fonction F1, F2, F3, etc.
 La plupart des distributions utilisent au moins quatre terminaux virtuels, plus un
terminal X.
 Pour basculer d’un terminal X vers les terminaux en mode texte on utilise la
combinaison de touches CTRL+ALT+Fn.
 Pour revenir au mode graphique, il faut en général utiliser la combinaison Alt+F7.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Login et déconnexion
 Les terminaux
Afin de pouvoir accéder au terminal, vous devez au préalable vous identifier
grâce à un couple login/mot de passe. En fonction de cela, vous aurez accès
à plus ou moins de programmes sur le système.
Un symbole de l'invite de commande vous permet de déterminer le type de
compte que vous utilisez.
 Accès simple utilisateur :
[ user@localhost ~ ] $
 Accès root :
[ root@localhost ~ ] #
Si vous êtes en administrateur système la commande par cd ~ vous placera
dans le répertoire /root.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Le shell
 Le rôle du Shell est d'assurer la correspondance entre ce que l'utilisateur tape et le
système. Il en existe de nombreuses versions. Le plus connus d'entre eux, bash est
celui que nous utiliserons pendant ce cours.
 Chacun des shells existant dispose de ses propres avantages et points faible.
L'intérêt d'avoir un shell plutôt qu'un autre dépend des fonctionnalités offertes par
celui-ci, et donc de l'utilisation que l'on souhaite en avoir.
 Les principaux shells ainsi que leurs caractéristiques :
 Bash (Bourne Again Shell) offre l'édition de la ligne de commande et le rappel
des commandes précédentes
 Csh (C Shell) développé à Berkeley, compatible avec le shell Bourne. Pas
d'édition de la ligne de commande ni d'historique des commandes
 Ksh (Korn Shell) offre l'édition de la ligne de commande (touches compatibles
Emacs)
 Sh le shell original, pas d'édition de la ligne de commande.
 Tcsh version améliorée du csh, avec un support de l'édition de la ligne de
commande avec correction des commandes tapées
 Zsh shell similaire au Korn shell, avec plus de dynamisme lors des affichages
et gère la non redondance des commandes.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Le shell

invite ("prompt")

le shell est prêt à


recevoir des commandes
rentrées au clavier

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
 La commande pwd
 Affiche le nom du répertoire courant
 La commande ls
 Affiche les fichiers et sous-répertoire d’un répertoire
Syntaxe : ls [option] [nom_de_répertoire]
 Options utils

 F: ajout d’une indication de type


 l : affiche les principaux attributs des fichiers et répertoires
Type droits liens propriétaire groupe taille date nom
 a : affiche les fichiers et répertoires dont le nom commence par un
point.
 d : n’affiche pas le contenu du répertoire
 R : affichage récursif

Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
 cd [chemin]
où chemin est un chemin de répertoire Unix valide.
Ce chemin est constitué des noms des répertoires et sous-répertoires successifs,
séparés par des barres obliques « / ». Si aucun chemin n'est spécifié, cette commande change le
répertoire courant pour le répertoire personnel de l'utilisateur

cd ~ : Vous place dans le répertoire racine de l'utilisateur (souvent


/home/nom_utilisateur)
cd .. : Répertoire parent
cd - : répertoire précèdent
cd / : Répertoire racine
cd rep : Vous place dans le répertoire nommé si celui ci est un répertoire enfant du
répertoire actuel
cd rep1/rep2 : Vous place dans rep2 qui se trouve lui même dans rep1
Exemple :
Vous êtes dans le répertoire /home/autre/essai
pour passer rapidement dans le répertoire sound
qui et lui même dans le répertoire /etc
cd /etc/sound
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
 La commande mkdir (make directory) permet de créer un ou plusieurs répertoires,
ou une arborescence complète.
mkdir chemin
où chemin est le chemin spécifiant le répertoire à créer. Si le chemin ne contient
que le nom du répertoire à créer, celui-ci est créé dans le répertoire courant et
devient donc un sous-répertoire.
$ mkdir documents
$ mkdir documents/texte documents/calcul documents/images

La commande mkdir accepte un paramètre « -p » permettant de créer une


arborescence. Dans l'exemple précédent, si je veux créer documents/texte
et que documents n'existe pas, alors :
$ mkdir -p documents/texte
va créer à la fois documents et texte.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
 La commande rmdir (remove directory) supprime un ou plusieurs répertoires. Elle
ne supprime pas une arborescence. Si des fichiers sont encore présents dans le
répertoire, la commande retourne une erreur. Le répertoire ne doit donc contenir ni
fichiers ni répertoires.
rmdir rep1 [rep2] ... [repn]
$ cd documents
$ rmdir texte/perso

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
 touch :
permet de créer un fichier s'il n'existe pas, et s'il existe de modifier sa date d'accès et
sa date de modification,
> nom_fichier ou bien >> nom_fichier
 La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou vers un
répertoire.
cp fic1 fic2
cp fic1 [fic2 ... ficn] rep1
Dans le premier cas, fic1 est recopié en fic2. Si fic2 existe, il est écrasé sans avertissement (sauf
droit particulier). Dans le second cas, fic1, fic2 et ainsi de suite sont recopiés dans le répertoire rep1.
Les chemins peuvent êtres absolus ou relatifs.
 mv source destination
Permet le déplacement des fichiers. où source est le nom du fichier source et destination est le
nom du répertoire destination.
Notez que mv est une commande très puissante, puisqu'elle permet également de déplacer
des répertoires et de renommer des fichiers et des répertoires.
Pour renommer un fichier ou un répertoire, il suffit d'indiquer le nouveau nom de ce fichier
ou de ce répertoire à la place de destination

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
 rm chemin
où chemin est le chemin complet permettant d'accéder au fichier à supprimer.
Il est possible de spécifier plusieurs fichiers à la commande rm. Dans ce cas, ils
seront tous supprimés.
rm est également capable de supprimer tous les fichiers d'un répertoire, ainsi que
ses sous-répertoires. Dans ce cas, elle détruit toute une branche de l'arborescence
du système de fichiers. Pour cela, il suffit d'utiliser l'option -rf (pour « récursif »)
avant le chemin du répertoire à supprimer.
Attention ! : La commande rm ne demande aucune confirmation avant de supprimer
les fichiers !
Il peut être judicieux de forcer la commande rm à demander confirmation avant la
suppression des fichiers, à l'aide de son option -i
$ cd
$ rm -rf documents

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers

 Supprimer un fichier
rm [options] fichier1 [fichier2 …]
 Options utiles

 i : affiche une demande de confirmation de suppression


 r : suppression récursive (attention aucune demande de
confirmation)
 f : devient importante lorsqu’on cherche à supprimer des
fichiers appartenant à un autre propriétaire

Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers

Pour visualiser un fichier :


cat fichier.txt
Pour visualiser deux fichiers concaténés :
cat fichier1.txt fichier2.txt

Les options de cat:


 -b GNU seulement : --number-nonblank), numéroter les lignes non-blanches en
sortie.
 -n (GNU seulement : --number), numéroter les lignes en sortie.
 -s (GNU seulement : --squeeze-blank), fusionne en une seule toutes les lignes
blanches qui se suivent.
 Remarque: la commande tac permet de visualiser le fichier inversée

Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
 less fichier
Vous aurez sans doute à afficher le contenu d'un fichier. Pour cela, la commande la plus
appropriée est certainement la commande less
Cette commande affiche le contenu du fichier et vous permet de le faire défiler avec les
flèches du curseur. Lorsque vous désirez terminer la visualisation, il suffit de taper la touche q
La commande less permet également d'effectuer une recherche dans le fichier en cours
d'édition. Pour cela, il suffit de taper une commande de recherche de less. Cette commande
commence par une barre oblique, suivie du texte à chercher. Par exemple, pour
rechercher la chaîne de caractères « local » dans un fichier en cours de visualisation avec
less, il suffit de taper : /local
Lorsque vous voudrez rechercher l'occurrence suivante du motif de recherche, vous pourrez
appuyer sur la touche n (pour « Next » en anglais). Pour rechercher l'occurrence précédente, il
suffit de taper la touche N (en majuscule, cette fois).

 more fichier
Cette commande effectue à peu près le même travail que less, mais elle n'affiche le texte
que page par page.
- Pour passer à la page suivante, il faut appuyer sur la barre d'espace
- utiliser la touche b pour revenir à la page précédente
- utiliser la touche q pour quitter

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
 Création d’un fichier vide
 touch nom_fichier

 > nom_fichier

 Affichage du contenu d’un fichier (texte)


 cat nom_fichier [nom_fichier, …]

 Copier un fichier
 cp fichier1 fichier2

 cp fichier1 [fichier2 fichier3 …] répertoire

 cp –R répertoire1 répertoire2

 Renommer ou déplacer un fichier


 mv fichier1 fichier2

 mv fichier1 [fichier2 fichier3 …] répertoire

Mme LAHLALI
Les filtres
 Compter les lignes
La commande wc (word count) permet de compter les lignes, mots et caractères.
wc [-l] [-c] [-w] fic1
 -l : compte le nombre de lignes
 -c : compte le nombre d'octets
 -w : compte le nombre de mots

Ex : $ wc liste
12 48 234 liste
Le fichier liste contient 12 lignes, 48 mots et 234 caractères.

 Exemple :

$ wc /etc/group
43 43 579 /etc/group
Voir le man !!

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes sur les fichiers
 Comparaison de deux fichiers : diff
 Synthaxe :
diff [options] fichier1 fichier2
 comparaison (fichiers texte) ligne à ligne de fichier2 par rapport à fichier1
 options :
 -c : compte le nombre de caractères uniquement
 -u : compte le nombre de lignes uniquement

 Exemple :

$ cat fichier1 cat fichier2 $ diff fichier1 fichier2


option1 = texte1 option1 = texte1 2c2
option2 = texte2 option2 = modification < option2 = texte2
option3 = texte3 option3 = texte3 ---
> option2 = modification
Traduction
2c2 : la ligne 2 de fichier2 est changée par rapport à la ligne 2 de fichier1

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes sur les fichiers
 Premières lignes d'un fichier : head
 Synthaxe :
head [-nombre] fichiers
 Extrait les « nombre » premières ligne d'un fichier
 « nombre » vaut 10 par défaut

 Dernières lignes d'un fichier : tail


 Synthaxe :
 tail [-nombre] fichiers : affiche les n dernières lignes
 tail [+nombre] fichiers : affiche de la nième ligne à la dernière
 « nombre » vaut 10 par défaut

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes sur les fichiers
 Nature d'un fichier : file
 Synthaxe :
file fichiers
 Détermine le type d'un fichier ou à quelle application elle correspond

 Exemple :
$ file *

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Gestion des liens
 ln [-s] source lien
Permet de créer un lien. où source est le nom du fichier ou du répertoire source auquel le lien
doit se référer, et lien est le nom du lien. L'option -s permet de créer un lien symbolique.
Par défaut, ce sont des liens physiques qui sont créés. Rappelons qu'il est impossible de créer
des liens physiques sur des répertoires.
$ touch fic1
$ ln fic1 fic2
$ ls
fic1 fic2
$ ls -l
-rw-r--r-- 2 oracle system 0 Jul 25 11:59 fic1
-rw-r--r-- 2 oracle system 0 Jul 25 11:59 fic2
$ ls -i
484 fic1 484 fic2
L'exemple montre que les hard links n'ont pas de type particulier et sont considérés comme
des fichiers ordinaires. On constate que chacun a 2 liens. Logique puisque deux fichiers
pointent sur le même inode. Enfin nous voyons bien en résultat du ls -i que fic1 et fic2 ont le
même inode, à savoir 484.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Critères de recherche sur noms de fichier
Lors de l'utilisation de commandes en rapport avec le système de fichier, il peut devenir intéressant
de filtrer la sortie de noms de fichiers à l'aide de certains critères, par exemple avec la commande
ls.
Au lieu d'afficher toute la liste des fichiers, on peut filtrer l'affichage à l'aide de divers critères et
caractères spéciaux.
Caractère spécial Rôle
* Remplace une chaîne de longueur variable, même vide
? Remplace un caractère unique quelconque
[] Une série ou une plage de caractères
[!...] Inversion de la recherche
Ainsi,
• ls a* : tous les fichiers commençant par a
• ls a?? : tous les fichiers de trois caractères commençant par a
• ls a??* : tous les fichiers d'au moins trois caractères et commençant par a
• ls [aA]* : tous les fichiers commençant par a ou A
• ls [a-m]?*txt : tous les fichiers commençant par les lettres de a à m, possédant au
moins un second caractère avant la terminaison txt.
C'est le shell qui est chargé d'effectuer la substitution de ces caractères avant le passage
des paramètres à une commande

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Recherche de fichiers
 find répertoire -name nom –print
Permet de rechercher des fichiers selon un critère donné dans toute une
arborescence de répertoires. où répertoire est le répertoire à partir duquel la
recherche doit commencer et nom est le nom du fichier à rechercher. Ce nom peut
contenir des caractères génériques du shell, mais dans ce cas doit être placé entre
guillemets afin d'éviter que ce dernier ne les interprète.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Recherche de fichiers et de répertoires
 Options des sélection des fichiers et répertoires
 name : recherche par nom de fichier
 iname : recherche par nom de fichier sans tenir compte de la
casse
 type : recherche par type de fichier
 user : recherche par propriétaire
 group : recherche par l’appartenance à un groupe
 size : recherche par taille de fichier
 atime : recherche par date de dernier accès
 mtime : recherche par date de dernière modification
 ctime : recherche par date de création
 perm : recherche par autorisations d’accès
 links : recherche par nombre de références (links) aux fichiers

Mme LAHLALI
Recherche de fichiers et de répertoires

 Option de commande
 Les options de commande seront traitées pour chaque fichier
trouvé. En dehors de l’option –print qui montre le chemin
d’accès au fichier, on peut mettre en place l’option -exec
 Les commandes dont il est fait état derrière –exec seront
exécutées sans aucune demande de confirmation
 L’option –ok demande à l’utilisateur si la commande doit
effectivement être exécutée.

Mme LAHLALI
Recherche de fichiers et de répertoires
 Traitement sans confirmation avec –exec
 La spécification d’une commande derrière –exec est
soumise à certaines règles:
 L’option –exec doit être la dernière de la commande find
 La commande placée derrière –exec doit être terminée par le
paramètre ;. Comme c’est un caractère spécial, il doit être
masqué par un \
 Pour accéder à un des fichiers trouvés, dans le cadre de la
commande placée derrière –exec, utilisez le raccourci {}
 Exemple
 find . –user student –exec ls –l {}\; ( affiche le format long de la
commande ls pour les fichiers trouvés)
 find . –type f –atime +13 –exec rm {} \; (supprime les fichiers
auxquels vous n’avez plus accédé depuis plus de 2 semaines)
 find . –user student –exec cp {} /tmp \;

Mme LAHLALI
Recherche de fichiers et de répertoires

 Traitement après confirmation avec –ok


 Les mêmes explications s’appliquent également à
l’option –ok, mais celle-ci, demande une
confirmation d’exécution de la commande pour
chaque fichier trouvé. Ce n’est qu’en cas de
réponse affirmative (avec y), que la commande
placée derrière –ok sera exécutée.
 Exemple :
 find / -name «cours*» –ok rm {} \;

Mme LAHLALI
Recherche de fichiers et de répertoires

 Combinaison de critères pour recherches


complexes
 Les critères de sélection peuvent être combinés. Un
fichier valide doit répondre simultanément à
l’ensemble des critères définis.
 La commande find permet également des
combinaison logiques de ses options
 ! : négation logique des options
 a : liason par ET logique des options de recherche (and)
 o : liaison par OU logique des options de recherche (or)

Mme LAHLALI
Recherche de fichiers et de répertoires

 Combinaison de critères pour recherches


complexes
 Si vous utilisez plusieurs opérateurs logiques pour
combiner des options de sélection. Il faut tenir compte
de l’ordre des signes !, -a, -o.
! > -a > -o
 Pour spécifier une combinaison d’options basée sur
un lien ET ou OU, il faut placer l’ensemble de
l’expression entre parenthèse. Les parenthèses
doivent être verrouiller.
 Exemple
 find . \ ( -type d –o –name "*ham" \) -print

Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Exemples d'utilisation de find
find /home/ -name monfichier -print
Recherche le fichier monfichier dans toute la descendance de /home/
find . -name "*.c" -print
Recherche tous les fichiers ayant une extension .c
find . -mtime -5 -print
Recherche les fichiers du répertoire courant qui ont été modifiés entre maintenant et
il y a 5 jours
find /home/ -mtime -1 /! -type d -print
Recherche uniquement les fichiers (! -type d signifie n'était pas un répertoire) ayant
été modifiés ces dernières 24h
find . ! -user root -print
Affiche tous les fichiers n'appartenant pas à l'utilisateur root
find . -name "*.png" -exec ls -l {} \;
trouve les fichiers au format png dans le dossier en cours et affichage du
résultat par la commande ls –l
find . -name "*.png" -exec cp {} /tmp \;
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Programmes utilitaires et filtres
 Recherches de lignes dans un fichier (grep)
 La commande grep permet d’extraire des lignes particulières d’un
fichier ou d’un flux de données au sein d’un tube
Syntaxe grep [option] modèle_de_critères [fichier1 …]
 Les cinq options du grep les plus utiles sont :
 i : pour ne pas tenir compte des majuscules/minuscules,
 v : toutes les lignes ne contenant pas le critère,
 n : pour avoir les numéros de ligne,
 E : pour les expressions régulières plus compliquées,
 l : pour lister seulement les fichiers et non pas les lignes contenant
la chaîne recherchée,
 -r : Recherche récursivement dans tous les sous-répertoires
 c : la commande ne retourne que le nombre de lignes trouvées

Mme LAHLALI
Programmes utilitaires et filtres
(grep)
 Le modèle de critères peut contenir les caractères
spéciaux suivants :
 […] : Plage de caractères permis à cet emplacement
 [^…] : Plage de caractères non permet à cet emplacement
 .: Un caractère quelconque (y compris un espace)
 * : Signe de répétition. Agit sur le caractère placé devant le *
 $ : Matérialise une fin de ligne
 | : ou
 ^ : début de ligne
 \{…\} : Caractère de répétition, entre les accolades
 \{nombre\} nombre exacte

 \{nombre,\} nombre minimum

 \{nombre1,nombre2\} de nombre1 à nombre2

Mme LAHLALI
Programmes utilitaires et filtres
(grep)
Rq Ces caractères spéciaux doivent être
interprétés par la commande grep et non pas
par le shell

Le modèle de critères doit être mis entre


guillemets ou entre apostrophes
Exemple
grep ‘[A-Z][A-Z]*$’ timbres

Mme LAHLALI
Programmes utilitaires et filtres (grep)
Exemple :
 ^a va identifier les lignes commençant par le caractère a.
 a$ va identifier les lignes se terminant par le caractère a.
 ^chaine$ identifie les lignes qui contiennent strictement la chaîne
chaine.
 ^$ identifie une ligne vide
 [a–z] retrouve n’importe quelle lettre en minuscule
 [A–Z] retrouve n’importe quelle lettre en majuscule
 [0–9] retrouve n’importe quel chiffre
 [aeiouAEIUO] retrouve n’importe quelle voyelle
 [ˆaeiouAEIOU] retrouve n’importe quel caractère sauf une voyelle

Mme LAHLALI
Programmes utilitaires et filtres
(grep)
 nombre de lignes commençant par ! Dans le fichier
fichier1 :
grep –c "^!" fichier1
 recherche de STOP avec le numéro de la ligne :
grep -n -i stop fichier1
 liste de tous les fichiers qui n'ont pas "image" ou "son"
dans leur nom :
ls | grep -vE "(image|son)"
 liste des lignes contenant "image" ou "son" dans tous
les fichiers du répertoire courant
grep -E "(image|son)" *
 Grep –E est équivalente a egrep

Mme LAHLALI
Programmes utilitaires et filtres
commande cut
 Sélection de colonnes et de champs
Syntaxe cut –csélection_de_colonne [fichier …]
 Sélection_de_colonne pourra représenter l’une des
informations suivantes:
 Une colonne seule (par exemple -c5),
 Une plage de colonnes (par exemple -c3-10 ou -c8-),
 Une liste de nombres séparés par des virgules (par exemple
-c3,7,9),
 Une combinaison des trois formes précédentes (par exemple
-c1-3,7,20-).

Mme LAHLALI
commande cut
Ex : $ cat liste
Produit prix quantites
souris 30 15
disque 100 30
ecran 300 20
clavier 45 30

$ cut -c1-5 liste


Produ
souri
disqu
ecran
clavi

$ cut -c1-3,10-12,15- liste


Prorix quantites
sou0 15
dis0 30
ecr0 20
cla530

Mme LAHLALI
Programmes utilitaires et filtres
commande cut
 Sélection de champs
Syntaxe
cut [-dx] –fsélection_de_champ [fichier ..]
 x désigne le caractère de séparation de champs
 Sélection_de_champ suit les mêmes règles que la
sélection des colonnes

Mme LAHLALI
Les filtres
 Colonnes et champs
La commande cut permet de sélectionner des colonnes et des champs
(découpage vertical) dans un fichier.

 Colonnes
La syntaxe est la suivante :
cut -cColonnes [fic1...]
 Le format de sélection de colonne est le suivant :
 La numérotation des colonnes démarre à 1.
 une colonne seule, (ex -c2 pour la colonne 2)
 une plage (ex -c2-4 pour les colonnes 2, 3 et 4)
 une liste de colonnes (ex -c1,3,6 pour les colonnes 1, 3 et 6)
 les trois en même temps (ex -c1-3,5,6,12-)

Ex : $ cat liste $ cut -c1-5 liste $ cut -c1-3,10-12,15 liste


Produit prix quantites Produ Prorx quantites
souris 30 15 souri sou0 15
disque 100 30 disqu dis0 30
ecran 300 20 ecran ecr0 20
clavier 45 30 clavi cla530

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les filtres
 Colonnes et champs
 Champs
La commande cut permet aussi de sélectionner des champs. Ces champs doivent être
par défaut délimités par une tabulation, mais l'option -d permet de sélectionner un autre
caractère (espace, ; ...). La sélection des champs est identique à celle des colonnes.
Leur numérotation démarre à 1.

La syntaxe est la suivante :


cut -dc -fChamps [fic1...]

Ex 1 : $ cat liste $ cut -f1 liste $ cut -f1,3 liste


Produit prix quantites Produit Produit quantites
souris 30 15 souris souris 15
disque 100 30 disque disque 30
ecran 300 20 ecran ecran 20
clavier 45 30 clavier clavier 30
carte 45 30 carte carte 30

Ex 2 : $ cut -d: -f1,3 /etc/group

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Programmes utilitaires et filtres

 Tri par lignes


 La commande sort effectue un tri par lignes
en ordre croissant.
Syntaxe sort [options] [+pos1] [-pos2] …] [fichier …]
 Par défaut le tri porte sur chaque ligne prise en intégralité
 Avec les options +pos1 et –pos2, vous sélectionnerez les
champs à utiliser comme critères de tri.Sort numérote les
champs en commençant par 0.
 Le second critère ne sera mis en œuvre que si le premier critère
ne suffit pas à départager les lignes.

Mme LAHLALI
Programmes utilitaires et filtres
sort
 Les options utils:
 d : tri ascii
 n : tri numérique
 b : ignore les espaces placés en début de champs
 f : aucune différence n’est faite entre majuscules
et minuscules
 r : inverse l’ordre de tri, donc tri décroissant
 tc : le caractère « c » est défini comme caractère
de séparation entre les champs d’une ligne (par
défaut c’est l’espace)

Mme LAHLALI
Sort : exemples
 Le programme sort permet de trier les lignes d'un fichier. Les caractères ``+'' et ``-'' permettent de
spécifier de quelle colonne à quelle colonne le tri doit s'effectuer (1ere colonne pour 0, 2eme colonne
pour 1...) :
 Sort -t: +1 -2 /etc/passwd
 On peut spécifier la recherche sur un caractère situé à une position particulière, par exemple à la 2eme
position du 6eme champ :
 sort -t: +5.1 /etc/passwd
 Pour plusieurs critères de recherche, il faut spécifier derrière chaque champ le type de tri à mettre en
oeuvre pour ce critère. Par exemple :
 sort -t: +0d -1 +2nr -3 /etc/passwd
 triera le 1er champ par ordre dictionnaire, et le 3eme champ par ordre numérique inverse, et
 sort -t: +4.3n -4.5 +4.0n -4.2 /etc/passwd
 triera du 4eme au 6eme caractère du 5eme champ par ordre numérique, et du 1er au 3eme caractère
du 5eme champ par ordre numérique, si le premier tri s'est avéré insuffisant.

Bien sur, on peut combiner les commandes cut et sort. Par exemple :
 cut -d: -f3 /etc/passwd | sort -n > Nombres

Mme LAHLALI
Sort : exemples
Ex :
Soit le fichier carnet-addresse suivant :
ali:29:02:rabat
said:13:04:casablanca
nabil:75:01:fes
rachid:92:03:kénitra
Sort -t: carnet-addresse

Sort -t: +3 -4 carnet-addresse

Sort -t: -n +1 -2 carnet-addresse

Sort -t: +1 -2 carnet-addresse

Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Compression et décompression des fichiers
 Linux fournit un grand nombre de programmes de compression de fichiers. Le
meilleur est sans doute bzip2, et le plus compatible sans doute compress.
Cependant, le plus utilisé et le plus courant, surtout pour la distribution des
sources, reste incontestablement gzip. Nous allons décrire brièvement comment
compresser et décompresser des fichiers avec gzip et bzip2 dans ce paragraphe.
 La compression d'un fichier se fait de manière élémentaire :
gzip fichier
où fichier est le fichier à compresser. Après avoir effectué son travail, gzip
renomme le fichier compressé en « fichier.gz ».
 La compression d'un fichier avec bzip2 utilise exactement la même syntaxe,
à ceci près qu'il faut remplacer gzip par bzip2. De plus, le nom du fichier
compressé porte l'extension .bz2 au lieu de .gz. Le fichier obtenu est donc
nommé « fichier.bz2 ».
bzip2 fichier
 La décompression d'un fichier se fait à l'aide de la commande suivante :
gunzip fichier.gz
ou
bunzip2 fichier.bz2
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Archivage de fichiers
 La commande tar permet d'archiver ou de désarchiver des répertoires et des
fichiers de façon optimale. Ce programme permet simplement de regrouper tous
les fichiers qu'il doit archiver dans un seul fichier structuré en blocs
 La compression d'un fichier se fait de manière élémentaire :

tar options archive [fichiers]


où options sont les options qui indiquent l'opération à effectuer et comment elle doit être
réalisée, archive est le nom de l'archive qui doit être créée ou le nom du fichier de
périphérique du d'archivage, et fichiers est la liste des fichiers à archiver.
 La décompression d'un fichier se fait à l'aide de la commande suivante :
 cvf pour créer une archive ;
 z pour compresser
 tvf pour lister le contenu d'une archive ;
 xvf pour restaurer le contenu d'une archive.
 r pour ajouter un fichier a une archive

 Par exemple, pour archiver le contenu du répertoire courant dans le fichier


archive.tar, vous utiliserez la ligne de commande suivante :tar cvf archive.tar *
De plus, pour extraire le contenu de l'archive archive.tar, vous utiliserez la
commande suivante : tar xvf archive.tar
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Archivage de fichiers CPIO
 CPIO reçoit en entrée le résultat de recherche du find et redirige sa
sortie vers un fichier d’archive (compressé ou pas ).
 Exemples d’utilisation de CPIO :
 find /var/log/ -name *.log | cpio – -create | gzip > archive.cpio.gz
 find /var/log/ -name *log | cpio – -create > archive2.cpio
 Crée une archive …
 gunzip -c archive.cpio.gz | cpio – -list
 cpio – -list < archive2.cpio
 Liste le contenu d’une archive
 gunzip archive.cpio.gz | cpio – -extract -vu
 cpio – -extract -vu < archive2.cpio
 restaure toutes les données en écrasant le tout
 gunzip archive.cpio.gz | cpio – -extract -v

Mme LAHLALI
La commande zip
 On utilise alors les commandes zip et unzip.
 Création
 zip votre_archive.zip [liste des fichiers]
 zip -r votre_archive.zip [dossier]
 zip -r votre_archive.zip *
 (la dernière compresse tous les fichiers et dossiers du dossier courant).

 Afin de compresser plusieurs sous-répertoires séparément (bash) :

 zip -e votre_archive.zip [liste des fichiers] chiffre le zip et demande un mot de passe.
 Extraction
 unzip votre_archive.zip -d mon_repertoire
 Extraction de plusieurs .zip d'un même dossier
 unzip '*.zip'
 Archives zip découpées
 Quelques fois les archives zip sont découpées comme suit : archive.z01, archive.z02, …, archive.zip

 Il faut rassembler les fichiers dans une seule archive, puis extraire cette dernière :

 cat archive.z* > archive_globale.zip


 unzip archive_globale.zip

Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
Vous serez obligé, lorsque vous effectuerez la configuration de votre système,
d'éditer les fichiers de configuration (classiquement, ces fichiers sont placés dans le
répertoire /etc/). Ces modifications peuvent être réalisées avec n'importe quel éditeur
a priori, et il est même conseillé d'utiliser votre éditeur favori. Cependant, il faut savoir
se servir de vi, parce que c'est le seul éditeur qui sera toujours installé, et qui
fonctionnera en toutes circonstances.
Le prix à payer pour cette fiabilité est un nombre restreint de fonctionnalités.
Pour éditer un fichier avec vi, il suffit de passer le nom de ce fichier en ligne de
commande :
vi fichier
vi est un éditeur qui fonctionne dans plusieurs modes différents :
mode insertion : ce qui est tapé est interprété comme du texte à insérer
mode commande : ce qui est tapé est interprété comme une commande
mode ex : ce qui est tapé est interprété comme une commande ex

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
 Changement de mode :
 au démarrage, vi est en mode commande
 pour passer en mode insertion, taper une commande d ’insertion,
par exemple « i » (sans taper RETURN)
 pour retourner en mode commande, taper ESC
 pour passer en mode ex depuis le mode commande, taper « : »
 Déplacement du curseur :
 h : un caractère vers la gauche
 j : une ligne vers le bas
 k : une ligne vers le haut
 l : un caractère vers la droite
 G : dernière ligne
 nG : nième ligne
 w : début du mot suivant
 b : début du mot précédant

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
 insertion de texte :
 a : ajoute du texte après la position courante
 A : permet de placer le curseur en fin de ligne et de passer en mode insertion
 i : ajoute du texte avant la position courante
 o : crée une nouvelle ligne après la ligne courante
 O : crée une nouvelle avant la ligne courante

 Effacement de texte :
 x : efface le caractère courant
 dw : efface entre la position du curseur et le début du mot suivant
 dG : efface entre la position du curseur et la fin du fichier
 dd : efface la ligne courante
 La suppression d'un caractère se fait avec la touche Suppr ou la touche de
retour arrière (dite touche Backspace).
 Les commandes de vi peuvent être répétées un certain nombre de fois, en
spécifiant ce nombre avant de les écrire. Ainsi, pour supprimer 3 lignes, il suffira
de taper la commande suivante : 3dd

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
 Déplacer et copier du texte :
 yy : mémorise la ligne courante
 Y$ : mémorise ce qui va du curseur à la fin de la ligne
 p : insère le contenu mémorisé après la position courante
 P : insère le contenu mémorisé avant la position courante
 u : permet d'annuler la dernière opération effectuée
 U : permet de la ré-exécuter.

 Sortie de vi :
 :q : quitte sans sauvegarder (mode ex)
 :q! : force la sortie sans sauvegarder
 :w : sauvegarde l ’édition courante dans un fichier (mode ex)
 :wq : sauvegarde et quitte
 :wq! : force la sauvegarde et quitte

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Présentation
 Un processus Unix possède par défaut trois voies d’interaction avec l’extérieur
appelées entrées / sorties standard identifiées par un entier positif ou nul appelé
descripteur de fichier. Ces entrées / sorties standard sont :
 une entrée standard (stdin), de descripteur 0
 une sortie standard (stdout), de descripteur 1
 une sortie standard (stderr) pour les messages d’erreurs, de descripteur 2.

 Toute commande étant exécutée par un processus, nous dirons également qu’une
commande possède trois entrées / sorties standard.

 De manière générale, une commande de type filtre (ex : cat) prend ses données sur
son entrée standard qui correspond par défaut au clavier, affiche ses résultats sur
sa sortie standard, par défaut l’écran, et affiche les erreurs éventuelles sur sa
sortie standard pour les messages d’erreurs, par défaut l’écran également.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
On peut rediriger séparément chacune des trois entrées/sorties standard d’une
commande. Cela signifie qu’une commande pourra :
 lire les données à traiter à partir d’un fichier et non du clavier de l’utilisateur
 écrire les résultats ou erreurs dans un fichier et non à l’écran.

 Redirection de la sortie standard : > fichier ou 1> fichier


On se sert du caractère « > » pour rediriger la sortie standard (celle qui va
normalement sur écran).On indique ensuite le nom du fichier où seront placés les
résultats de sortie.

Ex : $ pwd
/home/etudiant
$ pwd > fich
$ => aucun résultat affiché à l’écran !
$ cat fich => le résultat a été enregistré dans le fichier fich
/home/etudiant

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
 Redirection de la sortie standard :
Pour concaténer (c’est à dire ajouter à la fin) la sortie standard d'une commande au
contenu d'un fichier, une nouvelle forme de redirection doit être utilisée : >> fichier

Ex : $ pwd
/home/etudiant
$ pwd > fich
$
$ date >> fich
$ cat fich
/home/etudiant
mer jan 14 17:22:27 UTC 2010

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
 Redirection de la sortie standard pour les messages d'erreur : 2> fichier
Par défaut les messages d'erreur s'affichent à l'écran (sortie standard par défaut). On
peut sauvegarder dans un fichier les messages d'erreur, pour analyse ultérieure

Ex : $ rmdir dossier2
rmdir: `dossier2': No such file or directory
$ rmdir dossier2 2>error.log
$
$ cat error.log
rmdir: `dossier2': No such file or directory

Comme pour la sortie standard, il est possible de concaténer la sortie standard pour
les messages d’erreur d'une commande au contenu d'un fichier : 2>> fichier

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
 Redirection de la sortie standard pour les messages d'erreur : 2> fichier
Pour rediriger la sortie standard pour les messages d’erreur vers la sortie
standard (c.a.d vers le fichier de descripteur 1), on utilisera la syntaxe : 2>&1
Cela est souvent utilisé lorsqu’on désire conserver dans un même fichier toutes les
sorties.

Ex :
$ ls vi test >trace 2>&1
$ cat trace
ls: vi: Aucun fichier ou répertoire de ce type
test

La sortie standard est redirigée vers le fichier trace puis la sortie standard pour les
messages d’erreur est redirigée vers la sortie standard, c.-à-d. également vers le
fichier trace.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
 Redirection de la sortie standard pour les messages d'erreur : 2> fichier
La syntaxe &> fichier est équivalente à la syntaxe > fichier 2>&1

Ex :
$ ls vi test &> trace
$ cat trace
ls: vi: Aucun fichier ou répertoire de ce type
test
Attention : Les redirections étant traitées de gauche à droite, l’ordre des redirections
est important.

Que fait la commande : ls vi test 2>&1 > trace

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Redirections élémentaires
 Redirection de l'entrée standard : < fichier
Les commandes qui attendent des données ou des paramètres depuis le clavier
peuvent aussi en recevoir depuis un fichier, à l'aide du caractère < .

Un exemple avec la commande wc (word count) qui permet de compter le


nombre de lignes, de mots et de caractères d'un fichier.
$ wc < resultat.txt
4 29 203

On peut aussi utiliser à la fois les deux types de redirection.


Ex :
$ wc < resultat.txt > compte.txt
$ cat compte.txt
4 29 203

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Les tubes (pipes)
Le mécanisme de tube ( symbolisé par le caractère | ) permet d’enchaîner l’exécution
de commandes successives en connectant la sortie standard d’une commande à
l’entrée standard de la commande suivante :
stdin stdout stdin stdout
commande commande

stderr stderr
Ex 1 : combien de fichiers dans le rep. courant ?
sans pipe:
ls > temp ; wc -l < temp ; rm temp
avec un pipe:
ls | wc -l

Ex 2 : ls -l /bin | more
les informations affichées par ls -l sont envoyées vers l’entrée de la commande
more qui les affiche écran par écran.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Pipelines
On appelle pipeline, une suite non vide de commandes connectées par des tubes :
cmd1 | ... | cmdn
Chaque commande est exécutée par un processus distinct, la sortie standard de la
commande cmdi-1 étant connectée à l’entrée standard de la commande cmdi.

Ex 1 : ls -l /bin | more
$ date | tee trace1 trace2 | wc -l Ex 2
1 ls -l /etc | grep csh | sort
$ cat trace1
mer jan 14 17:22:27 UTC 2010
$ cat trace2
mer jan 14 17:22:27 UTC 2010

La commande unix tee écrit le contenu de son entrée standard sur sa sortie standard tout
en gardant une copie dans le ou les fichiers dont on a passé le nom en argument.
Dans l’exemple ci-dessus, tee écrit le résultat de date dans les fichiers trace1 et trace2
ainsi que sur sa sortie standard, résultat passé à la commande wc -l.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Insertion de documents
Il existe un opérateur de redirection, qui n'est utilisé en pratique que dans les scripts
shell.
Cet opérateur permet d'insérer directement un texte complet dans le flux d'entrée
standard, sans avoir à placer ce document dans un fichier à part. Cette technique
permet donc de stocker des données avec le code des scripts shell, et de n'avoir ainsi
qu'un seul fichier contenant à la fois le script et ses données.
Cet opérateur est l'opérateur '<<', il s'utilise selon la syntaxe suivante :

<<EOF
texte
.
.
.
EOF
où texte est le contenu du texte à insérer, et EOF est un marqueur
quelconque qui sera utilisé seul sur une ligne afin de signaler la fin du texte.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 Insertion de documents
Par exemple, il est possible de créer un fichier test.txt de la manière
suivante :
cat <<fin >test.txt
Ceci est un fichier texte saisi directement dans le shell.
On peut écrire tout ce que l'on veut, et utiliser les fonctions d'éditions
de ligne du shell si l'on veut.
Pour terminer le fichier, il faut taper le mot "fin" tout seul, au début
d'une ligne vide.
fin

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 La commande tee
La commande tee est un petit programme permettant d'enregistrer les
données qu'il reçoit dans son flux d'entrée standard dans un fichier et
de les renvoyer simultanément vers son flux de sortie standard. Elle
est couramment utilisée, en conjonction avec les tubes, pour dupliquer
un flux de données. Sa syntaxe est la suivante :
tee fichier
où fichier est le nom du fichier dans lequel le flux d'entrée standard doit être
enregistré

Ex :
Supposons par exemple que l'on désire rediriger tous les messages (d'erreur ou
non) de la commande ls /proc/ dans un fichier result.txt, tout en continuant à
les visualiser sur l'écran. Pour cela, on utilisera la commande suivante :
ls -l /proc 2>&1 | tee result.txt
Voir le man !!

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Redirections
 La commande xargs
La commande xargs permet d'appeler une autre commande, en passant en paramètre
les données qu'elle reçoit dans le flux d'entrée standard.
Sa syntaxe est la suivante :
xargs commande
où commande est la commande que xargs doit exécuter. xargs construira une ligne de
commande complète pour cette commande, en utilisant comme paramètres les données
issues du flux d'entrée standard. Une fois cette ligne de commande construite, xargs
l'exécutera

Par exemple, la commande suivante : ls -l


peut être exécutée également de la manière suivante : xargs ls
et en tapant la chaîne de caractères « -l » suivie du caractère de fin de fichier CTRL+D.
Ex :
find / -name "*.txt" | xargs grep -l "test"
Cette commande est plus simple et plus efficace que la commande équivalente :
find / -name "*.txt“ -exec grep -l "test" {} \;
parce que grep n'est exécuté qu'une seule fois (alors que l'option -exec de la
commande find l'exécute pour chaque fichier trouvé).

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
L’enchaînement des commandes sous
Linux
 Il existe sous Linux trois caractères qui permettent l'enchainement des
commandes, il s'agit de ";", "||" et "&&".
 Le point virgule
 Un enchainement de commande avec un point virgule comme c'est le
cas dans l'exemple enchaînera les commandes sans se soucier de la
réussite ou de l'échec de chacune.
 Par exemple si l'on souhaite créer un dossier puis s'y rendre pour y
créer un fichier vide, on exécutera le commande suivante :
 Commande1;commande2

 mkdir ~/dossier1/; cd ~/dossier1/ ; touch file1

Mme LAHLALI
L’enchaînement des commandes sous Linux

 Le « && »
 Commande1 && commande2

 Il est parfois utile d'exécuter une commande que si les commandes


précédentes ont réussies. Par exemple si l'on souhaite vérifier
l'existence d'un dossier et, si il existe, y créer un fichier :

 cd ~/dossier1 && touch file1


 Ici, si la commande "cd /home/~/dossier1" ne s'exécute pas
correctement (que le dossier n'existe pas), la commande "touch file1"
qui créer un fichier vide ne s'exécutera pas non plus et par conséquent
ne déclenchera pas de message d'erreur.

Mme LAHLALI
L’enchaînement des commandes sous Linux

 Le "||«
 Commande1 || commande2
 Dans d'autres cas, il peut être intéressant d'exécuter une commande
uniquement si la commande précédente ne se déroule pas
correctement au lieu de mettre fin à toute la ligne de commande. Cela
est possible avec les caractères "||".

 Par exemple si l'on souhaite, comme auparavant, voir si un dossier


existe et si c'est le cas y créer un fichier. On peut également vouloir
créer le dossier si il n'est pas encore présent :

 cd ~/dossier1 || mkdir ~/dossier1 && touch file1

Mme LAHLALI
Les opérations de base
 Autres commandes utiles
 Passage en mode superviseur
Si vous êtes prudent, vous avez sans doute créé un compte utilisateur juste après
avoir installé votre système de base, et vous ne travaillez plus que dans ce compte.
Cette technique est prudente, cependant, elle pose un problème évident : vous ne
pouvez pas y faire votre travail d'administrateur. C'est pour cela que la commande su
a été créée. Cette commande permet de changer son identité dans le système :

su [utilisateur]
su - [utilisateur]
où utilisateur est l'utilisateur dont on veut prendre l'identité. Par défaut, si aucun
utilisateur n'est spécifié, le changement d'identité se fait vers l'utilisateur root.

Bien entendu, il va de soi que la commande su demande le mot de passe avant


d'obtempérer...

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
 Le fichier /etc/passwd
 Le compte d'un utilisateur est représenté par le login et un mot de passe associé.
 Les utilisateurs sont identifiés par le système grâce à un UID (identifiant d'utilisateur)
unique qui est une valeur numérique.
 Les informations sur les comptes utilisateurs disponibles sur une machine Unix sont
regroupées dans le fichier /etc/passwd.
 Chaque ligne de ce fichier correspond à un compte.
 Une ligne est composée de 7 champs séparés par des :. Les champs sont les
suivants :
login:mot-de-passe:UID:GID:info-utilisateur:répertoire-principal:shell
 Login : c'est l'identifiant que doit entrer l'utilisateur pour s'authentifier.
 Mot de passe : il est évident que le mot de passe soit crypter
 UID : il s'agit de l'identifiant unique de l'utilisateur ( root possède l'UID 0 et les UID
inférieurs à 100 sont réservés aux comptes système )
 GID : l'identifiant du groupe principal de l'utilisateur
 Info utilisateur : des informations sur l'utilisateur. chaque information est séparée par une
virgule (le nom complet, numéro de poste ...).
 répertoire personnel : Il s'agit du répertoire dans lequel sont stockés les fichiers
appartenant à l'utilisateur. En général de la forme /home/login.
 shell : c'est l'interpréteur de commandes qui sera lancé après l'authentification.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
 Le fichier /etc/shadow
Le fichier /etc/passwd est accessible à tout le monde. en effet, certaines commandes
ont besoin de connaître la liste des utilisateurs ou la correspondance login/UID.
La présence du mot de passe dans /etc/passwd, même crypté, pose un problème de
sécurité. La solution à ce problème est de stocker les mots de passe dans un fichier
différent : /etc/shadow. Pour garantir la sécurité, seul l'administrateur peut le lire.
Une ligne dans le fichier /etc/shadow est composé de neuf champs séparés par le
caractère :.
 Login : c'est l'identifiant que doit entrer l'utilisateur pour s'authentifier.
 Mot de passe : Une * dans ce champ indique le compte ne peut être connecté (cas du
compte bin par exemple). Un mot de passe commençant par !! indique que le compte est
verrouillé.
 Age : Le nombre de jour écoulé depuis le 1er janvier 1970 et la date de mise à jour du mot de
passe.
 Période de changement : Le nombre minimum de jours entre deux changement de mots de
passe. Un 0 indique que l'utilisateur peut changer le mot de passe à n'importe quel moment.
 Durée de validité : Le nombre maximum de jours pendant lesquels le mots de passe est
valide. La valeur 99999 indique que le mot de passe est toujours valide.
 Durée de validité restant : Nombre de jours avant l'expiration.
 Durée d'invalidation : Nombre de jour après l'expiration provoquant la désactivation
du compte. Un champ vide indique qu'il n'y a aucune désactivation
 Date d'expiration : Exprimée en nombre de jour depuis la date de référence (1/1/70)
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
/etc/skel
 Après la création d’un compte utilisateur, tous les fichiers de
/etc/skel sont copiés dans le répertoire personnel de cet utilisateur.

 On place dans ce répertoire les fichiers dont tous le monde doit en


avoir une copie

87
Gestion des utilisateurs et des groupes
 Commandes de gestion des utilisateurs
 Ajouter un utilisateur
La commande useradd permet de créer un utilisateur :

Les options: useradd [options] login


-u uid pour fixer l'identifiant uid
-g groupe-primaire
fixe l'appartenance de l'utilisateur à une liste
-G liste de groupes secondaires (séparateur , sans
espace)

-s shell par défaut, attribution du shell par défaut bash

-c commentaire

-d rep. personnel par défaut dans le répertoire /home

fixe la date d'expiration du compte (format


-e date-expiration
MM/JJ/AA)

-m pour créer le répertoire personnel

recopie le contenu de rep-skel dans le rép.


-k rep-skel
personnel, par défaut /etc/skel
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Gestion des utilisateurs et des groupes
Exemple:
# Useradd –c « compte de test » -m –d /home/toto –G test –k /etc/skel toto

 Useradd user2
 Pour examiner les valeurs par défaut appliquées par useradd :
 commande useradd -D ou
 éditer /etc/default/useradd
GROUP=100 identifiant du groupe primaire HOME=/home
racine des rép. personnels INACTIVE=-1 (nb de jours avant destruction
du compte)
EXPIRE= nb de jours avant expiration du mot de
passe
SHELL=/bin/bash shell de connexion attribué au
compte
SKEL=/etc/skel fichiers recopiés par défaut dans
chaque rép. personnel

Mme LAHLALI
Gestion des utilisateurs et des groupes
 Commandes de gestion des utilisateurs

 Modifier les groupes


Pour modifier les groupes secondaires d'un utilisateur, on utilise la commande
usermod qui est similaire à useradd et supporte les mêmes options :
# usermod -G toto,users,fileshare,dev toto
Ceci permet d'ajouter l'utilisateur "toto" dans les groupes "toto", "users", "fileshare" et
"dev".
On peut aussi ajouter et enlever des utilisateurs d'un groupe grâce à la commande
gpasswd (Consulter les pages de manuels pour voir les option de cette commande)

 Suppression d'un utilisateur

La commande userdel permet de supprimer un utilisateur :

userdel [options] login


L'option -r efface le répertoire personnel de l'utilisateur.

Mme LAHLALI
Gestion des utilisateurs
 Commandes de gestion des utilisateurs
 Changer le mot de passe d'un utilisateur
La commande passwd permet de changer le mot de passe d'un utilisateur.
L'administrateur peut changer n'importe quel mot de passe. Un utilisateur normal
ne peut changer que son propre mot de passe.
passwd [options] [login]
Si l'argument login n'est pas spécifié, le changement de mot de passe s'applique
sur l'utilisateur courrant.
Les options:
• -d , pour supprimer le mot de passe, l'utilisateur pourra se connecter sans !
• -l , pour verrouiller le compte et empêcher sa connexion.
• -u , pour déverrouiller.

 Afficher des informations sur un utilisateur


Pour connaître l'identité de l'utilisateur courant (bien que cela soit affiché dans la
majorité des prompts par défaut) on utilise la commande whoami.
Elle affiche le login de l'utilisateur courant. Les commandes who, users et w
permettent de connaître les utilisateurs actuellement connectés sur la machine.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Gestion des utilisateurs
chfn Pour décrire un utilisateur :
Cette commande permet d'indiquer dans le champ numéro 5 du
fichier /etc/passwd différentes informations sur un utilisateur, son nom complet,
son bureau, ses numeros de téléphone (séparées par des virgules).
finger affiche des informations sur un utilisateur.
Exemple : afficher les informations de l'utilisateur Léa.
$ finger lea
id (identity) affiche le nom de l'utilisateur courant et le
numéro associé, ainsi que son groupe et le numéro associé.
Exemple : afficher les identifiants de l'utilisateur courant et de
ses groupes.
$ id
uid=1000(lea) gid=100(users)
groups=100(users),11(floppy),17(audio),18(video),19(cdrom)
,93(scanner)

Mme LAHLALI
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
 Les Groupes
Le fichier /etc/group contient les informations relatives au groupes présents sur le
système.
Voici sa syntaxe : groupe:*:GID:utilisateurs
 groupe : le nom du groupe
 * : la présence de ce champ est lié aux anciennes versions d'Unix et n'est plus
utilisé. Il peut rester vide ou contenir le caractère "*" ou "x".
 GID : c'est l'identifiant unique du groupe sous la forme d'une valeur
numérique.
 utilisateur : il s'agit de la liste des utilisateurs appartenant au groupe.
Ils sont séparés par des virgules :

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Gestion des utilisateurs
 Commandes de gestion des groupes
 Créer un groupe
La commande groupadd permet de créer un nouveau groupe :
groupadd option groupe
Les options
g :specifie le GID du groupe
 Modifier un groupe
Pour supprimer un groupe, on utilise la commande groupmod :
groupmod option groupes
Les options g :specifie le GID du groupe
n;modifier le nom du groupe
 Suppression d'un groupe
Pour supprimer un groupe, on utilise la commande groupdel :
groupdel GID
Note:
on ne peut pas supprimer un groupe si c'est le groupe principal d'un utilisateur.
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Gestion des utilisateurs
 Commandes de gestion des groupes
 Modifier les groupes secondaires d'un compte
Pour modifier les groupes secondaires d'un utilisateur, on utilise la commande
usermod qui est similaire à useradd et supporte les mêmes options :
# usermod -G toto,users,fileshare,dev toto
Ceci permet d'ajouter l'utilisateur "toto" dans les groupes "toto", "users", "fileshare" et
"dev".
On peut aussi ajouter et enlever des utilisateurs d'un groupe grâce à la commande
gpasswd (Consulter les pages de manuels pour voir les option de cette commande)

 Afficher des informations sur les groupes


Pour connaître les groupes auxquels appartient un utilisateur, on utilise la
commande groups. Sans argument, elle affiche les groupes de l'utilisateur courant.
Pour connaître les groupes d'un utilisateur particulier, il suffit de passer son login en
argument de la commande :
# groups
# groups toto

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Gestion des utilisateurs
 ajout d’un utilisateur dans un groupe :

On ajouter les utilisateurs user2 et user3 au groupe tri1a

 gpasswd -a user2 tri1a


 gpasswd -a user3 tri1a
 Suppression d’un utilisateur d’un groupe :

On supprime l’utilisateur user3 du groupe tri1a


gpasswd -d user3 tri1a
 Administrer un groupe
gpasswd -A user2 tri1a
commande newgrp permet à un utilisateur de changer son groupe courant.
 Par exemple :
bash$ newgrp actrices
bash$ id
uid=500 (sandra) gid=400 (actrices) groups=500(sandra),100(users), 400(actrices)

Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Classes d'utilisateurs
 User (l’utilisateur)
 le propriétaire du fichier (User)
 il est désigné par la lettre u

 Group (groupe)
 le groupe dans lequel appartient le propriétaire (Group)
 il est désigné par la lettre g

 Others (autres)
 regroupe tous les utilisateurs qui ne sont ni le propriétaire ni faisant partir du
même groupe que le propriétaire
 ils sont désignés par la lettre o

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Types d'accès
 Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier donné :
 Read (r) : en lecture
 Write (w): en écriture
 eXecute (x) : en exécution

 Au niveau répertoire, ces droits signifient :


 Read (r) : droit de lister les fichiers présents dans ce répertoire
 Write (w): droit de créer ou de détruire un fichier qui s'y trouve
 eXecute (x) : droit de traverser ce répertoire

 3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès


différents
 Par exemple : -rwxr-x--- signifie :
 qu'il s'agit d'un fichier régulier ( le 1er caractère est un tiret -)
 que le propriétaire a tous les droits (ReadWriteExecute)
 que les membres du groupe ont les droits de Lire
 que les autres n'ont aucun droit, ni de lecture, ni d'écriture, ni d'exécution

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Affichage des caractéristiques : ls -l

groupe
-rw-r--r-- 1 stagiaire ofppt 58K 16 Jul 09:19 tp1.tex

nb liens propriétaire taille date nom


group
Type :
d;-;l
-rw-r--r--
user others
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Changer les permissions
chmod <classe op perm, …> ou nnn <fichier>

classe:
u : user
g : group  chaque perm = 1 valeur:
o : others
a : all r 4

op: w 2
= : affectation x 1
- : suppr.  déf. desrien 0 (par addition) pour chaque
permissions
+ : ajout classe

perm:
r : lecture
w : écriture
x : exécution

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Changer les permissions
exemples:
chmod u=rwx,g=rx,o=r tp1.tex
chmod a+x script.sh
chmod 755 script.sh

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Umask
 La commande umask ne change pas les droits sur les fichiers et répertoires
existants mais sur les fichier et répertoires à créer

 Par défaut, tous les fichiers créés ont comme droit 666 et les dossiers 777.
l'umask est un masque qui va réduire ces droits.

 Lors de la création d'un fichier, le système va soustraire l'umask aux droits par
défaut.

 Par l'umask est à 0022 on a donc 666 - 022 = 644.

 Ainsi, dans certains cas, il est plus intéressant de changer la valeur de umask
que de faire des chmod à répétition ensuite

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Changement de propriétaire et de groupe
 Le changement de propriétaire d'un fichier ne peut être réalisé que par
l'administrateur du système. Cette opération se fait à l'aide de la commande
suivante :
chown utilisateur fichier
où utilisateur est le nom de l'utilisateur qui doit devenir propriétaire du fichier, et
fichier est le fichier devant changer de propriétaire.

 Le changement de groupe peut être réalisé par n'importe quel utilisateur, mais on
ne peut donner un fichier qu'à l'un des groupes dont on est membre. Cette
opération se fait à l'aide de la commande suivante :
chgrp groupe fichier
où groupe est le nom du groupe qui doit être affecté au fichier, et fichier est le
fichier devant changer de groupe. Bien entendu, l'administrateur peut affecter un
fichier à n'importe quel groupe d'utilisateur.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès spéciaux (étendus )
 Lorsque vous exécutez une commande, celle-ci se lance avec votre uid. Cette
commande aura donc accès seulement aux fichiers où vous possédez des droits.
 Certaines commandes posent le problème suivant : pour s’exécuter, elles
doivent donner des permissions qu’un utilisateur ne devrait normalement pas
avoir. L’exemple le plus évident est celui de la commande « passwd » qui permet
de modifier le mot de passe. Cette commande modifie le fichier « /etc/passwd »
(ou le fichier « /etc/shadow ») qui contient entre autres les mots de passe cryptés
de tous les utilisateurs, alors que l’utilisateur normal n’a pas les permissions
d’écriture sur ce fichier.
 $ ls -l /etc/passwd
-rw-r--r-- 1 root system 4010 Jun 6 12:26 /etc/passwd
 Nous voyons que ce fichier appartient à root, et que seul root peut y écrire.
 Un utilisateur simple ne peut lire que son contenu sans interagir.
 La commande passwd ne devrait donc pas pourvoir modifier les fichiers

 Voyons la commande passwd (/bin/passwd ou /usr/bin/passwd) :


$ ls -l /usr/bin/passwd
-rws--x--x 3 root bin 16384 Apr 12 1999 /usr/bin/passwd

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Les droits spéciaux
 SUID :
Un fichier dont le SUID bit est positionné est un fichier exécutable avec les droits
de son propriétaire.
-rwsr-xr-x
 SGID :
Un fichier dont le SGID bit est positionné est un fichier exécutable avec les droits
du groupe de son propriétaire.
-rwxr-sr--
 Sticky bit :
 Pour un répertoire, permet d’interdire la suppression des fichiers qu’il
contient à tout utilisateur autre que le propriétaire. Néanmoins, il est toujours
possible pour un utilisateur possédant les droits d’écriture sur ce fichier de le
modifier.
 Pour un fichier, le bit collant (sticky bit) indique alors que ce fichier doit
encore rester en mémoire vive après son exécution.
-rwxr-xr-t

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les opérations de base
 Les droits d'accès
 Les droits spéciaux
 La commande chmod permet de placer les SUID-Bit et SGID-Bit.
chmod u+s fichier
chmod g+s fichier
Les valeurs octales sont 4000 pour le SUID-Bit et 2000 pour le SGID-Bit.
chmod 4755 fichier
chmod 2755 fichier
 La commande chmod permet de placer le Sticky bit.
chmod o+t fichier
En octal, on utilisera la valeur 1000.
chmod 1755 fichier
 Prenons comme exemple le répertoire /tmp.
$ ls -ld /tmp
drwxrwxrwx 6 root system 16384 Aug 14 13:22 tmp
$ chmod o+t /tmp ou $ chmod 1777 /tmp
$ ls -ld /tmp
drwxrwxrwt 6 root system 16384 Aug 14 13:22 tmp

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Présentation
Une unité de stockage (disque dur interne ou externe, clé USB, CDROM, DVDROM,
disquette, …), pour être utilisée par un ordinateur doit être formatée. Cela signifie
qu'on doit lui assigner un système de fichiers, indiquant les caractéristiques
possibles des répertoires et fichiers tels que le nom, la hiérarchisation, la taille
maximale, les droits d'accès et d'autres options.

 Rappel sur la désignation des partitions


 Le système voit les périphériques au travers d'une arborescence située dans le
répertoire système /dev/* dont la dénomination dépend du type de périphérique
et de l'ordre de branchement. (exemples pour les périphériques de
stockages: /dev/hda /dev/hdb /dev/sda /dev/sdb …)
 Les partitions sont désignées par leur numéro dans le disque.
(exmples : /dev/hda1 /dev/hda2 …)

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Partitionnement de disque

 Les outils pour partitionner un disque sous


linux: fdisk, parted,gparted…
 L'utilitaire fdisk de Linux permet de créer des
partitions sur votre disque dur au même titre
que son homologue sous DOS

Mme LAHLALI
Partitionnement de disque

 Dans l'exemple suivant on indique explicitement


à fdisk que l'on désire partitionner le second
disque dur :
 fdisk /dev/hdb

Mme LAHLALI
Partitionnement de disque
Sous Linux, les commandes de fdisk sont appelées par des
touches, voici la liste des plus importantes :
Commande Description
d destruction d'une partition
l liste des types de partitions
m Impression du menu en cours
n création d'une nouvelle partition
p Affichage des partitions
q Sortie de fdisk sans sauvegarde des
paramètres
t Modification du type de partition
v Vérification de la table des partitions
w Sauvegarde des modifications et sortie de
fdis

Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Création des systèmes de fichiers
 Pour chaque système de fichiers, une commande spécifique est fournie afin de
le créer. Toutefois, une commande générique de création de systèmes de
fichiers permet d'uniformiser la manière de créer les systèmes de fichiers,
rendant ainsi inutile la connaissance de ces commandes spécifiques.

 Cette commande générique est la commande mkfs. Elle prend en paramètre le


type de système de fichiers à créer, que l'on peut spécifier à l'aide de l'option -t

 Ainsi, pour créer un système de fichiers JFS (système de fichiers journalisé créé
par IBM) sur la première partition du premier disque SCSI, il suffit d'exécuter la
commande suivante :
mkfs -t jfs /dev/sda1
mkfs -t ext4 /dev/sdb1

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Montage des systèmes de fichiers
 Comme il l'a été vu dans le chapitre expliquant les généralités sur Unix, les
systèmes de fichiers ne sont donc pas accessibles directement. Ils doivent en effet
subir une opération que l'on nomme le montage avant de pouvoir être utilisés.
 Le montage est donc l'opération qui consiste à associer un répertoire au point
d'entrée d'un système de fichiers. Une fois monté, les données d'un système de
fichiers sont accessibles à partir de ce répertoire
 L'opération permettant de monter un disque suit la syntaxe suivante :
mount [-t type] fichier base
 fichier est le fichier contenant le système de fichiers à monter (en général, il
s'agit d'un fichier spécial de périphérique )
 base est le point de montage, c'est-à-dire le répertoire à partir duquel le
système de fichiers doit être accédé
 L'option -t permet d'indiquer le type du système de fichiers

 Exemple :
mount /dev/hda3 /dev/stock
 Rq : Le type de fichier peut être détecté automatiquement par mount par une
analyse des premiers bits de la partition demandée, néanmoins dans
certains cas il peut être nécessaire de lui imposer un format.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Démontage des systèmes de fichiers
 Il est nécessaire de signaler au système d'exploitation que l'on désire arrêter un
système de fichiers avant de couper le courant, ou que l'on désire retirer un lecteur
amovible avant de le faire, afin qu'il puisse effectuer les synchronisations
nécessaires. Ne pas le faire risquerait de provoquer des pertes de données
irrémédiables. Cette opération s'appelle simplement le démontage.
 La commande permettant de démonter un système de fichiers est beaucoup plus
simple que celle permettant de les monter, car aucune option n'est nécessaire. Il
suffit en effet d'exécuter l'une des commandes suivantes :
umount fichier
ou :
umount base

 fichier représente le fichier contenant le système de fichiers à démonter


 base est le répertoire dans lequel ce système de fichiers est monté.
 Rq : qu'il est impossible de démonter un système de fichiers qui est en cours
d'utilisation par quelqu'un

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Sous Linux, toutes les partitions utilisées par le système doivent être listées dans
/etc/fstab.
 Fstab est un fichier de configuration qui contient les informations sur les partitions et
les périphériques de stockages du système. C’est via ce fichier que l’on peut
informer le système sur où et comment les partitions et les périphériques de
stockages doivent être montés. C’est un simple fichier texte que l’on peut éditer avec
son éditeur de texte préféré.
 voici un exemple de fichier fstab :
/dev/sda2 / ext2 defaults 1 1
/dev/sdb1 /home ext2 defaults 1 2
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto rw,noauto,user,sync 0 0
proc /proc proc defaults 0 0
/dev/sda1 swap swap pri=42 0 0

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Colonne 1 : Nom du périphérique
Linux utilise un système particulier pour nommer les périphériques. Le premier
disque dur dans son ensemble est nommé /dev/sda, le second /dev/sdb. La
première partition du premier disque dur est nommée /dev/sda1, la seconde
/dev/sda2 etc…
Pour les lecteurs de disques, le nommage est aussi simple. /dev/cdom ou /dev/dvd
pour un lecteur de cdrom/dvd, /dev/fd0 pour un lecteur de disquette.
 Colonne 2 : Les points de montage
Comme expliqué plus haut, c’est le dossier par lequel on pourra accéder à la
partition.
 / : c’est la racine du système d’exploitation. C’est ici qu’on trouvera /bin, /etc,
/home, /mnt etc…
 /home : si vous utilisez une partition différente pour votre /home vous devez le
renseigner ici.
 /media/cdrom : le point de montage du lecteur optique. Lorsque vous insérez
un cdrom, vous pourrez y acceder en lecture dans ce dossier.
 /media/floppy : idem pour une disquette.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Colonne 3 : Système de fichier
On indique ici le type de FS de la partition concernée. Beaucoup de systèmes de
fichiers sont supportés dont ext2, ext3, swap, vfat (pout le fat32), ntfs (pour ntfs en
lecture seul) ntfs-3g (pour du ntfs en lecture écriture si le paquet ntfs-3g est installé
sur votre machine) et bien d’autres. Lorsque auto est renseigné ici, cela signifie
qu’on laisse le système détecter lui même le système de fichier. Ceci est
particulièrement utilisé pour les cdroms et les disquettes
 Colonne 4 : Les options
 auto et noauto : Le système de fichier est (n’est pas) monté automatiquement
au démarrage de la machine.
 user et nouser : user permet aux utilisateurs normaux de monter le
périphérique. nouser leur enlève cette possibilité.
 exec et noexec : permet d’exécuter (ne pas exécuter) des binaires sur la
partition concernée.
 ro : montage en lecture seule.
 rw : montage en lecture écriture.
 sync et async : Les entrées sorties se font en mode synchrone / asynchrone.
 defaults : utilise les options par défaut, c’est à dire rw,exec,auto,nouser,async.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiersé
 Colonne 5 et 6 : option dump et fsck
 Dump est un outil de sauvegarde et fsck un outil de vérification du système de
fichier.
 La cinquième colonne définie donc l’option de dump. Dump utilise ce chiffre
pour savoir s’il doit faire un backup des données (1) ou pas (0).
 La sixième colonne pour fsck. Il utilise ce chiffre pour savoir, sur un disque
donné, dans quel ordre il doit effectuer les vérifications.
Pour le système de fichiers racine, la valeur devrait être 1. Pour les autres
systèmes de fichiers, la valeur devrait être 2 (ou 0 s'il n'est pas nécessaire de
vérifier le système de fichiers).

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Monter ses partitions Windows
 Préparer le montage d'une partition fat
Le système de fichiers de type FAT (FAT 16 ou FAT 32) est utilisé par
Windows 95/98/ME et parfois par Windows 2000/XP. Le pilote Linux pour ce
type de système de fichiers permet d'y avoir accès en lecture et en écriture.
Supposons que votre partition Windows de type FAT soit /dev/hda1 (première
partition primaire sur le disque dur ide maître de la première nappe). Nous
allons la monter dans le répertoire /mnt/win1 qu'il faut créer au préalable :
# mkdir /media/win1
Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :
/dev/hda1 /media/win1 vfat defaults,user 0 0

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Monter ses partitions Windows
 Préparer le montage d'une partition NTFS
Le système de fichiers de type ntfs est souvent utilisé par Windows 2000, XP et
Vista. Pour pouvoir lire et écrire sur ces systèmes, il faut d'abord installer un
pilote particulier, ntfs-3g.
Supposons que votre partition Windows de type ntfs soit /dev/sda1 (premier
lecteur logique sur le premier disque dur sata). Nous allons la monter dans le
répertoire /media/win2 qu'il faut créer au préalable :
# mkdir /media/win2
Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :
/dev/sda1 /media/win2 ntfs-3g defaults,user 0 0
Note
Le noyau Linux comporte déjà un pilote pour le système de fichiers ntfs, mais celui-ci ne permet
pas de créer de nouveaux fichiers. ntfs-3g, qui est un pilote qui permet un accès complet en
lecture et en écriture.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Monter les partitions

Vous avez rajouté les entrées nécessaires dans le fichier /etc/fstab :


vos partitions Windows seront donc dorénavant montées automatiquement
dès le démarrage. Mais pour éviter de redémarrer, vous allez simplement
demander au système de monter les partitions citées dans fstab et non
déjà montées avec la commande suivante :

# mount -a

Si aucun message d'erreur n'apparaît, vous devez maintenant pouvoir voir


le contenu de votre ou vos partition(s) Windows dans l'arborescence de
votre système.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
 Monter sa clé usb
 Si vous avez une clé usb (ou n'importe quel périphérique compatible avec la
norme de stockage de masse usb), commencez par créer le répertoire dans
lequel vous monterez la clé :
# mkdir /media/clef0
 Identifiez le nom de périphérique correspondant à votre clef usb : affichez la
liste des partitions disponibles avec la commande cat /proc/partitions, puis
introduisez votre clef, et, après quelques secondes, affichez à nouveau le
contenu de /proc/partitions, dans lequel votre clef à dû apparaître.

 Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :


/dev/sda6 /media/clef0 vfat defaults,user 0 0

 Vous pouvez alors monter votre clé usb :


# mount /media/clef0
Attention
N'oubliez pas de démonter votre clé usb avant de la débrancher, sous peine de corrompre
les données qui y sont stockées : umount /media/clef0
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Outils divers
 Espace disque et mémoire
 La commande df (disk free) permet d’afficher à l’écran la taille de l’espace
disque occupée et la taille de l’espace disque libre.
Ce n’est pas lisible, puisque la taille des données est affichée en octet. On
utilise alors l’option -h
 La commande du (disk usage) permet d’afficher la taille d’un répertoire et de
tous les sous répertoires récursifs qu’il contient
Évidemment comme pour la commande df, la taille occupée est en octet, on
utilise donc l’option -h.

Voir le man !!

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Définition et environnement
 Un processus représente à la fois un programme en cours d'exécution et tout son
environnement d'exécution (mémoire, état, identification, propriétaire, père ...).
 Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par
divers états ou process state :
 Actif: le processus utilise le processeur et est donc en train de réaliser des actions pour
lequel il a été conçu.
 Exécutable : le processus est en exécution mais il est en attente de libération du
processeur qui est utilisé par un processus actif. Pour l'utilisateur, ceci est invisible car
l'opération est très rapide.
 Endormi: comme son nom l'indique, le processus est endormi, il ne fait rien.
Par exemple, un processus peut attendre un événement pour redevenir Actif, comme par
exemple, que l'on appuie sur une touche lors de l'affichage d'un message.
 Zombie: un processus zombi est un processus terminé mais le système ou le processus
parent n'en a pas été informé
 le système étant multi-tâches un certain nombre de processus tournent déjà sur la
machine sans que nous le voyons. De même le shell que nous utilisons est lui-
même un processus. Quand une commande est saisie, le shell créé un nouveau
processus pour l'exécuter, ce processus devient un processus enfant du shell

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Liste des processus
 La commande ps (process status) permet d'avoir des informations sur les processus
en cours. Lancée seule, elle n'affiche que les processus en cours lancés depuis
l'utilisateur et la console actuels :
$ ps
PID TTY TIME CMD
2663 pts/2 00:00.00 bash
7082 pts/2 00:00.00 ps
 Pour avoir plus d'informations, on peut utiliser l'option -f.
$ ps -f
UID PID PPID C STIME TTY TIME CMD
root 2663 2656 0 jan08 pts/2 00:00.00 /bin/bash
root 7198 2663 0 03:20 pts/2 00:00.00 ps -f
 Colonne Définition
UID User ID, nom de l'utilisateur
PID Process ID, numéro du processus
PPID Parent Process ID, numéro du processus père
C Facteur de priorité, plus la valeur est grande plus la priorité est élevée
STIME Heure de lancement du processus
TTY Nom du terminal depuis lequel le processus a été lancé.
TIME Durée de traitement du processus
CMD Commande exécutée

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Liste des processus
 Options de la commande ps
 Les options les plus utiles sont :
 a : ( autres ) présente également les processus des autres utilisateurs
 x : affiche les processus qui n’ont pas de terminal de contrôle (système)
 u : présente le nom de l’utilisateur et l’heure de lancement

 ps –aux : affiche tous les processus d’un système

 Autres commande d’affichage des processus


 La commande pstree permet d’afficher les processus sous forme d’arborescence
 La commande top : outil semi-graphique présentant un grand nombre
d’informations en temps réel sur les processus...

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus

Lorsque vous lancez un processus gourmand en ressources système,


et qui à vos yeux est prioritaire sur tous les autres vous avez la
possibilité d informer votre système avec les commandes nice et
renice.
Vous pouvez utiliser la commande nice pour modifier cette priorité :

nice -n 18 commande

Nice utilise des niveaux de priorité.

Ces niveaux sont compris entre -20 (priorité absolue sur les autres

processus) et +20 (tout les autres processus sont prioritaire).


Attention : les valeurs négatives ne peuvent être utilisées que par

l'utilisateur root.

Mme LAHLALI
Contrôle des processus
 Pour connaître la priorité d'un processus, utilisez la commande top, ou ps
elle affiche la valeur de la priorité pour chaque processus dans la
colonne NI.
 Un processus hérite de la priorité de son père par défaut (en général 0
car init est à 0). Mais il se peut que vous vouliez changer ça valeur. Pour
cela il existe la commande renice :
 6969 est un pid
 renice 10 6969
 Attention toutefois, un utilisateur de base ne peut qu'augmenter la valeur
de nice et donc réduire la priorité d'un processus. Seul root peut la
réduire et éventuellement lui donner une valeur négative.
 Faites attention, utiliser des valeurs négatives fortes peut poser quelques
problèmes sur votre système, faites quelques tests.

Mme LAHLALI
Contrôle des processus
 Arrière plan / Avant plan
 Lorsque vous lancez un programme, le shell prend en compte l'exécution du
processus, ainsi il faut attendre la fin de celui-ci avant d'avoir à nouveau le prompt.
On dit que le processus est en "Avant Plan" dans cet état il peut recevoir directement
des signaux par les combinaisons de touches Ctrl-?.

 Il existe un autre mode dans lequel le processus est dit en "Arrière plan",
contrairement au mode "Avant Plan" lors de l'exécution du programme, le shell
affiche le prompt directement sans attendre la fin du processus.

 Afin de mettre le processus dans ce mode il suffit de placer un "&" à la fin de la


commande, il est ainsi vu comme un job possédant un numéro, attaché au terminal
(tty) ou pseudo terminal (pts/?) dans lequel il a été lancé. Dans cet état aucun
caractère de contrôle (Ctrl-?) n'est possible.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Arrêt d'un processus / signaux
 Lorsqu'un processus tourne en tâche de fond il ne peux pas être arrêté par une
quelconque combinaison de touches. Pour cela il faut employer la commande kill.
Contrairement à ce que son nom semble indiquer, le rôle de cette commande n'est
pas forcément de détruire ou de terminer un processus mais d'envoyer des signaux
aux processus.
 Le signal est l'un des moyens de communication entre les processus. Lorsqu'on
envoie un signal à un processus, ce dernier doit l'intercepter et réagir en fonction de
celui-ci. Les signaux sont numérotés et nommés.
kill -Num_signal PID [PID2...]
où signal est une option qui permet de préciser le signal qui doit être envoyé, et PID
est le numéro du processus qui doit le recevoir. Les numéros de signaux les plus
importants sont décrits dans le tableau ci-dessous :
Numéro de signal Signification
15 Signal de terminaison de processus.
9 Signal de destruction inconditionnelle de processus.
19 Signal de suspension de processus.
18 Signal de reprise d'exécution d'un processus suspendu.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Arrêt d'un processus / signaux
 Tout processus lancé en ligne de commande peut être arrêté immédiatement sous
Linux. Pour cela, deux méthodes sont disponibles.
 La première consiste à taper la combinaison de touches CTRL+C lorsque le
processus est en cours d'exécution interactive (c'est-à-dire lorsqu'il n'a pas été
lancé en arrière-plan). S'il a été lancé en arrière-plan, on peut soit le ramener en
avant-plan (avec la commande fg, que l'on verra plus loin) avant d'utiliser
CTRL+C,
 soit lui envoyer le signal de terminaison à l'aide de la commande kill vue
précédemment. Dans le cas d'une ligne de commande, le signal de terminaison
est transmis au processus maître de la ligne de commande, et est ensuite
propagé à l'ensemble des processus fils de ce processus. Cela signifie que tous
les processus invoqués dans le cadre de cette commande sont également
arrêtés

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Gel d'un processus
 Il est possible de « geler » un processus en cours d'exécution, c'est-à-dire de le
suspendre, sans pour autant l'arrêter définitivement. Cela peut être utilisé pour libérer
un peu les capacités de calcul, lorsque ce processus consomme trop de ressources
par exemple. Pour cela, deux méthodes sont possibles :
 soit on utilise la combinaison de touches CTRL+Z, lorsque le processus est en
avant-plan ;

 soit on envoie le signal 19 au processus (signal « STOP ») à l'aide de la


commande kill.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Contrôle des processus
 Relancement d'un processus
 Un processus suspendu peut être relancé soit en avant-plan, soit en arrière-plan.
 Pour relancer un processus en avant-plan, il faut utiliser la commande fg, qui
est l'abréviation de l'anglais « foreground », Cette commande s'utilise de la
manière suivante :
fg [num job]
où PID est le PID du processus à relancer en avant-plan. Si ce paramètre n'est pas
spécifié, le dernier processus stoppé sera relancé en arrière-plan
 Pour lancer un processus en arrière-plan, il faut utiliser la commande bg, qui est
l'abréviation de l'anglais « background ». Cette commande s'utilise de la même
manière que la commande fg :
bg [num job]
 Le relancement d'un processus suspendu peut également se faire en lui envoyant le
signal 18 à l'aide de la commande kill.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
 Exemple :
Contrôle des processus
 Prenons un exemple, vous devez avoir sur vôtre système une commande yes, qui ne fait rien
d'autre que d'afficher des Y à l'écran : Testez la : # yes
 Interrompez son exécution avec la combinaison des touches [ Ctrl ]+[ C ]
 Maintenant nous redirigeons son affichage, dans le néant (vers null part ?). # yes > /dev/null
Mais l'invite ne réapparaît pas ?...Alors : [ Ctrl ]+[ C ] pour stopper l'exécution.
 Utilisons le processus en tâche de fond pour yes. # yes > /dev/null &
Maintenant yes s'exécute en tâche de fond.
 Pour vérifier cela : # ps ou # jobs
Le chiffre [1] est le numéro de job suivi du numéro du pid (process id), ce numéro varie en
fonction du nombre de processus déjà lancés.
 Pour arrêter l'exécution de yes, il faut utiliser la commande kill avec le numéro de pid
correspondant à l'application qui s'exécute en tâche de fond et que l'on veut stopper. # kill PID
 Vérifiez : # jobs ou ps
 Relancez yes. # yes > /dev/null
 Et pour récupérer l'invite ?... Nous n'allons pas stopper l'exécution mais seulement la
suspendre, avec [ Ctrl ]+[ Z ].
 Pour continuer l'exécution de yes : # fg
 Suspendons la de nouveau avec [ Ctrl ]+[ Z ].
 Nous allons la relancer cette fois en tâche de fond : # bg
 Voilà vous pouvez vérifier : # jobs ou # ps
 Stopper l'exécution de yes avec [ Ctrl ]+[ C ] ou kill.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les filtres
 Remplacement de caractères
La commande tr permet de substituer des caractères à d'autres :
tr [options] original destination

L'original et la destination représentent un ou plusieurs caractères.


Les options sont les suivantes :
• -c : Les caractères qui ne sont pas dans la chaîne d'origine sont convertis selon
les caractères de la chaîne de destination
• -d : destruction des caractères appartenant à la chaîne d'origine
• -s : si la chaîne de destination contient une suite contiguë de caractères
identiques, cette suite est réduite à un caractère unique
Ex :
 Pour remplacer le : par un #, du fichier carnet-addresse :
tr ":" "#" < carnet-addresse
cat carnet-addresse | tr ":" "#"
 Pour remplacer les minuscules par des majuscules :
Voir le man !!
tr [a-z] [A-Z] < carnet-addresse
 Pour remplacer le o par le e et le i par le a.
cat carnet-addresse | tr "oi" "ea"

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les filtres
 Extraction de lignes communes de deux fichiers : comm
La commande comm permet de sélectionner les lignes entre deux fichiers :
comm [-123] fic1 fic2
 12 : lignes communes
 -1: Supprimer les lignes présentes uniquement dans FICHIER1
 -2 : Supprimer les lignes présentes uniquement dans FICHIER2
 -3: Supprimer les lignes communes aux deux fichiers

 Comparer deux fichiers : cmp


La commande cmp indique si deux fichiers sont identiques. En tapant :
cmp fichier1 fichier2
Si les deux sont identiques, la commande ne génère aucune sortie, s'ils sont différents
la commande indique la position de la première différence (ligne et caractère), avec
une sortie du genre :
fichier1 fichier2 differ : char 34, Line2
Voir le man !!

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les filtres
 Edition des différences entre deux fichiers : diff
La commande diff permet de rechercher les différences entre deux fichiers. La syntaxe est la
suivante :
diff fichier1 fichier2
diff fait en sorte de vous donner des indications pour que le fichier1 soit identique au fichier2

•5,8d4 indique que les lignes 5 à 8 du premier fichier doivent être supprimées, car elles
n'existent pas derrière la ligne 4 du second.
•10,15c12,17 indique que les lignes 10 à 15 du premier fichier doivent être intégralement
changées contre les lignes 12 à 17 du second.

 Commande : uniq
La commande uniq détruit les lignes consécutives dupliquées
Voir le man !!
uniq [-options] fichier1
 -u : affiche les lignes "uniques"
 -d : affiche les lignes "dupliquées"
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Mme LAHLALI
Remplacement de texte dans les fichiers
 Commande : sed
 Le remplacement de texte dans un fichier peut être effectué de manière
automatique, c'est-à-dire sans avoir à ouvrir le fichier dans un éditeur, grâce
à la commande sed ( Stream Editor ).
 sed peut travailler à la volée sur un flux de données textuelles, que ce flux
provienne de l'entrée standard ou d'un fichier.
 Par défaut, il écrit le résultat de son travail sur le flux de sortie standard.
 Les opérations qu'il doit effectuer sur le flux de données peuvent être
spécifiées de différentes manières, soit en fournissant un fichier script à l'aide
de l'option -f, soit directement sur la ligne de commande, avec l'option –e
 La syntaxe utilisée pour appeler sed est donc typiquement la suivante :
sed -e "commandes" fichier > résultat ou :
sed -f script fichier > résultat
où fichier est le fichier sur lequel sed doit travailler, et résultat est le fichier
devant recevoir le flux de données modifiées. Notez que cette commande
utilise une redirection du flux de sortie standard dans un fichier.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Remplacement de texte dans les fichiers
 Commande : sed
 Syntaxe générale :
sed [-n] [-e commande] [-f fichier de commandes]
[fichier]
 Description des options :
 -n : écrit seulement les lignes spécifiées (par l'option /p) sur la sortie
standard
 -e : Permet de spécifier les commandes à appliquer sur le fichier.
Cette option est utile lorsque vous appliquez plusieurs
commandes.
Afin d'éviter que le shell interprète certains caractères, il faut mieux
encadrer la commande avec des ' ou des ".
 -f : Les commandes sont lues à partir d'un fichier.

 Principe de fonctionnement : pour chaque ligne, on applique la commande


(si cela est possible) puis on affiche sur la sortie standard la ligne modifiée ou
non.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Remplacement de texte dans les fichiers
 Commande : sed
sed peut effectuer un grand nombre de commandes différentes et est
réellement un outil très puissant. Cependant, nous ne verrons ici que la
commande qui permet d'effectuer un remplacement de texte. Cette
commande utilise la syntaxe suivante :
s/texte/remplacement/options
où texte est le texte à rechercher, remplacement est le texte de remplacement,
et options est un jeu d'options exprimant la manière dont le remplacement doit
être fait.
Les options sont spécifiées à l'aide de simple caractères, les plus utiles étant
sans doute g, qui permet d'effectuer un remplacement global (au lieu de ne
remplacer que la première occurrence du texte rencontrée dans chaque ligne),
et I, qui permet d'effectuer une recherche sans tenir compte de la casse des
caractères.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Remplacement de texte dans les fichiers
 Commande : sed
Exemple1, la ligne de commande suivante :
sed -e "s/bonjour/bonsoir/g" test.txt > modif.txt
permet de remplacer toutes les occurrences de la chaîne de caractères
« bonjour » par la chaîne de caractères « bonsoir » dans le texte du fichier
test.txt, et d'enregistrer le résultat dans le fichier modif.txt.

Exemple2, la ligne de commande suivante :


sed -e "s/UNIX/Linux/g ; s/key/KEY/gp" fichier

Exemple3, la ligne de commande suivante :


sed "s/[Cc]omputer/COMPUTER/g " fichier
Remplacement de toutes les occurrences de « computer » et « Computer »
dans le fichier.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Remplacement de texte dans les fichiers
 Commande : sed
EFFACER DES LIGNES
La commande d permet d’effacer certaines lignes (au niveau de la
sortie, le fichier d'origine n'est pas modifié).
Exemples
sed -e '1d' fichier permet de ne pas afficher la première ligne de
fichier
sed -e '1,10d' fichier permet de ne pas afficher les 10 premières
lignes d'un fichier.
sed -e '/^#/d' fichier permet de ne pas afficher les lignes de fichier
commençant par le caractère #
sed ‘^From/!d’ fichier Effacement de tout sauf les lignes
commençant par From , et affichage des lignes commençant par From.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
La commande split
 La commande split permet d'éclater un fichier en
fragments. Chaque fragment étant stocké dans des
fichiers nommés PREFIXEaa, PREFIXEab, ...
PREFIXE ayant pour valeur par défaut "x". Si aucun
nom de fichier n'est spécifié, l'entrée standard est
utilisée.
 Syntaxe
 split [options] [fichiers ... [prefixe]]
Principales options :
-b nb : Le fichier est éclaté tous les "nb" octets
-l nb : Le fichier est éclaté toutes les "nb" lignes

Mme LAHLALI
Les alias
 Le shell fournit donc un mécanisme pour donner un nom simplifié aux
commandes complexes : le mécanisme des alias.
 Les alias représentent en fait des chaînes de caractères complexes, et sont
remplacés automatiquement par le shell lorsqu'il analyse les lignes de
commandes
 Pour créer un alias, vous devrez utiliser la syntaxe suivante :
alias nom=chaîne
où nom est le nom de l'alias, et chaîne est la chaîne de caractères représentée par
cet alias
 La suppression des alias se fait à l'aide de la commande unalias. Sa syntaxe
est la suivante :
unalias nom
où nom est le nom de l'alias à supprimer
 Vous pouvez visualiser la liste des alias existant simplement à l'aide de la
commande alias, appelée sans paramètres

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les alias
 Exemple
 alias kv="a=`uname -r`; echo La version du noyau est : "$a""

 alias aff='echo bonjour'

aff bonjour

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Les packages

145
Gestionnaire de paquets
 Un gestionnaire de paquets est un (ou plusieurs) outil(s) automatisant
le processus d’installation, désinstallation, mise à jour de logiciels
installés sur un système informatique.

 Un paquet est une archive comprenant les fichiers informatiques, les


informations et procédures nécessaires à l’installation d’un logiciel sur
un système d’exploitation, en s’assurant de la cohérence fonctionnelle
du système ainsi modifié.

 Le nom d’un paquet rpm par exemple respecte un format précis de


type nom-version.arch.rpm où :
 nom = nom du package/prog

 version = version du package/prog

 arch = architecture pour lequel est fait le prog/package.

Mme LAHLALI
Utilité
Le gestionnaire de paquets permet d’effectuer différentes
opérations sur les paquets disponibles :

Installation, mise à jour, et désinstallation ;

Utilisation des paquets provenant de supports variés (CD


d’installation, dépôts sur internet, partage réseau…) ;

Vérification
des sommes de contrôle de chaque paquet
récupéré pour en vérifier l’intégrité ;

Vérificationdes dépendances logicielles afin d’obtenir une


version fonctionnelle d’un paquetage

Mme LAHLALI
Nomenclature des systèmes de paquets

On trouve deux grands types de système de paquets :


RPM : Redhat Enterprise Linux, Fedora, Centos, …
DPKG: Debian, Ubuntu, Mint, Raspbian, …
D’autres méritent l’intérêt :
Portage/emerge : Gentoo
Pacman : Archlinux
opkg : OpenWRT

Mme LAHLALI
Utilitaire dpkg
 Dpkg est utilisé pour installer, supprimer et fournir des
informations à propos des paquets *.deb qui sont
supportés par les distributions basées Debian.

 Outil de bas niveau, dpkg -i / dpkg -r permettent


d’installer ou de désinstaller des fichiers .deb. Pour ces
tâches, on préfère utiliser des outils plus avancés
comme aptitude ou apt-get, apt-cache.

Mme LAHLALI
Commandes utiles dpkg
 Pour lister tous les paquets installés avec des droits
priviliégés :
 dpkg -l

 ou

 dpkg --get-selections

 Pour vérifier qu’un paquet soit installé :


 dpkg -s wget

 Pour lister les fichiers installés par un paquet :


 dpkg -L wget

 Pour reconfigurer un paquet installé :


 dpkg-reconfigure locales

Mme LAHLALI
Utilitaire rpm
 RPM est l’autre système de base. Il permet d’installer, mettre à jour, désinstaller,
vérifier et rechercher des paquets, avec les droits de l’utilisateur root.
 Pour Installer un paquet :
 rpm -ivh fichier.rpm
 options
 v : mode bavard

 h : affiche 50 marques (hash marks)

 --nodeps : sans tenir compte des dépendances

 Pour mettre à jour un paquet


 rpm -Uvh fichier.rpm
 Pour désinstaller un paquet :
 rpm -ev fichier.rpm
 Vérifier la signature d’un paquet :
 rpm --checksig fichier.rpm

Mme LAHLALI
Utilitaire rpm
 Commande rpm -q
 Lister tous les paquets installés :
 rpm -qa
 Vérifier qu’un paquet est installé :
 rpm -q wget
 Lister les fichiers d’un paquet installé :
 rpm -ql wget
 Obtenir toutes les informations concernant un paquet installé :
 rpm -qi wget
 Obtenir toutes les informations concernant un paquet avant le
l’installer :
 rpm -qip fichier.rpm

Mme LAHLALI
RPM & DEB

Mme LAHLALI
Dépôt de paquets
 Un gestionnaire de paquet avancé comme apt ou dnf gère des
sources de logiciels (la plupart du temps déjà compilés) et leur
authenticité.

 Le lieu où sont placés ses sources est appelé dépôt de paquet.


Cette source est la plupart du temps une source locale comme un
CD ou un DVD, un serveur Internet HTTP/FTP ou encore un miroir
de dépôt local.

 La définition d’un dépôt de paquets dépend outre de la source elle-


même de la distribution, de l’architecture matérielle, des sources
officielles ou autres.

 Certains concepteurs de logiciels fabriquement eux-mêmes les


binaires d’installation pour les distributions et hébergent leurs
propres dépôts de paquets.

Mme LAHLALI
Principe de fonctionnement
Principe de fonctionnement d’un gestionnaire de paquet avancé :
Les logiciels disponibles sont contenus dans une liste qui doit être à
jour afin d’assurer la cohérence de l’ensemble du système.
Au moment de la demande d’installation, cette liste est consultée pour
prendre les fichiers nécessaires.
Le système de paquetage décompresse et place les différents fichiers
binaires, de configuration et de documentation aux endroits appropriés.
Éventuellement, un dialogue de configuration intervient.
Éventuellement, le système de paquetage installe automatiquement
un service et le démarre.

Mme LAHLALI
Tâches

 Vérification de l’existence d’un paquet


 Version du logiciel dans le paquet
 Fichiers de configuration
 Source
 Fichiers de configuration /etc
 Désinstallation
 Purge des fichiers
 Suppression des dépendances orphelines
Mme LAHLALI
APT
 APT simplifie l’installation, la mise à jour et la désinstallation de
logiciels en automatisant la récupération de paquets à partir de
sources APT (sur Internet, le réseau local, des CD-ROM, etc.), la
gestion des dépendances et parfois la compilation.
 Lorsque des paquets sont installés, mis à jour ou enlevés, les
programmes de gestion de paquets peuvent afficher les
dépendances des paquets, demander à l’administrateur si des
paquets recommandés ou suggérés par des paquets nouvellement
installés devraient aussi être installés, et résoudre les dépendances
automatiquement. Les programmes de gestion de paquets peuvent
aussi mettre à jour tous les paquets.
 Sources APT:
 Les sources à partir desquelles apt va chercher les paquets sont
définies dans le fichier /etc/apt/sources.list

Mme LAHLALI
APT
 La communauté Ubuntu fournit les paquets universe (libres)
et multiverse (non-libres).
 On prendra l’habitude de mettre à jour la liste de paquetages avec :

apt-get update
 Recherche APT :Recherche dans les descriptions de paquets :

apt-cache search wget


 Mais apt search fonctionne aussi :

apt search wget


 Voir les informations d’un paquet :

apt-cache show wget


 Vérifier les dépendances d’un paquet :

apt-cache showpkg wget


 Mise à jour et installation APT

 Mettre à jour tous les paquets sans ajout de nouveaux paquets :

 apt-get update && apt-get upgrade

 ou : apt update && apt upgrade

Mme LAHLALI
APT
 Mettre à jour tous les paquets installés vers les dernières versions en installant d
nouveaux paquets si nécessaire :
apt dist-upgrade
 Installation ou mise-à-jour d’un paquet :

apt install wget


 Installation sans dialogue :

apt -y install wget


 Désinstallation de paquets APT

 Retirer le paquets sans les configurations :

apt remove wget


 Retirer le paquets sans les dépendances :

apt autoremove wget


 Retirer totalement un paquet :

apt purge wget

Mme LAHLALI
APT
 On peut combiner les deux :
apt autoremove --purge wget
 Retire les dépendances non nécessaires :

apt autoremove
 Suppression des fichiers mis en cache dans var/cache/apt/archives :

apt clean
 Réinstaller un paquet :

apt --reinstall install postfix


 Installation d’une version “unstable” :

apt install spamassassin/unstable


 apt full-upgrade est également la commande employée par ceux qui

exploitent quotidiennement la version Unstable de Debian et suivent ses


évolutions au jour le jour. Elle est si simple qu’elle parle d’elle-même :
c’est bien cette fonctionnalité qui a fait la renommée d’APT.

Mme LAHLALI
Qu'est ce que dnf ?

 Dnf est l'outil de gestion des paquets dans


Fedora au delà de la version 22

dnf est utilisé dans un terminal et sert à


installer, désinstaller des logiciels; mais aussi
pour mettre à jour la distribution.

dnf gère parfaitement les dépendances,


contrairement à rpm.

Mme LAHLALI
dnf
 Installer : La principale utilisation de dnf, c'est l'installation des logiciels
dans la distribution :
dnf install paquet
 Désinstaller: Pour désinstaller un paquet, c'est aussi simple :
dnf remove paquet
 Si on souhaite désinstaller aussi les dépendances non utilisées :
dnf autoremove paquet
 Mettre à jour: Pour mettre à jour un paquet :
dnf upgrade paquet
 Et pour mettre à jour la distribution :
dnf upgrade
 A noter : On peut exclure un paquet d'une mise à jour :
dnf --exclude=paquet update
 Les jokers fonctionnent aussi, moyennant un échappement du caractère :
dnf --exclude=kernel\* update

Mme LAHLALI
dnf
 Rétrograder la version d'un paquet: Il est aussi possible (s'il est
présent dans les dépôts) de rétrograder la version d'un paquet via
dnf downgrade paquet
 Réinstaller un paquet: Même si c'est quasiment jamais utilisé, il
est possible aussi via yum de réinstaller un paquet. Ça le réinstalle
dans la même version :
dnf reinstall paquet
 Recherche de paquets: Pour rechercher un paquet par son nom,
on peut utiliser :
dnf list paquet
 Si on ne connait pas le nom du paquet, on peut utiliser le joker
(échappement du caractère nécessaire) :
dnf list \*paqu\*

Mme LAHLALI
Dnf

 Lister tous les paquets disponibles dans les dépôts :


dnf list
 Lister tous les paquets installés :
dnf list installed
 Si on veut étendre la recherche à la description, utiliser alors
dnf search mot
 Rechercher un paquet contenant un fichier
 Si on a besoin d'un fichier précis, on peut grâce à dnf chercher le
paquet correspondant :
dnf provides /usr/bin/fichier
 Lister les dépôts:Pour lister les dépôts installés :
dnf repolist all

Mme LAHLALI
dnf
 Activer ou Désactiver un dépôt: Pour activer un dépôt de manière permanente :
dnf config-manager --set-enabled nomdepot
 Et pour désactiver un dépôt de manière permanente :
dnf config-manager --set-disabled nomdepot
 Activer ou désactiver un dépôt pendant la mise à jour: De manière temporaire, on
peut activer un dépôt pour une mise à jour :
dnf --enablerepo=nomdepot update

 ou le désactiver :
 dnf --disablerepo=nomdepot update
 Avoir des infos sur un paquet: Pour avoir des informations détaillées sur un paquet,
on peut utiliser la commande
dnf info paquet

Mme LAHLALI
Dnf
 Quelques astuces ...
 Limiter la bande passante de dnf: Pour limiter la bande passante de dnf,
éditer le fichier /etc/dnf/dnf.conf et utiliser l'option throttle :
throttle=20k
max_connections=1
 Le paramètre de connexions est à placer à 1 sinon, dnf par défaut
parallélise les téléchargements (par 3) et du coup, la limitation de la bande
passante ne fonctionne plus !
 Désactiver les deltarpm
 Les deltarpm permettent de réduire la taille des téléchargements, mais
l'opération de reconstruction des RPM est coûteuse en disque. Si la
connexion est bonne, on peut désactiver l'utilisation des deltarpm en
ajoutant ceci au fichier /etc/dnf/dnf.conf :
deltarpm=0

Mme LAHLALI
Dnf
Protéger des paquets de la suppression : Si vous souhaitez ajouter un paquet
à protéger (pour ne pas qu'il soit supprimé par inadvertance ou par orphelins)
vous devez ajouter le nom du paquet au fichier /etc/dnf/protected.d/dnf.conf
Un nom de paquet par ligne.

Utiliser un proxy avec dnf: Deux possibilités :


http_proxy="http://ip_proxy:3128"
export http_proxy
 Directement dans le fichier /etc/dnf/dnf.conf :
proxy=http://ip_proxy:3128
 Utiliser le miroir le plus rapide
 Par défaut, dnf peut utiliser un miroir super lent. Il existe une astuce pour
bénéficier d'un miroir rapide. Editer le fichier /etc/dnf/dnf.conf, et placer
l'instruction fastestmirror :
fastestmirror=true

Mme LAHLALI
dnf
 Désactiver les statistiques
 Depuis Fedora 32, DNF envoie par défaut tous les 7 jours une requête
permettant de comptabiliser des machines actives avec le type de version
utilisée.
 Si vous êtes opposé à cela, vous pouvez ajouter dans le fichier
/etc/dnf/dnf.conf, l'instruction countme :
countme=False
 Conserver un certain nombre de kernels (installonly_limit)
 Par défaut, dnf permet de conserver 3 kernels (les 3 plus récents). C'est
configuré grâce à la variable installonly_limit du fichier dnf.conf.
 Pour par exemple ne conserver que 2 kernels, éditer /etc/dnf/dnf.conf et
ajouter la ligne
installonly_limit=2

Mme LAHLALI
Dnf
 La valeur minimale est 2. Si vous mettez 0, cela veut dire de garder
de manière illimitée.

 Afficher toute la config dnf


 Si vous voulez consulter les variables et la config de dnf sur votre
système :
dnf config-manager --dump

Mme LAHLALI
Gestion d’impression
 Il existe deux systèmes d'impression concurrents sous Linux : LPRng (« Line Printer
Next Generation ») et CUPS (« Common Unix Printing System »). LPRng est une
évolution du système initial, LPR, qui est devenu très vite obsolète en raison de
l'évolution des technologies d'impression. En effet, celui-ci a été conçu à l'époque où
les imprimantes étaient encore des imprimantes matricielles et ne pouvaient imprimer
qu'en noir et blanc. CUPS, quant à lui, a été créé pour fournir une infrastructure
complètement nouvelle et pour s'affranchir des limitations de LPRng. C'est donc la
solution d'avenir, mais il n'est pas rare de trouver encore des systèmes basés sur
LPRng. D'autre part, la compatibilité au niveau des commandes d'impression est
assurée par CUPS, ce qui fait que la présentation de LPRng n'est pas superflue.

 Quelle que soit la technologie d'impression utilisée, l'imprimante reste généralement


accessible par un port local. En effet, la plupart des imprimantes sont connectées sur
le port parallèle ou sur un port USB (les imprimantes professionnelles mises à part,
celles-ci disposant généralement d'une interface réseau). Nous supposerons donc
dans la suite de ce document que l'imprimante est connectée soit sur le port parallèle
(accessible via le fichier spécial de périphérique /dev/lp0), soit sur un port USB
(accessible via le fichier /dev/usb/lp0).

Mme LAHLALI
Commandes d'impression
 lpd : Démon d'impression sous UNIX (lpd, Line Printer
Daemon).

 Fonctionnement client-serveur local ou via réseau.

 Imprimantes nommées /dev/lp<n>.

 Existence d'une (ou plusieurs) file(s) d'attente (spool)


d'impression par imprimante pour les jobs en attente.
Files d'attente des différentes imprimantes stockées
dans le répertoire /var/spool/lpd.

Mme LAHLALI
Commandes d'impression
 lpr : Soumission d'un travail d'impression à une imprimante.
 lpq : Affichage de la file d'attente d'impression d'une
imprimante.
 lprm : Suppression d'un travail d'impression de la file
d'attente d'une imprimante.
 lpc : Contrôle d'une imprimante.
 Commencement et arrêt de l'envoi des travaux
d'impression.
 Activation et désactivation.

 Changement dans l'ordre des travaux dans la file

d'attente.

Mme LAHLALI
Installation d'une imprimante

 Configuration des imprimantes stockée dans le fichier


/etc/printcap.

 Configuration manuelle de ce fichier non recommandée.


 Utilisation d'un assistant.

Exemple printtool, assistant en mode graphique d'origine


RedHat disponible pour les distributions RedHat et
Debian et leurs dérivées.

http://localhost:631

Mme LAHLALI
Installation d'une imprimante
 Maintenant que la machine fonctionne, voyons comment imprimer. Les
imprimantes sont gerées par le programme lpc et par le démon lpd. Le
programme lpr place une copie des fichiers dans un répertoire d'attente
(de spool), dans lequelle les fichiers se voient attribuer un numéro de
Job, suivant leur ordre d'arrivée, qui déterminera l'ordre dans lequel ils
seront imprimés. En tout, il y place au moins deux fichier :

 le premier commencant par cf, suivit du numéro de Job, et contenant des


informations de contrôle relatives à la tâche d'impression, comme le nom
de l'utilisateur qui a démarré la tâche d'impression.

 le second commencant par df, suivit du numéro de Job, et contenant les


données à imprimer.

Mme LAHLALI
Installation d'une imprimante

 Le démon lpd scrute réguliérement ce répertoire de


spool et, lorsqu'il trouve des fichiers, crée une copie de
lui même qu'il place dans le répertoire de spool de
l'imprimante s'il n'en existe pas déjà une (afin de pouvoir
continuer à scruter les autres répertoire de spool, au cas
où une autre tâche serait lancée sur une autre
imprimante), consulte le fichier de configuration des
imprimantes /etc/printcap et envoit le résultat vers
l'imprimante.

Mme LAHLALI
Installation d'une imprimante
 Il faut d'abord s'assurer que le démon d'impression est bien lancé
(normalement il l'est au démarage) :
 ps -ax | grep lpd
 Le résultat devrait ressembler a ca (si ce n'est pas le cas, il faut le
lancer : /usr/sbin/lpd) :
 102 ? S 0:00 /usr/sbin/lpd
 Il faut également s'assurer que le câble est bien connecté au port
(série ou parallèlle) :
 dmesg | grep lp
 Le résultat devrait ressembler a ca (pour un port parallèle) :
 lp1 at 0x0378, (polling)

Mme LAHLALI
Exercices
 Contenu de répertoires et de fichiers
Exercice 1
1. Déterminer le répertoire par défaut dans la hiérarchie des répertoires?
2. Y a t-il des fichiers, des répertoires dans ce répertoire?
3. Entrer du texte dans un fichier nommé "Mon_fichier".
4. Lister le contenu de "Mon_fichier".
5. Lister le répertoire courant.
6. Lister les répertoires /bin et /dev.
7. Créer sous votre répertoire deux sous-répertoires : "Source" et "Data".
8. Se positionner sous "Source".
9. Listez le répertoire courant.
10. Revenir sous le répertoire de départ et détruire "Source".
11. Créer un deuxième fichier nommé "Mon_fichier_2".
12. Copier chaque fichier en nom_de_fichier.old.
13. Créer un répertoire "Old".
14. Déplacer les fichiers avec l'extension old vers le répertoire "Old".

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 Critères pour les noms de fichier
Exercice 1 suite
1. Copiez les fichiers sans extension dans le repertoire "Data".
2. Sous votre répertoire de départ, créez un lien physique "Mon_lien" équivalent à
"Mon_fichier_2".
3. Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro
d'inode. Que remarquez vous?
4. Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu?
5. Sous votre répertoire de départ, créez un lien symbolique "Mon_nouveau_lien"
sur "Mon_fichier_2".
6. Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2".
Que remarquez vous?
7. Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu?
8. Quelle est la taille totale des fichiers contenus dans votre répertoire?
9. Effacer tous les fichiers crées.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 Critères pour les noms de fichier
Exercice 2 :
Dans votre répertoire courant, créez en une commande les fichiers suivants:
annee1 Annee2 annee4 annee45 annee41 annee510
Exercice 3 :
Créer le répertoire Year dans votre répertoire courant, en une commande déplacez les
fichiers précédemment créés dans le répertoire Year.

Exercice 4 :
 Lister tous les fichiers
 se terminant par 5
 commençant par annee4
 commençant par annee4 et de 7 lettres maximum
 commençant par annee avec aucun chiffre numérique
 contenant la chaîne ana
 commençant par a ou A

Exercice 5 :
Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le répertoire
/tmp en une seule commande.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 Grep
Exercice 6 :
Créer un répertoire essai-grep dans votre home directory. Dans ce répertoire créer les
fichiers suivants:
tomate poire pomme cerise Fraise fraise courgette POMME3 afraise
Éditez les fichiers (sortie de la commande ls redirigée vers grep) avec les critères sur
leur nom suivant:
Exercice 7 :
Créer un répertoire essai-grep dans votre home directory. Dans ce répertoire créer les
fichiers suivants:
tomate poire pomme cerise Fraise fraise courgette POMME3 afraise
 Éditez les fichiers (sortie de la commande ls redirigée vers grep) avec les critères
sur leur nom suivant:
 Critère 1 : Le nom doit être Fraise ou fraise
 Critère 2 : se est en fin de nom
 Critère 3 : ai est présent dans le nom
 Critère 4 : Nom contenant un chiffre numérique
 Critère 5 : Nom contenant la chaîne mm ou MM

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 Grep
Exercice 8 :
Copiez le fichier /etc/passwd dans votre home directory.
 Éditez la ligne commençant par votre nom de login.
 éditez les lignes commençant par des noms de login ne contenant pas de chiffre.
 Éditez les lignes du fichier passwd commençant par des noms de login de 3 ou 4
caractères.

 Les filtres
Exercice 9 :
Dans le fichier passwd qui est dans votre home directory éditez uniquement les champs
contenant le login et la home directory.
Exercice 10 :
Triez passwd sur le nom

Exercice 11 :
Extraire les nom de login et UID puis triez suivant les UID, le tout en une seule
commande, vous redirigerez le tout vers un fichier

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 Les filtres
Exercice 15 :
Dans le fichier passwd qui est dans votre home directory remplacer les ":" par des " "
(espace).

Exercice 16 :
 Éditez les cinq dernières lignes du fichier.
 Éditez les cinq premiers caractères du fichier.

Exercice 17 :
Afficher par ordre alphabétique les utilisateurs définis dans le fichier /etc/passwd.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 find
Exercice 18 :
Cherchez dans toute l'arborescence les fichiers dont :
 le nom se termine par .c
 le nom commençant par X ou x.
 les noms ne contiennent pas de chiffre
Et redirigez les erreurs vers le fichier poubelle /dev/null

Exercice 19 :
 Rechercher tous les fichiers du répertoire /etc contenant la chaîne de caractères
"root".
 Rechercher la localisation du fichier "stdio.h" dans le système de fichier de votre
installation.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Exercices
 find
Exercice 20 :
Chercher dans /usr les fichiers dont la taille dépasse 1Mo (2000 blocs de 500Ko) et
dont les droits sont fixés à 755 (-rwxr-xr-x).

Exercice 21 :
Combien il y a de fichiers dans toute l'arborescence vous appartenant et ayant les
droits fixés à 666 (-rw-rw-rw-).

Exercice 22 :
Trouver tous les fichiers test dans l'arborescence et supprimez les après confirmation.

SYSTÈMES D'EXPLOITATION « OPEN SOURCE »


Mme LAHLALI
Effectuer les opérations de base concernant l’exploitation des
fonctions du système d’exploitation

MERCI DE VOTRE ATTENTION

SYSTÈMES D'EXPLOITATION
Mme LAHLALI « OPEN SOURCE »

Vous aimerez peut-être aussi