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
Mme LAHLALI
Le système de fichiers
Le système de fichiers virtuel VFS
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
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.
Mme LAHLALI
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
Commandes de base
Mme LAHLALI
-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'
Commandes de base
Mme LAHLALI
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
Commandes de base
Mme LAHLALI
- Pour effacer le terminale :
# clear
-Pour exécuter deux commande une après l’autre:
# date ; uname -sr
Commandes de base
Mme LAHLALI
Les caractères de contrôle sur le clavier
Mme LAHLALI
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
Utilisation de la commande man
Mme LAHLALI
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
Classement en sections
Mme LAHLALI
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
Commande apropos
Mme LAHLALI
Les opérations de base
 Login et déconnexion
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
 Déconnexion
Mme LAHLALI
Les opérations de base
 Login et déconnexion
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Les terminaux
Mme LAHLALI
Les opérations de base
 Login et déconnexion
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
 Les terminaux
Mme LAHLALI
Les opérations de base
 Le shell
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les opérations de base
 Le shell
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
invite ("prompt")
le shell est prêt à
recevoir des commandes
rentrées au clavier
Mme LAHLALI
Les opérations de base
 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
 Opérations de base sur les répertoires
Les opérations de base
 Opérations de base sur les répertoires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les opérations de base
 Opérations de base sur les répertoires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 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
 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
Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
 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
Les opérations de base
 Opérations de base sur les fichiers
Mme LAHLALI
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
Les opérations de base
 Opérations de base sur les fichiers
Mme LAHLALI
Les opérations de base
 Opérations de base sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
 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
 Opérations de base sur les fichiers
Les opérations de base
Mme LAHLALI
Les filtres
 Compter les lignes
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Ex : $ wc liste
12 48 234 liste
Le fichier liste contient 12 lignes, 48 mots et 234 caractères.
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
Voir le man !!
Mme LAHLALI
$ wc /etc/group
43 43 579 /etc/group
 Exemple :
Les opérations de base
 Autres commandes sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
$ cat fichier1
option1 = texte1
option2 = texte2
option3 = texte3
cat fichier2
option1 = texte1
option2 = modification
option3 = texte3
$ diff fichier1 fichier2
2c2
< option2 = texte2
---
> option2 = modification
Traduction
2c2 : la ligne 2 de fichier2 est changée par rapport à la ligne 2 de fichier1
 Exemple :
Mme LAHLALI
Les opérations de base
 Autres commandes sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 Autres commandes sur les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Nature d'un fichier : file
 Synthaxe :
file fichiers
 Détermine le type d'un fichier ou à quelle application elle correspond
$ file *
 Exemple :
Mme LAHLALI
Les opérations de base
 Autres commandes utiles
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Gestion des liens
Mme LAHLALI
Les opérations de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
 Autres commandes utiles
 Critères de recherche sur noms de fichier
Mme LAHLALI
Les opérations de base
 Autres commandes utiles
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Recherche de fichiers
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)
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
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
 Exemples d'utilisation de find
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
Mme LAHLALI
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
Programmes utilitaires et filtres (grep)
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
Mme LAHLALI
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
Prorx quantites
sou0 15
dis0 30
ecr0 20
cla530
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
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Ex : $ cat liste
Produit prix quantites
souris 30 15
disque 100 30
ecran 300 20
clavier 45 30
 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-)
La commande cut permet de sélectionner des colonnes et des champs
(découpage vertical) dans un fichier.
$ cut -c1-5 liste
Produ
souri
disqu
ecran
clavi
$ cut -c1-3,10-12,15 liste
Prorx quantites
sou0 15
dis0 30
ecr0 20
cla530
Mme LAHLALI
Les filtres
 Colonnes et champs
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Ex 1 : $ cat liste
Produit prix quantites
souris 30 15
disque 100 30
ecran 300 20
clavier 45 30
carte 45 30
 Champs
