SlideShare une entreprise Scribd logo
Linux - Utilisation
Par Pr. K. ZINEDINE
PLAN DE COURS
1. Introduction au système Unix - Linux
2. Caractéristiques Générales
3. Principes et Commandes de Base
4. Périphériques de Stockage et Systèmes de Fichiers
5. Processus
6. Utilisation du Shell bash (programmation)
7. Amorçage et Arrêt du Système
8. Commandes Avancées
9. Configuration des services Réseau
10. Gestion de performance
11. Configuration de services réseau (web Apache … )
Histoire de Unix
L'histoire d'UNIX débute dans les années 60:
-1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur
usage interne, d'un OS pour le traitement de textes et le
développement d'applications.
-1969 : apparition de la 1ère version d'UNIX. Le nom UNIX
provient de UNICS (UNiplexed Information and Computing
System)
-1973 : nécessité de rendre UNIX portable sur d'autres ordinateurs.
UNIX a été alors réécrit entièrement par Denis Ritchie en langage C
-1974 : AT&T propose les 1ères licences aux universités,
-1978 : AT&T présente à l'industrie les 1ères versions
commerciales.
Histoire de Unix
-Années 80 : AT&T autorise le clonage d'UNIX par d'autres
constructeurs. Ainsi, apparaissent ULTRIX sur DEC, BSD sur
SUN, AIX sur IBM, etc.
- En 1983, pour promouvoir les logiciels libres, Richard Stallman
lance le projet GNU qui fournit aujourd'hui plusieurs éléments
essentiels de système d'exploitations basés sur le Noyau Linux
- Le projet GNU avait pour objectif d'écrire un OS de type Unix
entièrement composé de logiciels libres.
- Au début des années 90, le projet GNU avait produit tous les
éléments essentiels à la construction d'un OS (un compilateur, un
éditeur de texte, un shell, des bibliothèques, et beaucoup d'autres
logiciels) à l'exception de l’élément central : le noyau.
- 1991 : Linus Thorvald voulait mettre au point son propre OS; il
avait pour intention de développer une version d'UNIX pouvant être
utilisée sur une architecture de type 80386.
Histoire de Unix
n Linux est le noyau d'un OS de type Unix, initié par
Linus Torvalds en 1991
n il désigne un OS comparable à Ms Windows ou Mac
OS composé de nombreux logiciels libres
développés en collaboration via Internet
n Il permet d’utiliser des serveurs comme Apache ou
Sendmail, des environnements de bureau comme
GNOME et KDE, des applications majeures comme
Mozilla Firefox
Linux: Définition
n Code source disponible (licence GPL)
n Système multitâches et multi-utilisateurs
n Multi-plateforme (intel x86,Sun Sparc,etc…)
n Gestion du multiprocesseur (option SMP: Symetric
MultiProcessor)
n Compatible POSIX (standard logiciel)
n Compatibilité de code avec les autres UNIX
n Gestion des consoles virtuelles
n Possibilité de cohabitation avec d’autres systèmes
n Support d’un grand nbre de systèmes de fichiers
Caractéristiques
n Implémentation complète de la pile TCP/IP
n Services réseau:PPP, NFS, etc…
n Interface graphique:X-Window
n Le Noyau Linux (kernel):
n Cœur du système
n Ensemble de routines appelées par des appels
systèmes
n Interface entre les programmes utilisateurs et le
matériel
n Gestion des processus et de la mémoire virtuelle
n Gestion des bibliothèques partagées
n Protection entre les processus
Caractéristiques
n Applications Disponibles:
n Bureautique:
•StarOffice, •Koffice (Kword,Kspreadsheet,Kpresenter)
•AbiWord (traitement de texte), •Gnumeric (tableur)
n Graphisme:
•The Gimp (retouche d’image), •Corel PhotoPaint
(retouche d’image), •Sketch (Dessin vectoriel)
n Internet:
•Netscape Communicator, •Konqueror, •Opera 5
•Instant Messaging:ICQ,AIM,etc…
n Serveurs
•HTTP,FTP,mail,news,DNS,etc…
Caractéristiques
n Architecture Globale: 3 couches
n Couche «physique »:périphériques +BIOS
n Couche «système »: kernel et processus
n Couche «interface »:shell +X-Window
n Communications entre couches sont très
réglementées par le kernel
Architecture d’un syst. Linux
Architecture d’un syst. Linux
Périphériques Physiques
BIOS
KERNEL
Shell
Système X-Window Interface Utilisateur
SYSTEME
MACHINE
Carte
Graphique
n Le Shell: interpréteur de commande, il est l’interface
entre l’utilisateur et l’OS
n Lit et exécute les commandes de l’utilisateur
n Propose un contrôle des processus
n Gère les redirections en entrée et en sortie
n Propose un véritable langage de programmation
n Plusieurs types de shell disponibles:
• Le plus utilisé:bash (sh)
• Autres: csh, ksh, zsh, … etc.
Le Shell
n Chaque utilisateur possède un shell par défaut, qui
sera lancé à l'ouverture d'une invite de commande.
n Le shell par défaut est précisé dans un fichier de
configuration (/etc/passwd)
n Il est possible de changer de shell dans une session
Le Shell
n Interface graphique standard des systèmes UNIX
n Repose sur un processus particulier «serveur X »
n Utilise un gestionnaire de fenêtres: plusieurs sont
disponibles (KDE2, Gnome, WindowMaker, etc…)
n L’une des principales caractéristiques: Possibilité
pour le user de déporter l’affichage à travers un
réseau
Le Système X-Window
n Bureau KDE2:
Le Système X-Window
n Bureau Gnome:
Le Système X-Window
n Bureau WindowMaker:
Le Système X-Window
Principes et
Commandes de base
n Le système possède une structure en arborescence
n la racine est notée « / ».
n Chacun des répertoires sous cette racine a un nom standardisé et
un contenu précis
Principes et Commandes de
base- Arborescence du Système:
/ Racine du système, contient les répertoires principaux
/bin Commandes essentielles communes à tous les utilisateurs
/boot Fichiers de démarrage du système, contient le noyau
/dev Points d’entrée des périphériques
/etc Fichiers de configuration
/home Contient les répertoires personnels des différents utilisateurs
/root Répertoire personnel de l’administrateur
/usr Hiérarchie secondaire, applications, bibliothèques partagées
/var Fichiers trace du système (Logs)
/proc Système de fichier virtuel, informations en temps réel
Arborescence du système
Commandes de base
n Commandes: En très grand nombre
n Principe UNIX: une commande n’exécute qu’une
seule fonction, mais le fait de manière exhaustive
n Exécutées à l’invite du shell (ou d’un terminal dans
le cas de X-Window)
n De la forme:
nom_commande [-options] <cible1> <cible2>…
Commandes de base
n «ls »:lister le contenu d’un répertoire
n «rm »:supprimer un fichier
n «cp »: copier un fichier
n «ln »: créer un lien sur un fichier
n «man »: afficher l’aide d’une commande
n «mv »: déplacer un fichier
n «cd »: changer de répertoire
n «mkdir »: créer un répertoire
n «rmdir »: supprimer un répertoire vide
n «pwd »: afficher le répertoire courant
n «cat »: afficher le contenu d’un fichier
n «file »: afficher le type de contenu du fichier
n «locate »: localiser un fichier sur le disque
Gestion des utilisateurs
n Un utilisateur du système:
• Personne physique
• Droits d’accès au système
• Répertoire personnel
• Groupe d’utilisateur
n Un utilisateur particulier: «root »
• Administrateur du système
• Possède tous les droits sur le système, Les
utilisateurs et les fichiers
• A n’utiliser que pour la configuration et
l’installation
Gestion des utilisateurs
n Identification d’un utilisateur:
• Nom: « login »
• Mot de passe: « password »
n Référencement de tous les utilisateurs dans le fichier
« /etc/passwd » et/ou « /etc/shadow »
n Référence à un groupe: « /etc/group »
n Répertoire personnel: « /home/<login> »
Gestion des utilisateurs
n Commandes utilisables par root:
• « useradd »: ajouter un utilisateur
• « userdel »: supprimer un utilisateur
• « usermod »: changer les propriétés d’un compte
n Commande utilisable par tous les utilisateurs
• « passwd »: changer le mot de passe
Gestion des utilisateurs
n Le fichier « /etc/passwd »
• Contient toutes les informations sur les comptes
utilisateurs du système
• Seul root a le droit en écriture dessus
• Chaque utilisateur est référencé par une ligne
donnant:
Ø Son login
Ø Son numéro
d’identification sur le
système (uid)
Ø Son numéro de
groupe (gid)
Ø Un Commentaire (Nom
complet en général)
Ø Son répertoire
personnel de base
Ø Son shell par défaut
nEx: test:x :101:10:Compte test:/home/test:/bin/bash
Gestion des utilisateurs
Répertoires et noms de fichiers
n Chaque fichier possède un nom non ambiguë (noms du fichier + chemin dans
l’arborescence.
n Si le fichier temp se trouve dans le répertoire /home/etud1 , son nom est :
/home/ etud1/ temp
n La commande pwd donne le nom du répertoire courrant.
n La notion de répertoire courant permet d’éviter de taper des noms trop longs.
n Dans chaque répertoire, on trouve au moins deux fichiers, nommés:
n . (point) : permet de référencer le répertoire lui même
n .. (point point): permet d'accéder au répertoire parent (du dessus).
n La création d’un répertoire se fait au moyen de la commande mkdir . Le
changement de répertoire au moyen de la commande cd .
Répertoires
n Si le nom de fichier (ou de répertoire) n’est pas précédé de /, il s’agit
d’un nom relatif au répertoire courant.
n $cd etud1/ test n’est pas la même chose que $cd /etud1/
test .
On dit que le chemin du fichier est absolu parce qu'à la vue de son
chemin d'accès, en partant de la racine, on sait exactement où se
trouve le fichier.
n Un chemin est dit relatif, quand il n'est pas nécessaire, d'indiquer le
chemin complet, de l'endroit où on se trouve dans l'arborescence, il
suffit de rajouter le chemin par rapport à ce même endroit.
n En admettant qu'on se trouve sous /home/ formation/, si l'on veut
accéder à notre fichier toto.txt, le chemin relatif au répertoire courant
est ./toto.txt, le point représentant le répertoire courant comme on l'a vu
auparavant.
n La commande du donne l’espace disque utilisé par les fichiers et sous
répertoires (en nombre de blocs de 512 ou 1024 octets).
Répertoire de connexion
n A chaque utilisateur connu du système est associé un répertoire de connexion
(home directory).
n L'utilisateur y place ses fichiers personnels, et peut y créer autant de sous-
répertoires qu'il le désire. Ex : le répertoire de connexion de l’utilisateur etud1
est /home/etud1
n Après le login, l'interpréteur de commande a pour répertoire courant le
répertoire de connexion de l'utilisateur.
n Le répertoire de connexion contient aussi certains fichiers de configuration
permettant à l'utilisateur de personnaliser son environnement de travail. Ces
fichiers sont normalement invisibles (car leur nom commence par un point).
n A tout moment, on peut revenir au répertoire de connexion grâce à la commande
cd.
n On peut aussi spécifier un chemin à partir du répertoire de connexion d'un
utilisateur en utilisant le caractère ~. Par exemple, ~etud1/courrier désigne le
fichier /home/etud1/courrier
Utilisateurs connectés: Who
n La commande who affiche la liste des utilisateurs connectés sur la machine où
l'on travaille.
n Le nom d'utilisateur, le nom du terminal utilisé et la date de début de session de
travail sont fournis.
n Ex :
etud1@STATION1 > who
etud1 ttyp1 Mar 4 11:00:25 (pdt1)
etud2 ttyp3 Marc 4 10:01:06 (pdt2)
n Une utilisation pratique de la commande who est la commande « who am i »
qui permet de connaître le nom de l'utilisateur connecté à partir d'un terminal
et qui l'a quitté.
n Ex :
etud1@STATION1 >who am i
etud1 ttyp3 Mar 04 10:00:52 (STATION1)
Les permissions
n Chaque fichier possède des permission définissant qui peut faire quoi avec le
fichier. On peut ainsi garder des fichiers confidentiels.
n Les permissions sont définies pour chaque fichier (et donc pour chaque
répertoire)
n Le super utilisateur ( root ) peut accéder à tous les fichiers. La commande su
permet de s’attribuer les permissions du super utilisateur (il faut connaître son
mot de passe).
n Lors de la connexion on spécifie son nom, son passwd. Cela permet de spécifier
son uid (seule identification connue par le système), et son gid (groupe
d’utilisateur).
n L’ uid et le gid , ainsi que les permissions des fichiers définissent ce qu’il est
possible de faire avec les fichiers.
n Le fichier /etc/ passwd contient le mot de passe ainsi que les identification de
chacun des utilisateurs.
Les permissions
n Chaque fichier possède 3 types de droits pour 3 types d’utilisateurs :
n Droits en lecture, écriture, exécution
n Pour l’utilisateur, les utilisateur du groupe, les autres utilisateurs
n La commande ls –l donne ces droits:
n Première lettre : - si fichier normal, d si répertoire,
n les 3 caractères suivants représentent les droits du propriétaire du fichier
rwx ,
n idem pour groupe
n Idem pour autres.
Les permissions: exemple
-rwx r-x r-x nb etud1 mygrp 22234 Dec 15 16:00 fichier
n La signification des lettres rwx et la suivante :
n r (read) on peut lire le fichier
n w (write) on peut modifier le fichier
n x (exécutable) on peut exécuter le fichier (c'est donc un exécutable)
n - aucun droit autorisé
Nombre de liens
Droits des autres
Droits du groupe
Propriètaire
(owner)
Groupe du Owner
Date du dernier changement
Nom du fichier
• - pour un fichier ordinaire,
• d pour un répertoire,
• b pour un fichier spécial de type bloc (périphériques...),
• c pour un fichier spécial de type caractère (disque, streamer...),
• l pour un lien symbolique,
• s pour une socket.
d rép
Nom du rép.
Droits du propriétaire
Taille
Les permissions
n La permission d’effacer un fichier est indépendante du fichier,
mais dépend du répertoire du fichier qui le contient (répertoire
autorisé en écriture).
n La commande rm permet d’effacer un fichier, la commande rmdir
permet d’effacer un répertoire.
n La propriété x pour un répertoire ne signifie par qu’il est
exécutable, mais que la recherche est autorisé dans ce répertoire
(ouverture ou exécution d’un fichier). La droit en lecture pour un
répertoire signifie que la liste de ses fichiers peut être obtenue. Un
répertoire peut être autorisé en lecture sans que les fichiers soient
autorisés en lecture.
Droits d’accès sur les fichiers
Commandes pour la gestion des accès:
• « chown »: change le propriétaire
• « chgrp »: change le groupe
• « chmod »: change les droits d’accès:
• « chmod +r fichier »: positionne l’accès en lecture
• « chmod –r fichier »: enlève l’accès en lecture
• « chmod o-x fichier »: enlève l’accès en exécution
pour les autres
• « chmod go-x fichier »: enlève l’accès en
exécution pour les membres du groupe et les
autres
n Ex: « chmod 444 fichier » ó Droits r-- r-- r--
Les permissions de root
n Afin de permettre l'administration du système, un utilisateur
spécial, nommé super utilisateur (ou root), est toujours
considéré par le système comme propriétaire de tous les
fichiers (et des processus).
n La personne qui gère le système est normalement la seule à
connaître son mot de passe. Lui seul peut ajouter de
nouveaux utilisateurs au système.
Les éditeurs de fichiers : vi
n Vi est un des éditeurs de texte très populaires sous unix
n Vi est un éditeur entièrement en mode texte:
chacune des actions se fait à l'aide de commandes texte. Cet éditeur , bien que
peu pratique à première vue est très puissant et peut être très utile en cas de
non fonctionnement de l'interface graphique.
n La syntaxe pour lancer Vi est la suivante:
n vi nom_ du_ fichier,
Une fois le fichier ouvert, il est possible de se déplacer à l'aide des
curseurs, ainsi que des touches h, j, k et l (au cas où le clavier ne
possèderait pas de curseurs fléchés).
Les éditeurs de fichiers : vi
n Vi possède 3 modes de fonctionnement:
n Le mode normal : celui dans lequel on est à l'ouverture du fichier. Il permet
de taper des commandes
n Le mode insertion : Ce mode permet d'insérer les caractères qu’on saisit à
l'intérieur du document. Pour passer en mode insertion, il suffit d'appuyer
sur la touche Insert de votre clavier, ou à défaut de la touche i
n Le mode de remplacement : Ce mode permet de remplacer le texte
existant par le texte qu’on saisit. Il suffit d’appuyer sur « r » (ou R ) pour
passer du mode insertion au mode remplacement, et d'appuyer sur la
touche Echap pour revenir en mode normal
Vi: commandes de déplacement du
curseur
l : déplacement d'un caractère vers la droite ;
h : déplacement d'un caractère vers la gauche ;
k : déplacement d'un caractère vers le haut ;
j (ou ¬) : déplacement d'un caractère vers le bas ;
0 : déplacement sur le caractère de la colonne 1 de la ligne courante ;
$ : déplacement sur le dernier caractère de la ligne courante ;
/motRETURN: descendre sur la 1 ère ligne contenant motif ;
?motRETURN: remonter sur la 1 ère ligne contenant motif ;
n : répète la dernière opération /mot ou ?mot ;
CTRL-f (Forward) : page suivante ;
CTRL-b (Backward) : page précédente ;
w (Word) : déplacement sur le début du mot suivant ;
b (Back) : déplacement sur le début du mot précédent ;
e (End) : déplacement sur la fin du mot courant ;
Vi: commandes d’insertion
Toutes les commandes d'insertion de chaînes de caractères font passer en mode
insertion et doivent être terminées par le caractère ESC pour repasser en mode
commande.
n a chaîne : chaîne insérée immédiatement après le curseur (Append);
n A chaîne : chaîne insérée en fin de la ligne courante ;
n i chaîne : chaîne insérée devant le curseur (Insert) ;
n I chaîne : chaîne insérée au début de la ligne courante ;
n o chaîne : chaîne insérée après la ligne courante (Open) ;
n O chaîne : chaîne insérée avant la ligne courante.
Vi: commandes de suppression
n x : supprime le caractère pointé par le curseur ;
n X : supprime le caractère précédant le curseur ;
n dd : supprime la ligne courante ;
n D : supprime la fin de la ligne courante (y compris le caractère pointé) ;
Vi: Commandes générales
commande Action
:x
:wq
:w
:10,20 w
nom_fichier
:w%.new
:q
:sh
:! Commande
:n,m! commande
:r! commande
Sauve le fichier si modifié et quitte
Sauve le fichier et quitte
Sauve le fichier
Sauve les lignes de 10 à 20 dans le fichier nom_fichier
Sauve le tampon du fichier courant avec le même nom mais
avec une extension différente
Quitte
Appelle un shell
Exécute une commande UNIX
Envoie les lignes n à m à la commande UNIX
Lit la sortie de la commande dans le fichier édité
n Pour rechercher un mot dans un document, il suffit (en
mode normal) de taper / suivi de la chaîne à rechercher,
puis de valider par la touche entrée. Il est alors possible
d'aller d'occurrence en occurrence grâce à la touche n .
n Pour remplacer une chaîne de caractère par une autre sur
un ligne, il existe une commande très puissante sous Vi
utilisant les expressions régulières Voici sa syntaxe:
n :s/ chaine_a_remplacer/ chaine_remplacante/
Il est possible de la généraliser à tout le document grâce à
la syntaxe suivante:
n :% s/ chaine_a_remplacer/ chaine_remplacante /
Vi: commandes de recherche et
de remplacement
Commandes liées à
l’arborescence de fichiers
n La commande ls permet d’obtenir la liste des fichiers d’un répertoire
ou d’une arborescence de répertoires. Un certain nombre d’options
permettent d’afficher plus ou moins d’informations sur ces fichiers et
répertoires:
n -l : format détaillé ,
n -a : liste aussi les fichiers qui commencent par « . »
n -d : si l’argument est un répertoire, la commande liste seulement son nom
et pas les fichiers qu’il contient,
n -t : affiche en triant par date de dernière modification
n -R : listage récursif des sous- répertoires,
n -F : fait suivre le nom des répertoires par un « / », le nom des
exécutables par une «* » et le nom des liens symboliques par un « @ »...
n -g : pour afficher les informations sur le groupe...
Système de fichier : cd, pwd
n cd [répertoire] : permet de changer de répertoire courant.
n Cd: permet de se replacer dans le répertoire par défaut (la HOME
directory).
n cd .. : Remonte au répertoire supérieur
n Avec certains shell, la commande « cd – » permet de revenir au
répertoire où l’utilisateur se trouvait précédemment.
n pwd : permet à tout moment de connaître le répertoire dans lequel on
se trouve. Il est souvent intéressant de connaître à un moment donné
exactement le lieu où l’on se trouve (avant d’effectuer une suppression
par exemple).
Système de fichier : file, cat
n file nom_de_fichier : il est possible sous Unix de connaître aussi
le type de fichier sur lequel on travaille. En dehors de l’extension qui
peut être trompeuse, tous les fichiers ont une en-tête permettant de
déterminer leur type (répertoire, exécutable, texte ASCII, programme C,
document Postscript...). L’ensemble de ces en- têtes est défini dans le
fichier /etc/ magic.
n cat [- v] [fichier...] : affichage du contenu d’un fichier:
La commande: cat [- v] [fichier...] sert à afficher le contenu d’un fichier si
ce dernier est passé en paramètres. Sinon, c’est l’entrée standard qui
est prise par défaut (clavier ou résultat d’une autre commande).
cat fichier1 fichier2 > fichier3 : cette commande permet
de créer un fichier (fichier3) en concaténant les fichiers fichier1 et
fichier2.
Système de fichier : more
n more : la commande: more [fichier...] permet d’afficher le contenu d’un
fichier page à page. Le fichier par défaut est l’entrée standard (en général le
résultat de la commande située avant le «|»).
Utilisation:
$ ls -l | more (redirige la sortie de la commande ls -l vers le more)
$ more .profile (affiche page à page le fichier .profile )
En bas de chaque page de la commande more , un certain nombre d’action sont
possibles:
n h: permet d’afficher la liste des commandes disponibles à ce niveau,
n [espace]: permet de passer à la page suivante,
n [entrée]: permet de passer à la ligne suivante,
n b : permet de revenir à la page précédente,
n i[ espace]: permet d’afficher i lignes en plus,
n = : permet d’afficher le numéro de la dernière ligne affichée,
n /mot : permet de se positionner 2 lignes avant la prochaine occurrence du mot
«mot»,
n n: continue la recherche précédente (identique à /),
n :f: permet d’afficher le nom du fichier et le numéro de dernière ligne affichée,
n . : effectue de nouveau la commande précédente,
Création et consultation d’un
fichier
n Création de fichier: $ touch fichier
cette commande permet de créer un fichier vide portant le nom fichier
§ Commandes de base pour consulter le contenu d'un fichier de texte :
§ cat fich, more fich : affichage simple et page par page ;
§ head fich, head -n fich : affichage des n premières lignes ;
§ tail fich, tail -n fich ; affichage des n dernières lignes ;
§ wc [–option] fich : affichage du nombre de lignes, de mots, de caractères
§ Options:
§ -l : pour le nombre de lignes
§ -w : pour le nombre de mots
§ -c : pour le nombre de caractères.
n L'arborescence contient 3 types d'éléments : Un système de fichiers est structuré
en
- Des répertoires qui sont des sortes de 4 zones comme suit :
dossiers ou classeurs ;
- Des fichiers ordinaires contenant une
suite séquentielle d'octets ;
- Des fichiers spéciaux repérant les périphériques.
n Le système d'exploitation possède une
vision uniforme de ces entrées grâce au
concept d' Inode
n Un inode contient ces informations :
Type (fichier, répertoire...), Identité du
propriétaire et du groupe, Droits d'accès, Dates de modification…, Autres (taille,
liens, adresses...)
Concept de l’inode
n Le numéro de l’inode s’obtient avec la commande ls –i .
n Les répertoires ne contiennent pas les inodes des fichiers mais des références
(adresse) des inodes correspondant aux fichiers.
n La commande rm ne détruit pas l’inode du fichier mais uniquement la
référence dans le répertoire.
n Si aucune référence ne pointe sur l’inode, alors l’inode est détruite.
n Le même fichier peut appartenir à plusieurs répertoires (ne pas le copier car
sinon il serait dupliqué). La commande ln (link) permet cela
$ ln ancien-fichier nouveau-fichier
n Le numéro après les permissions représente le nombre de répertoires contenant
le fichier.
Concept de l’inode
n La copie d'une entrée de l'arborescence s'effectue avec la commande cp (copy).
$ cp exemple file
n Pour un fichier, un nouvel inode est créé et les blocs de données dupliqués.
$ cp -r répertoire_source répertoire_ destination
Toute l’arborescence du répertoire source est copiée dans le répertoire destination.
Commandes Liées aux répertoires : cp
n Le renommage et le déplacement d'une entrée de l'arborescence s'effectuent
avec la commande mv (move).
$ mv R1/exemple R2/nouveau
n Le renommage consiste simplement à modifier le nom de l'entrée dans le
contenu du répertoire.
n Le déplacement consiste à supprimer l'entrée du répertoire d'origine et à insérer
une nouvelle entrée dans le répertoire destination.
n Les blocs de données ne sont
en aucun cas déplacés.
Commandes Liées aux répertoires : mv
§ Supprimer une entrée d'un répertoire correspond à la suppression d'un lien.
§ La suppression d'une entrée s'effectue avec la commande rm (remove)
$ rm file
§ Il reste un lien pour accéder à l'inode 1953, les blocs ne sont donc pas libérés.
$ rm ../R2/lien
§ La suppression du dernier lien provoque la libération du bloc inode et des blocs
de données.
Commandes Liées aux répertoires : rm
§ Un lien dit physique est une relation entre un répertoire et un fichier : plusieurs
liens sur une entrée signifie donc plusieurs repérages dans l'arborescence du même
inode et du même contenu.
§ Il est possible de créer un nouveau lien sur une entrée déjà existante avec la
commande ln (link).
$ ln file ../R2/lien
Une nouvelle entrée dans le répertoire R2 est créée.
§ L'inode 1953 est accessible à partir de R1 et de R2 respectivement par les noms
file et lien.
Concept du lien physique
§ Un lien physique utilisant un numéro d'inode, il se limite à la même partition.
§ Pour traverser les limites des partitions, Unix introduit des liens dits
symboliques.
§ La création d'un lien symbolique s'effectue avec l'option -s de la commande ln.
$ ln -s ../R2/nouveau ../R3/lien_symbolique
§ Un nouvel inode est créé dans la partition d'origine.
§ Cet inode contient le nom (absolu ou relatif) de l'élément pointé, au lieu d'un
numéro d'inode.
Concept du lien symbolique
Système de fichiers : chmod
chmod mode fichiers... : changement des droits
n Le paramètre mode indique quelles sont les autorisations données, il peut être
«symbolique» ou «absolu»:
n mode symbolique: le paramètre mode prend la forme suivante:
[ugo] [+-] [rwx].
n mode absolu: le paramètre mode est représenté par un nombre octal composé
de 3 chiffres:
n Le premier chiffre représente les autorisations du propriétaire,
n le second ceux du groupe
n le troisième correspond à tous les utilisateurs.
Pour calculer chacun des chiffres, on ajoute les valeurs des autorisations (4 pour
lecture, 2 pour écriture, 1 pour exécution).
n Exemple.:
$ chmod u+ rwx, go+ rx fichier : donne tous les droits au propriétaire, et
les droits en lecture et exécution aux autres utilisateurs.
n La commande précédente est équivalente à $ chmod 755 fichier
Système de fichiers : umask
Les droits par défaut à la création d'une entrée sont affichables avec la
commande
umask (user mask ).
§ umask affiche les droits à retirer dans un masque.
§ En standard, les entrées sont créés avec les droits rwx r-x r-x.
§ Dans ce cas, la commande umask donne la valeur 022 :
§ Le 0 indique qu'aucun droit pour l'utilisateur n'est retiré, donc rwx.
§ Le 2 indique que le droit w (2) est retiré pour le groupe et les autres, donc r-x.
n Par exemple: umask 026 est équivalent à un chmod 751 sur le nouveau
fichier créé.
Système de fichiers : chown,
chgrp
$ chown nouveau-propriétaire nom-fichier
n Changer le propriétaire et le groupe
n On peut donner un fichier à un autre utilisateur, c’est à dire qu'il
deviendra propriétaire du fichier.
n On peut changer le groupe.
$ chgrp nouveau-groupe nom-fichier
n chown et chgrp sont utilisables que si on est propriétaire du fichier.
Recherche de fichiers : find
$ find répertoires... [options...]
n où répertoires... permet d’indiquer le (ou les) répertoire( s) de départ de la
recherche et les options permettent de traiter et de récupérer les données.
n options permettent de rechercher des fichiers qui ont certaines caractéristiques:
n -name modèle_nom : les fichiers dont le nom répond au modèle modèle_nom,
n -size n : les fichiers dont la taille est n (en blocs de 512 octets),
n -mtime n : les fichiers dont le nombre de jours depuis la dernière modification est n,
n -atime n : les fichiers dont le nombre de jours depuis le dernier accès est n,
n -user nom: les fichiers dont le propriétaire est nom,
n -type t : les fichiers du type t (f pour un fichier ordinaire),
n -perm nombre: les fichiers dont les autorisations sont de la forme nombre,
n -perm -nombre: les fichiers dont les autorisations sont au moins de la forme nombre...
n D’autres options permettent de traiter les informations reçues:
n -print: pour afficher à l’écran le résultat de la commande
n -exec commande {} ; : permet d’exécuter une commande sur les fichiers qui
vérifient les critères de la commande find. Ces fichiers sont passés à la commande -
exec par les signes {}.
n -ok commande ;: effectue la même opération que ci-dessus mais demande une
confirmation de l’utilisateur avant l’exécution de la commande..
Exemples d’utilisation de find
n $ find / -name "* info*" –print
Affiche le nom de tous les fichiers de toute l’arborescence du système qui
contiennent le mot info,
n •$ find ~ -mtime -20 –print
Affiche les fichiers à partir du répertoire de l’utilisateur qui ont été modifiés dans
les vingt derniers jours,
n $ find /home/etud1 ! -user X -exec ls -ali {} ;
Affiche un listing détaillé de tous les fichiers qui n’appartiennent pas à
l’utilisateur X dans l’arborescence /home/etud1/
n $ find /home/etud1/X -perm -002 -exec ls -l {} ;
Affiche un listing détaillé des fichiers de l’arborescence /home/etud1/X qui ont
au moins l’autorisation d’écriture pour les autres,
n $ find . ( -name a.out -o -name core -o -name "*. o" ) -
ok rm {} ;
Supprime, après confirmation de l’utilisateur, tous les fichiers à partir du
répertoire courant (et dans tous les sous- répertoires) du type a.out, core et .o
...
Les entrées et les sorties
n Il y a trois sortes d'entrées sorties ou flux de données :
n L'entrée standard, c'est à dire ce que vous saisissez au clavier,
n La sortie standard, c'est à dire l'écran, plus précisément le shell,
n La sortie standard des messages d'erreurs consécutifs à une
commande, qui est, par défaut, l'écran.
n Chacun de ces flux de données est identifié par un numéro
descripteur:
n 0 pour l'entrée standard,
n 1 pour la sortie standard
n 2 pour la sortie standard des messages d'erreur.
§ À la connexion, le shell dispose de trois flots de communication :
- Entrée standard : stdin (numéro 0)
- Sortie standard et erreur standard : stdout et stderr (numéros 1 et 2)
§ L'association par défaut de ces flots est l' écran pour stdout et stderr, et le
clavier pour stdin.
§ Une redirection est une modification de l'une ou de l'autre de ces associations.
Elle est valable uniquement le temps de la commande sur laquelle elle porte.
§ Ainsi, la redirection de la sortie standard permet de récupérer le résultat dans un
fichier : commande > nom_fich. Par exemple,
$ who > users è rien à l'écran
$ cat users è fichier qui créé
etud1 console Aug 2 09:45
etud2 ttyp2 Aug 2 12:17 (etud1)
etud3 ttyp3 Aug 3 11:52 (:0.0)
Redirection de la sortie standard
§Attention!!! Avec >, si le fichier de redirection existe, son contenu initial est
perdu. $ date > users
$ cat users
Sat Mar 11 11:00:00 MET DST 2006
§ La redirection double (commande >> nom_fich) permet de ne pas détruire le
fichier existant, mais ajoute le nouveau contenu en fin de fichier.
$ pwd >> users
$ cat users
Sat Mar 11 11:00:00 MET DST 2006
/export/home/etud1
§ Avec >> , si le fichier n'existe pas, il est créé, comme pour une redirection
simple.
Redirection double de la sortie
standard
§ Moins utilisée que la redirection de la sortie standard, la redirection de l'entrée
standard (commande < nom_fich) permet à une commande d'utiliser comme
données le contenu d'un fichier à la place d'une lecture clavier.
§ Exemple avec la commande write :
- $ write etud1 ètexte lu au clavier
bonjour
touche CTRL-D è Message reçu par etud1 contenant « bonjour »
- Création d'un fichier contenant le message :
$ cat > message è texte lu au clavier
Re-bonjour
touche CTRL-D
$ write etud1 < message èredirection de l'entrée standard
èMessage reçu par etud1 contenant « Re-bonjour »
Redirection de l'entrée standard
Redirection de l'entrée standard
n Autre exemple:
$ sort < file
n On envoie le contenu du fichier file vers la commande sort (trie), celle- ci
va donc trier le contenu du fichier, par défaut le résultat sort sur la sortie
standard, c'est à dire à l'écran, plus précisément sur le shell.
n Avec : sort < file > file-trié
n sort < file : a pour effet de trier le fichier « file »
n >file-trié: a pour effet d'envoyer le résultat (le fichier trié) dans le
fichier « file-trié ».
Le résultat n'apparaît plus à l'écran, mais est sauvegardé dans un
fichier.
n Avec la redirection « << » la commande va lire les caractères jusqu'à la
rencontre d'une certaine chaîne de caractères.
Exemple: la commande cat (catalogue, permet d'éditer le contenu d'un
fichier).
n $cat << fin on tape du texte jusqu'à la chaîne de
caractère fin >
n En tapant la commande, on revient à la ligne, mais on perd le prompt:
n cat va lire (et éditer) les caractères qu’on saisit jusqu'à ce qu'il rencontre la
chaîne fin, à ce moment là, le prompt apparaît à nouveau.
n Si on veut créer un fichier avec un peu de texte à l'intérieur :
n $cat << fin > mon-fichier on tape du texte qui sera
sauvegardé dans mon- fichier, pour terminer le texte fin >
n Le texte qu’on vient de saisir, se trouve donc dans mon-fichier.
n Avec la commande : >fichierVide, on crée un fichier vide
fichierVide.
Redirection double de l'entrée
standard
Redirection des erreurs
n Par défaut les messages d'erreur s'affichent à l'écran (code 2),
n On peut modifier ce comportement.
n On peut sauvegarder dans un fichier ses messages d'erreur, pour analyse
ultérieure, en tapant : cat mon-fichier 2> fichier-erreur
n Si on rencontre une erreur pendant l'exécution de la commande d'édition cat
de mon-fichier (absence du fichier par exemple), le message d'erreur sera
sauvegardé dans le fichier fichier-erreur .
n En tapant : sort mon-fichier > file-trie
n On redirige le résultat de la commande sort mon-fichier vers le fichier
file-trie,
n la sortie standard n'est donc plus l'écran (plus précisément le shell ou terminal)
mais le fichier file-trie .
n Par défaut, les messages d'erreur s'affichent dans le shell, on peut faire en
sorte qu'ils s'affichent dans le fichier file-trie, en tapant :
sort mon-fichier > file-trie 2>& 1
n Avec la syntaxe >& on indique que les messages d'erreurs seront redirigés
vers la sortie standard qui est le fichier file-trie .
Les pipes
n Un pipe (tube de comm) permet de rediriger la sortie d'une commande
vers une autre.
n commande1 > sortie1
On redirige cette sortie vers une autre commande, ça devient donc une
entrée pour cette dernière commande, pour cela:
commande2 < sortie1
n La syntaxe commande1 | commande2 ( | étant le symbole de pipe) est
totalement équivalente aux deux commandes précédentes.
stdin0 stdin0
stdout1
stdout1
sterror2 sterror2
processus1 processus2
Les pipes : exemple
n Exemple : $ ls | grep Master
n ls permet la visualisation de fichiers, en tapant ls, on obtient :fichier1
fichier2 fichierMaster
n grep : permet la recherche d'une chaîne de caractère dans une liste
donnée,
n La première commande aura pour effet de lister le nom des fichiers se
trouvant à l'endroit où l'on a tapé la commande,
n La sortie standard (le résultat de la commande) est donc une liste de nom,
elle est redirigée vers la commande grep, qui va y chercher une chaîne de
caractère contenant Master.
n Le résultat est donc fichierMaster
Exécution séquentielle,
regroupement et imbrication de
commandes
n Exécution séquentielle : le séparateur « ; » permet d'enchaîner des
commandes sans relation entre elles.
$ ls ; who ; pwd è exécution en séquence de ls, who et pwd
n Regroupement : (...) permet de considérer les commandes incluses comme
une seule pour un tube ou une redirection.
$ (date ; who) > /tmp/users : redirection des 2 commandes
n Imbrication : entre $( et ) ou entre anti-quotes ` , la commande à
exécuter est remplacée par son résultat.
n Cela permet d'utiliser le résultat d'une commande comme argument d'une autre
$ echo Je suis sous $(pwd)
n 1. Exécution de la commande pwd
n 2. Exécution de la commande echo Je suis sous résultat de pwd
Désactivation de l'interprétation de
caractères spéciaux
n Entre simple quotes ( « ‘ » ) les caractères spéciaux ne sont pas interprétés par le
shell mais deviennent de simples caractères.
n Cela permet d'utiliser les caractères spéciaux dans les arguments.
$ echo 'deux > trois' èaffichage à l'écran
deux > trois
n Avec le caractère anti-slash «  » le caractère (spécial) qui le suit n'est pas
interprété.
$ echo deux >> trois
deux >> trois
n Si on veut mélanger des caractères spéciaux, des variables, des commandes..., il faut
utiliser les guillemets ( " ).
n Seuls sont interprétés les méta-caractères $ (commandes et variables), «  » (annulation)
et « ` » (commandes).
$ echo "Mon répertoire courant est $(pwd)"
Mon répertoire courant est /export/home/etud1
n Avec de simples quotes, $(pwd) ne serait pas interprété.
Variables
n Le nom d'une variable commence par une lettre ou le souligné ( _ ) suivi de lettres,
chiffres et _ .
n Affectation d'une variable par nom_var=valeur: $ mois=janvier
n Utilisation d'une variable par $nom_var : $ echo $mois
n Affichage de la liste des variables avec la commande set.
n Suppression d'une variable avec la commande unset : $ unset mois
n Quelques variables pré-définies :
n HOME : répertoire de connexion (cd et cd ~ sont égales à cd $HOME)
n PATH : liste des répertoires de recherche des commandes séparés par :
n L'ordre des répertoires est significatif, ce qui permet le choix de la version d'une commande.
n PS1 : invite de commande (par défaut $ )
n PS2 : invite de commande de continuation (par défaut > )
n IFS : séparateurs de mots (par défaut, espace, tabulation et NEWLINE)
n PWD : répertoire courant
Alias d’une commande
n Un alias sert à (re)définir le nom d'une commande.
n Cela sert à créer des mnémoniques, des noms abrégés...
$ alias ll="ls -l" ; ll è définition puis utilisation
-rw-r--r-- 1 etud1 171 Nov 10 09:40 users
$ ll > listefich è autre utilisation
$ alias ls="ls -a" è redéfinition de ls
$ alias è liste des alias
ll="ls -l"
ls="ls -a«
$ unalias ll ; ll èsuppression puis commande inexistante
ll : not found
Configuration du compte
n À la connexion, des shell-scripts particuliers sont exécutés pour paramétrer
la connexion.
n /etc/profile est un fichier maintenu par l' administrateur pour la
configuration par défaut des comptes sur une machine.
n ~/.bash_profile, ~/.bash_login, ~/.bashrc et ~/.profile sont des fichiers
maintenus par l' utilisateur pour paramétrer son compte.
n On y trouve des affectations de variables : PATH, MANPATH, PS1..., des
définitions d'alias, le positionnement de l'umask...
n Il est aussi possible de modifier les valeurs par défaut des options du shell
avec la commande set :
n set -o vi : choix de l'éditeur de la ligne de commande
n set -o ignoreeof : plus de déconnexion par CTRL-D, mais utiliser exit
n set -x : mode trace (affichage des commandes avant leur exécution)
n set +x : suppression du mode trace
Périphériques de stockage et
Système de fichiers
Périphériques de stockage et
Système de fichiers
Rappel sur les disques durs:
n Un disque dur est composé de plateaux reliés à un moteur central et
l'on trouve des têtes de lecture de part et d'autre de chacun des
plateaux.
n Sur chaque plateau, on trouve des pistes cylindriques découpées en
secteurs
n L’adressage d'un secteur est une référence au cylindre, à la tête de
lecture utilisée, à la piste, et enfin au secteur
n Il existe un ensemble de secteurs particuliers appelé le MBR, très
petit en général et partagé en deux parties :
n Table des partitions (info sur l’emplacement et taille partition)
n Système d'amorçage (chargé de lancer l’OS)
Périphériques de stockage et
Système de fichiers
Les Partitions:
n A l’installation, un disque dur n’est ni partitionné ni
formaté
n Partitionner: définir des espaces réservés sur le
disque
n Formater: préparer la partition à recevoir des
informations
n Une partition est définie par:
• Son type
• Son emplacement de début de partition
• Sa taille (ou son emplacement de fin de partition
Périphériques de stockage et
Système de fichiers- Les Partitions
n Un partitionnement est réversible (non physique)
n Les informations de partionnement sont stockées par
le BIOS dans le MBR (Master Boot Record)
n Notion d’activation:
• Une seule partition peut être activée sur un
ordinateur
• Indique où il doit aller chercher le noyau du
système d’exploitation pour le démarrage
Périphériques de stockage et
Système de fichiers - Les Partitions
3 types de partitions:
• Partition Principale:
• Au maximum 4
• Pas de minimum
• Accepte tout type de système de fichiers
• Partition Étendue:
• Ne peut contenir que des partitions logiques
• Ne peut pas recevoir de système de fichiers
• Ne peut exister que s’il existe une partition principale
• Partition Logique:
• Contenue dans une partition étendue
• Pas de limitation en nombre
• Accepte tout type de système de fichiers
Périphériques de stockage et
Système de fichiers- Les Partitions
Les avantages:
n Évite la perte de place (DOS)
n Possibilité d’installer plusieurs OS sur une même
machine
n Sauvegarde des données en cas de réinstallation
n Sauvegarde des données en cas de plantage
n Séparation logique des répertoires (système,
utilisateur, fichiers de logs,…)
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Les Systèmes de Fichiers:
n Système de fichiers: manière dont un système stocke
ses données sur un disque
n Pour Linux « ext2fs » est le plus répandu:
• Répertoires séparés par des «/»
• Sensible à la casse (« aaa » <> « Aaa »)
• Les fichiers cachés commencent par «. »
• Les espaces et les noms longs sont acceptés
• Défragmentation quasi-inutile
n Nouveaux systèmes de fichiers journalisés:
• Ext3fs; • ReiserFS; • JFS
Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Autre type de système:
le système de fichiers « Swap »
• Dédié à l’utilisation de la mémoire virtuelle
• Sert de mémoire vive quand la RAM est saturée
• Utilisée intensivement par le système pour la
décharge des logiciels en mémoire
Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Linux a une structure de partitions spécifique:
n Deux types au minimum
• Une ext2fs (ou autre) pour le système ou les
données
• Une swap pour la mémoire virtuelle (à peu près
la même taille que la RAM)
n On accède aux partitions par un pointeur stocké dans
« /dev »
Périphériques de stockage et
Système de fichiers- Syst. Fich.
n /dev est le répertoire des périphériques
n Sous UNIX, TOUT est fichier
n Pointeur de la forme: « /dev/PPLN » avec:
q PP: type de bus
• « hd » pour les disques dur IDE
• « sd » pour les disques SCSI
• « fd » pour les lecteurs de disquettes
q L: lettre du périphérique concerné
q N: numéro de partition concernée
• 1 à 4: partition principale ou étendue
• >4: partitions logiques
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Exemples:
n /dev/hda:périphérique maître du bus primaire IDE
n/dev/hdd: périphérique esclave du bus secondaire
IDE
n /dev/hda1: partition primaire du périphérique
maître du bus primaire IDE
n /dev/hda7: 3ème partition logique du périphérique
maître du bus primaire IDE
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Montage de Systèmes de Fichiers:
n Monter un système de fichiers ó l’associer à un
répertoire sur le système
n Par exemple, le système de fichiers racine est monté
sur «/»
n Un système de fichiers n’est pas accessible tant qu’il
n’est pas monté
n Commande « mount »:
mount –t <système de fichiers> <périphérique>
<répertoire>
Ex: « mount –t vfat /dev/hda1 /windows »
n Démonter un répertoire:
« umount <répertoire>»
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Montage de Systèmes de Fichiers:
n Les points de montage sont décrits dans le fichier
«/etc/fstab »
n Notations pour les systèmes de fichiers:
• « ext2 »: Ext2fs
• « vfat »: FAT32
• «msdos»: FAT16
• « ntfs »: NTFS (lecture seulement)
• « iso9660 »: CD- ROM/ DVD- ROM
Ex: mount –t iso9660 /dev/hdc /cdrom
Périphériques de stockage et
Système de fichiers- Syst. Fich.
n Partitionnements conseillés pour un système
«propre»
• Une partition /
• Une partition /boot
• Une partition /home
• Une partition /var
• Une partition /usr
• Une partition swap
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Système de Fichiers «/proc »:
n « /proc » est un répertoire de la racine
n Il n’existe pas physiquement sur le disque
n C’est un pseudo-système de fichiers tenu à jour par
le kernel
n Un sous-répertoire par processus
n Fichiers importants:
• « cpuinfo »: informations sur le processeur
• « filesystems »: liste des systèmes de fichiers
supportés par le système
• « kcore »: image de la mémoire physique du
système
• « meminfo »: informations sur la mémoire
Le Système de Fichiers «/proc »
Périphériques de stockage et
Système de fichiers- Syst. Fich.
Le Système de Fichiers «/proc »:
n Informations sur un processus particulier (donc dans
un sous-répertoire de /proc portant comme nom le PID
du processus)
• « cmdline »: ligne de commande par laquelle le
processus a été lancé
• « cwd »: le répertoire courant du processus
• « environ »: environnement du processus
• « exe »: pointeur vers le binaire exécuté
• « fd »: liens vers les fichiers ouverts par le
processus
• « maps »: plages mémoires allouées par le
processus
Processus
Caractéristiques d’un processus
n Un processus est un programme en cours d'exécution. Un processus a besoin
de ressources matérielles : l'unité centrale, la mémoire centrale et l'accès à des
périphériques d'entrées/sorties.
n Ses caractéristiques statiques, c'est-à-dire ne variant pas au cours de sa vie,
sont:
n Un numéro unique : PID (Process IDentifier ),
n Un propriétaire déterminant les droits d'accès du processus aux ressources :
ouverture de fichiers...
n Un processus parent dont il hérite la plupart des caractéristiques,
n Un terminal d'attache pour les entrées/sorties.
n Ses caractéristiques dynamiques sont :
n Priorité, environnement d'exécution...
n Quantité de ressources consommées (temps unité centrale utilisé...)
Arborescence des processus
n Un processus est toujours créé par un autre processus appelé processus
parent.
n Ainsi tous processus a un processus parent sauf le tout premier. Ce tout
premier processus est appelé init et son identifiant est égal à 1 (PID = 1).
n Deux types de processus existent :
n Les processus utilisateurs, tous issus du shell de connexion ;
n Les processus démons :
n Un démon est une traduction abusive de daemon.
n Ces processus daemon assurent un service et sont souvent lancés au
démarrage de la machine.
n Les principaux services assurés par des processus daemon sont l'impression, les
tâches périodiques, les communications, la comptabilité, le suivi de tâche.
Commande ps
n La commande ps affiche les caractéristiques des processus à un instant donné.
n Par défaut, ps affiche les processus de l'utilisateur.
n $ ps -l
F UID PID PPID C PRI NI SZ RSS WCHAN S TTY TIME COMMAND
20488000300 5179 5174 0 5 0 28 0 child S co 0:00 xinit
20488201300 5199 5187 0 15 0 60 156 kernel S po 0:01 sh
20000001300 5624 5199 21 30 0 192 432 R po 0:00 ps –l
| | | | | | | | | | | | | |
| | | | | | | | | | | | temps commande
| | | | | | | | | | | terminal
| | | | | | | | | | état
| | | | | | | | | événement attendu
| | | | | | | taille taille en mémoire réelle du process
| | | | | priorité
statut #user #proc #parent
Commande ps
n Affichage des processus en cours:
• « ps »: affiche les processus utilisateurs
• « ps -l »: affiche les processus utilisateurs en
détails
• « ps –aux »: affiche tous les processus d’un
système
Commandes pstree et top
n La commande pstree permet de visualiser l'arborescence des
processus.
n La commande top permet de visualiser dynamiquement les
caractéristiques des processus (l'affichage est actualisé
périodiquement).
n En plus des informations sur les processus, top donne des
indicateurs sur l'état du système : occupation de la mémoire, de
l'unité centrale...
n top: montre l'évolution de ces indicateurs en temps réel .
n Affichage des processus en cours
Processus en avant et en arrière
plan
n Par défaut, une commande s'exécute en avant-plan (en anglais foreground).
n Par exemple, l'utilisateur saisit la commande $ date.
n Le shell crée un processus enfant et attend qu'il se termine.
n Le processus enfant exécute la commande date.
è Les processus parent et enfant s'exécutent séquentiellement (l'un après
l'autre).
è Une seule commande est donc exécutée à la fois.
n Une commande peut aussi s'exécuter en arrière-plan (en anglais background).
n Par exemple, l'utilisateur saisit la commande: $date &
n Le shell crée un processus enfant et n'attend pas qu'il se termine.
n Le processus enfant exécute la commande date.
è Les deux processus, parent et enfant, s'exécutent alors simultanément .
Suspension et reprise d’un
process
n Sous Unix, il est possible de suspendre le processus en avant-plan en tapant
CTRL-Z.
n Le processus suspendu pourra reprendre ultérieurement.
n Il existe deux façons de reprendre un processus suspendu :
n En avant-plan par la commande fg (foreground),
n En arrière-plan par la commande bg (background).
n Par exemple :
n $ test èlancement de test en avant-plan
n CTRL-Z è édition suspendue
n $ bg è reprise de l'édition en arrière-plan
n Un job est défini comme un processus en arrière-plan ou suspendu.
n La commande « jobs » permet de lister ces processus.
Suppression d’un process
n Généralement un processus se termine à la fin de l'exécution de la dernière
instruction ; il est alors détruit par le système d'exploitation.
n Un utilisateur peut terminer un processus en avant-plan en tapant CTRL-C.
n Un utilisateur peut aussi terminer un processus avec la commande kill
envoyant un signal à un processus.
n Par défaut, la commande kill envoie le signal 15 de terminaison (SIGTERM).
$ kill PID
n La commande kill peut aussi forcer la terminaison d'un processus en envoyant le
signal 9 de destruction (SIGKILL).
$ kill -9 PID_processus
n Notez que le droit de détruire un processus est réservé à son propriétaire.
Etat d’un process
n Pour un utilisateur, un processus peut se trouver dans trois états:
n en exécution (exécution de la commande), suspendu (CTRL-Z) ou terminé.
Le schéma suivant récapitule les transitions permettant de passer d'un état à un
autre.
Processus: Gestion des Signaux
n Un processus peut émettre et recevoir des signaux
POSIX
n 64 signaux différents (liste complète par « kill –l »)
n Les 3 plus importants:
• SIGHUP –valeur 1 – Fin du processus de contrôle
(terminal par exemple)
• SIGINT – valeur 2 – Interruption du processus
• SIGKILL –valeur 9 – Interruption brutale du
processus
n Émission d’un signal par « kill -<n°> « processus »
Ex: kill –9 sshd
Utilisation du Shell Bash
Exécution d’un script
n On appelle ShellScript un fichier qui contient des noms de commandes et des
instructions internes au shell.
n L’utilisateur peut lancer un shellscript commandes en une commande.
n Les commandes contenues dans le shellscript sont alors lancées comme si
l’utilisateur les tapait sur la ligne de commande.
n La 1ère ligne d’un script shell peut être lue comme une instruction du shell pour
exécuter le script dans un nouveau type de shell spécifié
n Dans un script shell, le « # » permet de placer tous les commentaires désirés
n #!/bin/sh : en 1ère ligne, assure que le script est toujours exécuté en bourn
shell
n On peut lancer l’exécution d’un shellscript de trois manières différentes:
n Lancement par le nom du shellscript: $script (ou $./script)
n Lancement par appel explicite du shell: $ /bin/sh script
n Lancement par appel de la commande interne «.»: $ . script
Exécution d’un script
n Lancement par le nom du shellscript: $ script (ou $./script)
Si script est exécutable, la commande exécute un nouveau shell
n Lancement par appel explicite du shell: $ /bin/sh script
Exécute script dans un nouveau shell
n Lancement par appel de la commande interne « . »: $ . Script
Exécute script dans l’environnement du shell courant
n $ exec script : exécute un nouveau shell en écrasant le shell courant
sh
sh
Shell en attente
ksh script
sh Shell interrompu
sh script
Exécution de commandes
n Exécution séquentielle:
« commande1; commande2; commande3 »
n Exécution en tâche de fond:
«commande1 &»
Fichiers (Scripts) de configuration
exécutés après le login
n Lecture et exécution de « /etc/profile »
n Lecture et exécution de «.bash_profile » dans le
répertoire personnel
n Lecture et exécution de «.bashrc » dans le
répertoire personnel
n Lecture et exécution de « /etc/bashrc »
Facilités de saisie des commandes
n Historique des commandes: flèches haut et bas
n Copie dans un terminal: sélection d’un texte, copie
par clic-droit
n L’opérateur «~» renvoie au répertoire personnel
n La commande « cd – » renvoie au répertoire
précédent
n Complétion des commandes: touche « TAB »
Communications inter-processus
(pipe)
« commande1 | commande2 »
La sortie de commande1 est envoyée sur l’entrée de
commande2
Redirections d’entrées-sorties
n En général, trois descripteurs pour le shell (sur 10
possibles):
• 0: entrée standard
• 1: sortie standard
• 2: sortie d’erreur
n Les différentes redirections:
• « commande >fichier »:redirection de sortie vers
fichier avec écrasement
• « commande >> fichier »: idem mais ajout des
données à la fin
• « commande <fichier »: la lecture du descripteur
0 se fera sur ce fichier
• « commande << mot »: lecture de l’entrée
standard jusqu’à la première occurrence de « mot »
n Exemples:« cat /etc/passwd >fichier »
« cat /etc/passwd > fichier; cat /etc/shadow >>
fichier »
n Redirection des erreurs:
• « commande 2> /dev/null »
• « commande 2> fichier »
Redirections d’entrées-sorties
Exécutions conditionnelles
n « commande1 && commande2 »:
commande2 n’est exécutée que si
commande1 n’a pas renvoyé d’erreur
n « commande1 || commande2 »:
commande2 n’est exécutée que si commande1 a
renvoyé une erreur
Les Variables d’environnement
n Le shell permet le stockage de variables
d’environnement (en majuscules):
• Définies pour l’ensemble du système
• Définition par « VARIABLE= valeur
export VARIABLE»
• Exemples: HOME, PATH, SHELL, USER
• On accède à leur valeur en les faisant précéder
d’un « $ »
n Pour visualiser toutes les variables d’environnement:
« env »
Les Variables d’environnement
Les Expressions rationnelles
n Servent de « joker » dans les noms de fichiers:
• «*»: n’importe quelle chaîne de caractères
• «? »: n’importe quel caractère
• « [a-z] »: correspond à {a,b,c,…,z}
• « [A-Z] »: correspond à {A,B,C,…,Z}
• « [0-9] »: correspond à {0,1,2,…,9}
n Exemples:
• « *[0-9]* »: toute chaîne qui contient au moins
un chiffre
• « [c-fAX-Z] »: correspond à {c,d,e,f,A,X,Y,Z}
Variables
n Nous appellerons variable simple toute variable définie par l’utilisateur pour ses
propres besoins.
n Mécanismes d’affectation:
n On peut affecter une chaîne de caractères aux variables, et par extension, toute
affectation répond à la syntaxe suivante: $ variable= valeur
n Attention!!! il n’y a pas d’espace de part et d’autre du signe «=». De plus, la
commande: (variable= ) affecte la chaîne vide à variable.
n Désignation de la variable:
n Pour désigner une variable, il suffit d’utiliser la syntaxe suivante: $variable
n Cette notation servira pour tous les types de variables que nous verrons par la suite.
n Si la variable doit être suivie d’une valeur autorisée (exemple de nom de variable
auquel on ajoute séquentiellement un nombre), la notation est alors la suivante:
${ variable} caractère
n Affichage d’une variable:
n La commande: echo [- n] [texte] $variable permet d’afficher la valeur de la
variable. On peut aussi l’intégrer dans du texte.
L’option -n permet d’éviter le passage à la ligne après l’affichage.
Variables
Exemples:
n Affectation une valeur à une variable: var=valeur
$var1=Vendre
n Référencer une variable: $
$echo $var1 => Vendre
n Séparer une référence de variable du reste du texte: ${}
$echo Le cours se termine $var1di => Le cours se termine
$ echo Le cours se termine ${var1}di =>Le cours se termine Vendredi
n Obtenir la longueur d’une variable: ${#}
$ echo La longueur de var1 est ${#var1}
Variables
n Saisie au clavier: read
n Il est parfois utile de laisser l’utilisateur entrer la valeur de ses variables. La
commande: read variable... lit les valeurs sur l’entrée standard. Le premier mot est
affecté à la première variable et ainsi de suite. Si il y a plus de variables que de mot
saisis, le shell affecte aux dernières variables la chaîne vide.
n Exportation des variables: export
n D’ordinaire, une variable n’est utilisée que dans le shell-script où elle reçoit son
affectation. Si on souhaite l’utiliser pour les programmes appelés ultérieurement, on
doit l’exporter. La commande:
$ export variable...
recopie la valeur des variables en paramètre dans l’environnement qui sera passé aux
shell-scripts ultérieurs.
n Visualisation des variables disponibles: env
n La commande: $ env
affiche les valeurs des variables de l’environnement du processus en cours, c’est à
dire celles qu’il a reçues et celles qu’il a envoyées.
Variables
n La commande: $ set
affiche les valeurs des variables disponibles, c’est à dire toutes les variables même celles
qui ne seront pas transmises.
n Supprimer une variable: $ unset
n La commande: $ unset variable
supprime la variable de la liste des variables disponibles.
n Substitutions:
n Au niveau de l’affichage, il est parfois utile de pouvoir effectuer un certain
nombre de substitutions:
$paramètre : affiche la valeur courante de paramètre,
${paramètre}: affiche la valeur courante de paramètre et autorise la concaténation,
${paramètre:-valeur}: affiche la valeur courante de paramètre si elle est non nulle,
sinon affiche valeur,
${ paramètre:= valeur}: affiche la valeur courante de paramètre si elle est non
nulle, sinon affiche valeur et affecte « valeur » à paramètre
Substitution de commande
n Pour affecter une variable avec le résultat d’une
commande:
var=$( commande ) ou var=`commande`
n Exemple:
n Whoami
etud1
n var=$(whoami)
n echo Mon nom est $var
Mon nom est etud1
n echo Il y a `ls | wc –l`fichiers dans `pwd`
Affichera le nombre de fichiers dans le répertoire courant
Paramètres positionnels
n Des paramètres peuvent être transférés aux scripts shells comme
arguments sur la ligne de commande:
n $script1 arg1 arg2
n Arg1: paramètre positionnel numéro 1
n Arg2: paramètre positionnel numéro 2
n Ils sont désignés dans le script par:
n $1 à $9 : pour les neuf premiers
n ${10} à ${n} : pour le ksh uniquement
n Le nbre total de paramètres positionnels est donné par $#
n $ cat script1
n echo $1 $2 $3 $#
n $ script arg1 arg2 arg3
n arg1 arg2 arg3 3
Paramètres positionnels
n Dans un script shell, la commande set peut:
n Changer les valeurs des paramètres positionnels
n Désactiver les valeurs (unset) des param. positionnels précédemment
définies
n Exemple:
$ cat script
echo $1 $2 $3
set valeur1 valeur2
echo $1 $2 $3
$ script a b c
a b c
valeur1 valeur2
Décalage d’arguments
La commande shift [n] déplace les arguments vers « la gauche »
n Annulation du premier argument ou de l’argument « le plus à gauche »
n Réduction des paramètres positionnels
Exemple:
$ cat decal
echo $1 $2 $3 et $#
shift
echo $1 $2 $3 et $#
$ decal arg1 arg2 arg3 è
arg1 arg2 arg3 et 3
arg2 arg3 et 2
Variables spéciales
n Un certain nombre de variables sont utilisées dans les
shellscripts afin de déterminer et de séparer les paramètres:
n $#: donne le nombre d’arguments passés au script,
n $*: donne la liste des paramètres passés au script: $1, $2, …, $n
n " $*" = " $1, $2, …, $n"
n $@: équivalent à $*, mais "$@" signifie: "$1", "$2",..., "$n"
n $n: valeur du n- ième argument du script,
n $$: le numéro de processus (PID) du script,
n $!: le numéro de processus du dernier programme lancé en
background,
n $?: le code de retour du dernier programme lancé.
n $0: Le nom utilisé pour appeler le script shell
Variables spéciales
n Exemples:
$ cat param2 $ param2 1 "2 et texte "
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3=
set "$@"
echo ‘set avec "$@" ‘ set avec "$@"
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3=
set $*
echo ‘set avec $*’ set avec $*
echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 p3=et
set "$*"
echo ‘set avec "$*" ’ set avec "$*"
print p1=$1 p2=$2 p3=$3 p1=1 2 et texte p2= p3=
Sortie du script
n Au moyen de la fonction exit n le code de retour est alors n.
n Si le shellscript ne se termine pas par un exit, il renvoie le code de retour de la
dernière commande exécutée.
Le shell et le shell suivant
n Que se passe-t-il au niveau des variables lorsqu’on lance un sous-shell ou un
script?
n Les variables ne sont pas transférées, sauf si on les exporte !!!
n Set : pour dresser la liste de toutes les variables et leurs valeurs
n export var : exporte la variable var afin que les sous shells en héritent
n export : pour dresser la liste des variables qui sont exportées
sh
sh
Shell en attente
Le shell et le shell suivant
n Exemple d’héritage:
$ var=un
$ echo "var=$var"
var=un
$ sh
$ echo "var=$var"
var=
$ Ctrl-D
$ echo "var=$var’ "
$ var=un
$ export var
$ sh
$ echo "var=$var"
var=un
$ var=modif
$ Ctrl-d
$ echo "var=$var"
var=un
Script shell: Arithmétique
La commande (( )) :
n La commande (( )) effectue de longs calculs sans faire appel à un nouveau
processus
n Chaque argument est évalué comme une expression arithmétique
n A l’intérieure des (( )) les caractères spéciaux et les arguments contenant des
espaces n’ont pas besoin d’être placés entre simples quotes ou d’être protégés
par l’antislash
n Les variables n’ont pas besoin de $
n Le code retour de ((x)) est:
n 0 lorsque x est vrai (1)
n 1 lorsque x est fausse (#0)
Utilitaire bc :
n L’utilitaire bc est fourni par le système d’exploitation
n bc fonctionne en pipeline ou interactif
Script shell: Arithmétique
Exemples d’application de (( )) (calcul simple et opérateurs logiques:
Calcul simple:
n $ var=4
n $ (( var=var+1 ))
n $ echo $var è 5
n $ (( v=4))
n $ (( v=4*var+3 ))
n $ echo $v è 23
Opérateurs logiques :
!, <, <, >, >=, = =, !=, &&, | |
n $ (( exp1 && exp2 ))
Retourne 0 si exp1 et exp2 sont vrais
n $ (( exp1 | | exp2 ))
Retourne 0 si exp1 ou exp2 sont vrais
n $ (( n=10 ))
n $ (( (n=n-1) >= 0 )) ; echo $? è 0
bc:
$ bc
3*5 ; 7+3 : exécuté en interactif
15
10 Ctrl-d
Les Scripts Shell: Les Tests
n Existent sous deux formes: commande
« test condition» ou entre crochets [_condition_]
ou [[_condition_] ]
n Tests possibles sur les fichiers:
n [ -d fichier ]: vrai si fichier est un répertoire (et si il existe),
n [ -e fichier ]: vrai si le fichier existe,
n [ -f fichier ]: vrai si fichier est un fichier ordinaire (et si il existe),
n [ -r fichier ]: vrai si l’utilisateur a le droit d’accès en lecture sur fichier (s’il existe),
n [ -w fichier ]: vrai si l’utilisateur a le droit d’accès en écriture sur fichier (s’il existe),
n [ -x fichier ]: vrai si l’utilisateur a le droit d’accès en exécution sur le fichier (s’il existe),
n [ -c fichier ]: vrai si le fichier est un fichier caractère spécial (et si il existe),
n [ -b fichier ]: vrai si le fichier est un fichier bloc (et si il existe),
n [ -s fichier ]: vrai si fichier n’est pas vide,
n [ -L fichier ]: vrai si fichier est un lien symbolique,
n [ fichier1 -nt fichier2 ]: si fichier1 a été modifié plus récemment que fichier2,
Les Scripts Shell: Les Tests
n Tests binaires:
n [ -n chaîne ]: vrai si chaîne n’est pas vide,
n [ -z chaîne ]: vrai si chaîne est vide,
n [ nb1 -eq nb2 ] : vrai si les deux nombres entiers nb1 et nb2 sont égaux, on peut
remplacer eq par ne (différent), gt (supérieur), ge (supérieur ou égal), lt (inférieur), le
(inférieur ou égal).
n [ chaine1 = chaine2 ]: vrai si les deux chaînes sont identiques,
n [ chaine1 != chaine2 ]: vrai si les deux chaînes ne sont pas identiques,
n -a: opérateur logique et,
n -o: opérateur logique ou,
n !: négation logique
Structures de contrôle:
if … then ..else …fi
n La commande:
if test
then liste_ de_ commandes
else liste_ de_ commandes
fi
teste la valeur renvoyée par le test après le mot if et en fonction de ce code,
lance la liste de commande appropriée
n Si le code= 0 alors on exécute les commandes après le mot then sinon les
commandes après le mot else.
n Exemple d’utilisation: programme qui supprime interactivement selon la réponse
$ echo "Suppression interactive [oui/non]?"
read reponse
if [ $reponse = oui ]
then rm -i $@
else rm –f $@
fi
§ Structure permettant de faire des chois multiples:
case $mot in
modèle 1) liste_ commande;;
modèle n) liste_ commande;;
*) liste_ commande;;
esac
§ Le premier modèle rencontré qui répond à la valeur de mot indique la liste de
commandes à exécuter. Si mot ne correspond à aucun modèle, l’instruction se
poursuit jusqu’à la condition *) et si celle- ci n’existe pas, jusqu’au esac .
§ Les modèles sont de la forme: valeur1 | valeur2 | ... | valeurn
§ Dans les modèles, on peut utiliser les caractères spéciaux *, ?, [] comme dans
le cas de la recherche d’un fichier.
Structures de contrôle: case
Structures de contrôle: case
§ Exemple d’utilisation: programme qui supprime interactivement selon
la réponse:
$ echo -n "Suppression interactive ? "
read reponse
case $reponse in
o| O| oui| OUI) rm -i $@;;
n| N| non| NON) rm –f $@;;
*) echo "Réponse non valide ";;
esac
while expression
do
Liste_de_commandes
Done
Boucle conditionnelle:
while do; until do
Until expression
do
Liste_de_commandes
done
§ La boucle while sera exécutée uniquement si expression est vraie.
§ La boucle until suit la logique inverse. Elle est exécutée uniquement si
expression est fausse.
§ Si expression est une commande ou un groupe de commandes, plutôt qu’un
test logique, on pourra rediriger l’entrée d’un fichier dans la
liste_de_commandes
Optionnel: < fichier Optionnel: < fichier
§ Exemple1 d’utilisation:
§ Script: affichage
while [[ $# -gt 0 ]]
do
echo $1
shift
done
§ Exécution du script: $ affichage arg1 arg2
arg3 è arg1
arg2
arg3
Boucle conditionnelle:
while do; until do
§ Exemple2 d’utilisation:
§ Script: etudiant
while read ligne
do
set - $ligne
echo "Le prenom de $1 est $2"
done < etudiants
§ Exécution du script: $ etudiant
è Le prenom de etudiant1 est
prenom1
Le prenom de etudiant2 est
prenom2
Le prenom de etudiant3 est
prenom3
Boucle conditionnelle:
while do; until do
§ Exemple3 d’utilisation:
§ Script: user
Until who | grep etud1
do
echo " etud1 non connecte "
sleep 3
done
Boucle conditionnelle:
while do; until do
Boucle for
n for identificateur in mot1 mot2 …
do
Commandes utilisant $identificateur
Autres commandes
done
n for identificateur in *(métacaractères)
do
Commandes utilisant $identificateur
Autres commandes
done
n for identificateur
do
Commandes utilisant $identificateur
qui prendra les valeurs des paramètres positionnels
comme dans " $@ "
done
Boucle for
n Exemple d’utilisation de "for"
for fichier in *.sh
do
mv $fichier $fichier.script
done
Amorçage et Arrêt du Système
Les Chargeurs de Boot
n Servent à démarrer un système d’exploitation
n Permettent le choix au démarrage
n Chargeurs:
• Windows NT: NTLoader
• OS/2: Boot Manager OS/2
• Linux: LILO (LInux LOader)
n GRUB: GRand Unified Boot loader
n S’installent le plus souvent dans le MBR du disque
Séquence de Boot de Linux
n Démarrage Hardware de la machine
n Chargement du BIOS: initialisation des périphériques
n Lecture du MBR (Master Boot Record);
n Lancement de LILO
n Choix du système;
n Chargement du noyau
n Chargement des pilotes de périphériques
n Lancement du fichier « init »
• Lecture de « /etc/inittab »
• Lancement du script « /etc/rc.d/rc.sysinit »
• Lancement des services (démons) contenus dans
le répertoire «/etc/rc.d/rc<n>»
• Lancement du script «/etc/rc.d/rc.local »
Mise en place d’un double-boot
n Windows 9X/Me/2000: LILO sur le MBR (en général,
configuration automatique à l’installation avec les
nouvelles distributions)
n Windows NT4: LILO sur la partition de démarrage
(/boot ou /).
ATTENTION: penser à activer cette partition de
démarrage
n Configuration ultérieure par la modification du fichier
«/etc/lilo.conf »
Niveau d’exécution (runlevel)
n Sert à définir l’état du système
n Sert à définir quels services seront lancés
n 7 états prédéfinis (possibilité d’en définir plus):
• 0: hors service
• 1: mono-utilisateur
• 2: multi-utilisateur sans réseau
• 3: multi-utilisateur avec réseau
• 4: indisponible
• 5: login graphique (X-Window doit être configuré)
• 6: redémarrage
n Défini dans le fichier «/etc/inittab »
n Pour changer de runlevel: « init <n> » (n: runlevel)
Arrêt & Redémarrage
n Arrêt du Système:3 Méthodes
• « shutdown –h now »
• «halt »
• « init 0 »
n Variantes:
• « shutdown –h 10 »: arrêt dans 10 minutes
• « shutdown –h 18:30 »: arrêt à 18h30
n Redémarrage: «shutdown –r now »
• <Ctrl><Alt><Del>: variable et défini dans
«/etc/inittab » (en général, redémarrage)
Lancement des commandes en
différé
n La commande « at » : exécute une commande ou un script à un
moment donnée.
$ at –f /export/home/etud1/script 8 pm Saturday
job xxxx at Sun March 26 20:00:00 2006
$ at –l
user = root xxxx Sat March 26 20:00:00 2006
$ at –r xxxx
n La commande « cron » :
n /usr/sbin/cron est un démon qui consulte régulièrement les fichiers du
répertoire /var/spool/cron
n Ces fichiers montrent le temps d’exécution de programmes ou scripts par
les users
n Format du fichier cron:
minute heure jour_du_moi moi_de_l’an jour_de_la_semaine
15 18 1 * * /script
Lancement des commandes en
différé
Configuration du « cron » :
n /etc/cron.d/cron.allow : Contient les utilisateurs autorisés à utiliser la
commande crontab
n /etc/cron.d/cron.deny : si le fichier cron.allow n’existe pas, les
utilisateurs du
fichier cron.deny ne sont pas autorisés à utiliser la commande crontab
n crontab –e : édite le fichier /var/spool/cron/ « user »
n crontab –l : affiche le fichier /var/spool/cron/« user »
n crontab « fichier » : remplace le fichier crontab actuel par fichier
Le service « syslog »
n Le démon syslogd reçoit des messages d’erreur émis par le noyau ou
les démons de certaines services
n Le fichier /etc/syslog.conf permet à l’administrateur de décider de la
destination des messages pour chaque sous-système
n $ more /etc/syslog.conf
*.err;auth.notice /dev/console
*.err;daemon,auth.notice
/usr/adm/messages
lpr.debug root
*.emerg *
sous-système Niveau Destinataire
(kernel, mail, (emerg, (fichier, périphérique, email,
Lpr, daemon, alert, crit, *: tous les utilisateurs connectés)
Auth, *: tous les sous err, warn,
Systèmes) notice, info, debug, none)
Commandes avancées
Archivage et Compactage
Le compacteur « gzip »
n Rapide et très efficace
n Compacte le fichier, sauvegarde le nouveau fichier
en rajoutant l’extension « .gz » et efface l’original
n Ne compacte qu’un seul fichier à la fois
n « gzip –l » donne des informations sur le fichier
Compacté
n Pour décompacter: « gunzip <fichier> »
Archivage et Compactage
Le compacteur « gzip »
Archivage et Compactage
L’archiveur « tar »
n Assemble plusieurs fichiers en un seul
n tar = « Tape Archiver »
n Syntaxe: « tar <fonction><options> <fichiers…> »
n Paramètre <fonction>:
n « c »: créer une nouvelle archive
n « x »: extraire les fichiers d’une archive
n « t »: afficher les fichiers d’une archive
n « r »: ajouter des fichiers à l’archive
n Options:
n « z »: utiliser le compacteur gzip (extension .tar.gz ou .tgz)
n « f »: spécifier le nom du fichier à lire ou écrire
Archivage et Compactage
L’archiveur « tar »
Archivage et Compactage
n « tar » conserve l’arborescence et les propriétés de
chaque fichier
n En résumé:
n Créer une archive de plusieurs fichiers compactée:
tar czf dest.tar.gz src1 src2 …
n Décompacter une archive:
tar xzf fichier.tar.gz
n Visualiser une archive:
tar tzf fichier.tar.gz
L’Outil RPM
n RPM: Red Hat Package Manager
n Package: logiciel compilé+informations diverses
(source, dépendances,…)
n Outil d’installation de logiciels
n Gestion des dépendances :
grâce à l’utilisation d’une base de données
n Package: fichier de la forme
nom-version-architecture.rpm
n Lister tous les packages installés
« rpm –qa »
L’Outil RPM
n Installation d’un package:
« rpm –i package.rpm »
n Mise à jour d’un package:
« rpm –U package.rpm »
n Suppression d’un package:
« rpm –e package.rpm »
n Afficher des informations sur un package:
« rpm –qi package.rpm »
n Lister les fichiers d’un package:
« rpm –qpl package.rpm »
Commandes Réseau
Commandes réseau
n Réseau TCP/IP: la carte Ethernet est désignée par
«eth0 »
n Préliminaire: donner un nom de machine par la
commande «hostname » (ou à l’installation)
n Fichiers de configuration:
n « /etc/hosts »: liste d’adresses IP et les noms des machines
associées
Ex: 127.0.0.1 localhost (adresse de Loopback)
n « /etc/networks »: liste d’adresse et de noms de réseaux
n « /etc/hosts »: spécifie la manière dont les noms de
machine seront traduits en adresses IP
n « /etc/resolv.conf »: adresses des serveurs de noms et des
domaines à utiliser
Commandes réseau
n « ping »: permet de vérifier si une mahine est
présente sur le réseau.
n Un « ping 127.0.0.1 » permet de vérifier que la
carte réseau fonctionne normalement
Commandes réseau
n « ifconfig »: permet de connaître la configuration
réseau de la machine, mais aussi de la changer
Commandes réseau
n « arp »: permet de mettre en correspondance les
adresses IP et les adresses MAC
n « route »: permet de voir, d’ajouter ou de
supprimer les routes déclarées sur la machine.
Commandes réseau
n « netstat »: permet de connaître les ports en
écoute sur la machine, les connexions actives et
d’autres choses
n « traceroute »: permet de déterminer la route prise
par les paquets
n « telnet »: permet de se connecter à distance sur
une machine
n « nslookup »: permet d’interroger un serveur de
noms
n « who »: permet de connaître les utilisateurs
connectés sur la machine
Commandes réseau
n « last »: permet de consulter l’historique des
connexions
Commandes réseau
n « finger »: permet d’obtenir des informations sur
les utilisateurs d’une machine
n « tcpdump »: permet la capture de paquets sur le
réseau
n « nmap »: permet de scanner les ports d’une
machine
Gestion de performances
n L’administrateur se doit de surveiller l’utilisation des principales
ressources du système: processeur, mémoire centrale, pagination et
« swapping et les entrées/sorties
n Il doit être capable de remédier à leur mauvaise utilisation ou à leur
insuffisance
n Après diagnostic:
n Augmenter des ressources:
n Changer de machine - Augmenter la mémoire/le swap - Ajouter de l’espace
disque - Augmenter la taille des tables système
n Diminuer l’utilisation des ressources:
n Exécuter certains programmes la nuit – installer des quotas par user – diminuer
la taille de certaines tables pour augmenter d’autres
Ressources à surveiller
Mémoire CPU Entrées/
Sorties (I/O)
n iostat : affiche des statistiques sur utilisation des disques
n uptime : affiche les statistiques sur la charge générale du système
n swap : affiche les informations concernant l’utilisation du swap
n ps : information sur les processus
n time: temps CPU consommé par un processus
n netstat : utilisation du réseau
n vmstat : utilisation de la mémoire
n sar : outil général de surveillance
Cmdes de surveillance du système
n La commande vmstat affiche les statistiques sur les processus, la
pagination, l’activité du CPU et les interruptions.
n Syntaxe: # vmstat [options] [<n>] [<m>]
n Par défaut, la commande vmstat affiche les informations depuis le
démarrage du système, ou sinon, dans les <n> dernières secondes,
<m> fois, à l ’infini si <m> n’est pas précisé
n Exemple:
n # vmstat –s
n # vmstat –s 10 1
Surveiller le système: vmstat
n La commande netstat affiche les informations sur l’utilisation du réseau
n Syntaxe: # netstat [options]
n Options:
n -a: affiche l’état du socket -i: état des interfaces configurés sur le système
n -r: affiche table de routage -n: numéro de port, de réseau et les adresses
n -s: affiche les statistique sur les protocoles
n -m: affiche les informations sur les ressources mémoire utilisée par les
protocoles réseau
Surveiller le système: netstat
n La commande sar permet de surveiller toutes les ressources du
système:
n Surveiller l’usage du CPU:
n # sar -u : pourcentage d’utilisation du CPU
n # sar -q : nombre de processus en attente
n Surveiller l’usage de la mémoire:
n # sar -r : utilisation de la mémoire centrale et du swap
n # sar -w : surveille du swapping
n # sar -p : surveille le paging
n Surveiller les entrées/sorties:
n # sar -b : utilisation des tampons
n # sar -d : utilisation des disques
Surveiller le système: sar
n Le service de surveillance des processus doit être activé ainsi que celui
des données produites qui seront exploitées par la commande « sar »
n L’activation et la production des données sont réalisées par la commde
« sadc ». Les scriptes «sa1» et «sa2» collectent et sauvegardent les
données du système
n La commande « sadc » permet de collecter données <n> fois à
intervalle de <t> secondes et de stocker les données dans un fichier
journalier (/usr/adm/sa/sa<jj> où jj désigne le jour du mois)
n «sa1» et «sa2» sont activé via «cron» et produisent les données
quotidiennes respectivement pour les comptes « sys » et « root »
n Ex. de cron de sys: 0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
n Ex. de cron de root: 5 8 * * 1-5 /usr/lib/sa/sa2 –s 8:00 –e
Surveiller le système: sar
n Syntaxe:
n # sar [-abBcdghmOpqrRSuvwy] [-A] [-o fichier] t [n]
n # sar [-abBcdghmOpqrRSuvwy] [-A] [-s heure][-e heure] [-i seconde][-f
fichier]
-abBcdghmOpqrRSuvwy : désigne les ressources à surveiller
-A: equivalent à –abBcdghmOpqrRSuvwy
n,t: nombre de rapports espacés de « t » secondes
Surveiller le système: sar
ou
n -u: utilisation du CPU -a: opération d’accès au fichier
n -b: utilisation du cache -B: utilisation des buffers
n -c: utilisation des primitives -d: utilisation des périph. de type bloc
n -g: utilisation des I/O série -h: statistique sur les I/O physiques
n -m: utilisation des IPC -O: requêtes d’I/O asynchrones
n -p: statistiques de la pagination -y: activité des terminaux
n -q: pourcentage moyen des processus prêts à s’exécuter en mémoire en swap
n -r: pages de la mémoire et blocs de disque de swap inutilisés
n -R: stat. sur l’ordonnancement -S: stat. sur les requêtes SCSI
n -v: etat des tables du noyau -w: état de la pagination et du swapping
n Exemples: # sar –u 5 3 # sar -q 5 3 # sar -r 5 3 # sar -w 5
3
Surveiller le système: sar
Le serveur Web Apache
Installation du serveur httpd
Deux méthodes :
n Package rpm
n Compilation des sources (www.apache.org)
n Conseillé pour bénéficier d’une arborescence standard et de
la dernière version
n Créer un répertoire temporaire: « mkdir temp »
n Décompacter l’archive: « tar xzf apache.X.Y.tar.gz »
n Lire les fichiers d’installation
Installation du serveur httpd
n Compilation des sources :
n Compiler les sources (vérifier la présence de « gcc » et de « make
»):
« # ./configure --prefix=/usr/local/apache
# make
# make install »
n Vérifier que tout s’est bien passé:
« # /usr/local/apache/sbin/apachectl start »
n Édition des fichiers de configuration:
n Access.conf: instructions permettant de gérer les accès au serveur
n Srm.conf: instructions sur les noms et les types accessibles aux
utilisateurs
n Httpd.conf: instructions sur le fonctionnement du serveur
Serveur http Apache
n Démarrer le serveur: « apachectl start »
n Arrêter le serveur : « apachectl stop »
n Configuration de httpd.conf:
n Changer l’utilisateur: champ « User »
n Changer le port: champ « Port »
n Configuration de srm.conf:
n Changer le répertoire racine: champ « DirectoryIndex »
n Changer les messages d’erreur: champs « ErrorDocument »
Serveur http Apache
Test du serveur :
n Utilisation d’un navigateur (http://localhost)
n Utilisation de telnet:
n « telnet localhost <Port du serveur> »
n en général: « telnet localhost 8080 »
Serveur http Apache
Options courantes:
n « KeepAlive »: indique si les navigateurs sont
autorisés à ordonner aux connexions de rester
actives (httpd.conf)
n « FollowSymLinks »: indique si les liens symboliques
sont autorisés (access.conf)
n « FancyIndenxing »: indique si les fichiers sont
accompagnées d’icônes
Travaux Pratiques
n « Initiation à Unix », D. Bouillet, D. Conan, F. Silber-Chaussumier,
TélécomINT/UX11, Sept. 2005
n « Présentation Unix », Matthieu Herrb, LAAS-CNRS
n « Cours de Systèmes d'Exploitation (Unix) », H.Bourzoufi
n « Advanced Programming in the UNIX Environment Addison »- Wesley, ISBN
0- 201- 56317- 7, W. R. Stevens
n « Introduction au système UNIX », GTR 2001-02, Emmanuel Viennet, IUT de
Villetaneuse
n « Unix administration », J-F Bouchaudy & G. Goubet
n « Unix: langage de programmation Korn shell », IBM
n « Installation et administration sous SUN- Guide étudiant »
bibliographie

Contenu connexe

Similaire à Cours Linux , bases de l'administration linux

Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Administration linux
Administration linuxAdministration linux
Administration linuxLys Lopy
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
Souhaib El
 
s de base
s de bases de base
s de base
alimesbahi3
 
UNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdfUNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdf
YassineZouin
 
Unix 1.pdf
Unix 1.pdfUnix 1.pdf
Unix 1.pdf
nitro maaf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
MedBechir
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
Amaury Khelifi
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
BenFradjHajer1
 
système d'exploitation Linux commande et shell.pdf
système d'exploitation Linux commande et shell.pdfsystème d'exploitation Linux commande et shell.pdf
système d'exploitation Linux commande et shell.pdf
Faouzia Benabbou
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
BenFradjHajer1
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
MahdiHERMASSI1
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
Emmanuel Florac
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
Ikram Benabdelouahab
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
Emmanuel Florac
 
Manip fichier
Manip fichierManip fichier
Manip fichier
Imane Bellali
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
Ferjani Bassem
 
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdfCours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
MedBechir
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
Alexandru Radovici
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux

Similaire à Cours Linux , bases de l'administration linux (20)

Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Administration linux
Administration linuxAdministration linux
Administration linux
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
s de base
s de bases de base
s de base
 
UNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdfUNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdf
 
Unix 1.pdf
Unix 1.pdfUnix 1.pdf
Unix 1.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
système d'exploitation Linux commande et shell.pdf
système d'exploitation Linux commande et shell.pdfsystème d'exploitation Linux commande et shell.pdf
système d'exploitation Linux commande et shell.pdf
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)Présentation Unix/Linux (mise à jour 2016)
Présentation Unix/Linux (mise à jour 2016)
 
Manip fichier
Manip fichierManip fichier
Manip fichier
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdfCours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
Cours SE Principes et fonctionnement de système d’exploitation - IPSET.pdf
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux
Chapitre 2 Linux
 

Dernier

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (6)

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

Cours Linux , bases de l'administration linux

  • 1. Linux - Utilisation Par Pr. K. ZINEDINE
  • 2. PLAN DE COURS 1. Introduction au système Unix - Linux 2. Caractéristiques Générales 3. Principes et Commandes de Base 4. Périphériques de Stockage et Systèmes de Fichiers 5. Processus 6. Utilisation du Shell bash (programmation) 7. Amorçage et Arrêt du Système 8. Commandes Avancées 9. Configuration des services Réseau 10. Gestion de performance 11. Configuration de services réseau (web Apache … )
  • 3. Histoire de Unix L'histoire d'UNIX débute dans les années 60: -1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur usage interne, d'un OS pour le traitement de textes et le développement d'applications. -1969 : apparition de la 1ère version d'UNIX. Le nom UNIX provient de UNICS (UNiplexed Information and Computing System) -1973 : nécessité de rendre UNIX portable sur d'autres ordinateurs. UNIX a été alors réécrit entièrement par Denis Ritchie en langage C -1974 : AT&T propose les 1ères licences aux universités, -1978 : AT&T présente à l'industrie les 1ères versions commerciales.
  • 4. Histoire de Unix -Années 80 : AT&T autorise le clonage d'UNIX par d'autres constructeurs. Ainsi, apparaissent ULTRIX sur DEC, BSD sur SUN, AIX sur IBM, etc. - En 1983, pour promouvoir les logiciels libres, Richard Stallman lance le projet GNU qui fournit aujourd'hui plusieurs éléments essentiels de système d'exploitations basés sur le Noyau Linux - Le projet GNU avait pour objectif d'écrire un OS de type Unix entièrement composé de logiciels libres.
  • 5. - Au début des années 90, le projet GNU avait produit tous les éléments essentiels à la construction d'un OS (un compilateur, un éditeur de texte, un shell, des bibliothèques, et beaucoup d'autres logiciels) à l'exception de l’élément central : le noyau. - 1991 : Linus Thorvald voulait mettre au point son propre OS; il avait pour intention de développer une version d'UNIX pouvant être utilisée sur une architecture de type 80386. Histoire de Unix
  • 6. n Linux est le noyau d'un OS de type Unix, initié par Linus Torvalds en 1991 n il désigne un OS comparable à Ms Windows ou Mac OS composé de nombreux logiciels libres développés en collaboration via Internet n Il permet d’utiliser des serveurs comme Apache ou Sendmail, des environnements de bureau comme GNOME et KDE, des applications majeures comme Mozilla Firefox Linux: Définition
  • 7. n Code source disponible (licence GPL) n Système multitâches et multi-utilisateurs n Multi-plateforme (intel x86,Sun Sparc,etc…) n Gestion du multiprocesseur (option SMP: Symetric MultiProcessor) n Compatible POSIX (standard logiciel) n Compatibilité de code avec les autres UNIX n Gestion des consoles virtuelles n Possibilité de cohabitation avec d’autres systèmes n Support d’un grand nbre de systèmes de fichiers Caractéristiques
  • 8. n Implémentation complète de la pile TCP/IP n Services réseau:PPP, NFS, etc… n Interface graphique:X-Window n Le Noyau Linux (kernel): n Cœur du système n Ensemble de routines appelées par des appels systèmes n Interface entre les programmes utilisateurs et le matériel n Gestion des processus et de la mémoire virtuelle n Gestion des bibliothèques partagées n Protection entre les processus Caractéristiques
  • 9. n Applications Disponibles: n Bureautique: •StarOffice, •Koffice (Kword,Kspreadsheet,Kpresenter) •AbiWord (traitement de texte), •Gnumeric (tableur) n Graphisme: •The Gimp (retouche d’image), •Corel PhotoPaint (retouche d’image), •Sketch (Dessin vectoriel) n Internet: •Netscape Communicator, •Konqueror, •Opera 5 •Instant Messaging:ICQ,AIM,etc… n Serveurs •HTTP,FTP,mail,news,DNS,etc… Caractéristiques
  • 10. n Architecture Globale: 3 couches n Couche «physique »:périphériques +BIOS n Couche «système »: kernel et processus n Couche «interface »:shell +X-Window n Communications entre couches sont très réglementées par le kernel Architecture d’un syst. Linux
  • 11. Architecture d’un syst. Linux Périphériques Physiques BIOS KERNEL Shell Système X-Window Interface Utilisateur SYSTEME MACHINE Carte Graphique
  • 12. n Le Shell: interpréteur de commande, il est l’interface entre l’utilisateur et l’OS n Lit et exécute les commandes de l’utilisateur n Propose un contrôle des processus n Gère les redirections en entrée et en sortie n Propose un véritable langage de programmation n Plusieurs types de shell disponibles: • Le plus utilisé:bash (sh) • Autres: csh, ksh, zsh, … etc. Le Shell
  • 13. n Chaque utilisateur possède un shell par défaut, qui sera lancé à l'ouverture d'une invite de commande. n Le shell par défaut est précisé dans un fichier de configuration (/etc/passwd) n Il est possible de changer de shell dans une session Le Shell
  • 14. n Interface graphique standard des systèmes UNIX n Repose sur un processus particulier «serveur X » n Utilise un gestionnaire de fenêtres: plusieurs sont disponibles (KDE2, Gnome, WindowMaker, etc…) n L’une des principales caractéristiques: Possibilité pour le user de déporter l’affichage à travers un réseau Le Système X-Window
  • 15. n Bureau KDE2: Le Système X-Window
  • 16. n Bureau Gnome: Le Système X-Window
  • 17. n Bureau WindowMaker: Le Système X-Window
  • 19. n Le système possède une structure en arborescence n la racine est notée « / ». n Chacun des répertoires sous cette racine a un nom standardisé et un contenu précis Principes et Commandes de base- Arborescence du Système:
  • 20. / Racine du système, contient les répertoires principaux /bin Commandes essentielles communes à tous les utilisateurs /boot Fichiers de démarrage du système, contient le noyau /dev Points d’entrée des périphériques /etc Fichiers de configuration /home Contient les répertoires personnels des différents utilisateurs /root Répertoire personnel de l’administrateur /usr Hiérarchie secondaire, applications, bibliothèques partagées /var Fichiers trace du système (Logs) /proc Système de fichier virtuel, informations en temps réel Arborescence du système
  • 21. Commandes de base n Commandes: En très grand nombre n Principe UNIX: une commande n’exécute qu’une seule fonction, mais le fait de manière exhaustive n Exécutées à l’invite du shell (ou d’un terminal dans le cas de X-Window) n De la forme: nom_commande [-options] <cible1> <cible2>…
  • 22. Commandes de base n «ls »:lister le contenu d’un répertoire n «rm »:supprimer un fichier n «cp »: copier un fichier n «ln »: créer un lien sur un fichier n «man »: afficher l’aide d’une commande n «mv »: déplacer un fichier n «cd »: changer de répertoire n «mkdir »: créer un répertoire n «rmdir »: supprimer un répertoire vide n «pwd »: afficher le répertoire courant n «cat »: afficher le contenu d’un fichier n «file »: afficher le type de contenu du fichier n «locate »: localiser un fichier sur le disque
  • 23. Gestion des utilisateurs n Un utilisateur du système: • Personne physique • Droits d’accès au système • Répertoire personnel • Groupe d’utilisateur n Un utilisateur particulier: «root » • Administrateur du système • Possède tous les droits sur le système, Les utilisateurs et les fichiers • A n’utiliser que pour la configuration et l’installation
  • 24. Gestion des utilisateurs n Identification d’un utilisateur: • Nom: « login » • Mot de passe: « password » n Référencement de tous les utilisateurs dans le fichier « /etc/passwd » et/ou « /etc/shadow » n Référence à un groupe: « /etc/group » n Répertoire personnel: « /home/<login> »
  • 25. Gestion des utilisateurs n Commandes utilisables par root: • « useradd »: ajouter un utilisateur • « userdel »: supprimer un utilisateur • « usermod »: changer les propriétés d’un compte n Commande utilisable par tous les utilisateurs • « passwd »: changer le mot de passe
  • 26. Gestion des utilisateurs n Le fichier « /etc/passwd » • Contient toutes les informations sur les comptes utilisateurs du système • Seul root a le droit en écriture dessus • Chaque utilisateur est référencé par une ligne donnant: Ø Son login Ø Son numéro d’identification sur le système (uid) Ø Son numéro de groupe (gid) Ø Un Commentaire (Nom complet en général) Ø Son répertoire personnel de base Ø Son shell par défaut nEx: test:x :101:10:Compte test:/home/test:/bin/bash
  • 28. Répertoires et noms de fichiers n Chaque fichier possède un nom non ambiguë (noms du fichier + chemin dans l’arborescence. n Si le fichier temp se trouve dans le répertoire /home/etud1 , son nom est : /home/ etud1/ temp n La commande pwd donne le nom du répertoire courrant. n La notion de répertoire courant permet d’éviter de taper des noms trop longs. n Dans chaque répertoire, on trouve au moins deux fichiers, nommés: n . (point) : permet de référencer le répertoire lui même n .. (point point): permet d'accéder au répertoire parent (du dessus). n La création d’un répertoire se fait au moyen de la commande mkdir . Le changement de répertoire au moyen de la commande cd .
  • 29. Répertoires n Si le nom de fichier (ou de répertoire) n’est pas précédé de /, il s’agit d’un nom relatif au répertoire courant. n $cd etud1/ test n’est pas la même chose que $cd /etud1/ test . On dit que le chemin du fichier est absolu parce qu'à la vue de son chemin d'accès, en partant de la racine, on sait exactement où se trouve le fichier. n Un chemin est dit relatif, quand il n'est pas nécessaire, d'indiquer le chemin complet, de l'endroit où on se trouve dans l'arborescence, il suffit de rajouter le chemin par rapport à ce même endroit. n En admettant qu'on se trouve sous /home/ formation/, si l'on veut accéder à notre fichier toto.txt, le chemin relatif au répertoire courant est ./toto.txt, le point représentant le répertoire courant comme on l'a vu auparavant. n La commande du donne l’espace disque utilisé par les fichiers et sous répertoires (en nombre de blocs de 512 ou 1024 octets).
  • 30. Répertoire de connexion n A chaque utilisateur connu du système est associé un répertoire de connexion (home directory). n L'utilisateur y place ses fichiers personnels, et peut y créer autant de sous- répertoires qu'il le désire. Ex : le répertoire de connexion de l’utilisateur etud1 est /home/etud1 n Après le login, l'interpréteur de commande a pour répertoire courant le répertoire de connexion de l'utilisateur. n Le répertoire de connexion contient aussi certains fichiers de configuration permettant à l'utilisateur de personnaliser son environnement de travail. Ces fichiers sont normalement invisibles (car leur nom commence par un point). n A tout moment, on peut revenir au répertoire de connexion grâce à la commande cd. n On peut aussi spécifier un chemin à partir du répertoire de connexion d'un utilisateur en utilisant le caractère ~. Par exemple, ~etud1/courrier désigne le fichier /home/etud1/courrier
  • 31. Utilisateurs connectés: Who n La commande who affiche la liste des utilisateurs connectés sur la machine où l'on travaille. n Le nom d'utilisateur, le nom du terminal utilisé et la date de début de session de travail sont fournis. n Ex : etud1@STATION1 > who etud1 ttyp1 Mar 4 11:00:25 (pdt1) etud2 ttyp3 Marc 4 10:01:06 (pdt2) n Une utilisation pratique de la commande who est la commande « who am i » qui permet de connaître le nom de l'utilisateur connecté à partir d'un terminal et qui l'a quitté. n Ex : etud1@STATION1 >who am i etud1 ttyp3 Mar 04 10:00:52 (STATION1)
  • 32. Les permissions n Chaque fichier possède des permission définissant qui peut faire quoi avec le fichier. On peut ainsi garder des fichiers confidentiels. n Les permissions sont définies pour chaque fichier (et donc pour chaque répertoire) n Le super utilisateur ( root ) peut accéder à tous les fichiers. La commande su permet de s’attribuer les permissions du super utilisateur (il faut connaître son mot de passe). n Lors de la connexion on spécifie son nom, son passwd. Cela permet de spécifier son uid (seule identification connue par le système), et son gid (groupe d’utilisateur). n L’ uid et le gid , ainsi que les permissions des fichiers définissent ce qu’il est possible de faire avec les fichiers. n Le fichier /etc/ passwd contient le mot de passe ainsi que les identification de chacun des utilisateurs.
  • 33. Les permissions n Chaque fichier possède 3 types de droits pour 3 types d’utilisateurs : n Droits en lecture, écriture, exécution n Pour l’utilisateur, les utilisateur du groupe, les autres utilisateurs n La commande ls –l donne ces droits: n Première lettre : - si fichier normal, d si répertoire, n les 3 caractères suivants représentent les droits du propriétaire du fichier rwx , n idem pour groupe n Idem pour autres.
  • 34. Les permissions: exemple -rwx r-x r-x nb etud1 mygrp 22234 Dec 15 16:00 fichier n La signification des lettres rwx et la suivante : n r (read) on peut lire le fichier n w (write) on peut modifier le fichier n x (exécutable) on peut exécuter le fichier (c'est donc un exécutable) n - aucun droit autorisé Nombre de liens Droits des autres Droits du groupe Propriètaire (owner) Groupe du Owner Date du dernier changement Nom du fichier • - pour un fichier ordinaire, • d pour un répertoire, • b pour un fichier spécial de type bloc (périphériques...), • c pour un fichier spécial de type caractère (disque, streamer...), • l pour un lien symbolique, • s pour une socket. d rép Nom du rép. Droits du propriétaire Taille
  • 35. Les permissions n La permission d’effacer un fichier est indépendante du fichier, mais dépend du répertoire du fichier qui le contient (répertoire autorisé en écriture). n La commande rm permet d’effacer un fichier, la commande rmdir permet d’effacer un répertoire. n La propriété x pour un répertoire ne signifie par qu’il est exécutable, mais que la recherche est autorisé dans ce répertoire (ouverture ou exécution d’un fichier). La droit en lecture pour un répertoire signifie que la liste de ses fichiers peut être obtenue. Un répertoire peut être autorisé en lecture sans que les fichiers soient autorisés en lecture.
  • 36. Droits d’accès sur les fichiers Commandes pour la gestion des accès: • « chown »: change le propriétaire • « chgrp »: change le groupe • « chmod »: change les droits d’accès: • « chmod +r fichier »: positionne l’accès en lecture • « chmod –r fichier »: enlève l’accès en lecture • « chmod o-x fichier »: enlève l’accès en exécution pour les autres • « chmod go-x fichier »: enlève l’accès en exécution pour les membres du groupe et les autres n Ex: « chmod 444 fichier » ó Droits r-- r-- r--
  • 37. Les permissions de root n Afin de permettre l'administration du système, un utilisateur spécial, nommé super utilisateur (ou root), est toujours considéré par le système comme propriétaire de tous les fichiers (et des processus). n La personne qui gère le système est normalement la seule à connaître son mot de passe. Lui seul peut ajouter de nouveaux utilisateurs au système.
  • 38. Les éditeurs de fichiers : vi n Vi est un des éditeurs de texte très populaires sous unix n Vi est un éditeur entièrement en mode texte: chacune des actions se fait à l'aide de commandes texte. Cet éditeur , bien que peu pratique à première vue est très puissant et peut être très utile en cas de non fonctionnement de l'interface graphique. n La syntaxe pour lancer Vi est la suivante: n vi nom_ du_ fichier, Une fois le fichier ouvert, il est possible de se déplacer à l'aide des curseurs, ainsi que des touches h, j, k et l (au cas où le clavier ne possèderait pas de curseurs fléchés).
  • 39. Les éditeurs de fichiers : vi n Vi possède 3 modes de fonctionnement: n Le mode normal : celui dans lequel on est à l'ouverture du fichier. Il permet de taper des commandes n Le mode insertion : Ce mode permet d'insérer les caractères qu’on saisit à l'intérieur du document. Pour passer en mode insertion, il suffit d'appuyer sur la touche Insert de votre clavier, ou à défaut de la touche i n Le mode de remplacement : Ce mode permet de remplacer le texte existant par le texte qu’on saisit. Il suffit d’appuyer sur « r » (ou R ) pour passer du mode insertion au mode remplacement, et d'appuyer sur la touche Echap pour revenir en mode normal
  • 40. Vi: commandes de déplacement du curseur l : déplacement d'un caractère vers la droite ; h : déplacement d'un caractère vers la gauche ; k : déplacement d'un caractère vers le haut ; j (ou ¬) : déplacement d'un caractère vers le bas ; 0 : déplacement sur le caractère de la colonne 1 de la ligne courante ; $ : déplacement sur le dernier caractère de la ligne courante ; /motRETURN: descendre sur la 1 ère ligne contenant motif ; ?motRETURN: remonter sur la 1 ère ligne contenant motif ; n : répète la dernière opération /mot ou ?mot ; CTRL-f (Forward) : page suivante ; CTRL-b (Backward) : page précédente ; w (Word) : déplacement sur le début du mot suivant ; b (Back) : déplacement sur le début du mot précédent ; e (End) : déplacement sur la fin du mot courant ;
  • 41. Vi: commandes d’insertion Toutes les commandes d'insertion de chaînes de caractères font passer en mode insertion et doivent être terminées par le caractère ESC pour repasser en mode commande. n a chaîne : chaîne insérée immédiatement après le curseur (Append); n A chaîne : chaîne insérée en fin de la ligne courante ; n i chaîne : chaîne insérée devant le curseur (Insert) ; n I chaîne : chaîne insérée au début de la ligne courante ; n o chaîne : chaîne insérée après la ligne courante (Open) ; n O chaîne : chaîne insérée avant la ligne courante.
  • 42. Vi: commandes de suppression n x : supprime le caractère pointé par le curseur ; n X : supprime le caractère précédant le curseur ; n dd : supprime la ligne courante ; n D : supprime la fin de la ligne courante (y compris le caractère pointé) ;
  • 43. Vi: Commandes générales commande Action :x :wq :w :10,20 w nom_fichier :w%.new :q :sh :! Commande :n,m! commande :r! commande Sauve le fichier si modifié et quitte Sauve le fichier et quitte Sauve le fichier Sauve les lignes de 10 à 20 dans le fichier nom_fichier Sauve le tampon du fichier courant avec le même nom mais avec une extension différente Quitte Appelle un shell Exécute une commande UNIX Envoie les lignes n à m à la commande UNIX Lit la sortie de la commande dans le fichier édité
  • 44. n Pour rechercher un mot dans un document, il suffit (en mode normal) de taper / suivi de la chaîne à rechercher, puis de valider par la touche entrée. Il est alors possible d'aller d'occurrence en occurrence grâce à la touche n . n Pour remplacer une chaîne de caractère par une autre sur un ligne, il existe une commande très puissante sous Vi utilisant les expressions régulières Voici sa syntaxe: n :s/ chaine_a_remplacer/ chaine_remplacante/ Il est possible de la généraliser à tout le document grâce à la syntaxe suivante: n :% s/ chaine_a_remplacer/ chaine_remplacante / Vi: commandes de recherche et de remplacement
  • 45. Commandes liées à l’arborescence de fichiers n La commande ls permet d’obtenir la liste des fichiers d’un répertoire ou d’une arborescence de répertoires. Un certain nombre d’options permettent d’afficher plus ou moins d’informations sur ces fichiers et répertoires: n -l : format détaillé , n -a : liste aussi les fichiers qui commencent par « . » n -d : si l’argument est un répertoire, la commande liste seulement son nom et pas les fichiers qu’il contient, n -t : affiche en triant par date de dernière modification n -R : listage récursif des sous- répertoires, n -F : fait suivre le nom des répertoires par un « / », le nom des exécutables par une «* » et le nom des liens symboliques par un « @ »... n -g : pour afficher les informations sur le groupe...
  • 46. Système de fichier : cd, pwd n cd [répertoire] : permet de changer de répertoire courant. n Cd: permet de se replacer dans le répertoire par défaut (la HOME directory). n cd .. : Remonte au répertoire supérieur n Avec certains shell, la commande « cd – » permet de revenir au répertoire où l’utilisateur se trouvait précédemment. n pwd : permet à tout moment de connaître le répertoire dans lequel on se trouve. Il est souvent intéressant de connaître à un moment donné exactement le lieu où l’on se trouve (avant d’effectuer une suppression par exemple).
  • 47. Système de fichier : file, cat n file nom_de_fichier : il est possible sous Unix de connaître aussi le type de fichier sur lequel on travaille. En dehors de l’extension qui peut être trompeuse, tous les fichiers ont une en-tête permettant de déterminer leur type (répertoire, exécutable, texte ASCII, programme C, document Postscript...). L’ensemble de ces en- têtes est défini dans le fichier /etc/ magic. n cat [- v] [fichier...] : affichage du contenu d’un fichier: La commande: cat [- v] [fichier...] sert à afficher le contenu d’un fichier si ce dernier est passé en paramètres. Sinon, c’est l’entrée standard qui est prise par défaut (clavier ou résultat d’une autre commande). cat fichier1 fichier2 > fichier3 : cette commande permet de créer un fichier (fichier3) en concaténant les fichiers fichier1 et fichier2.
  • 48. Système de fichier : more n more : la commande: more [fichier...] permet d’afficher le contenu d’un fichier page à page. Le fichier par défaut est l’entrée standard (en général le résultat de la commande située avant le «|»). Utilisation: $ ls -l | more (redirige la sortie de la commande ls -l vers le more) $ more .profile (affiche page à page le fichier .profile ) En bas de chaque page de la commande more , un certain nombre d’action sont possibles: n h: permet d’afficher la liste des commandes disponibles à ce niveau, n [espace]: permet de passer à la page suivante, n [entrée]: permet de passer à la ligne suivante, n b : permet de revenir à la page précédente, n i[ espace]: permet d’afficher i lignes en plus, n = : permet d’afficher le numéro de la dernière ligne affichée, n /mot : permet de se positionner 2 lignes avant la prochaine occurrence du mot «mot», n n: continue la recherche précédente (identique à /), n :f: permet d’afficher le nom du fichier et le numéro de dernière ligne affichée, n . : effectue de nouveau la commande précédente,
  • 49. Création et consultation d’un fichier n Création de fichier: $ touch fichier cette commande permet de créer un fichier vide portant le nom fichier § Commandes de base pour consulter le contenu d'un fichier de texte : § cat fich, more fich : affichage simple et page par page ; § head fich, head -n fich : affichage des n premières lignes ; § tail fich, tail -n fich ; affichage des n dernières lignes ; § wc [–option] fich : affichage du nombre de lignes, de mots, de caractères § Options: § -l : pour le nombre de lignes § -w : pour le nombre de mots § -c : pour le nombre de caractères.
  • 50. n L'arborescence contient 3 types d'éléments : Un système de fichiers est structuré en - Des répertoires qui sont des sortes de 4 zones comme suit : dossiers ou classeurs ; - Des fichiers ordinaires contenant une suite séquentielle d'octets ; - Des fichiers spéciaux repérant les périphériques. n Le système d'exploitation possède une vision uniforme de ces entrées grâce au concept d' Inode n Un inode contient ces informations : Type (fichier, répertoire...), Identité du propriétaire et du groupe, Droits d'accès, Dates de modification…, Autres (taille, liens, adresses...) Concept de l’inode
  • 51. n Le numéro de l’inode s’obtient avec la commande ls –i . n Les répertoires ne contiennent pas les inodes des fichiers mais des références (adresse) des inodes correspondant aux fichiers. n La commande rm ne détruit pas l’inode du fichier mais uniquement la référence dans le répertoire. n Si aucune référence ne pointe sur l’inode, alors l’inode est détruite. n Le même fichier peut appartenir à plusieurs répertoires (ne pas le copier car sinon il serait dupliqué). La commande ln (link) permet cela $ ln ancien-fichier nouveau-fichier n Le numéro après les permissions représente le nombre de répertoires contenant le fichier. Concept de l’inode
  • 52. n La copie d'une entrée de l'arborescence s'effectue avec la commande cp (copy). $ cp exemple file n Pour un fichier, un nouvel inode est créé et les blocs de données dupliqués. $ cp -r répertoire_source répertoire_ destination Toute l’arborescence du répertoire source est copiée dans le répertoire destination. Commandes Liées aux répertoires : cp
  • 53. n Le renommage et le déplacement d'une entrée de l'arborescence s'effectuent avec la commande mv (move). $ mv R1/exemple R2/nouveau n Le renommage consiste simplement à modifier le nom de l'entrée dans le contenu du répertoire. n Le déplacement consiste à supprimer l'entrée du répertoire d'origine et à insérer une nouvelle entrée dans le répertoire destination. n Les blocs de données ne sont en aucun cas déplacés. Commandes Liées aux répertoires : mv
  • 54. § Supprimer une entrée d'un répertoire correspond à la suppression d'un lien. § La suppression d'une entrée s'effectue avec la commande rm (remove) $ rm file § Il reste un lien pour accéder à l'inode 1953, les blocs ne sont donc pas libérés. $ rm ../R2/lien § La suppression du dernier lien provoque la libération du bloc inode et des blocs de données. Commandes Liées aux répertoires : rm
  • 55. § Un lien dit physique est une relation entre un répertoire et un fichier : plusieurs liens sur une entrée signifie donc plusieurs repérages dans l'arborescence du même inode et du même contenu. § Il est possible de créer un nouveau lien sur une entrée déjà existante avec la commande ln (link). $ ln file ../R2/lien Une nouvelle entrée dans le répertoire R2 est créée. § L'inode 1953 est accessible à partir de R1 et de R2 respectivement par les noms file et lien. Concept du lien physique
  • 56. § Un lien physique utilisant un numéro d'inode, il se limite à la même partition. § Pour traverser les limites des partitions, Unix introduit des liens dits symboliques. § La création d'un lien symbolique s'effectue avec l'option -s de la commande ln. $ ln -s ../R2/nouveau ../R3/lien_symbolique § Un nouvel inode est créé dans la partition d'origine. § Cet inode contient le nom (absolu ou relatif) de l'élément pointé, au lieu d'un numéro d'inode. Concept du lien symbolique
  • 57. Système de fichiers : chmod chmod mode fichiers... : changement des droits n Le paramètre mode indique quelles sont les autorisations données, il peut être «symbolique» ou «absolu»: n mode symbolique: le paramètre mode prend la forme suivante: [ugo] [+-] [rwx]. n mode absolu: le paramètre mode est représenté par un nombre octal composé de 3 chiffres: n Le premier chiffre représente les autorisations du propriétaire, n le second ceux du groupe n le troisième correspond à tous les utilisateurs. Pour calculer chacun des chiffres, on ajoute les valeurs des autorisations (4 pour lecture, 2 pour écriture, 1 pour exécution). n Exemple.: $ chmod u+ rwx, go+ rx fichier : donne tous les droits au propriétaire, et les droits en lecture et exécution aux autres utilisateurs. n La commande précédente est équivalente à $ chmod 755 fichier
  • 58. Système de fichiers : umask Les droits par défaut à la création d'une entrée sont affichables avec la commande umask (user mask ). § umask affiche les droits à retirer dans un masque. § En standard, les entrées sont créés avec les droits rwx r-x r-x. § Dans ce cas, la commande umask donne la valeur 022 : § Le 0 indique qu'aucun droit pour l'utilisateur n'est retiré, donc rwx. § Le 2 indique que le droit w (2) est retiré pour le groupe et les autres, donc r-x. n Par exemple: umask 026 est équivalent à un chmod 751 sur le nouveau fichier créé.
  • 59. Système de fichiers : chown, chgrp $ chown nouveau-propriétaire nom-fichier n Changer le propriétaire et le groupe n On peut donner un fichier à un autre utilisateur, c’est à dire qu'il deviendra propriétaire du fichier. n On peut changer le groupe. $ chgrp nouveau-groupe nom-fichier n chown et chgrp sont utilisables que si on est propriétaire du fichier.
  • 60. Recherche de fichiers : find $ find répertoires... [options...] n où répertoires... permet d’indiquer le (ou les) répertoire( s) de départ de la recherche et les options permettent de traiter et de récupérer les données. n options permettent de rechercher des fichiers qui ont certaines caractéristiques: n -name modèle_nom : les fichiers dont le nom répond au modèle modèle_nom, n -size n : les fichiers dont la taille est n (en blocs de 512 octets), n -mtime n : les fichiers dont le nombre de jours depuis la dernière modification est n, n -atime n : les fichiers dont le nombre de jours depuis le dernier accès est n, n -user nom: les fichiers dont le propriétaire est nom, n -type t : les fichiers du type t (f pour un fichier ordinaire), n -perm nombre: les fichiers dont les autorisations sont de la forme nombre, n -perm -nombre: les fichiers dont les autorisations sont au moins de la forme nombre... n D’autres options permettent de traiter les informations reçues: n -print: pour afficher à l’écran le résultat de la commande n -exec commande {} ; : permet d’exécuter une commande sur les fichiers qui vérifient les critères de la commande find. Ces fichiers sont passés à la commande - exec par les signes {}. n -ok commande ;: effectue la même opération que ci-dessus mais demande une confirmation de l’utilisateur avant l’exécution de la commande..
  • 61. Exemples d’utilisation de find n $ find / -name "* info*" –print Affiche le nom de tous les fichiers de toute l’arborescence du système qui contiennent le mot info, n •$ find ~ -mtime -20 –print Affiche les fichiers à partir du répertoire de l’utilisateur qui ont été modifiés dans les vingt derniers jours, n $ find /home/etud1 ! -user X -exec ls -ali {} ; Affiche un listing détaillé de tous les fichiers qui n’appartiennent pas à l’utilisateur X dans l’arborescence /home/etud1/ n $ find /home/etud1/X -perm -002 -exec ls -l {} ; Affiche un listing détaillé des fichiers de l’arborescence /home/etud1/X qui ont au moins l’autorisation d’écriture pour les autres, n $ find . ( -name a.out -o -name core -o -name "*. o" ) - ok rm {} ; Supprime, après confirmation de l’utilisateur, tous les fichiers à partir du répertoire courant (et dans tous les sous- répertoires) du type a.out, core et .o ...
  • 62. Les entrées et les sorties n Il y a trois sortes d'entrées sorties ou flux de données : n L'entrée standard, c'est à dire ce que vous saisissez au clavier, n La sortie standard, c'est à dire l'écran, plus précisément le shell, n La sortie standard des messages d'erreurs consécutifs à une commande, qui est, par défaut, l'écran. n Chacun de ces flux de données est identifié par un numéro descripteur: n 0 pour l'entrée standard, n 1 pour la sortie standard n 2 pour la sortie standard des messages d'erreur.
  • 63. § À la connexion, le shell dispose de trois flots de communication : - Entrée standard : stdin (numéro 0) - Sortie standard et erreur standard : stdout et stderr (numéros 1 et 2) § L'association par défaut de ces flots est l' écran pour stdout et stderr, et le clavier pour stdin. § Une redirection est une modification de l'une ou de l'autre de ces associations. Elle est valable uniquement le temps de la commande sur laquelle elle porte. § Ainsi, la redirection de la sortie standard permet de récupérer le résultat dans un fichier : commande > nom_fich. Par exemple, $ who > users è rien à l'écran $ cat users è fichier qui créé etud1 console Aug 2 09:45 etud2 ttyp2 Aug 2 12:17 (etud1) etud3 ttyp3 Aug 3 11:52 (:0.0) Redirection de la sortie standard
  • 64. §Attention!!! Avec >, si le fichier de redirection existe, son contenu initial est perdu. $ date > users $ cat users Sat Mar 11 11:00:00 MET DST 2006 § La redirection double (commande >> nom_fich) permet de ne pas détruire le fichier existant, mais ajoute le nouveau contenu en fin de fichier. $ pwd >> users $ cat users Sat Mar 11 11:00:00 MET DST 2006 /export/home/etud1 § Avec >> , si le fichier n'existe pas, il est créé, comme pour une redirection simple. Redirection double de la sortie standard
  • 65. § Moins utilisée que la redirection de la sortie standard, la redirection de l'entrée standard (commande < nom_fich) permet à une commande d'utiliser comme données le contenu d'un fichier à la place d'une lecture clavier. § Exemple avec la commande write : - $ write etud1 ètexte lu au clavier bonjour touche CTRL-D è Message reçu par etud1 contenant « bonjour » - Création d'un fichier contenant le message : $ cat > message è texte lu au clavier Re-bonjour touche CTRL-D $ write etud1 < message èredirection de l'entrée standard èMessage reçu par etud1 contenant « Re-bonjour » Redirection de l'entrée standard
  • 66. Redirection de l'entrée standard n Autre exemple: $ sort < file n On envoie le contenu du fichier file vers la commande sort (trie), celle- ci va donc trier le contenu du fichier, par défaut le résultat sort sur la sortie standard, c'est à dire à l'écran, plus précisément sur le shell. n Avec : sort < file > file-trié n sort < file : a pour effet de trier le fichier « file » n >file-trié: a pour effet d'envoyer le résultat (le fichier trié) dans le fichier « file-trié ». Le résultat n'apparaît plus à l'écran, mais est sauvegardé dans un fichier.
  • 67. n Avec la redirection « << » la commande va lire les caractères jusqu'à la rencontre d'une certaine chaîne de caractères. Exemple: la commande cat (catalogue, permet d'éditer le contenu d'un fichier). n $cat << fin on tape du texte jusqu'à la chaîne de caractère fin > n En tapant la commande, on revient à la ligne, mais on perd le prompt: n cat va lire (et éditer) les caractères qu’on saisit jusqu'à ce qu'il rencontre la chaîne fin, à ce moment là, le prompt apparaît à nouveau. n Si on veut créer un fichier avec un peu de texte à l'intérieur : n $cat << fin > mon-fichier on tape du texte qui sera sauvegardé dans mon- fichier, pour terminer le texte fin > n Le texte qu’on vient de saisir, se trouve donc dans mon-fichier. n Avec la commande : >fichierVide, on crée un fichier vide fichierVide. Redirection double de l'entrée standard
  • 68. Redirection des erreurs n Par défaut les messages d'erreur s'affichent à l'écran (code 2), n On peut modifier ce comportement. n On peut sauvegarder dans un fichier ses messages d'erreur, pour analyse ultérieure, en tapant : cat mon-fichier 2> fichier-erreur n Si on rencontre une erreur pendant l'exécution de la commande d'édition cat de mon-fichier (absence du fichier par exemple), le message d'erreur sera sauvegardé dans le fichier fichier-erreur . n En tapant : sort mon-fichier > file-trie n On redirige le résultat de la commande sort mon-fichier vers le fichier file-trie, n la sortie standard n'est donc plus l'écran (plus précisément le shell ou terminal) mais le fichier file-trie . n Par défaut, les messages d'erreur s'affichent dans le shell, on peut faire en sorte qu'ils s'affichent dans le fichier file-trie, en tapant : sort mon-fichier > file-trie 2>& 1 n Avec la syntaxe >& on indique que les messages d'erreurs seront redirigés vers la sortie standard qui est le fichier file-trie .
  • 69. Les pipes n Un pipe (tube de comm) permet de rediriger la sortie d'une commande vers une autre. n commande1 > sortie1 On redirige cette sortie vers une autre commande, ça devient donc une entrée pour cette dernière commande, pour cela: commande2 < sortie1 n La syntaxe commande1 | commande2 ( | étant le symbole de pipe) est totalement équivalente aux deux commandes précédentes. stdin0 stdin0 stdout1 stdout1 sterror2 sterror2 processus1 processus2
  • 70. Les pipes : exemple n Exemple : $ ls | grep Master n ls permet la visualisation de fichiers, en tapant ls, on obtient :fichier1 fichier2 fichierMaster n grep : permet la recherche d'une chaîne de caractère dans une liste donnée, n La première commande aura pour effet de lister le nom des fichiers se trouvant à l'endroit où l'on a tapé la commande, n La sortie standard (le résultat de la commande) est donc une liste de nom, elle est redirigée vers la commande grep, qui va y chercher une chaîne de caractère contenant Master. n Le résultat est donc fichierMaster
  • 71. Exécution séquentielle, regroupement et imbrication de commandes n Exécution séquentielle : le séparateur « ; » permet d'enchaîner des commandes sans relation entre elles. $ ls ; who ; pwd è exécution en séquence de ls, who et pwd n Regroupement : (...) permet de considérer les commandes incluses comme une seule pour un tube ou une redirection. $ (date ; who) > /tmp/users : redirection des 2 commandes n Imbrication : entre $( et ) ou entre anti-quotes ` , la commande à exécuter est remplacée par son résultat. n Cela permet d'utiliser le résultat d'une commande comme argument d'une autre $ echo Je suis sous $(pwd) n 1. Exécution de la commande pwd n 2. Exécution de la commande echo Je suis sous résultat de pwd
  • 72. Désactivation de l'interprétation de caractères spéciaux n Entre simple quotes ( « ‘ » ) les caractères spéciaux ne sont pas interprétés par le shell mais deviennent de simples caractères. n Cela permet d'utiliser les caractères spéciaux dans les arguments. $ echo 'deux > trois' èaffichage à l'écran deux > trois n Avec le caractère anti-slash « » le caractère (spécial) qui le suit n'est pas interprété. $ echo deux >> trois deux >> trois n Si on veut mélanger des caractères spéciaux, des variables, des commandes..., il faut utiliser les guillemets ( " ). n Seuls sont interprétés les méta-caractères $ (commandes et variables), « » (annulation) et « ` » (commandes). $ echo "Mon répertoire courant est $(pwd)" Mon répertoire courant est /export/home/etud1 n Avec de simples quotes, $(pwd) ne serait pas interprété.
  • 73. Variables n Le nom d'une variable commence par une lettre ou le souligné ( _ ) suivi de lettres, chiffres et _ . n Affectation d'une variable par nom_var=valeur: $ mois=janvier n Utilisation d'une variable par $nom_var : $ echo $mois n Affichage de la liste des variables avec la commande set. n Suppression d'une variable avec la commande unset : $ unset mois n Quelques variables pré-définies : n HOME : répertoire de connexion (cd et cd ~ sont égales à cd $HOME) n PATH : liste des répertoires de recherche des commandes séparés par : n L'ordre des répertoires est significatif, ce qui permet le choix de la version d'une commande. n PS1 : invite de commande (par défaut $ ) n PS2 : invite de commande de continuation (par défaut > ) n IFS : séparateurs de mots (par défaut, espace, tabulation et NEWLINE) n PWD : répertoire courant
  • 74. Alias d’une commande n Un alias sert à (re)définir le nom d'une commande. n Cela sert à créer des mnémoniques, des noms abrégés... $ alias ll="ls -l" ; ll è définition puis utilisation -rw-r--r-- 1 etud1 171 Nov 10 09:40 users $ ll > listefich è autre utilisation $ alias ls="ls -a" è redéfinition de ls $ alias è liste des alias ll="ls -l" ls="ls -a« $ unalias ll ; ll èsuppression puis commande inexistante ll : not found
  • 75. Configuration du compte n À la connexion, des shell-scripts particuliers sont exécutés pour paramétrer la connexion. n /etc/profile est un fichier maintenu par l' administrateur pour la configuration par défaut des comptes sur une machine. n ~/.bash_profile, ~/.bash_login, ~/.bashrc et ~/.profile sont des fichiers maintenus par l' utilisateur pour paramétrer son compte. n On y trouve des affectations de variables : PATH, MANPATH, PS1..., des définitions d'alias, le positionnement de l'umask... n Il est aussi possible de modifier les valeurs par défaut des options du shell avec la commande set : n set -o vi : choix de l'éditeur de la ligne de commande n set -o ignoreeof : plus de déconnexion par CTRL-D, mais utiliser exit n set -x : mode trace (affichage des commandes avant leur exécution) n set +x : suppression du mode trace
  • 76. Périphériques de stockage et Système de fichiers
  • 77. Périphériques de stockage et Système de fichiers Rappel sur les disques durs: n Un disque dur est composé de plateaux reliés à un moteur central et l'on trouve des têtes de lecture de part et d'autre de chacun des plateaux. n Sur chaque plateau, on trouve des pistes cylindriques découpées en secteurs n L’adressage d'un secteur est une référence au cylindre, à la tête de lecture utilisée, à la piste, et enfin au secteur n Il existe un ensemble de secteurs particuliers appelé le MBR, très petit en général et partagé en deux parties : n Table des partitions (info sur l’emplacement et taille partition) n Système d'amorçage (chargé de lancer l’OS)
  • 78. Périphériques de stockage et Système de fichiers Les Partitions: n A l’installation, un disque dur n’est ni partitionné ni formaté n Partitionner: définir des espaces réservés sur le disque n Formater: préparer la partition à recevoir des informations n Une partition est définie par: • Son type • Son emplacement de début de partition • Sa taille (ou son emplacement de fin de partition
  • 79. Périphériques de stockage et Système de fichiers- Les Partitions n Un partitionnement est réversible (non physique) n Les informations de partionnement sont stockées par le BIOS dans le MBR (Master Boot Record) n Notion d’activation: • Une seule partition peut être activée sur un ordinateur • Indique où il doit aller chercher le noyau du système d’exploitation pour le démarrage
  • 80. Périphériques de stockage et Système de fichiers - Les Partitions 3 types de partitions: • Partition Principale: • Au maximum 4 • Pas de minimum • Accepte tout type de système de fichiers • Partition Étendue: • Ne peut contenir que des partitions logiques • Ne peut pas recevoir de système de fichiers • Ne peut exister que s’il existe une partition principale • Partition Logique: • Contenue dans une partition étendue • Pas de limitation en nombre • Accepte tout type de système de fichiers
  • 81. Périphériques de stockage et Système de fichiers- Les Partitions Les avantages: n Évite la perte de place (DOS) n Possibilité d’installer plusieurs OS sur une même machine n Sauvegarde des données en cas de réinstallation n Sauvegarde des données en cas de plantage n Séparation logique des répertoires (système, utilisateur, fichiers de logs,…)
  • 82. Périphériques de stockage et Système de fichiers- Syst. Fich. Les Systèmes de Fichiers: n Système de fichiers: manière dont un système stocke ses données sur un disque n Pour Linux « ext2fs » est le plus répandu: • Répertoires séparés par des «/» • Sensible à la casse (« aaa » <> « Aaa ») • Les fichiers cachés commencent par «. » • Les espaces et les noms longs sont acceptés • Défragmentation quasi-inutile n Nouveaux systèmes de fichiers journalisés: • Ext3fs; • ReiserFS; • JFS
  • 83. Périphériques de stockage et Système de fichiers- Syst. Fich. n Autre type de système: le système de fichiers « Swap » • Dédié à l’utilisation de la mémoire virtuelle • Sert de mémoire vive quand la RAM est saturée • Utilisée intensivement par le système pour la décharge des logiciels en mémoire
  • 84. Périphériques de stockage et Système de fichiers- Syst. Fich. n Linux a une structure de partitions spécifique: n Deux types au minimum • Une ext2fs (ou autre) pour le système ou les données • Une swap pour la mémoire virtuelle (à peu près la même taille que la RAM) n On accède aux partitions par un pointeur stocké dans « /dev »
  • 85. Périphériques de stockage et Système de fichiers- Syst. Fich. n /dev est le répertoire des périphériques n Sous UNIX, TOUT est fichier n Pointeur de la forme: « /dev/PPLN » avec: q PP: type de bus • « hd » pour les disques dur IDE • « sd » pour les disques SCSI • « fd » pour les lecteurs de disquettes q L: lettre du périphérique concerné q N: numéro de partition concernée • 1 à 4: partition principale ou étendue • >4: partitions logiques
  • 86. Périphériques de stockage et Système de fichiers- Syst. Fich. Exemples: n /dev/hda:périphérique maître du bus primaire IDE n/dev/hdd: périphérique esclave du bus secondaire IDE n /dev/hda1: partition primaire du périphérique maître du bus primaire IDE n /dev/hda7: 3ème partition logique du périphérique maître du bus primaire IDE
  • 87. Périphériques de stockage et Système de fichiers- Syst. Fich. Le Montage de Systèmes de Fichiers: n Monter un système de fichiers ó l’associer à un répertoire sur le système n Par exemple, le système de fichiers racine est monté sur «/» n Un système de fichiers n’est pas accessible tant qu’il n’est pas monté n Commande « mount »: mount –t <système de fichiers> <périphérique> <répertoire> Ex: « mount –t vfat /dev/hda1 /windows » n Démonter un répertoire: « umount <répertoire>»
  • 88. Périphériques de stockage et Système de fichiers- Syst. Fich. Le Montage de Systèmes de Fichiers: n Les points de montage sont décrits dans le fichier «/etc/fstab » n Notations pour les systèmes de fichiers: • « ext2 »: Ext2fs • « vfat »: FAT32 • «msdos»: FAT16 • « ntfs »: NTFS (lecture seulement) • « iso9660 »: CD- ROM/ DVD- ROM Ex: mount –t iso9660 /dev/hdc /cdrom
  • 89. Périphériques de stockage et Système de fichiers- Syst. Fich. n Partitionnements conseillés pour un système «propre» • Une partition / • Une partition /boot • Une partition /home • Une partition /var • Une partition /usr • Une partition swap
  • 90. Périphériques de stockage et Système de fichiers- Syst. Fich. Le Système de Fichiers «/proc »: n « /proc » est un répertoire de la racine n Il n’existe pas physiquement sur le disque n C’est un pseudo-système de fichiers tenu à jour par le kernel n Un sous-répertoire par processus n Fichiers importants: • « cpuinfo »: informations sur le processeur • « filesystems »: liste des systèmes de fichiers supportés par le système • « kcore »: image de la mémoire physique du système • « meminfo »: informations sur la mémoire
  • 91. Le Système de Fichiers «/proc »
  • 92. Périphériques de stockage et Système de fichiers- Syst. Fich. Le Système de Fichiers «/proc »: n Informations sur un processus particulier (donc dans un sous-répertoire de /proc portant comme nom le PID du processus) • « cmdline »: ligne de commande par laquelle le processus a été lancé • « cwd »: le répertoire courant du processus • « environ »: environnement du processus • « exe »: pointeur vers le binaire exécuté • « fd »: liens vers les fichiers ouverts par le processus • « maps »: plages mémoires allouées par le processus
  • 94. Caractéristiques d’un processus n Un processus est un programme en cours d'exécution. Un processus a besoin de ressources matérielles : l'unité centrale, la mémoire centrale et l'accès à des périphériques d'entrées/sorties. n Ses caractéristiques statiques, c'est-à-dire ne variant pas au cours de sa vie, sont: n Un numéro unique : PID (Process IDentifier ), n Un propriétaire déterminant les droits d'accès du processus aux ressources : ouverture de fichiers... n Un processus parent dont il hérite la plupart des caractéristiques, n Un terminal d'attache pour les entrées/sorties. n Ses caractéristiques dynamiques sont : n Priorité, environnement d'exécution... n Quantité de ressources consommées (temps unité centrale utilisé...)
  • 95. Arborescence des processus n Un processus est toujours créé par un autre processus appelé processus parent. n Ainsi tous processus a un processus parent sauf le tout premier. Ce tout premier processus est appelé init et son identifiant est égal à 1 (PID = 1). n Deux types de processus existent : n Les processus utilisateurs, tous issus du shell de connexion ; n Les processus démons : n Un démon est une traduction abusive de daemon. n Ces processus daemon assurent un service et sont souvent lancés au démarrage de la machine. n Les principaux services assurés par des processus daemon sont l'impression, les tâches périodiques, les communications, la comptabilité, le suivi de tâche.
  • 96. Commande ps n La commande ps affiche les caractéristiques des processus à un instant donné. n Par défaut, ps affiche les processus de l'utilisateur. n $ ps -l F UID PID PPID C PRI NI SZ RSS WCHAN S TTY TIME COMMAND 20488000300 5179 5174 0 5 0 28 0 child S co 0:00 xinit 20488201300 5199 5187 0 15 0 60 156 kernel S po 0:01 sh 20000001300 5624 5199 21 30 0 192 432 R po 0:00 ps –l | | | | | | | | | | | | | | | | | | | | | | | | | | temps commande | | | | | | | | | | | terminal | | | | | | | | | | état | | | | | | | | | événement attendu | | | | | | | taille taille en mémoire réelle du process | | | | | priorité statut #user #proc #parent
  • 97. Commande ps n Affichage des processus en cours: • « ps »: affiche les processus utilisateurs • « ps -l »: affiche les processus utilisateurs en détails • « ps –aux »: affiche tous les processus d’un système
  • 98. Commandes pstree et top n La commande pstree permet de visualiser l'arborescence des processus. n La commande top permet de visualiser dynamiquement les caractéristiques des processus (l'affichage est actualisé périodiquement). n En plus des informations sur les processus, top donne des indicateurs sur l'état du système : occupation de la mémoire, de l'unité centrale... n top: montre l'évolution de ces indicateurs en temps réel .
  • 99. n Affichage des processus en cours
  • 100. Processus en avant et en arrière plan n Par défaut, une commande s'exécute en avant-plan (en anglais foreground). n Par exemple, l'utilisateur saisit la commande $ date. n Le shell crée un processus enfant et attend qu'il se termine. n Le processus enfant exécute la commande date. è Les processus parent et enfant s'exécutent séquentiellement (l'un après l'autre). è Une seule commande est donc exécutée à la fois. n Une commande peut aussi s'exécuter en arrière-plan (en anglais background). n Par exemple, l'utilisateur saisit la commande: $date & n Le shell crée un processus enfant et n'attend pas qu'il se termine. n Le processus enfant exécute la commande date. è Les deux processus, parent et enfant, s'exécutent alors simultanément .
  • 101. Suspension et reprise d’un process n Sous Unix, il est possible de suspendre le processus en avant-plan en tapant CTRL-Z. n Le processus suspendu pourra reprendre ultérieurement. n Il existe deux façons de reprendre un processus suspendu : n En avant-plan par la commande fg (foreground), n En arrière-plan par la commande bg (background). n Par exemple : n $ test èlancement de test en avant-plan n CTRL-Z è édition suspendue n $ bg è reprise de l'édition en arrière-plan n Un job est défini comme un processus en arrière-plan ou suspendu. n La commande « jobs » permet de lister ces processus.
  • 102. Suppression d’un process n Généralement un processus se termine à la fin de l'exécution de la dernière instruction ; il est alors détruit par le système d'exploitation. n Un utilisateur peut terminer un processus en avant-plan en tapant CTRL-C. n Un utilisateur peut aussi terminer un processus avec la commande kill envoyant un signal à un processus. n Par défaut, la commande kill envoie le signal 15 de terminaison (SIGTERM). $ kill PID n La commande kill peut aussi forcer la terminaison d'un processus en envoyant le signal 9 de destruction (SIGKILL). $ kill -9 PID_processus n Notez que le droit de détruire un processus est réservé à son propriétaire.
  • 103. Etat d’un process n Pour un utilisateur, un processus peut se trouver dans trois états: n en exécution (exécution de la commande), suspendu (CTRL-Z) ou terminé. Le schéma suivant récapitule les transitions permettant de passer d'un état à un autre.
  • 104. Processus: Gestion des Signaux n Un processus peut émettre et recevoir des signaux POSIX n 64 signaux différents (liste complète par « kill –l ») n Les 3 plus importants: • SIGHUP –valeur 1 – Fin du processus de contrôle (terminal par exemple) • SIGINT – valeur 2 – Interruption du processus • SIGKILL –valeur 9 – Interruption brutale du processus n Émission d’un signal par « kill -<n°> « processus » Ex: kill –9 sshd
  • 106. Exécution d’un script n On appelle ShellScript un fichier qui contient des noms de commandes et des instructions internes au shell. n L’utilisateur peut lancer un shellscript commandes en une commande. n Les commandes contenues dans le shellscript sont alors lancées comme si l’utilisateur les tapait sur la ligne de commande. n La 1ère ligne d’un script shell peut être lue comme une instruction du shell pour exécuter le script dans un nouveau type de shell spécifié n Dans un script shell, le « # » permet de placer tous les commentaires désirés n #!/bin/sh : en 1ère ligne, assure que le script est toujours exécuté en bourn shell n On peut lancer l’exécution d’un shellscript de trois manières différentes: n Lancement par le nom du shellscript: $script (ou $./script) n Lancement par appel explicite du shell: $ /bin/sh script n Lancement par appel de la commande interne «.»: $ . script
  • 107. Exécution d’un script n Lancement par le nom du shellscript: $ script (ou $./script) Si script est exécutable, la commande exécute un nouveau shell n Lancement par appel explicite du shell: $ /bin/sh script Exécute script dans un nouveau shell n Lancement par appel de la commande interne « . »: $ . Script Exécute script dans l’environnement du shell courant n $ exec script : exécute un nouveau shell en écrasant le shell courant sh sh Shell en attente ksh script sh Shell interrompu sh script
  • 108. Exécution de commandes n Exécution séquentielle: « commande1; commande2; commande3 » n Exécution en tâche de fond: «commande1 &»
  • 109. Fichiers (Scripts) de configuration exécutés après le login n Lecture et exécution de « /etc/profile » n Lecture et exécution de «.bash_profile » dans le répertoire personnel n Lecture et exécution de «.bashrc » dans le répertoire personnel n Lecture et exécution de « /etc/bashrc »
  • 110. Facilités de saisie des commandes n Historique des commandes: flèches haut et bas n Copie dans un terminal: sélection d’un texte, copie par clic-droit n L’opérateur «~» renvoie au répertoire personnel n La commande « cd – » renvoie au répertoire précédent n Complétion des commandes: touche « TAB »
  • 111. Communications inter-processus (pipe) « commande1 | commande2 » La sortie de commande1 est envoyée sur l’entrée de commande2
  • 112. Redirections d’entrées-sorties n En général, trois descripteurs pour le shell (sur 10 possibles): • 0: entrée standard • 1: sortie standard • 2: sortie d’erreur n Les différentes redirections: • « commande >fichier »:redirection de sortie vers fichier avec écrasement • « commande >> fichier »: idem mais ajout des données à la fin • « commande <fichier »: la lecture du descripteur 0 se fera sur ce fichier • « commande << mot »: lecture de l’entrée standard jusqu’à la première occurrence de « mot »
  • 113. n Exemples:« cat /etc/passwd >fichier » « cat /etc/passwd > fichier; cat /etc/shadow >> fichier » n Redirection des erreurs: • « commande 2> /dev/null » • « commande 2> fichier » Redirections d’entrées-sorties
  • 114. Exécutions conditionnelles n « commande1 && commande2 »: commande2 n’est exécutée que si commande1 n’a pas renvoyé d’erreur n « commande1 || commande2 »: commande2 n’est exécutée que si commande1 a renvoyé une erreur
  • 115. Les Variables d’environnement n Le shell permet le stockage de variables d’environnement (en majuscules): • Définies pour l’ensemble du système • Définition par « VARIABLE= valeur export VARIABLE» • Exemples: HOME, PATH, SHELL, USER • On accède à leur valeur en les faisant précéder d’un « $ » n Pour visualiser toutes les variables d’environnement: « env »
  • 117. Les Expressions rationnelles n Servent de « joker » dans les noms de fichiers: • «*»: n’importe quelle chaîne de caractères • «? »: n’importe quel caractère • « [a-z] »: correspond à {a,b,c,…,z} • « [A-Z] »: correspond à {A,B,C,…,Z} • « [0-9] »: correspond à {0,1,2,…,9} n Exemples: • « *[0-9]* »: toute chaîne qui contient au moins un chiffre • « [c-fAX-Z] »: correspond à {c,d,e,f,A,X,Y,Z}
  • 118. Variables n Nous appellerons variable simple toute variable définie par l’utilisateur pour ses propres besoins. n Mécanismes d’affectation: n On peut affecter une chaîne de caractères aux variables, et par extension, toute affectation répond à la syntaxe suivante: $ variable= valeur n Attention!!! il n’y a pas d’espace de part et d’autre du signe «=». De plus, la commande: (variable= ) affecte la chaîne vide à variable. n Désignation de la variable: n Pour désigner une variable, il suffit d’utiliser la syntaxe suivante: $variable n Cette notation servira pour tous les types de variables que nous verrons par la suite. n Si la variable doit être suivie d’une valeur autorisée (exemple de nom de variable auquel on ajoute séquentiellement un nombre), la notation est alors la suivante: ${ variable} caractère n Affichage d’une variable: n La commande: echo [- n] [texte] $variable permet d’afficher la valeur de la variable. On peut aussi l’intégrer dans du texte. L’option -n permet d’éviter le passage à la ligne après l’affichage.
  • 119. Variables Exemples: n Affectation une valeur à une variable: var=valeur $var1=Vendre n Référencer une variable: $ $echo $var1 => Vendre n Séparer une référence de variable du reste du texte: ${} $echo Le cours se termine $var1di => Le cours se termine $ echo Le cours se termine ${var1}di =>Le cours se termine Vendredi n Obtenir la longueur d’une variable: ${#} $ echo La longueur de var1 est ${#var1}
  • 120. Variables n Saisie au clavier: read n Il est parfois utile de laisser l’utilisateur entrer la valeur de ses variables. La commande: read variable... lit les valeurs sur l’entrée standard. Le premier mot est affecté à la première variable et ainsi de suite. Si il y a plus de variables que de mot saisis, le shell affecte aux dernières variables la chaîne vide. n Exportation des variables: export n D’ordinaire, une variable n’est utilisée que dans le shell-script où elle reçoit son affectation. Si on souhaite l’utiliser pour les programmes appelés ultérieurement, on doit l’exporter. La commande: $ export variable... recopie la valeur des variables en paramètre dans l’environnement qui sera passé aux shell-scripts ultérieurs. n Visualisation des variables disponibles: env n La commande: $ env affiche les valeurs des variables de l’environnement du processus en cours, c’est à dire celles qu’il a reçues et celles qu’il a envoyées.
  • 121. Variables n La commande: $ set affiche les valeurs des variables disponibles, c’est à dire toutes les variables même celles qui ne seront pas transmises. n Supprimer une variable: $ unset n La commande: $ unset variable supprime la variable de la liste des variables disponibles. n Substitutions: n Au niveau de l’affichage, il est parfois utile de pouvoir effectuer un certain nombre de substitutions: $paramètre : affiche la valeur courante de paramètre, ${paramètre}: affiche la valeur courante de paramètre et autorise la concaténation, ${paramètre:-valeur}: affiche la valeur courante de paramètre si elle est non nulle, sinon affiche valeur, ${ paramètre:= valeur}: affiche la valeur courante de paramètre si elle est non nulle, sinon affiche valeur et affecte « valeur » à paramètre
  • 122. Substitution de commande n Pour affecter une variable avec le résultat d’une commande: var=$( commande ) ou var=`commande` n Exemple: n Whoami etud1 n var=$(whoami) n echo Mon nom est $var Mon nom est etud1 n echo Il y a `ls | wc –l`fichiers dans `pwd` Affichera le nombre de fichiers dans le répertoire courant
  • 123. Paramètres positionnels n Des paramètres peuvent être transférés aux scripts shells comme arguments sur la ligne de commande: n $script1 arg1 arg2 n Arg1: paramètre positionnel numéro 1 n Arg2: paramètre positionnel numéro 2 n Ils sont désignés dans le script par: n $1 à $9 : pour les neuf premiers n ${10} à ${n} : pour le ksh uniquement n Le nbre total de paramètres positionnels est donné par $# n $ cat script1 n echo $1 $2 $3 $# n $ script arg1 arg2 arg3 n arg1 arg2 arg3 3
  • 124. Paramètres positionnels n Dans un script shell, la commande set peut: n Changer les valeurs des paramètres positionnels n Désactiver les valeurs (unset) des param. positionnels précédemment définies n Exemple: $ cat script echo $1 $2 $3 set valeur1 valeur2 echo $1 $2 $3 $ script a b c a b c valeur1 valeur2
  • 125. Décalage d’arguments La commande shift [n] déplace les arguments vers « la gauche » n Annulation du premier argument ou de l’argument « le plus à gauche » n Réduction des paramètres positionnels Exemple: $ cat decal echo $1 $2 $3 et $# shift echo $1 $2 $3 et $# $ decal arg1 arg2 arg3 è arg1 arg2 arg3 et 3 arg2 arg3 et 2
  • 126. Variables spéciales n Un certain nombre de variables sont utilisées dans les shellscripts afin de déterminer et de séparer les paramètres: n $#: donne le nombre d’arguments passés au script, n $*: donne la liste des paramètres passés au script: $1, $2, …, $n n " $*" = " $1, $2, …, $n" n $@: équivalent à $*, mais "$@" signifie: "$1", "$2",..., "$n" n $n: valeur du n- ième argument du script, n $$: le numéro de processus (PID) du script, n $!: le numéro de processus du dernier programme lancé en background, n $?: le code de retour du dernier programme lancé. n $0: Le nom utilisé pour appeler le script shell
  • 127. Variables spéciales n Exemples: $ cat param2 $ param2 1 "2 et texte " echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3= set "$@" echo ‘set avec "$@" ‘ set avec "$@" echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 et texte p3= set $* echo ‘set avec $*’ set avec $* echo p1=$1 p2=$2 p3=$3 p1=1 p2=2 p3=et set "$*" echo ‘set avec "$*" ’ set avec "$*" print p1=$1 p2=$2 p3=$3 p1=1 2 et texte p2= p3=
  • 128. Sortie du script n Au moyen de la fonction exit n le code de retour est alors n. n Si le shellscript ne se termine pas par un exit, il renvoie le code de retour de la dernière commande exécutée.
  • 129. Le shell et le shell suivant n Que se passe-t-il au niveau des variables lorsqu’on lance un sous-shell ou un script? n Les variables ne sont pas transférées, sauf si on les exporte !!! n Set : pour dresser la liste de toutes les variables et leurs valeurs n export var : exporte la variable var afin que les sous shells en héritent n export : pour dresser la liste des variables qui sont exportées sh sh Shell en attente
  • 130. Le shell et le shell suivant n Exemple d’héritage: $ var=un $ echo "var=$var" var=un $ sh $ echo "var=$var" var= $ Ctrl-D $ echo "var=$var’ " $ var=un $ export var $ sh $ echo "var=$var" var=un $ var=modif $ Ctrl-d $ echo "var=$var" var=un
  • 131. Script shell: Arithmétique La commande (( )) : n La commande (( )) effectue de longs calculs sans faire appel à un nouveau processus n Chaque argument est évalué comme une expression arithmétique n A l’intérieure des (( )) les caractères spéciaux et les arguments contenant des espaces n’ont pas besoin d’être placés entre simples quotes ou d’être protégés par l’antislash n Les variables n’ont pas besoin de $ n Le code retour de ((x)) est: n 0 lorsque x est vrai (1) n 1 lorsque x est fausse (#0) Utilitaire bc : n L’utilitaire bc est fourni par le système d’exploitation n bc fonctionne en pipeline ou interactif
  • 132. Script shell: Arithmétique Exemples d’application de (( )) (calcul simple et opérateurs logiques: Calcul simple: n $ var=4 n $ (( var=var+1 )) n $ echo $var è 5 n $ (( v=4)) n $ (( v=4*var+3 )) n $ echo $v è 23 Opérateurs logiques : !, <, <, >, >=, = =, !=, &&, | | n $ (( exp1 && exp2 )) Retourne 0 si exp1 et exp2 sont vrais n $ (( exp1 | | exp2 )) Retourne 0 si exp1 ou exp2 sont vrais n $ (( n=10 )) n $ (( (n=n-1) >= 0 )) ; echo $? è 0 bc: $ bc 3*5 ; 7+3 : exécuté en interactif 15 10 Ctrl-d
  • 133. Les Scripts Shell: Les Tests n Existent sous deux formes: commande « test condition» ou entre crochets [_condition_] ou [[_condition_] ] n Tests possibles sur les fichiers: n [ -d fichier ]: vrai si fichier est un répertoire (et si il existe), n [ -e fichier ]: vrai si le fichier existe, n [ -f fichier ]: vrai si fichier est un fichier ordinaire (et si il existe), n [ -r fichier ]: vrai si l’utilisateur a le droit d’accès en lecture sur fichier (s’il existe), n [ -w fichier ]: vrai si l’utilisateur a le droit d’accès en écriture sur fichier (s’il existe), n [ -x fichier ]: vrai si l’utilisateur a le droit d’accès en exécution sur le fichier (s’il existe), n [ -c fichier ]: vrai si le fichier est un fichier caractère spécial (et si il existe), n [ -b fichier ]: vrai si le fichier est un fichier bloc (et si il existe), n [ -s fichier ]: vrai si fichier n’est pas vide, n [ -L fichier ]: vrai si fichier est un lien symbolique, n [ fichier1 -nt fichier2 ]: si fichier1 a été modifié plus récemment que fichier2,
  • 134. Les Scripts Shell: Les Tests n Tests binaires: n [ -n chaîne ]: vrai si chaîne n’est pas vide, n [ -z chaîne ]: vrai si chaîne est vide, n [ nb1 -eq nb2 ] : vrai si les deux nombres entiers nb1 et nb2 sont égaux, on peut remplacer eq par ne (différent), gt (supérieur), ge (supérieur ou égal), lt (inférieur), le (inférieur ou égal). n [ chaine1 = chaine2 ]: vrai si les deux chaînes sont identiques, n [ chaine1 != chaine2 ]: vrai si les deux chaînes ne sont pas identiques, n -a: opérateur logique et, n -o: opérateur logique ou, n !: négation logique
  • 135. Structures de contrôle: if … then ..else …fi n La commande: if test then liste_ de_ commandes else liste_ de_ commandes fi teste la valeur renvoyée par le test après le mot if et en fonction de ce code, lance la liste de commande appropriée n Si le code= 0 alors on exécute les commandes après le mot then sinon les commandes après le mot else. n Exemple d’utilisation: programme qui supprime interactivement selon la réponse $ echo "Suppression interactive [oui/non]?" read reponse if [ $reponse = oui ] then rm -i $@ else rm –f $@ fi
  • 136. § Structure permettant de faire des chois multiples: case $mot in modèle 1) liste_ commande;; modèle n) liste_ commande;; *) liste_ commande;; esac § Le premier modèle rencontré qui répond à la valeur de mot indique la liste de commandes à exécuter. Si mot ne correspond à aucun modèle, l’instruction se poursuit jusqu’à la condition *) et si celle- ci n’existe pas, jusqu’au esac . § Les modèles sont de la forme: valeur1 | valeur2 | ... | valeurn § Dans les modèles, on peut utiliser les caractères spéciaux *, ?, [] comme dans le cas de la recherche d’un fichier. Structures de contrôle: case
  • 137. Structures de contrôle: case § Exemple d’utilisation: programme qui supprime interactivement selon la réponse: $ echo -n "Suppression interactive ? " read reponse case $reponse in o| O| oui| OUI) rm -i $@;; n| N| non| NON) rm –f $@;; *) echo "Réponse non valide ";; esac
  • 138. while expression do Liste_de_commandes Done Boucle conditionnelle: while do; until do Until expression do Liste_de_commandes done § La boucle while sera exécutée uniquement si expression est vraie. § La boucle until suit la logique inverse. Elle est exécutée uniquement si expression est fausse. § Si expression est une commande ou un groupe de commandes, plutôt qu’un test logique, on pourra rediriger l’entrée d’un fichier dans la liste_de_commandes Optionnel: < fichier Optionnel: < fichier
  • 139. § Exemple1 d’utilisation: § Script: affichage while [[ $# -gt 0 ]] do echo $1 shift done § Exécution du script: $ affichage arg1 arg2 arg3 è arg1 arg2 arg3 Boucle conditionnelle: while do; until do
  • 140. § Exemple2 d’utilisation: § Script: etudiant while read ligne do set - $ligne echo "Le prenom de $1 est $2" done < etudiants § Exécution du script: $ etudiant è Le prenom de etudiant1 est prenom1 Le prenom de etudiant2 est prenom2 Le prenom de etudiant3 est prenom3 Boucle conditionnelle: while do; until do
  • 141. § Exemple3 d’utilisation: § Script: user Until who | grep etud1 do echo " etud1 non connecte " sleep 3 done Boucle conditionnelle: while do; until do
  • 142. Boucle for n for identificateur in mot1 mot2 … do Commandes utilisant $identificateur Autres commandes done n for identificateur in *(métacaractères) do Commandes utilisant $identificateur Autres commandes done n for identificateur do Commandes utilisant $identificateur qui prendra les valeurs des paramètres positionnels comme dans " $@ " done
  • 143. Boucle for n Exemple d’utilisation de "for" for fichier in *.sh do mv $fichier $fichier.script done
  • 144. Amorçage et Arrêt du Système
  • 145. Les Chargeurs de Boot n Servent à démarrer un système d’exploitation n Permettent le choix au démarrage n Chargeurs: • Windows NT: NTLoader • OS/2: Boot Manager OS/2 • Linux: LILO (LInux LOader) n GRUB: GRand Unified Boot loader n S’installent le plus souvent dans le MBR du disque
  • 146. Séquence de Boot de Linux n Démarrage Hardware de la machine n Chargement du BIOS: initialisation des périphériques n Lecture du MBR (Master Boot Record); n Lancement de LILO n Choix du système; n Chargement du noyau n Chargement des pilotes de périphériques n Lancement du fichier « init » • Lecture de « /etc/inittab » • Lancement du script « /etc/rc.d/rc.sysinit » • Lancement des services (démons) contenus dans le répertoire «/etc/rc.d/rc<n>» • Lancement du script «/etc/rc.d/rc.local »
  • 147. Mise en place d’un double-boot n Windows 9X/Me/2000: LILO sur le MBR (en général, configuration automatique à l’installation avec les nouvelles distributions) n Windows NT4: LILO sur la partition de démarrage (/boot ou /). ATTENTION: penser à activer cette partition de démarrage n Configuration ultérieure par la modification du fichier «/etc/lilo.conf »
  • 148. Niveau d’exécution (runlevel) n Sert à définir l’état du système n Sert à définir quels services seront lancés n 7 états prédéfinis (possibilité d’en définir plus): • 0: hors service • 1: mono-utilisateur • 2: multi-utilisateur sans réseau • 3: multi-utilisateur avec réseau • 4: indisponible • 5: login graphique (X-Window doit être configuré) • 6: redémarrage n Défini dans le fichier «/etc/inittab » n Pour changer de runlevel: « init <n> » (n: runlevel)
  • 149. Arrêt & Redémarrage n Arrêt du Système:3 Méthodes • « shutdown –h now » • «halt » • « init 0 » n Variantes: • « shutdown –h 10 »: arrêt dans 10 minutes • « shutdown –h 18:30 »: arrêt à 18h30 n Redémarrage: «shutdown –r now » • <Ctrl><Alt><Del>: variable et défini dans «/etc/inittab » (en général, redémarrage)
  • 150. Lancement des commandes en différé n La commande « at » : exécute une commande ou un script à un moment donnée. $ at –f /export/home/etud1/script 8 pm Saturday job xxxx at Sun March 26 20:00:00 2006 $ at –l user = root xxxx Sat March 26 20:00:00 2006 $ at –r xxxx n La commande « cron » : n /usr/sbin/cron est un démon qui consulte régulièrement les fichiers du répertoire /var/spool/cron n Ces fichiers montrent le temps d’exécution de programmes ou scripts par les users n Format du fichier cron: minute heure jour_du_moi moi_de_l’an jour_de_la_semaine 15 18 1 * * /script
  • 151. Lancement des commandes en différé Configuration du « cron » : n /etc/cron.d/cron.allow : Contient les utilisateurs autorisés à utiliser la commande crontab n /etc/cron.d/cron.deny : si le fichier cron.allow n’existe pas, les utilisateurs du fichier cron.deny ne sont pas autorisés à utiliser la commande crontab n crontab –e : édite le fichier /var/spool/cron/ « user » n crontab –l : affiche le fichier /var/spool/cron/« user » n crontab « fichier » : remplace le fichier crontab actuel par fichier
  • 152. Le service « syslog » n Le démon syslogd reçoit des messages d’erreur émis par le noyau ou les démons de certaines services n Le fichier /etc/syslog.conf permet à l’administrateur de décider de la destination des messages pour chaque sous-système n $ more /etc/syslog.conf *.err;auth.notice /dev/console *.err;daemon,auth.notice /usr/adm/messages lpr.debug root *.emerg * sous-système Niveau Destinataire (kernel, mail, (emerg, (fichier, périphérique, email, Lpr, daemon, alert, crit, *: tous les utilisateurs connectés) Auth, *: tous les sous err, warn, Systèmes) notice, info, debug, none)
  • 154. Archivage et Compactage Le compacteur « gzip » n Rapide et très efficace n Compacte le fichier, sauvegarde le nouveau fichier en rajoutant l’extension « .gz » et efface l’original n Ne compacte qu’un seul fichier à la fois n « gzip –l » donne des informations sur le fichier Compacté n Pour décompacter: « gunzip <fichier> »
  • 155. Archivage et Compactage Le compacteur « gzip »
  • 156. Archivage et Compactage L’archiveur « tar » n Assemble plusieurs fichiers en un seul n tar = « Tape Archiver » n Syntaxe: « tar <fonction><options> <fichiers…> » n Paramètre <fonction>: n « c »: créer une nouvelle archive n « x »: extraire les fichiers d’une archive n « t »: afficher les fichiers d’une archive n « r »: ajouter des fichiers à l’archive n Options: n « z »: utiliser le compacteur gzip (extension .tar.gz ou .tgz) n « f »: spécifier le nom du fichier à lire ou écrire
  • 158. Archivage et Compactage n « tar » conserve l’arborescence et les propriétés de chaque fichier n En résumé: n Créer une archive de plusieurs fichiers compactée: tar czf dest.tar.gz src1 src2 … n Décompacter une archive: tar xzf fichier.tar.gz n Visualiser une archive: tar tzf fichier.tar.gz
  • 159. L’Outil RPM n RPM: Red Hat Package Manager n Package: logiciel compilé+informations diverses (source, dépendances,…) n Outil d’installation de logiciels n Gestion des dépendances : grâce à l’utilisation d’une base de données n Package: fichier de la forme nom-version-architecture.rpm n Lister tous les packages installés « rpm –qa »
  • 160. L’Outil RPM n Installation d’un package: « rpm –i package.rpm » n Mise à jour d’un package: « rpm –U package.rpm » n Suppression d’un package: « rpm –e package.rpm » n Afficher des informations sur un package: « rpm –qi package.rpm » n Lister les fichiers d’un package: « rpm –qpl package.rpm »
  • 162. Commandes réseau n Réseau TCP/IP: la carte Ethernet est désignée par «eth0 » n Préliminaire: donner un nom de machine par la commande «hostname » (ou à l’installation) n Fichiers de configuration: n « /etc/hosts »: liste d’adresses IP et les noms des machines associées Ex: 127.0.0.1 localhost (adresse de Loopback) n « /etc/networks »: liste d’adresse et de noms de réseaux n « /etc/hosts »: spécifie la manière dont les noms de machine seront traduits en adresses IP n « /etc/resolv.conf »: adresses des serveurs de noms et des domaines à utiliser
  • 163. Commandes réseau n « ping »: permet de vérifier si une mahine est présente sur le réseau. n Un « ping 127.0.0.1 » permet de vérifier que la carte réseau fonctionne normalement
  • 164. Commandes réseau n « ifconfig »: permet de connaître la configuration réseau de la machine, mais aussi de la changer
  • 165. Commandes réseau n « arp »: permet de mettre en correspondance les adresses IP et les adresses MAC n « route »: permet de voir, d’ajouter ou de supprimer les routes déclarées sur la machine.
  • 166. Commandes réseau n « netstat »: permet de connaître les ports en écoute sur la machine, les connexions actives et d’autres choses n « traceroute »: permet de déterminer la route prise par les paquets n « telnet »: permet de se connecter à distance sur une machine n « nslookup »: permet d’interroger un serveur de noms n « who »: permet de connaître les utilisateurs connectés sur la machine
  • 167. Commandes réseau n « last »: permet de consulter l’historique des connexions
  • 168. Commandes réseau n « finger »: permet d’obtenir des informations sur les utilisateurs d’une machine n « tcpdump »: permet la capture de paquets sur le réseau n « nmap »: permet de scanner les ports d’une machine
  • 170. n L’administrateur se doit de surveiller l’utilisation des principales ressources du système: processeur, mémoire centrale, pagination et « swapping et les entrées/sorties n Il doit être capable de remédier à leur mauvaise utilisation ou à leur insuffisance n Après diagnostic: n Augmenter des ressources: n Changer de machine - Augmenter la mémoire/le swap - Ajouter de l’espace disque - Augmenter la taille des tables système n Diminuer l’utilisation des ressources: n Exécuter certains programmes la nuit – installer des quotas par user – diminuer la taille de certaines tables pour augmenter d’autres Ressources à surveiller Mémoire CPU Entrées/ Sorties (I/O)
  • 171. n iostat : affiche des statistiques sur utilisation des disques n uptime : affiche les statistiques sur la charge générale du système n swap : affiche les informations concernant l’utilisation du swap n ps : information sur les processus n time: temps CPU consommé par un processus n netstat : utilisation du réseau n vmstat : utilisation de la mémoire n sar : outil général de surveillance Cmdes de surveillance du système
  • 172. n La commande vmstat affiche les statistiques sur les processus, la pagination, l’activité du CPU et les interruptions. n Syntaxe: # vmstat [options] [<n>] [<m>] n Par défaut, la commande vmstat affiche les informations depuis le démarrage du système, ou sinon, dans les <n> dernières secondes, <m> fois, à l ’infini si <m> n’est pas précisé n Exemple: n # vmstat –s n # vmstat –s 10 1 Surveiller le système: vmstat
  • 173. n La commande netstat affiche les informations sur l’utilisation du réseau n Syntaxe: # netstat [options] n Options: n -a: affiche l’état du socket -i: état des interfaces configurés sur le système n -r: affiche table de routage -n: numéro de port, de réseau et les adresses n -s: affiche les statistique sur les protocoles n -m: affiche les informations sur les ressources mémoire utilisée par les protocoles réseau Surveiller le système: netstat
  • 174. n La commande sar permet de surveiller toutes les ressources du système: n Surveiller l’usage du CPU: n # sar -u : pourcentage d’utilisation du CPU n # sar -q : nombre de processus en attente n Surveiller l’usage de la mémoire: n # sar -r : utilisation de la mémoire centrale et du swap n # sar -w : surveille du swapping n # sar -p : surveille le paging n Surveiller les entrées/sorties: n # sar -b : utilisation des tampons n # sar -d : utilisation des disques Surveiller le système: sar
  • 175. n Le service de surveillance des processus doit être activé ainsi que celui des données produites qui seront exploitées par la commande « sar » n L’activation et la production des données sont réalisées par la commde « sadc ». Les scriptes «sa1» et «sa2» collectent et sauvegardent les données du système n La commande « sadc » permet de collecter données <n> fois à intervalle de <t> secondes et de stocker les données dans un fichier journalier (/usr/adm/sa/sa<jj> où jj désigne le jour du mois) n «sa1» et «sa2» sont activé via «cron» et produisent les données quotidiennes respectivement pour les comptes « sys » et « root » n Ex. de cron de sys: 0 * * * 0-6 /usr/lib/sa/sa1 20,40 8-17 * * 1-5 /usr/lib/sa/sa1 n Ex. de cron de root: 5 8 * * 1-5 /usr/lib/sa/sa2 –s 8:00 –e Surveiller le système: sar
  • 176. n Syntaxe: n # sar [-abBcdghmOpqrRSuvwy] [-A] [-o fichier] t [n] n # sar [-abBcdghmOpqrRSuvwy] [-A] [-s heure][-e heure] [-i seconde][-f fichier] -abBcdghmOpqrRSuvwy : désigne les ressources à surveiller -A: equivalent à –abBcdghmOpqrRSuvwy n,t: nombre de rapports espacés de « t » secondes Surveiller le système: sar ou
  • 177. n -u: utilisation du CPU -a: opération d’accès au fichier n -b: utilisation du cache -B: utilisation des buffers n -c: utilisation des primitives -d: utilisation des périph. de type bloc n -g: utilisation des I/O série -h: statistique sur les I/O physiques n -m: utilisation des IPC -O: requêtes d’I/O asynchrones n -p: statistiques de la pagination -y: activité des terminaux n -q: pourcentage moyen des processus prêts à s’exécuter en mémoire en swap n -r: pages de la mémoire et blocs de disque de swap inutilisés n -R: stat. sur l’ordonnancement -S: stat. sur les requêtes SCSI n -v: etat des tables du noyau -w: état de la pagination et du swapping n Exemples: # sar –u 5 3 # sar -q 5 3 # sar -r 5 3 # sar -w 5 3 Surveiller le système: sar
  • 178. Le serveur Web Apache
  • 179. Installation du serveur httpd Deux méthodes : n Package rpm n Compilation des sources (www.apache.org) n Conseillé pour bénéficier d’une arborescence standard et de la dernière version n Créer un répertoire temporaire: « mkdir temp » n Décompacter l’archive: « tar xzf apache.X.Y.tar.gz » n Lire les fichiers d’installation
  • 180. Installation du serveur httpd n Compilation des sources : n Compiler les sources (vérifier la présence de « gcc » et de « make »): « # ./configure --prefix=/usr/local/apache # make # make install » n Vérifier que tout s’est bien passé: « # /usr/local/apache/sbin/apachectl start » n Édition des fichiers de configuration: n Access.conf: instructions permettant de gérer les accès au serveur n Srm.conf: instructions sur les noms et les types accessibles aux utilisateurs n Httpd.conf: instructions sur le fonctionnement du serveur
  • 181. Serveur http Apache n Démarrer le serveur: « apachectl start » n Arrêter le serveur : « apachectl stop » n Configuration de httpd.conf: n Changer l’utilisateur: champ « User » n Changer le port: champ « Port » n Configuration de srm.conf: n Changer le répertoire racine: champ « DirectoryIndex » n Changer les messages d’erreur: champs « ErrorDocument »
  • 182. Serveur http Apache Test du serveur : n Utilisation d’un navigateur (http://localhost) n Utilisation de telnet: n « telnet localhost <Port du serveur> » n en général: « telnet localhost 8080 »
  • 183. Serveur http Apache Options courantes: n « KeepAlive »: indique si les navigateurs sont autorisés à ordonner aux connexions de rester actives (httpd.conf) n « FollowSymLinks »: indique si les liens symboliques sont autorisés (access.conf) n « FancyIndenxing »: indique si les fichiers sont accompagnées d’icônes
  • 185. n « Initiation à Unix », D. Bouillet, D. Conan, F. Silber-Chaussumier, TélécomINT/UX11, Sept. 2005 n « Présentation Unix », Matthieu Herrb, LAAS-CNRS n « Cours de Systèmes d'Exploitation (Unix) », H.Bourzoufi n « Advanced Programming in the UNIX Environment Addison »- Wesley, ISBN 0- 201- 56317- 7, W. R. Stevens n « Introduction au système UNIX », GTR 2001-02, Emmanuel Viennet, IUT de Villetaneuse n « Unix administration », J-F Bouchaudy & G. Goubet n « Unix: langage de programmation Korn shell », IBM n « Installation et administration sous SUN- Guide étudiant » bibliographie