Vous êtes sur la page 1sur 41

Partie 3

Système d'exploitation
UNIX

1
Plan
● Présentation d'Unix

● Unix et Linux

● Architecture d'Unix

● Systèmes de fichiers d'Unix

● Types de fichiers d'Unix

● Utilisateurs sous Unix

● Quelques commandes Unix


2
Histoire d’Unix
● 1er système UNIX (1969) :
 Collaboration entre des chercheurs du CSRC (Computer Science
Research Center) et des laboratoires Bell (qui ont inventé le transistor)
 Système interactif simple : Multics
 Ambitions grandioses, mais échec rapide

● 2 chercheurs : Réecriture d'une version simplifiée en assembleur


 Version fonctionnelle : UNICS
 UNICS fut très vite rebaptisé UNIX
 UNIX : Version écrite dans un langage de haut niveau : langage C
 Modifiable facilement et portable

● Plusieurs versions (AT&T, OSF/1, UNIX SYSTEM V, UNIX BSD, etc.)


3
Raisons du succès d’Unix
● UNIX est gratuit et ouvert (le code source est disponible)

● UNIX est multi-tâches, multi-utilsateurs

● UNIX n'est pas libre (non géré par la licence GNU/GPL, laquelle prévoit 4
libertés fondamentales à son utilisateur)

● UNIX est multi-plateformes : On peut le trouver sur tous les types


d’ordinateurs, du serveur au poste de travail, et ce, quel que soit le
processeur (Intel, PowerPC, etc.)

● UNIX est LE système de référence dans le monde universitaire

● UNIX n'est lié à aucun constructeur particulier et il est portable


4
Unix et Linux (1)
● 1991 : Linux nait par Linus Torvalds
● Développement d'un noyau en s'inspirant des principes du SE Unix
● Linux est placé dans le domaine public en 1994 par l'intermédiaire du projet
GNU : la free software fundation

● 4 libertés :
 la liberté d'exécution : tout le monde a le droit de lancer le programme,
quel qu'en soit le but ;
 la liberté de modification : tout le monde a le droit d'étudier le
programme et de le modifier, ce qui implique un accès au code source ;
 la liberté de redistribution : tout le monde a le droit de rediffuser le
programme, gratuitement ou non ;
 La liberté d'amélioration : tout le monde a le droit de redistribuer une
version modifiée du programme 5
Unix et Linux (2)
● Pour donner un cadre juridique aux logiciels du projet GNU
 Ecriture d'une licence, la GNU General Public License (GPL)

● GPL :
 reprend les 4 libertés et
 impose pour la liberté d'amélioration que les versions modifiées sous
licence GPL ne peuvent être redistribuées que sous cette même
licence

● Noyau Linux : est enrichi et amélioré par de nombreuses contributions


● Linux est gratuit et libre
Remarque : un système libre n'est pas forcément gratuit
6
Unix et Linux (3)
● Noyau Linux ne se suffit pas à lui-même: actuellement fourni à l'intérieur de
distributions
 Comprennent un noyau à une certaine version, des pilotes de périphériques, des
outils d’installation et d’administration, et différents logiciels

● Plusieurs distributions :
 Même noyau
 Environnement utilisateur et ensembles de logiciels utilitaires variables
● Principales distributions de Linux :
 Redhat Enterprise Linux
 Fedora Linux
 Debian Linux
 Suse Enterprise Linux
 Ubuntu Linux

● Linux tourne sur un grand nombre de machines différentes, du petit PC au


gros serveurs 7
Architecture d’Unix (1)
● Unix est composé de :
 Un noyau : couche logicielle qui assure la gestion des différents
composants de l'ordinateur
 Autour du noyau gravite un certain nombres d'utilitaires :
 Interpréteur de commande, shell;
 Des commandes de manipulation de fichiers, des processus, etc. ;
 Des commandes permettant la communication entre utilisateurs ou entre
systèmes;
 Des éditeurs de textes;
 Des outils de traitement de textes et de traitement d’images;
 Des compilateurs;
 Des lecteurs multimédias (audio, vidéo);
 Des outils de développement;
 Etc.

 Dialogue avec le noyau se fait au moyen d’appels systèmes

8
Architecture d’Unix (2)

9
Architecture d’Unix (3)
● Interpréteur de commande Shell :

 L’interface utilisateur sous Unix est appelée shell

 Le shell vérifie, interprète les commandes, exécute