La syntaxe est la suivante :
cut -dc -fChamps [fic1...]
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.
$ cut -f1 liste
Produit
souris
disque
ecran
clavier
carte
$ cut -f1,3 liste
Produit quantites
souris 15
disque 30
ecran 20
clavier 30
carte 30
Ex 2 : $ cut -d: -f1,3 /etc/group
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
Mme LAHLALI
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
Sort : exemples
Les opérations de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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 ».
 La décompression d'un fichier se fait à l'aide de la commande suivante :
gunzip fichier.gz
ou
bunzip2 fichier.bz2
 Compression et décompression des fichiers
 Autres commandes utiles
Mme LAHLALI
Les opérations de base
 Autres commandes utiles
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Archivage de fichiers
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
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 vi, l'éditeur de fichiers de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Redirections
 Présentation
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Redirection de la sortie standard pour les messages d'erreur : 2> fichier
Ex :
$ ls vi test &> trace
$ cat trace
ls: vi: Aucun fichier ou répertoire de ce type
test
La syntaxe &> fichier est équivalente à la syntaxe > fichier 2>&1
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
Mme LAHLALI
Redirections
 Redirections élémentaires
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Redirection de l'entrée standard : < fichier
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
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 < .
On peut aussi utiliser à la fois les deux types de redirection.
Ex :
$ wc < resultat.txt > compte.txt
$ cat compte.txt
4 29 203
Mme LAHLALI
Redirections
 Les tubes (pipes)
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 :
commande
stdin stdout
stderr
commande
stdin
stdout
stderr
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.
Ex 1 : combien de fichiers dans le rep. courant ?
sans pipe:
ls > temp ; wc -l < temp ; rm temp
avec un pipe:
ls | wc -l
Mme LAHLALI
Redirections
 Pipelines
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
1
$ 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.
Ex 2
ls -l /etc | grep csh | sort
Mme LAHLALI
Redirections
 Insertion de documents
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
Mme LAHLALI
Redirections
 Insertion de documents
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
Mme LAHLALI
Redirections
 La commande tee
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 !!
Mme LAHLALI
Redirections
 La commande xargs
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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é).
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 /home/~/dossier1/; cd /home/~/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 /home/~/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 /home/~/dossier1 || mkdir / /home/~/dossier1 && touch file1
Mme LAHLALI
Les opérations de base
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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...
 Passage en mode superviseur
 Autres commandes utiles
Mme LAHLALI
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Le fichier /etc/passwd
Mme LAHLALI
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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)
 Le fichier /etc/shadow
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
Mme LAHLALI
87
/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
Gestion des utilisateurs et des groupes
 Commandes de gestion des utilisateurs
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Ajouter un utilisateur
La commande useradd permet de créer un utilisateur :
useradd [options] login
Mme LAHLALI
-u uid pour fixer l'identifiant uid
-g groupe-primaire
-G liste
fixe l'appartenance de l'utilisateur à une 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
-e date-expiration
fixe la date d'expiration du compte (format
MM/JJ/AA)
-m pour créer le répertoire personnel
-k rep-skel
recopie le contenu de rep-skel dans le rép.
personnel, par défaut /etc/skel
Les options:
 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
# Useradd –c « compte de test » -m –d /home/toto –G test –k /etc/skel toto
Gestion des utilisateurs et des groupes
Exemple:
Mme LAHLALI
 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.
 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)
Gestion des utilisateurs et des groupes
 Commandes de gestion des utilisateurs
Gestion des utilisateurs
 Commandes de gestion des utilisateurs
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 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.
Mme LAHLALI
• -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.
Les options:
Mme LAHLALI
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)
Gestion des utilisateurs
Gestion des utilisateurs et des groupes
 Les utilisateurs et les groupes
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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 :
Mme LAHLALI
Gestion des utilisateurs
 Commandes de gestion des groupes
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Créer un groupe
La commande groupadd permet de créer un nouveau groupe :
groupadd option 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.
Mme LAHLALI
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
Gestion des utilisateurs
 Commandes de gestion des groupes
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
 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
