iset medenine

publicité
[ISET MEDENINE]
ATELIER SYSTEME 2
TP1 : Administration du système et gestion des fichiers sous UNIX
1. Introduction
Un système d’exploitation est un logiciel de base qui se charge lors du demarrage de l’ordinateur.il
agit comme un intermédiaire entre l’utilisateur d’un ordinateur et le matériel du l’ordinateur et permet
de fournir un environnement du travail adéquat au utilisateur.
2. Présentation d’UNIX
UNIX est un SE développé par AT&T au début des années 70
et il est écrit principalement en
langage C pour être facilement portable d'une plateforme à une autre plateforme (recompilation). Ainsi
il était purement un produit commercial, ensuite il y aura apparition d’un SE libre appelé LINUX
(chaque utilisateur peut l’utiliser et le modifier librement selon ses besoins)
qui est est un
« clone »(exemplaire) d’UNIX développé depuis 1991 par Linus Torvalds qui voulait mettre au point
son propre système d'exploitation pour son projet de fin d'étude.
LINUX présente Différentes distributions tels que Red Hat, Fedora, Debian, Ubuntu, Mandrake, etc
qui intègrent plus des services et d'outils d'administration variés (arborescence des répertoires, scripts
d'administration, interface utilisateur graphique, gestionnaires administratifs graphiques,…).
Le système UNIX se compose de :
 Un noyau (kernel) chargé de la gestion de la mémoire, des entrées/sorties, de
l'ordonancement des processus, de l'accès aux pérphériques, ...
 Un interpréteur de commande (shell) chargé de la gestion de l'interface noyau /utilisateurs.Il
existe plusieurs types de shells :sh (Bourne shell), bash (Bourne again shell), csh (C shell), ksh
( korn shell )
 Des utilitaires : gestionnaires d'interface graphique, gestionnaires administratifs, compilateurs,
applications, ...
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
1
[ISET MEDENINE]
ATELIER SYSTEME 2
Les caractéristique d’UNIX
Unix est un système d'exploitation :
 multi-utilisateurs : permet à plusieurs utilisateurs de se connecter et travailler en même temps.
 multi-tâches : peut faire fonctionner plusieurs applications simultanément.
 multi-plate-formes : fonctionne sur la quasi-totalité des plates-formes matérielles (IBM, SUN,
HP).
 Il possède un ou plusieurs interpréteurs de commandes (shell)
 Il possède également de nombreux utilitaires (compilateurs pour de nombreux langages,
traitements de texte, messagerie électronique, ...).
 Très utilisé dans les milieux professionnels et universitaires grâce à:

sa grande stabilité

son niveau de sécurité élevé

le respect des grands standards, notamment en matière de réseau.
Remarque
Linux est sensible à la casse (case sensitive en anglais), c'est à dire qu'il distingue les majuscules des
minuscules. Ainsi, pour créer un répertoire, la commande est mkdir, ce n'est pas la peine d'essayer
MKDIR ou mKdiR, cela ne fonctionnera pas. De même, les noms de fichiers et de répertoires sont
également sensibles à la casse. De plus, sous Unix, les chemins sont séparés par des slash :
/etc//init/xfs mais jamais etc\init\xfs.
3. Administration du système UNIX en commandes
a) Quel est le système?
 uname
[ -r ]: Affichage des informations relatives à la release UNIX installée.(avec la
commande cat /etc/issue on peut afficher le nom de la distribution linux utilisée).
b) Arret du système
 halt : Arrêt du système
 shutdown : Arrêt du système
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
2
[ISET MEDENINE]
ATELIER SYSTEME 2
c) Principaux répertoires du système d'exploitation
/
bin
dev
etc
lib
root
tmp
usr
lib
users
src
home
ali
med
...

/ : le répertoire racine.

/bin : contient les commandes Unix.

/dev : contient les fichiers de descriptions des périphériques(device) matériels et logiciels.

/etc : contient les fichiers de configuration du système.

/lib : contient les bibliothèques ("library" en anglais ) indispensables

/root : répertoire personnel de l'administrateur système (l'utilisateur "root")

/tmp : contient les fichiers temporaires

/home : répertoire qui contient les répertoires des utilisateurs de système.

etc.
d) Travailler en tant qu'administrateur
root : Super-utilisateur possèdant tous les droits.
 su
root : Passage d'un terminal en tant que super-user (root). Ouverture d'un nouveau
terminal ligne de commande pour root dans un terminal ligne de commande non root.
 exit : Interruption du terminal en cours d'exécution.
 sudo : Exécution d'une commande en tant que root
 sudoedit : Edition d'un fichier en tant que root
Remarque :il est possible d'utiliser su, sudo et sudoedit pour travailler en tant que n'importe quel
utilisateur.
e) Quelques commandes importantes
 man : Commande d'affichage du manuel "en ligne" relatif à une commande.
 cal : Affichage du calendrier du mois en cours.
 date : Affichage de la date et de l'heure instantanés.
 who : Affichage de la liste des utilisateurs en cours du système.
 ps : lister les processus en cours d’exécution (savoir implicitement le type du shell utilisé).
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
3
[ISET MEDENINE]
ATELIER SYSTEME 2
 echo : Affichage d'un message, d'une variable, ...