et renvoie les réponses

 C'est une couche logicielle bien séparée du noyau

 L'interpréteur de commande Shell envoie des appels


au noyau en fonction des requêtes des utilisateurs

10
Systèmes de fichiers d’Unix (1)
● Le Système de Gestion de Fichier S.G.F gère une structure d'arbre

● Les données sont organisés en fichiers eux-mêmes organisés en


répertoires (et sous-répertoires)

● La racine est désignée par /

● Les nœuds sont les répertoires non vides

● Les feuilles sont les répertoires "vides" et les fichiers

● Les chemins sont décrits avec le séparateur /

● Noms de fichiers et répertoires sont limités à 14 caractères (/ est interdit et -


ne peut être le premier caractère) 11
Systèmes de fichiers d’Unix (2)
● Tous les caractères alphanumériques et la ponctuation sont valides

● Pas de notion d'extention de fichier : le caractère . (point) un caractère


comme un autre qui peut apparaître plus d'une fois dans un nom de fichier

● Unix n'accepte pas les caractères accentués et distingue les minuscules des
majuscules

● Exemples :
 MonProg.c et monprog.c ne représentent pas les mêmes fichiers
 a.b... est un nom de fichier valide sous Unix
 tp6-31/03/2001.c est non valide
 _Z_ l'est aussi
12
Types de fichiers Unix
● Unix manipule des répertoires et des fichiers
● Répertoires et fichiers : considérés indifféremment  Un répertoire est un
fichier
● Unix permet de distinguer entre les fichiers  Type de fichier
● 2 catégories de fichiers :
 Fichiers ordinaires
 Fichiers simples: Fichiers classiques composés de caractères

 Répertoires : Fichiers (noeuds) de l'arborescence pouvant contenir des


fichiers ou d'autres répertoires.

 Fichiers liens : Ce sont des fichiers spéciaux qui ne font que pointer vers un
autre fichier ou répertoire. Equivalent des raccourcis sous windows

 Tubes : Communication entre les processus

 Fichiers spéciaux : associés aux périphériques 13


Répertoires d’Unix (1)
● Répertoire courant : celui dans lequel on se trouve à un instant donné durant
la navigation dans le système de fichiers. Noté par un point .
● Répertoire parent : celui hiérarchiquement immédiatement supérieure à celui
courant. Noté par deux points ..
● Principaux répertoires :
 / : répertoire racine, contient les noms des sous-répertoires de premier niveau
 /bin : répertoire rassemblant les fichiers exécutables du système (« binaires »)
 /dev : répertoire contenant des fichiers spéciaux assurant les échanges de données
entre le noyau du système et les périphériques
 /etc : répertoire contenant les fichiers de définition des groupes d’utilisateurs et les
fichiers des mots de passe (le contenu en est codé)
 /home : contient les répertoires de travail des utilisateurs
 /tmp : répertoire des fichiers temporaires
 /var : fichiers d’historiques (log), mails, ...
 /boot : le noyau du système et fichiers du démarrage 14
Répertoires d’Unix (2)

15
Chemin d’accès au fichier
● Retrouver un fichier dans une arborescence de répertoires : spécifier, outre
son nom, son chemin d'accès

● Chemin d'accès : succession des sous-répertoires qu'il faut traverser pour


arriver dans celui où se trouve le fichier

● 2 types de chemins d'accès :


 Chemin d'accès absolu : Le chemin d'accès est spécifié à partir du
répertoire racine
 Exemple: /home/user1/test

 Chemin d'accès relatif : Le chemin d'accès est spécifié à partir du


répertoire courant (position courante)
 Exemple répertoire courant = /home => user1/test 16
Utilisateurs sous UNIX (1)
● UNIX : multi-utilisateurs
 Plusieurs utilisateurs peuvent utiliser la machine, l'un après l'autre ou tous
ensemble

 Quand plusieurs utilisateurs (à travers des consoles distantes) se connectent à


une machine Unix, chaque utilisateur a son propre environnement de travail (un
répertoire maison appelé "home"), et peut se croire seul sur la machine

 Chaque utilisateur doit se déclarer au système par un login et un mot de passe

 A chaque utilisateur est associé des droits d’accès (qui sont limités)

 Il existe un utilisateur particulier ! le super utilisateur (root). Il a tous les droits sur