Gestion des utilisateurs
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Classes d'utilisateurs
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Types d'accès
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Affichage des caractéristiques : ls -l
-rw-r--r-- 1 stagiaire ofppt 58K 16 Jul 09:19 tp1.tex
-rw-r--r--
Type :
d ; - ; l
group
nb liens propriétaire
groupe
taille date nom
user others
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
chmod <classe op perm, …> ou nnn <fichier>
classe:
u : user
g : group
o : others
a : all
op:
= : affectation
- : suppr.
+ : ajout
perm:
r : lecture
w : écriture
x : exécution
 Changer les permissions
 chaque perm = 1 valeur:
 déf. des permissions (par addition)
pour chaque classe
r 4
w 2
x 1
rien 0
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
exemples:
chmod u=rwx,g=rx,o=r tp1.tex
chmod a+x script.sh
chmod 755 script.sh
 Changer les permissions
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Umask
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Changement de propriétaire et de groupe
Mme LAHLALI
Les opérations de base
 Les droits d'accès spéciaux (étendus )
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Les droits spéciaux
Mme LAHLALI
Les opérations de base
 Les droits d'accès
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 Les droits spéciaux
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Présentation
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 …)
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
 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
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
Sous Linux, les commandes de fdisk sont appelées par des
touches, voici la liste des plus importantes :
Partitionnement de disque
Les systèmes de fichiers sous Gnu/Linux
 Création des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Démontage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiersé
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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).
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Les systèmes de fichiers sous Gnu/Linux
 Configuration du montage des systèmes de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Outils divers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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 !!
Mme LAHLALI
Contrôle des processus
 Définition et environnement
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Contrôle des processus
 Liste des processus
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Contrôle des processus
 Options de la commande ps
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
 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...
 Liste des processus
 Autres commande d’affichage des processus
Mme LAHLALI
 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
Contrôle des processus
 Arrière plan / Avant plan
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Contrôle des processus
 Arrêt d'un processus / signaux
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Contrôle des processus
 Arrêt d'un processus / signaux
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Contrôle des processus
 Gel d'un processus
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Contrôle des processus
 Relancement d'un processus
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Contrôle des processus
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
 Exemple :
Mme LAHLALI
Les filtres
 Remplacement de caractères
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Ex :
 Pour remplacer le : par un #, du fichier carnet-addresse :
tr ":" "#" < carnet-addresse
cat carnet-addresse | tr ":" "#"
 Pour remplacer les minuscules par des majuscules :
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"
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
Voir le man !!
Mme LAHLALI
Les filtres
 Extraction de lignes communes de deux fichiers : comm
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 !!
Mme LAHLALI
Les filtres
 Edition des différences entre deux fichiers : diff
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
uniq [-options] fichier1
 -u : affiche les lignes "uniques"
 -d : affiche les lignes "dupliquées"
Voir le man !!
Mme LAHLALI
Remplacement de texte dans les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Remplacement de texte dans les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Remplacement de texte dans les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Remplacement de texte dans les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
Mme LAHLALI
Remplacement de texte dans les fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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.
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
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 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
Mme LAHLALI
Les alias
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
 Exemple
 alias kv="a=`uname -r`; echo La version du noyau est : "$a""
 alias aff='echo bonjour'
aff bonjour
Mme LAHLALI
145
Les packages
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érification des 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
 Mettre à jour tous les paquets installés vers les dernières versions en
installant de 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
APT
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
 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
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
 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
Commandes d'impression
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
 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
Installation d'une imprimante
Exercices
 Contenu de répertoires et de fichiers
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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".
Mme LAHLALI
Exercices
 Critères pour les noms de fichier
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
Mme LAHLALI
Exercices
 Critères pour les noms de fichier
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 5 :
Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le répertoire
/tmp en une seule commande.
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
Mme LAHLALI
Exercices
 Grep
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
Mme LAHLALI
Exercices
 Grep
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Exercice 9 :
Dans le fichier passwd qui est dans votre home directory éditez uniquement les champs
contenant le login et la home directory.
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.
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
 Les filtres