4. Gestion des fichiers
Répertoires spéciaux sous UNIX:
. (un point): représente le répertoire courant.
.. (deux points): représente le répertoire parent.
~ :représente le répertoire maison (home) de l'utilisateur.
Fichiers cachés :
Sous Unix, les fichiers cachés commencent par un point. Par exemple, ~/.bashrc est un fichier caché,
dans le répertoire maison de l'utilisateur, qui contient la configuration de son shell.
Caractères spéciaux :
Certains caractères, appelés métacaractères, sont interprétés spécialement par le shell avant de
lancer la commande entrée par l’utilisateur. Les métacaractères permettent donc de spécifier
facilement des ensembles de fichiers, sans avoir à rentrer tous leurs noms. Voici les plus utilisés :
* : remplacé par n’importe quelle suite de caractères
? : remplacé par un seul caractère quelconque
[ ] : remplacé par l’un des caractères mentionnés entre les crochets. On peut spécifier un intervalle
avec - (Exemple :[a-z]spécifie l’ensemble des lettres minuscules).
a) Manipuler des fichiers et des répertoires
 ls : Affichage de la liste des fichiers et/ou répertoires non cachés du répertoire courant.
 ls -l : affichage de la Liste de toutes les informations disponibles sur les fichiers et répertoires
non cachés du répertoire courant. On aura Sept colonnes dans l'affichage détaillé :
1. Type de fichier et autorisations (Répertoire repéré par un d en première lettre, lien
symbolique par un l en première lettre)
2. Nombre de liens matériels ou nombre de blocs pour un répertoire
3. Propriétaire
4. Groupe
5. Taille en octets
6. Date et heure de la dernière modification (jour si + de 6 mois)
7. Nom du fichier
 ls -al : pour visualiser les attributs de tous les fichiers (même ceux cachés).
 Touch : créer un fichier vide.
 cp : Copie d'un fichier ou d'un répertoire.
 mv : Déplacement ou changement du nom d'un fichier ou d'un répertoire.
 rm : Effacement d'un fichier ou d'un répertoire(rm –r).
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
4
[ISET MEDENINE]
ATELIER SYSTEME 2
 unlink: Effacement d'un fichier.
 mkdir : Création d'un répertoire.
 rmdir : Effacement d'un répertoire.
 pwd : Affichage du nom du répertoire courant.
 cd : Changement du répertoire courant.
 ln : Création d'un lien matériel ou symbolique.
 Lien matériel( ln fichier_cible fichier_lien) : Référence à un fichier .
 Lien symbolique(ln –s fichier_cible
fichier_lien): Raccourci vers un fichier (lien
symbolique reste meme si le fichier lié est supprimé).
b) Visualiser le contenu de fichiers
 cat : Affichage complet du contenu d'un fichier.
 more : Affichage progressif du contenu d'un fichier.
 less : Affichage interactif du contenu d'un fichier.
 od : Affichage sous différents formats du contenu d'un fichier.
 head : Affichage du début d'un fichier.
 tail : Affichage de la fin d'un fichier.
 sort : Tri par ordre alphabétique des lignes d'un fichier texte.
 vi : Editer le texte d’un fichier.
c) Commandes divers
 find : Recherche de la localisation d'un fichier dans l'arborescence de un ou plusieurs
systèmes de fichiers.
Exemple : find / -name fstab
 chercher le fichier fstab à partir de la racine
 grep : Recherche des fichiers contenant une chaine de caractères.