la machine et peut tout faire

 A chaque utilisateur est attribué un numéro (User Identification ), UID

 UID = 0  le root 17
Utilisateurs sous UNIX (2)
 Utilisateur : fait parti d'un groupe d'utilisateur (défini lors de la création de
l'utilisateur par l'administrateur du système )

 Au groupe est associé un numéro appelé Group Identification (gid)

 Chaque utilisateur est ainsi, dès son login, associé à un couple uid/gid

 Tous les fichiers du système appartiennent à quelqu'un  chaque fichier est


associé à un couple utilisateur/groupe (uid/gid)

 Chaque fichier possède des autorisations d'accès : des autorisations pour le


propriétaire du fichier, pour le groupe du fichier, et pour tous les autres

 Chaque type d'autorisation : des droits en lecture, en écriture, et en exécution

 Le root a le droit de tout faire quelque soient les droits attribués et quelque soit le
propriétaire
18
Quelques commandes Unix
● Commande ls (list) : visualiser le contenu de répertoires
 Sans paramètres : Affiche les répertoires et les fichiers du répertoire courant
 Avec paramètres : Affiche le contenu des répertoires passés en paramètres

Ex. répertoire courant : /home

19
Quelques commandes Unix
● Options ls :

 ls -a : (all), affiche tous les fichiers d'un répertoire même ceux qui sont
cachés

 ls -R : affiche récursivement le contenu des sous-répertoires

 ls -t : affiche le contenu des réperoires par ordre de date de dernière


modification et non pas en ordre alphabétique (par défaut)

 ls -s : affiche le contenu des réperoires par ordre de taille

 ls -r : affiche le contenu des réperoires trié par ordre alphabétique


inverse

20
Quelques commandes Unix
 ls a* : affiche les fichiers et répertoires du répertoire courant
commençant par la lettre a

 ls /bin/?ou* : lister tous les fichiers et répertoires de /bin qui contiennent


“ou” en seconde position (ex: “mount”)
* : une chaîne quelconque de caractères
? : un seul caractère quelconque

 ls -l : affiche une liste détaillée (les droits de lecture, d'écriture et


d'exécution, le propriétaire, le groupe, la taille en octets, sa date de
création ou de modification) du contenu d'un répertoire

● Remarque
 On peut cumuler les options. Ex, pour obtenir un listing détaillé (-l)
incluant les fichiers cachés (-a) et classé par taille (-s)  $ ls -las 21
Quelques commandes Unix

Colonne 1 : Le type et les droits du fichier


Type : - fichier ordinaire, d : répertoire
Droits : Les 9 caractères qui suivent le type de fichier
(par exemple rwxr-xr-x) permettent de représenter les
permissions élémentaires de celui-ci
Colonne 2 : Nombre de liens physiques
Colonne 3 et 4 : Le propriétaire et le groupe propriétaire du
fichier
Colonne 5 : Taille du fichier en octets
Colonne 6 : Date de modification des fichiers
Colonne 7 : Nom du fichier 22
Quelques commandes Unix
● Droits d'accès : 9 caractères qui suivent le type du fichier
 Pour un fichier
 Droits du propriétaire
 r ou - : droit de lire (r : read) le fichier (r : oui, - : non)
 w ou - : droit d'écrire (w : write) dans le fichier
 x ou - : droit d'exécuter (x : execute) le fichier
 Droits du groupe : s'appliquent aux utilisateurs qui sont dans le
groupe du propriétaire
 Droits des autres : s'appliquent aux utilisateurs qui sont ni le
propriétaire, ni dans le groupe du propriétaire

23
Quelques commandes Unix
 Pour un répertoire, les choses sont différentes :

 r : permission de lister les fichiers dans le répertoire

 w : permission d'ajouter ou de supprimer des fichiers dans le


répertoire

 x : pour un répertoire, le x n'est pas un droit d'exécution mais un


droit d'accès au répertoire. Sans ce droit, on ne peut pas accéder
au répertoire et voir ce qu'il y a

24
Quelques commandes Unix
● Commande chmod : Modification des droits d'accès
 Changer les permissions de lecture, d'écriture et d'execution d'un fichier ou d'un
répertoire, soit en mettant plus de droits, soit en enlevant des droits
 2 méthodes : Avec les chiffres et avec les lettres
 Permissions avec les chiffres

 Exemple: si on veut que l'utilisateur obtienne tout les droits (7), que le