Mme LAHLALI
Exercices
 Les filtres
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
Mme LAHLALI
Exercices
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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
 find
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.
Mme LAHLALI
Exercices
 find
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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.
Mme LAHLALI
SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
Effectuer les opérations de base concernant l’exploitation des
fonctions du système d’exploitation
MERCI DE VOTRE ATTENTION
Mme LAHLALI

M104 linux.pdf ofppt course linux linux e

  • 1.
    SYSTÈMES D'EXPLOITATION « OPENSOURCE » Mme LAHLALI
  • 2.
    SOMMAIRE  Installer etdé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
  • 3.
    Effectuer les opérationsde base concernant l’exploitation des fonctions du système d’exploitation Mme LAHLALI
  • 4.
    SOMMAIRE 1. Historique 2. Introductionau 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
  • 5.
    Module 01 :Introduction au système linux Mme LAHLALI
  • 6.
    Mme LAHLALI Le systèmede fichiers Le système de fichiers virtuel VFS
  • 7.
    Le système defichiers / bin boot dev etc home lib mnt proc sbin sys tmp usr var … Mme LAHLALI
  • 8.
    Le tableau suivantvous présente les principaux Shells ainsi que leurs caractéristiques Nom Description 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. Mme LAHLALI
  • 9.
    Le format descommande 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 Commandes de base Mme LAHLALI
  • 10.
    -Pour Afficher ouconfigurer 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' Commandes de base Mme LAHLALI
  • 11.
    Pour afficher lenumé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 Commandes de base Mme LAHLALI
  • 12.
    - Pour effacerle terminale : # clear -Pour exécuter deux commande une après l’autre: # date ; uname -sr Commandes de base Mme LAHLALI
  • 13.
    Les caractères decontrôle sur le clavier Mme LAHLALI
  • 14.
    La commande manaffiche 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 Utilisation de la commande man Mme LAHLALI
  • 15.
    La documentation estclasé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 Classement en sections Mme LAHLALI
  • 16.
    La documentation manest 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 Commande apropos Mme LAHLALI
  • 17.
    Les opérations debase  Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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.  Déconnexion Mme LAHLALI
  • 18.
    Les opérations debase  Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  Les terminaux Mme LAHLALI
  • 19.
    Les opérations debase  Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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.  Les terminaux Mme LAHLALI
  • 20.
    Les opérations debase  Le shell SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 21.
    Les opérations debase  Le shell SYSTÈMES D'EXPLOITATION « OPEN SOURCE » invite ("prompt") le shell est prêt à recevoir des commandes rentrées au clavier Mme LAHLALI
  • 22.
    Les opérations debase  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  Opérations de base sur les répertoires
  • 23.
    Les opérations debase  Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 24.
    Les opérations debase  Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 25.
    Les opérations debase  Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 26.
    Les opérations debase  Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  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  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 Mme LAHLALI
  • 27.
    Les opérations debase  Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 28.
     Supprimer unfichier 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 Les opérations de base  Opérations de base sur les fichiers Mme LAHLALI
  • 29.
    Pour visualiser unfichier : 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 Les opérations de base  Opérations de base sur les fichiers Mme LAHLALI
  • 30.
    Les opérations debase  Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 31.
     Création d’unfichier 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  Opérations de base sur les fichiers Les opérations de base Mme LAHLALI
  • 32.
    Les filtres  Compterles lignes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ wc liste 12 48 234 liste Le fichier liste contient 12 lignes, 48 mots et 234 caractères. 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 Voir le man !! Mme LAHLALI $ wc /etc/group 43 43 579 /etc/group  Exemple :
  • 33.
    Les opérations debase  Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 $ cat fichier1 option1 = texte1 option2 = texte2 option3 = texte3 cat fichier2 option1 = texte1 option2 = modification option3 = texte3 $ diff fichier1 fichier2 2c2 < option2 = texte2 --- > option2 = modification Traduction 2c2 : la ligne 2 de fichier2 est changée par rapport à la ligne 2 de fichier1  Exemple : Mme LAHLALI
  • 34.
    Les opérations debase  Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 35.
    Les opérations debase  Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Nature d'un fichier : file  Synthaxe : file fichiers  Détermine le type d'un fichier ou à quelle application elle correspond $ file *  Exemple : Mme LAHLALI
  • 36.
    Les opérations debase  Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  Gestion des liens Mme LAHLALI
  • 37.
    Les opérations debase SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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  Autres commandes utiles  Critères de recherche sur noms de fichier Mme LAHLALI
  • 38.
    Les opérations debase  Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  Recherche de fichiers Mme LAHLALI
  • 39.
    Recherche de fichierset 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
  • 40.
    Recherche de fichierset 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
  • 41.
    Recherche de fichierset 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) Mme LAHLALI
  • 42.
    Recherche de fichierset 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
  • 43.
    Recherche de fichierset 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
  • 44.
    Recherche de fichierset 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
  • 45.
    Les opérations debase  Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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  Exemples d'utilisation de find Mme LAHLALI
  • 46.
    Programmes utilitaires etfiltres  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
  • 47.
    Programmes utilitaires etfiltres (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
  • 48.
    Programmes utilitaires etfiltres (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
  • 49.
    Mme LAHLALI 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 Programmes utilitaires et filtres (grep)
  • 50.
    Programmes utilitaires etfiltres (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
  • 51.
    Programmes utilitaires etfiltres 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
  • 52.
    commande cut Mme LAHLALI 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 Prorx quantites sou0 15 dis0 30 ecr0 20 cla530
  • 53.
    Programmes utilitaires etfiltres 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
  • 54.
    Les filtres  Colonneset champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ cat liste Produit prix quantites souris 30 15 disque 100 30 ecran 300 20 clavier 45 30  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-) La commande cut permet de sélectionner des colonnes et des champs (découpage vertical) dans un fichier. $ cut -c1-5 liste Produ souri disqu ecran clavi $ cut -c1-3,10-12,15 liste Prorx quantites sou0 15 dis0 30 ecr0 20 cla530 Mme LAHLALI
  • 55.
    Les filtres  Colonneset champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex 1 : $ cat liste Produit prix quantites souris 30 15 disque 100 30 ecran 300 20 clavier 45 30 carte 45 30  Champs La syntaxe est la suivante : cut -dc -fChamps [fic1...] 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. $ cut -f1 liste Produit souris disque ecran clavier carte $ cut -f1,3 liste Produit quantites souris 15 disque 30 ecran 20 clavier 30 carte 30 Ex 2 : $ cut -d: -f1,3 /etc/group Mme LAHLALI
  • 56.
    Programmes utilitaires etfiltres  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
  • 57.
    Programmes utilitaires etfiltres 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
  • 58.
    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
  • 59.
    Mme LAHLALI Ex : Soitle 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 Sort : exemples
  • 60.
    Les opérations debase SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 ».  La décompression d'un fichier se fait à l'aide de la commande suivante : gunzip fichier.gz ou bunzip2 fichier.bz2  Compression et décompression des fichiers  Autres commandes utiles Mme LAHLALI
  • 61.
    Les opérations debase  Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Archivage de fichiers Mme LAHLALI
  • 62.
    Archivage de fichiersCPIO  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
  • 63.
    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
  • 64.
    Les opérations debase  vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 Mme LAHLALI
  • 65.
    Les opérations debase  vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 66.
    Les opérations debase  vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 67.
    Les opérations debase  vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 68.
    Redirections  Présentation SYSTÈMES D'EXPLOITATION« OPEN SOURCE »  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. Mme LAHLALI
  • 69.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE » 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 Mme LAHLALI
  • 70.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 71.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 72.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 73.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  Redirection de la sortie standard pour les messages d'erreur : 2> fichier Ex : $ ls vi test &> trace $ cat trace ls: vi: Aucun fichier ou répertoire de ce type test La syntaxe &> fichier est équivalente à la syntaxe > fichier 2>&1 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 Mme LAHLALI
  • 74.
    Redirections  Redirections élémentaires SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  Redirection de l'entrée standard : < fichier 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 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 < . On peut aussi utiliser à la fois les deux types de redirection. Ex : $ wc < resultat.txt > compte.txt $ cat compte.txt 4 29 203 Mme LAHLALI
  • 75.
    Redirections  Les tubes(pipes) SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 : commande stdin stdout stderr commande stdin stdout stderr 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. Ex 1 : combien de fichiers dans le rep. courant ? sans pipe: ls > temp ; wc -l < temp ; rm temp avec un pipe: ls | wc -l Mme LAHLALI
  • 76.
    Redirections  Pipelines SYSTÈMES D'EXPLOITATION« OPEN SOURCE » 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 1 $ 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. Ex 2 ls -l /etc | grep csh | sort Mme LAHLALI
  • 77.
    Redirections  Insertion dedocuments SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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. Mme LAHLALI
  • 78.
    Redirections  Insertion dedocuments SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 Mme LAHLALI
  • 79.
    Redirections  La commandetee SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 !! Mme LAHLALI
  • 80.
    Redirections  La commandexargs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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é). Mme LAHLALI
  • 81.
    L’enchaînement des commandessous 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 /home/~/dossier1/; cd /home/~/dossier1/ ; touch file1 Mme LAHLALI
  • 82.
    L’enchaînement des commandessous 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 /home/~/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
  • 83.
    L’enchaînement des commandessous 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 /home/~/dossier1 || mkdir / /home/~/dossier1 && touch file1 Mme LAHLALI
  • 84.
    Les opérations debase SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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...  Passage en mode superviseur  Autres commandes utiles Mme LAHLALI
  • 85.
    Gestion des utilisateurset des groupes  Les utilisateurs et les groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  Le fichier /etc/passwd Mme LAHLALI
  • 86.
    SYSTÈMES D'EXPLOITATION «OPEN SOURCE » 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)  Le fichier /etc/shadow Gestion des utilisateurs et des groupes  Les utilisateurs et les groupes Mme LAHLALI
  • 87.
    87 /etc/skel  Après lacré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
  • 88.
    Gestion des utilisateurset des groupes  Commandes de gestion des utilisateurs SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Ajouter un utilisateur La commande useradd permet de créer un utilisateur : useradd [options] login Mme LAHLALI -u uid pour fixer l'identifiant uid -g groupe-primaire -G liste fixe l'appartenance de l'utilisateur à une 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 -e date-expiration fixe la date d'expiration du compte (format MM/JJ/AA) -m pour créer le répertoire personnel -k rep-skel recopie le contenu de rep-skel dans le rép. personnel, par défaut /etc/skel Les options:
  • 89.
     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 # Useradd –c « compte de test » -m –d /home/toto –G test –k /etc/skel toto Gestion des utilisateurs et des groupes Exemple:
  • 90.
    Mme LAHLALI  Suppressiond'un utilisateur La commande userdel permet de supprimer un utilisateur : userdel [options] login L'option -r efface le répertoire personnel de l'utilisateur.  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) Gestion des utilisateurs et des groupes  Commandes de gestion des utilisateurs
  • 91.
    Gestion des utilisateurs Commandes de gestion des utilisateurs SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  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. Mme LAHLALI • -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. Les options:
  • 92.
    Mme LAHLALI chfn Pourdé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) Gestion des utilisateurs
  • 93.
    Gestion des utilisateurset des groupes  Les utilisateurs et les groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 : Mme LAHLALI
  • 94.
    Gestion des utilisateurs Commandes de gestion des groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Créer un groupe La commande groupadd permet de créer un nouveau groupe : groupadd option 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. Mme LAHLALI 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
  • 95.
    Gestion des utilisateurs Commandes de gestion des groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 96.
     ajout d’unutilisateur 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 Gestion des utilisateurs
  • 97.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Classes d'utilisateurs Mme LAHLALI
  • 98.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Types d'accès Mme LAHLALI
  • 99.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Affichage des caractéristiques : ls -l -rw-r--r-- 1 stagiaire ofppt 58K 16 Jul 09:19 tp1.tex -rw-r--r-- Type : d ; - ; l group nb liens propriétaire groupe taille date nom user others Mme LAHLALI
  • 100.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE » chmod <classe op perm, …> ou nnn <fichier> classe: u : user g : group o : others a : all op: = : affectation - : suppr. + : ajout perm: r : lecture w : écriture x : exécution  Changer les permissions  chaque perm = 1 valeur:  déf. des permissions (par addition) pour chaque classe r 4 w 2 x 1 rien 0 Mme LAHLALI
  • 101.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE » exemples: chmod u=rwx,g=rx,o=r tp1.tex chmod a+x script.sh chmod 755 script.sh  Changer les permissions Mme LAHLALI
  • 102.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Umask Mme LAHLALI
  • 103.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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.  Changement de propriétaire et de groupe Mme LAHLALI
  • 104.
    Les opérations debase  Les droits d'accès spéciaux (étendus ) SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 105.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Les droits spéciaux Mme LAHLALI
  • 106.
    Les opérations debase  Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  Les droits spéciaux Mme LAHLALI
  • 107.
    Les systèmes defichiers sous Gnu/Linux  Présentation SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 …) Mme LAHLALI
  • 108.
    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
  • 109.
     Dans l'exemplesuivant on indique explicitement à fdisk que l'on désire partitionner le second disque dur :  fdisk /dev/hdb Mme LAHLALI Partitionnement de disque
  • 110.
    Commande Description d destructiond'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 Sous Linux, les commandes de fdisk sont appelées par des touches, voici la liste des plus importantes : Partitionnement de disque
  • 111.
    Les systèmes defichiers sous Gnu/Linux  Création des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 112.
    Les systèmes defichiers sous Gnu/Linux  Montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 113.
    Les systèmes defichiers sous Gnu/Linux  Démontage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 114.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 115.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 116.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 117.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiersé SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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). Mme LAHLALI
  • 118.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 119.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 120.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 121.
    Les systèmes defichiers sous Gnu/Linux  Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 122.
    Outils divers SYSTÈMES D'EXPLOITATION« OPEN SOURCE »  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 !! Mme LAHLALI
  • 123.
    Contrôle des processus Définition et environnement SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 124.
    Contrôle des processus Liste des processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 125.
    Contrôle des processus Options de la commande ps SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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  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...  Liste des processus  Autres commande d’affichage des processus Mme LAHLALI
  • 126.
     Lorsque vouslancez 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
  • 127.
     Pour connaîtrela 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
  • 128.
    Contrôle des processus Arrière plan / Avant plan SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 129.
    Contrôle des processus Arrêt d'un processus / signaux SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 130.
    Contrôle des processus Arrêt d'un processus / signaux SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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 Mme LAHLALI
  • 131.
    Contrôle des processus Gel d'un processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 132.
    Contrôle des processus Relancement d'un processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 133.
    Contrôle des processus SYSTÈMESD'EXPLOITATION « OPEN SOURCE »  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.  Exemple : Mme LAHLALI
  • 134.
    Les filtres  Remplacementde caractères SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex :  Pour remplacer le : par un #, du fichier carnet-addresse : tr ":" "#" < carnet-addresse cat carnet-addresse | tr ":" "#"  Pour remplacer les minuscules par des majuscules : 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" 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 Voir le man !! Mme LAHLALI
  • 135.
    Les filtres  Extractionde lignes communes de deux fichiers : comm SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 !! Mme LAHLALI
  • 136.
    Les filtres  Editiondes différences entre deux fichiers : diff SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 uniq [-options] fichier1  -u : affiche les lignes "uniques"  -d : affiche les lignes "dupliquées" Voir le man !! Mme LAHLALI
  • 137.
    Remplacement de textedans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 138.
    Remplacement de textedans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 139.
    Remplacement de textedans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 140.
    Remplacement de textedans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 141.
    Remplacement de textedans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  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. Mme LAHLALI
  • 142.
    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
  • 143.
    Les alias SYSTÈMES D'EXPLOITATION« OPEN SOURCE »  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 Mme LAHLALI
  • 144.
    Les alias SYSTÈMES D'EXPLOITATION« OPEN SOURCE »  Exemple  alias kv="a=`uname -r`; echo La version du noyau est : "$a""  alias aff='echo bonjour' aff bonjour Mme LAHLALI
  • 145.
  • 146.
    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
  • 147.
    Utilité Le gestionnaire depaquets 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érification des dépendances logicielles afin d’obtenir une version fonctionnelle d’un paquetage Mme LAHLALI
  • 148.
    Nomenclature des systèmesde 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
  • 149.
    Utilitaire dpkg  Dpkgest 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
  • 150.
    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
  • 151.
    Utilitaire rpm  RPMest 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
  • 152.
    Utilitaire rpm  Commanderpm -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
  • 153.
  • 154.
    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
  • 155.
    Principe de fonctionnement Principede 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
  • 156.
    Tâches  Vérification del’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
  • 157.
    APT  APT simplifiel’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
  • 158.
    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
  • 159.
     Mettre àjour tous les paquets installés vers les dernières versions en installant de 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
  • 160.
     On peutcombiner 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 APT
  • 161.
    Qu'est ce quednf ?  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
  • 162.
     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
  • 163.
     Rétrograder laversion 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
  • 164.
     Lister tousles 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
  • 165.
    dnf  Activer ouDé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
  • 166.
    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
  • 167.
    Dnf Protéger des paquetsde 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
  • 168.
    dnf  Désactiver lesstatistiques  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
  • 169.
    Dnf  La valeurminimale 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
  • 170.
    Gestion d’impression  Ilexiste 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
  • 171.
    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
  • 172.
     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 Commandes d'impression
  • 173.
    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
  • 174.
     Maintenant quela 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
  • 175.
     Le démonlpd 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
  • 176.
     Il fautd'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 Installation d'une imprimante
  • 177.
    Exercices  Contenu derépertoires et de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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". Mme LAHLALI
  • 178.
    Exercices  Critères pourles noms de fichier SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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. Mme LAHLALI
  • 179.
    Exercices  Critères pourles noms de fichier SYSTÈMES D'EXPLOITATION « OPEN SOURCE » 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 5 : Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le répertoire /tmp en une seule commande. 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 Mme LAHLALI
  • 180.
    Exercices  Grep SYSTÈMES D'EXPLOITATION« OPEN SOURCE » 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 Mme LAHLALI
  • 181.
    Exercices  Grep SYSTÈMES D'EXPLOITATION« OPEN SOURCE » Exercice 9 : Dans le fichier passwd qui est dans votre home directory éditez uniquement les champs contenant le login et la home directory. 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. 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  Les filtres Mme LAHLALI
  • 182.
    Exercices  Les filtres SYSTÈMESD'EXPLOITATION « OPEN SOURCE » 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. Mme LAHLALI
  • 183.
    Exercices SYSTÈMES D'EXPLOITATION «OPEN SOURCE » 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  find 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. Mme LAHLALI
  • 184.
    Exercices  find SYSTÈMES D'EXPLOITATION« OPEN SOURCE » 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. Mme LAHLALI
  • 185.
    SYSTÈMES D'EXPLOITATION «OPEN SOURCE » Effectuer les opérations de base concernant l’exploitation des fonctions du système d’exploitation MERCI DE VOTRE ATTENTION Mme LAHLALI