Exemple : grep
tab /etc/*
 chercher tous les fichiers du répertoire /etcqui contiennent la
chaine « tab »
 diff : Comparaison ligne par ligne de deux fichiers texte.
 cmp : Comparaison octet par octet de deux fichiers.
 split : Découpage d'un fichier texte en plusieurs fichiers texte.
 du : Calcul de la taille approximative d'un fichier ou d'un répertoire (récursivement pour les
répertoires).
 wc : Calcul du nombre de lignes, de mots et de caractères d'un fichier.
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
5
[ISET MEDENINE]
ATELIER SYSTEME 2
5. Entrées-sorties standard
Lors de l'exécution d'une commande, un processus est créé. Celui-ci va alors ouvrir trois flux :
 stdin, appelée entrée standard, dans lequel le processus va lire les données d'entrée. Par
défaut stdin correspond au clavier ; STDIN est identifié par le numéro 0 ;
 stdout, appelée sortie standard, dans lequel le processus va écrire les données de sortie. Par
défaut stdout correspond à l'écran ; STDOUT est identifié par le numéro 1 ;
 stderr, appelée erreur standard, dans lequel le processus va écrire les messages d'erreur.
Par défaut stderr correspond à l'écran. STDERR est identifié par le numéro 2 ; Par défaut lorsque l'on
exécute un programme, les données sont donc lues à partir du clavier et le programme envoie sa
sortie et ses erreurs sur l'écran, mais il est possible de lire les données à partir de n'importe quel
périphérique d'entrée, voire à partir d'un fichier et d'envoyer la sortie sur un périphérique d'affichage,
un fichier, etc.
a) Redirections
Ainsi, l'utilisation du caractère « > » permet de rediriger la sortie standard d'une commande située à
gauche vers le fichier situé à droite :
ls -al /home > toto.txt
echo "Toto" > /etc/monfichierdeconfiguration
La commande suivante est équivalente à une copie de fichiers :
cat toto > toto2
La redirection « > » a pour but de créer un nouveau fichier. Ainsi, si un fichier du même nom existait,
celui-ci sera écrasé. La commande suivante crée tout simplement un fichier vide :
> fichier
L'emploi d'un double caractère « >> » permet de concaténer la sortie standard vers le fichier, c'est-àdire ajouter la sortie à la suite du fichier, sans l'écraser.
De manière analogue, le caractère « < » indique une redirection de l'entrée standard. La commande
suivante envoie le contenu du fichier toto.txt en entrée de la commande cat, dont le seul but est
d'afficher le contenu sur la sortie standard :
cat < toto.txt
Enfin l'emploi de la redirection « << » permet de lire sur l'entrée standard jusqu'à ce que la chaîne
située à droite soit rencontrée. Ainsi, l'exemple suivant va lire l'entrée standard jusqu'à ce que le mot
STOP soit rencontré, puis va afficher le résultat :
cat << STOP
b) Tubes de communication (pipes)
Les tubes (en anglais «pipes", littéralement tuyaux) constituent un mécanisme de communication
propre à tous les systèmes UNIX. Un tube, symbolisé par une barre verticale (caractère « | »), permet
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
6
[ISET MEDENINE]
ATELIER SYSTEME 2
d'affecter la sortie standard d'une commande à l'entrée standard d'une autre. Ainsi dans l'exemple
suivant, la sortie standard de la commande ls -al est envoyée sur le programme sort chargé de trier le
résultat par ordre alphabétique : ls -al | sort
6. Exercices d’application
Exercice 1
1) Quel est le système installé?
2) Quelle est la distribution installée?
3) Quels sont les utilisateurs en cours du système?
4) Ouvrir un nouveau terminal en utilisant un autre compte.
5) Fermer ce terminal.
6) Tester la commande man pour obtenir de l'aide sur man. Quelles sont les commandes
susceptibles d'être documentées dans man?
Exercice 2
1) Lister le contenu du répertoire /etc.
2) Lister de manière détaillée le contenu du répertoire /etc. Les fichiers nommés "passwd", "shadow",
"group" et "gpasswd" sont-ils présents dans /etc?
3) Lister le contenu du répertoire /dev.
4) Lister le contenu du fichier /etc/passwd.
5) Lister le contenu du fichier /etc/shadow.
6) Afficher par ordre alphabétique les utilisateurs définis dans le fichier /etc/passwd.
7) Rechercher tous les fichiers du répertoire /etc contenant la chaine de caractères "root".
8) Rechercher la localisation du fichier "stdio.h" dans le système de fichier de votre installation.
9) Utiliser les commandes de comparaison de fichiers de Linux pour comparer 2 fichiers.
10) Afficher le nombre des lignes, des mots et des caractères dans un fichier choisi a votre choix.
Exercices 3
Déterminer les commandes permettant de réaliser les actions suivantes:
1) Déterminer le répertoire par défaut dans la hiérarchie des répertoires?
2) Y a t-il des fichiers, des répertoires dans ce répertoire?
3) Entrer du texte dans un fichier nommé "Mon_fichier".
4) Lister le contenu de "Mon_fichier".
5) Lister le répertoire courant.
6) Lister les répertoires /bin et /dev.
7) Créer sous votre répertoire deux sous-répertoires : "Source" et "Data".
8) Se positionner sous "Source".
9) Listez le répertoire courant.
10) Revenir sous le répertoire de départ et détruire "Source".
11) Créer un deuxième fichier nommé "Mon_fichier_2".
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
7
[ISET MEDENINE]
ATELIER SYSTEME 2
12) Copier chaque fichier en nom_de_fichier.old.
13) Créer un répertoire "Old".
14) Déplacer les fichiers avec l'extension old vers le répertoire "Old".
15) Copiez les fichiers sans extension dans le répertoire "Data".
16) Sous votre répertoire de départ, créez un lien matériel "Mon_lien" équivalent à "Mon_fichier_2".
17) Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro d'inode. Que
remarquez-vous?
18) Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu?
19) Sous votre répertoire de départ, créez un lien symbolique "Mon_nouveau_lien" sur
"Mon_fichier_2".
20) Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2". Que remarquezvous?
21) Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu?
22) Quelle est la taille totale des fichiers contenus dans votre répertoire?
23) Effacer tous les fichiers crées.
2011-2012 | Enseignantes : R.Ben Azzoun & S. Ben Chaaban
8
Téléchargement