groupe ait juste le droit de lire (4) et que le reste des utilisateurs n'aient
aucun droit (0): le nombre sera 740  chmod 740 /votre/fichier 25
Quelques commandes Unix
 Permissions avec les lettres
u = user (propriétaire) ; g = group (groupe) ; o = other (autres).
+ signifie : « Ajouter le droit » ; - signifie : « Supprimer le droit » ;
= signifie : « Affecter le droit »

 Exemples
 chmod g+w rapport.txt : Ajouter le droit d'écriture au groupe
 chmod g+w,o-w rapport.txt : Ajouter le droit d'écriture au groupe
et l'enlever aux autres
 chmod +x rapport.txt : Ajouter le droit d'exécution à tout le
monde
 chmod u=rwx,g=r,o=- rapport.txt: Affecter tous les droits au
propriétaire, juste la lecture au groupe, rien aux autres
– Le paramètre -R pour chmod : affectez des droits sur un dossier
avec -R, tous ses fichiers et sous-dossiers récupèreront le même
droit
● chmod -R 700 /home/moi : lire, éditer et exécuter les fichiers de
26
mon répertoire personnel et de tous ses fichiers
Quelques commandes Unix
● Commande cd (change directory) : change de répertoire courant
 Sans paramètres : change le répertoire courant pour le répertoire home
 Avec paramètres :
 cd chemin : change le répertoire courant pour celui specifié par le
chemin
 cd - : change le répertoire courant pour le répertoire précédent, où
l'ont se trouvait avant (comme si c'était un bouton précédent)
 cd .. : permet de remonter au répertoire père

● Commande pwd (path of working directory)  Où suis-je?


 Affiche le chemin complet du répertoire de travail en cours (répertoire
courant)
 Par défaut /home est le répertoire courant

27
Quelques commandes Unix

28
Quelques commandes Unix
● Commande mkdir : crée un nouveau répertoire

● Commande rmdir : supprime un répertoire (qui doit être vide)

● Commande touch : crée un fichier vide, si fichier existe, positionnement de


sa date de modification à la date actuelle
 touch <nom_fichier>

● Commande cat : Visualisation du contenu d'un fichier (en console)


 cat <nom_fichier>
 cat - n <nom_fichier> : rajoute les numéros des lignes
 cat <nom_fichier1> <nom_fichier2> : Concatène les 2 fichiers et affiche
le résultat sur la sortie standard 29
Quelques commandes Unix
● Commande less : Affichage du contenu d'un fichier page par page
 less <nom_fichier>

● Commande head -n : Affiche les n premières lignes du fichier

● Commande tail -n : Affiche les n dernières lignes du fichier

30
Quelques commandes Unix
● Commande grep : Recherche une chaine de caractères dans un fichier
 Syntaxe : grep -option(s) expression fichier
 Plusieurs options :
 -v : affiche les lignes ne contenant pas la chaîne
 -c : compte le nombre de lignes contenant la chaîne
 -l : affiche le nom des fichiers qui contiennent la chaîne
 etc.

● Commande cp : Copie un fichier (on aura 2 fichiers identiques)


 cp <nom_fichier1> <nom_fichier2>
 Copie dans un autre dossier : cp <nom_fichier1> <nom_dossier>
 Avec l'option –R : copier un dossier, ainsi que tous les sous-dossiers et
fichiers qu'il contient
31
Quelques commandes Unix
● Commande mv : Déplace ou renomme un fichier
 Renomme un fichier dans le dossier courant
 mv <nom_fichier_ancien> <nom_fichier_nouveau>
 Ex : mv voiture avion

 Renomme un fichier dans un dossier distant


 Ex : mv /home/cedric/voiture /home/cedric/avion

 Déplace un fichier du dossier courant vers un dossier distant


 Ex : mv voiture /home/cedric/Bureau

 Déplace plusieurs fichiers du dossier courant vers un dossier


distant
 Ex : mv toto.txt frais.txt elements.txt /home/cedric/Bureau/test

 Déplace tous les fichiers courant vers un dossier distant


 Ex : mv * /home/cedric/Bureau/test 32
Quelques commandes Unix
● Commande rm : Supprime un fichier
 Syntaxe : rm <nom_fichier>
 Options :
 ‐i : demande de confirmation
 -f : force la suppression
 -R : Supprime récursivement (le répertoire et ses sous-répertoires)

 Exemples :
 rm *.o (supprime tous les fichiers d’extension “.o”)
 rm a* (supprime tous les fichiers dont le nom commence par "a”)
 rm [aA]* (supprime tous les fichiers commençant par a ou A)
 rm * (supprime tous les fichiers)
 rm rep1/* (supprime tous les fichiers dans rep1)
33
Autres commandes utiles
● Commande man <nom_commande> : permet d'afficher une documentation
complète sur une commande

● Commande passwd : permet de changer le mot de passe de l’utilisateur

● Commande who : affiche la liste des utilisateurs connectés

● Commande date : affiche la date

● Commande groups : affiche le(s) groupe(s) auquel appartient un utilisateur

34
Autres commandes utiles
● Commande locate <nom_fichier> : permet de localiser très rapidement un
fichier
 locate ne cherche pas le fichier au sein de l’arborescence, mais au sein d’une
BD contenant la liste des fichiers existants
 Si la BD n’a pas été réactualisée  le fichier peut ne pas être trouvé
 Réactualisation de la BD à l’aide de la commande updatedb

● Commande find : va chercher le fichier au sein de l’arborescence

● Commande lpr : imprime un fichier

● Commande lpq : permet d’afficher les fichiers en attente d’impression

● Commande lprm : permet de détruire des fichiers en attente d'impression

● Commande su : permet de changer d’identité en console. Le mot de passe


de l'utilisateur est demandé
35
Exercice 1
● Créer dans votre répertoire personnel les fichiers selon l’arborescence
suivante :

36
Exercice 1 (Suite)
● Créer deux répertoires Unix et Python dans votre répertoire personnel
● Créer deux répertoires TP1 et TP2 dans le répertoire Unix
● Copier les deux répertoires TP1 et TP2 dans le répertoire Python
● Créer deux répertoires seance1 et seance2 dans le répertoire TP1 de Unix
● Créer deux fichiers exo1 et exo2 dans le répertoire seance1
● Copier les deux fichiers exo1 et exo2 dans le répertoire TP2 de Python
● Supprimer le répertoire TP1 de Python
● Est-ce qu'on peut utiliser la même commande pour supprimer le répertoire TP2 de
Python?
● Supprimer en une commande le répertoire TP2 de Python
● Déplacer le fichier exo1 dans le répertoire TP1
● Supprimer les répertoires seance1 et seance2
● Renommer le fichier exo1 en exercice1
● Dessiner l’arborescence des fichiers contenus dans le répertoire personnel de manière
théorique. Vérifier le à l’aide d’une commande 37
Exercice 2
● Dans votre répertoire courant, créez en une commande les fichiers suivants:

annee1 Annee2 annee4 annee45 annee41 annee510

● Créer le répertoire Year dans votre répertoire courant, déplacez les fichiers
précédemment créés dans le répertoire Year

● Lister tous les fichiers :


 se terminant par 5
 commençant par annee4
 commençant par annee4 et de 7 lettres maximum
 commençant par annee avec aucun chiffre numérique
 contenant la chaîne ana
 commençant par a ou A

● Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le


répertoire /tmp en une seule commande 38
Exercice 2 (suite)
● Dans votre répertoire courant, créez un répertoire essai_droit, par défaut ce
répertoire est à 755 (rwxr-xr-x), quelles sont les commandes (en notation
symbolique et en base 8) pour lui donner les droits suivant :

39
Exercice 2 (Corrigé)
● Dans votre répertoire courant, créez en une commande les fichiers suivants:

touch annee1 Annee2 annee4 annee45 annee41 annee510


● Créer le répertoire Year dans votre répertoire courant, en une commande déplacez
les fichiers précédemment créés dans le répertoire Year

Mkdir Year mv [aA]nnee* year


● Lister tous les fichiers :
– se terminant par 5 ls *5
– commençant par annee4 ls annee4*
– commençant par annee4 et de 7 lettres maximum ls annee4?
– commençant par annee avec aucun chiffre numérique ls annee[!0-9]*
– contenant la chaîne ana ls *ana*
– commençant par a ou A ls [aA]*
● Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le
répertoire /tmp en une seule commande cp *[41]? /tmp
40
Exercice 2 (Corrigé)
● commande 1
chmod 751 essai_droit
chmod o-rw essai_droit
● commande 2
chmod 521 essai_droit
chmod u-w,g-rx,g+w,o-r essai_droit