Vous êtes sur la page 1sur 30

Chapitre1 : Présentation d’Unix

1. Présentation
Unix est un système d'exploitation, c'est à dire un ensemble de programmes exécutés
par leprocesseur central d'une machine informatique pour :
partager équitablement la machine entre différentes tâches (Unix est multitâche), ou
entre différents utilisateurs (Unix est multi-utilisateurs),
contrôler la fiabilité du système,
gérer les entrées/sorties (disques, terminaux, lecteur de disquette, etc.),
gérer les aspects réseau : transfert de fichiers, connexion à distance, messagerie
électronique, etc.
2. Historique
L'histoire d'UNIX débute dans les années 60 et peut être résumée de la façon suivante
- 1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur usage interne, d'un
système d'exploitation pour le traitement de textes et le développement d'applications.
Ken Thomson et son équipe sont chargés de ce travail.
- 1969 : apparition de la 1ère version d'UNIX.
- 1973 : Denis Ritchie réécrit entièrement UNIX en langage C
- 1974 : AT&T propose les 1ères licences aux universités (l’Université de Berkeley).
- 1978 : AT&T présente à l'industrie les 1ères versions commerciales.
-années 80 : AT&T autorise le clonage d'UNIX par d'autres constructeurs. De
nombreuses :
AIX IBM, Bull (stations de travail, mainframes) ;
HP/UX Hewlett-Packard (stations);
Solaris Sun MicroSystems (stations Sun et PC) ;
GNU/Linux Logiciel libre (et gratuit).
Ces versions constructeur dérivent toutes des 2 versions qui sont :
- System V pour des configurations moyennes et petites ;
- BSD (Berkeley Software Distribution) pour des configurations importantes dans le
domaine scientifique).
Concernant le système Linux, il a vu le jour en 1991 par un étudiant finlandais, Linus
Torvalds. Linux est une version libre d’UNIX (le code source du système est
disponiblegratuitement et redistribuable) Linux est diffusé par différentes sociétés ou
organisations, sous formes dedistributions qui utilisent le même noyau (ou presque) et
organisent de diverses façons lesystème (packages, mises à jour, etc). Les distributions
les plus répandues sont Red Hat, Suse,Caldera, Debian, Slackware et Mandrake.
3. Caractéristiques générales d'Unix
On peut résumer ces caractéristiques en ce qui suit :
Le noyau Unix est écrit à plus de 95% en C. Moins de 50% de ce code dépend de la
machine.  Une portabilité accrue.
Unix est le standard des systèmes ouverts, c'est-à-dire des systèmes dont les
spécifications sont publiques.
Unix est au centre des efforts de standardisation et de normalisation qui ont pour
objet de définir des interfaces standards pour les systèmes d'exploitation pour faciliter
les développements et l'interopérabilité entre des machines hétérogènes.
4. Architecture d’Unix
Il y a trois couches fondamentales qui forment le système :

1 : La couche des processus utilisateurs : C'est uniquement quand on exécute le logiciel que
le programme va réaliser la tâche pour laquelle il a été conçu, dans ce cas-là on dira qu'on a
affaire à un processus ou process.
Chaque processus utilisateur dialogue avec l’extérieur à travers de trois fichiers particuliers :
l’entrée standard (standard input) ; clavier
la sortie standard (standard output) ; écran
la sortie d’erreur standard (standard error output) ; fichier
2 : Le noyau (en anglais kernel) : Le noyau est la partie centrale d’Unix. Il est résident, il se
charge en mémoire au démarrage. Il gère les tâches de base du système, à savoir :
l'initialisation, les processus système et les processus utilisateurs, le processeur et la RAM, les
fichiers systèmes
3 : La couche de gestion des périphériques : Vu du noyau, un périphérique est considéré
comme un fichier. En fonction des caractéristiques de ce fichier, le noyau va déterminer
l'adresse mémoire des sous-programmes à exécuter pour réaliser la
liaison avec le périphérique en question. Cette couche dépend étroitement du matériel.
Chapitre2 : Utilisation du SHELL
1. Le shell
Le shell est un programme qui permet à l'utilisateur de dialoguer avec le cœur du système (le
noyau).
Il permet de réaliser plusieurs tâches :
· Il interprète les ordres tapés au clavier par l'utilisateur et permet ainsi l'exécution
desprogrammes;
· Il fournit à l'utilisateur un langage de programmation interprété;
· Il permet de modifier l'environnement;
· Il se charge de réaliser les redirections des entrées-sorties, les pipes et la substitution de type
fichier.
Il en existe de nombreuses versions : bash, csh, ksh, sh, tcsh, zsh. Le plus connus d'entre eux,
bash.
2. Variables d’environnement
Les variables sont des valeurs associées à des noms explicites ; elles constituent
l'environnement d'exécution des commandes.
Voici les principales variables d’environnement utilisées par le shell :
• CDPATH: liste des répertoires recherchés quand cd est exécuté avec un nom relatif comme
argument,
• DISPLAY: l’écran sur lequel on travaille (par défaut :0.0),
• ENV: nom d’un fichier exécuté à chaque appel de ksh,
• GID: le numéro du groupe actuel de l’utilisateur,
• HOME: répertoire de login,
• HOST: le nom de la machine sur laquelle on se trouve,
• IFS: séparateur de mots dans les commandes (espace, tabulation ou passage à la ligne);
IFS est utilisé pour les commandes internes pour découper une liste de paramètres,
• LOGNAME: le nom de l’utilisateur,
• MANPATH: liste des répertoires où se trouvent les pages de manuel,
• PATH: liste des répertoire de recherche des commandes, le séparateur est «:»,
• PS1, PS2: prompts initial et secondaire (habituellement $ et >),
• PWD: le répertoire courant,
• SHELL: le shell par défaut,
• TERM: nom du type de terminal utilisé,
• UID: le numéro de l’utilisateur.
Pour récupérer le contenu d'une variable, l'utilisateur utilise le caractère $ suivi du nom de sa
variable.
Exemple :
$ echo $LOGNAME
root

Chapitre3 : FHS et démarrage d’Unix


1. FHS
FHS (Filesystem Hierachy System) est une convention qui organise l'arborescence des
répertoires sous Linux/Unix.

2. L’arborescence d’Unix
/

boot bin etc home ….

/boot : contient les fichiers de démarrage et le


noyau linux
/bin : contient les fichiers binaires exécutables
/etc : contient les fichiers de configuration
matériel et logiciel des systèmes
/home : contient les dossiers personnels des
utilisateurs
/dev : contient les fichiers d’accès matériel et
logiciel
/proc : système contient des fichiers des
informations sur le système (matériel, logiciel
et système de fichier)
/usr : contient les logiciels et les programmes
(.exe) partagés
/tmp : contient des fichiers temporels des
utilisateurs
/root : c’est le dossier personnel de
l’administrateur
/usr/bin : contient les fichiers exécutables
binaires partageables
/usr/include : contient les fichiers inclusion
pour les compilateurs ( .c, .h)
/usr/lib : contient un ensemble de
programme utilisé par les logiciels : c’est la
librairie ou bibliothéque des programmes
courants.
/usr/man : contient les manuels d’aide sur les
commandes : man mkdir
/usr/src : contient les fichiers sources des
logiciels et des noyaux Linux ( le fichier source
= code )
Swaps : mémoire virtuelle
3. Démarrage de système Unix
3.1 Le boot-loader (le chargeur de démarrage)
Le boot loader est un programme lancé juste après le chargement du Bios. Il permettra à
l’utilisateur de choisir quel système d’exploitation il veut lancer.
3.2 Démarrage
1.le BIOS effectue une série de tests sur le matériel (RAM, détection des disques, ...) nommé
POST : Power On Self Test.
2. le bootloader est chargé en mémoire, l'utilisateur peut alors choisir le système à démarrer
3. le noyau linux est chargé en mémoire par le bootloader, il s'initialise, détecte les
périphériques, ...
4. le noyau passe alors la main au programme sysvinit (init) père de tous les processus.
5. init lance en dernier un terminal virtuel qui demande un login/password pour ouvrir un
shell
Bootloader utilisé suivant les os :
Windows Linux
NTLDR Lilo
Grub
4. Grub (Gnu Grand Unified Bootloader)
Grub est un bootloader qui devient de plus en plus courant. Pour plus d’informations : man
grub
5. Grub2 :
C’est la version 2 de GRUB : une version améliorée de Grub. Les fichiers de GRUB2 sont
situés sont :
/etc/default/grub : ce fichier contient les paramètres de menu Grub : ce menu s’affiche au
démarrage pour choisir le S. E. à charger
/etc/grub.d :c’est un dossier qui contient les scriptes de création du menu de Grub2
/boot/grub2/grub.cfg : c’est le fichier de configuration de Grub2.
6. Les types de fichiers sous linux
Linux gère plusieurs types de fichiers :
 Fichiers ordinaires : qui contient des données (fichiers texte, fichiers binaires, son, vidéos, …) (f)
 Fichiers liens symboliques : qui pointent vers autres fichiers (raccourci) (l)
 Dossier (répertoire) : qui contient autres répertoires et des fichiers. (d)
 Fichiers spéciaux : (Mode caractères (c), mode blocs (b)) sont des fichiers pour représenter le
matériel.
Pour connaitre la nature d’un fichier on utilise la commande : file chemin/nom_fichier

7. Terminal :
Pour manipuler les commandes il faut se connecter au système à travers d’un terminal local
sur la même machine ou sur une machine distante en utilisant la commande telnet.

Exemple :

[ofppt@localhost ~]$

Ofppt : est l’utilisateur connecté

@ : connexion
Localhost : ordinateur local

~ : répertoire home pour l’utilisateur connecté

$ : invite de commandes d’un utilisateur standard

# : invite de commandes de root

Remarque :
 Pour afficher le nom d’utilisateur courant ( connecté ) on utilise la commande : Whoami ou
logname
 Pour afficher l’identité d’un utilisateur : id nom_usr
 Pour afficher l’interface de terminal sur lequel on est connecté on utilise la commande tty
c’est les fichiers d’accès de terminaux
 Pour afficher des informations sur le système utilisé la commande uname
 Pour se déconnecter : exit ou logout ou ctrl+d
 Pour arrêter l’ordinateur : # shutdown -h now ou halt
 Pour redémarrer # shutdown -r now ou reboot
8. Répertoire courant :
Le répertoire courant dans lequel un utilisateur se trouve positionner. On peut afficher son
chemin absolu par la commande pwd. Le répertoire personnel de l’utilisateur courant
représenté par ~ (tilde) ~=/home/nom_utilisateur
Chapitre4 : Les commandes de base (partie1)
I. Manipulation des commandes
1. Format général des commandes
La syntaxe générale des commandes Unix est :
commande options... arguments...
NB :
Les options sont précédées par un tiret « -»
Les arguments peuvent être absents et, dans ce cas-là, la commande des valeurs par défaut.
Exemple :
• ls
• ls -lia
• ls *foo*
2. Utilisation de l'aide
Sur un système Unix / Linux, la plupart des logiciels sont installés avec un manuel accessible
par la commande man
manfonction_ou_commande
Afin de naviguer dans le manuel, il convient d'utiliser les touches hautes et bas mais aussi les
commandes suivantes :

3. Aide simplifiée
Il est aussi possible d'en avoir un résumé via l'option --help
luser@localhost $ ls -- help

II. Commandes de base


1. Commandes liées à l’arborescence de fichiers
1.1.Nom d’un fichier (nom absolu / nom relatif)
Les noms de fichiers sont "case sensitives", c’est à dire qu’ils tiennent compte des majuscules
et des minuscules. Le nom d’un fichier peut contenir jusqu’à 255 caractères.
Pour accéder à un fichier comportant des caractères spéciaux dans son nom, on doit placer le
nom du fichier entre guillemets (ou utiliser des back slash avant les caractères spéciaux) :
luser@localhost $ vi "ceci est un test.txt"
luser@localhost $ vi ceci\ est\ un\ test.txt
Deux notions sont liées au nom du fichier:
• Le chemin absolu est composé du nom du fichier précédé par le chemin d’accès à ce fichier
depuis la racine de l’arborescence (exemple: /u/students/tri/user/.profile);
• Le chemin relatif, est une troncature de cette arborescence par rapport au
répertoire courant (exemples: ~/.profile, ../other_user/.profile, ./.oracle). un certain nombre de
raccourcis sont utilisés:
• . : le répertoire courant,
• .. : le répertoire parent du répertoire courant,
• ~/ : la contraction de votre HOME directory.
1.2. Visualisation de l’arborescence : ls
La commande lspermet d’obtenir la liste des fichiers d’un répertoire ou d’une arborescence
de répertoires.
Quelques options :
• -l: format détaillé
• -a: liste aussi les fichiers qui commencent par «.»
• -t: affiche en triant par date de dernière modification
• -R: listage récursif des sous répertoires
Exemple :
luser@localhost $ ls
toto profile tools
luser@localhost $ ls -a
.. toto
.login tools
.login_conf profile

C1 : type de fichier peut prendre les valeurs suivantes :


• - 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.
C2 : les droits sur le fichier : rwx
r : lire (read) ; w : écrire (write) ; x : exécuter(eXcute) ; - : privé de ce droit
u : utilisateurs propriétaire (User) ; g : groupe propriétaire (Group) ; o : les autres utilisateurs
(Others)
C3 : nombre de liens
C4 : nom de l’utilisateur propriétaires de fichier
C5 : nom de groupe propriétaire
C6 : taille de fichier
C7 : la date de la dernière modification
C8 : emplacement et nom de fichier
1.3. Se déplacer dans l’arborescence :
cd [répertoire]
Chapitre4 : Les commandes de base (partie2)
1. Commandes liées aux fichiers
1.1.Création d’un nouveau fichier ou changer sa date de modification
touch options chemin/nom_fichier
Exemple :
touch fich1 dos1/fich2 dos1/dos11/fich3 …
1.2.Type d’un fichier :
file chemin/nom_de_fichier
Exemple :
luser@localhost $ file fichier.ps
fichier.ps: PostScript document
1.3.Affichage du contenu d’un fichier :
cat options chemin/nom_fichier
Exemple : cat /etc/passwd

1.4.Affichage page à page:


more options chemin/fichier
less options chemin/fichier
1.5.Afficher les n premiers lignes d’un fichier :
head -3 /etc/passwd (n par défaut à 10)
1.6.Afficher les n dernières lignes d’un fichier :
tail options chemin/fichier
• +n: nième ligne du fichier,
• -n: nième ligne à partir de la fin du fichier.
Ex : tail -5 /etc/group
1.7.Copier des fichiers
cp option chemin_source/nom_fichierchmin_destination(l’option -i demande confirmation
del’opération)
1.8.Déplacer/renommer des fichiers
Mv fichier_source fichier_destination
ou
mv fichiers... répertoire
Exemple :
luser@localhost $ mv fic fic.old(on renomme le fichier "fic" en "fic.old")
luser@localhost $ mv fic* rep(on déplace l’ensemble des fichiers commençant par fic dans
le répertoire "rep").
luser@localhost $ mv fic rep/fic1 (on déplace le fichier "fic" dans le répertoire "rep" et on
le renomme "fic1")
1.9.Supprimer un fichier
rm [options] chemin/fichiers...
-i : pour la confirmation
-f : pour forcer la suppression
-r : pour supprimer une arborescence
1.10. Compter le nombre de lignes, de mots, de caractères
wc -l chemin/nom_fichier : compter les lignes
wc -w chemin/nom_fichier : compter les mots
wc -c chemin/nom_fichier : compter les caractères

2. Commandes liées aux répertoires


2.1.Créer un répertoire
mkdir [options] répertoires...
Si on veut créer une arborescencedirectement, il faut utiliser l’option -p
taper :
mkdir -p tp_unix/td1 tp_unix/tp2
mkdir -p tp_unix/td{1,2}
2.2.Supprimer un répertoire
la commande rm(avec l’option -r) permet de supprimer des répertoires.
rmdir options chemin/nom_répertoires... (répertoires doivent être vides)
2.3.Déplacer, changer le nom d’un répertoire
Comme pour les fichiers, il s’agit de la commande mv.

Chapitre4 : Les commandes de base (partie3)


2. Autres Commandes liées aux fichiers
1.1.Recherche d’une chaîne de caractères dans un fichier ordinaire : grep
grep [option] expression-régulière [fichiers...]
Affiche à l’écran les lignes des fichiers qui contiennent une chaîne de caractères
correspondant à l’expression régulière donnée.
Les options les plus courantes sont :
• -c: qui affiche seulement le nombre de lignes contenant la chaîne,
• -i: qui ignore la différence entre minuscules et majuscules,
• -n: qui affiche les numéros de lignes.
Pour les expressions régulières :

. un caractère quelconque

* plusieurs caractères

^ début de la ligne

$ fin de la ligne
[a-d] liste ou intervalle de caractères
[^ …] caractères interdits
luser@localhost $ grep -i mot *
affiche le nom du fichier et la ligne contenant le mot
grep ‘’^O’’ /etc/passwd
grep ‘’^[a-d] /etc/passwd
grep ‘’h$’’ /etc/passwd
grep [xyz] /etc/passwd
1.2.Cut : afficher une partie de chaque ligne d’un fichier
Exemple :
cut -c1 /etc/passwd : Affichera la première colonne du fichier /etc/passwd

cut -d : -f1,7 /etc/paswd

2. Le globbing
Le globbing est l’utilisation de caractères spéciaux tels que "*", "?".
*: ne correspond à aucun ou plusieurs caractères
? : correspond à un caractère
[a-z] : correspond à un ensemble de caractères
[^a-z] : correspond à tous les caractères sauf ceux de cet ensemble
Voici la liste des fichiers utilisés pour l'exemple :
luser@localhost $ ls
index.htm sommaire.htm t0st.c table.htm test.c
On affiche tous les fichiers finissant par ".htm"
luser@localhost $ ls *.htm
index.htm sommaire.htm table.htm
On affiche tous les fichiers sauf les fichiers finissant par la chaîne "htm".
luser@localhost $ ls *[^htm]
t0st.c test.c
Exemple avec "?" qui signifie un caractère non vide :
luser@localhost $ ls t?st.c
t0st.c test.c
On affiche tous les fichiers comportant "st" dans le nom :
luser@localhost $ ls *st*
t0st.c test.c
M07 Chapitre 05

Chapitre5 : Les redirections de flux sous linux

Commande
Entrée standard (STDIN 0)

Toute commande possède une entrée standard (en général le clavier) et deux sorties : une
sortie standard ( en général l’écran) et une sortie d’erreur.

L’utilisateur peut rediriger l’entrée ou la sortie.

1- Rediriger la sortie standard (STDOUT)


On peut envoyer le résultat d’une commande vers un fichier au lieur de l’écran :
Commande option arguments > chemin/nom_fichier
Exemple1 :
ls -l /etc > dos1/fich1
cat /etc/passwd > users
Exemple2 :
$ echo "Hello" > message
$ cat message
Hello

Remarque :
La redirection supérieure crée le fichier destination s’il n’existe pas et s’il existe son
contenu sera écrasé. Pour ne pas écraser le contenu on utilise >>. On peut donc créer un
nouveau fichier avec > ( > chemin/nom_fichier)
Ou bien :
cat > fich2 (Entrée)
>tapez le texte


Ctrl + d

Page 1 sur 2 M. A. AGALIT


M07 Chapitre 05

2- Rediriger la sortie d’erreur vers un fichier


Commande options arguments 2> chemin/nom_fichier :
redirige les erreurs dans un fichier (s'il existe déjà, il sera écrasé) ;
Commande options arguments 2>> chemin/nom_fichier :
redirige les erreurs à la fin d'un fichier (s'il n'existe pas, il sera créé) ;
3- Rediriger les deux sorties vers un seul fichier
Commande options arguments 1>&2 chemin/nom_fichier
4- Rediriger la sortie standard d’une commande vers l’entrée d’une autre
commande : tube (pipe)
Commande1 options arguments | Commande2 options
Exemple :
ls -l /etc | wc -l
cat /etc/passwd | tr ‘’ :’’ ‘’+’’
5- Rediriger la sortie standard d’une commande vers plusieurs fichiers
Commande options arguments | tee -a fich1fich2 fich3 …
6- Rediriger l’entrée vers une commande :
Pour envoyer le contenu d'un fichier à une commande ;
Commande options < chemin/nom_fichier
cat < notes.csv
7- Rediriger l’entrée clavier vers une commande
Commande options << mot_arrêt
Exemple :
$ sort -n << FIN
> 13
> 132
> 10
> 131
> 34
> 87
> 66
> 68
> 65
> FIN
10
13
34
65
66
68
87
131
132

Page 2 sur 2 M. A. AGALIT


M07 Chapitre 06

Chapitre6 : Rechercher des fichiers


1- Recherche simple
a- Chercher l’emplacement d’un fichier binaire
which : affiche le chemin complet des commandes
whereis : permet de localiser les fichiers binaires, sources et de manuel d'un programme.
Exemples :
$ which ls du mv
/bin/ls
/usr/bin/du
/bin/mv
$ whereis man
man: /usr/bin/man /etc/man.config /usr/share/man
b- Chercher un fichier
locate nom_fichier
 locate permet de localiser immédiatement n'importe quel fichier ou
répertoire présent sur votre système (y compris les fichiers cachés).
 locate nécessite la création d’une base de données.

2- Recherche avec find


La commande find permet de chercher des fichiers ou bien des répertoires dans
une arborescence. C’est une commande très puissante qui permet même
d’exécuter une action sur le résultat de recherche. Il utilise plusieurs critères
comme option.
Syntaxe : find<répertoire de recherche><critères de recherche>

2-1 Les options de find :


-name : recherche par le nom
-type : recherche par le type (f : fichier ordinaire/d : dossier/l : lien/b : bloc/c :
caractère)
-size recherche sur la taille du fichier en nombre de blocs (1 bloc=512octets),
-user : recherche par l’utilisateur propriétaire
-group : recherche par groupe propriétaire
-atime : recherche par date d’accès
-ctime : recherche par date de création
-mtime : recherche par date de modification (time : le nombre de jours/mmin : par
le nombre de minutes/+ pour supérieur/- pour inférieur)

Page 1 sur 2 M. A. AGALIT


M07 Chapitre 06

-perm : recherche par les droits (permissions)


-links : recherche par nombre de liens
-newer : recherche par des fichiers modifier plus récemment qu’un autre fichier
-exec : exécuter une commande sur le résultat de recherche

2-2 Recherches multicritères


On utilise les opérations logiques ET (and) et OU (or) :
Exemples :
find . -type f -and -name ‘’*.dot’’
AND
find . -type f -a -name ‘’*.dot’’
find . -type f -name ‘’*.dot’’

find /tmp -user Samir -or -user Fedoua


OR
find /tmp -user Samir -o -user Fedoua

Rq : Combinaison de and et or :
find /tmp -type f -a -user Samir -o -user Fedoua

find /tmp -type f -a \( -user Samir -o -user Fedoua \)

3- Exécuter une commande sur le résultat de recherche


Exemple :
Supprimer tous les fichiers ordinaires de l’utilisateur Samir
find /tmp -type f -user Samir -exec rm {} \;

Page 2 sur 2 M. A. AGALIT


M07 Chapitre 07

Chapitre7 : Editeurs des fichiers textes : vi

1. Introduction :
vi est l'un des plus anciens éditeurs de texte disponibles sur toutes les versions
d’Unix.
Une des raisons pour continuer à présenter vi (ou vim) : il est quasiment le seul
à pouvoir être utilisé par les administrateurs système car, pour des raisons de
sécurité, pour gérer un ordinateur, on ne peut pas se connecter en mode
graphique mais seulement en mode texte (avec ssh).

Il existe autres éditeurs de texte sous Unix comme gedit, geany, ed, emacs,
nano,etc…

2. Les modes de fonctionnement de vi (Visual Editor)


vi peut se trouver dans trois modes de fonctionnement :
• le mode commande :dans lequel l'utilisateur entre des ordres (effacer une
ligne…), c'est le mode dans lequel on est quand on démarre cet éditeur. Chaque
touche (a,i,x...) effectue une action.
• le mode insertion : dans lequel tout ce qu’on tape est inséré dans le texte.
• le mode « ed » /sélection: dans lequel on peut entrer des commandes plus
complexes telles que chercher un mot, remplacer un mot par un autre.
La figure suivante représente les changements de mode de fonctionnement de
vi :

Page 1 sur 2 M. A. AGALIT


M07 Chapitre 07

3. Les commandes de base de vi :

Page 2 sur 2 M. A. AGALIT


M07 Chapitre 08

Chapitre8 : Gestion des utilisateurs et de groupes sous Unix


1- Les fichiers de gestion des utilisateurs et de groupes
/etc/passwd : liste des utilisateurs disponible sur une machine unix
/etc/group : liste des groupes déclarés par le système
/etc/shadow : les mots de passe des utilisateurs
Remarque : ces fichiers se sont des fichiers textes (codes ASCII) sous forme des
tableaux(base de données en texte)
2- La structure de /etc/passwd
Chaque ligne de ce fichier correspond à un compte. Une ligne est composée de 7
champs séparés par des ‘’:’’ . Les champs sont les suivants :
C1 : C2 : C3 : C4 : C5 : C6 : C7
C1 : login : le nom d’utilisateur
C2 : x : mot de passe sauvegardé ailleurs
C3 : numéro de l’utilisateur UID (user Identifier)
C4 : numéro du groupe primaire de l’utilisateur (GID)
C5 : commentaire pour aide pour identifier l’utilisateur (user)
C6 : chemin absolue de l’emplacement du dossier personnel
C7 : programme shell de l’utilisateur
Exemple :
root : x : 0 : 0 ::/root:/etc/bash
samira :x :1006 :1006 ::/home/samira:/etc/bash
3- Structure de /etc/group
Ce fichier contient une entrée par groupe. Chaque entrée est composée de 4 champs :
C1 : nom du groupe
C2 : mot de passe chiffré (rarement utilisé)
C3 : numéro du groupe (GID) Group Identificator
C4 : liste de membres du groupe séparé par ‘’,’’
4- Structure de /etc/shadow
Une ligne dans le fichier /etc/shadow est composé de neuf champs séparés par le
caractère ‘’ : ’’
C1 : login : le nom d’utilisateur
C2 : mot de passe crypté
C3 : Age : un nombre de jours écoulés depuis le 01/01/1970 jusqu’au la dernière
modification de mot de passe
C4 : Période de changement : le nombreminimum de jours entre deux
changements de mot de passe.
C5 : Durée de validité : la durée de vie maximal de mot de passe
C6 :Durée de validité restant :Nombre de jours avant l'expiration.
C7 : Durée d'invalidation : Nombre de jour après l'expiration provoquant la
désactivation du compte
C8 : Date d'expiration : Exprimée en nombre de jour depuis la date de
référence (01/01/1970)
C9 : champ réservé pour usage futur
5- Ajouter un nouvel utilisateur
Seul l’utilisateur root peut exécuter les commandes de gestions des utilisateurs et
de groupes :

Page 1 sur 2 M. A. AGALIT


M07 Chapitre 08

# useradd [-u UID] [-c commentaire] [-s shell] [-g


groupe_primaire] [-G groupe_secondaire] [-d
chemin_repertoire_personnel] [-p mot_de_passe] utilisateur
Exemple :
# useradd -u 1007 -c ’’responsable du groupe’’ mohamed(entrée)

6- Modifier les paramètres d’un utilisateur existant


#usermod [-u UID] [-c commentaire] [-g group_primaire] [-G
groupe_secondaire] [-s shell] [-l nouveau_nom] utilisateur

Exemple :
Ajouter un commentaire à l’utilisateur Mohamed [responsable réseau] et changer
son programme shell par /bin/sh et changer son nom par Karim
#usermod -c ‘’responsable réseau’’ -s /bin/sh -l Karim Mohamed

7- Supprimer un utilisateur
#userdel [-r] login
L'option -r supprime aussi le répertoire personnel et les fichiers de l'utilisateur.
8- Créer un nouveau groupe
#groupadd [-g GID ] nom_du_groupe
9- Modifier un groupe
# groupmod [-g GID] [-n nouveau_nom] nom_group
10- Supprimer un groupe
# groupdel nom_group
11- Mot de passe d’un utilisateur
passwd [-x max] [-w durée_avertis.] [-i Durée_inactivité] login
-x : durée de vie de mot de passe (max = nbre de jours)
-w : nbre de jours avant d’afficher le message indiquant la fin de validité de mot de
passe
-i : nombre de jours avant que soit le compte inactif après l’expiration de mot de
passe

12- Se connecter sous un autre utilisateur avec su


Exemple1 :
[Mohamed@localhost~]$ su Karim (Entrée)
mot de passe :
[Karim@localhost~]$
Exemple2 :
[user1@localhost ~]$ su (Entrée)
mot de passe : (Entrée)
[root@localhost ~]# exit
[user1@localhost ~]$

Page 2 sur 2 M. A. AGALIT


M07 Chapitre 09

Chapitre9 : Les droits d’accès aux fichiers sous Unix


1- Notion de droits
Les droits d'accès aux fichiers (appelés encore modes ou permissions) permettent
de définir des droits différents sur un même fichier selon la catégorie d'utilisateurs.
Ainsi les manipulations de fichiers sont restreintes selon les droits alloués à chaque
fichier. A chaque catégorie d'utilisateur correspond des droits spécifiques sur un
fichier.
2- Affichage des droits (ls)
Exemple :
ls -l
-rw-r--r-- cyberzoide univ astuces.txt
drwxr-xr-x cyberzoide univ data
-rw-r--r-- cyberzoide univ lettre.doc
-rw------- cyberzoide univ Mail

3- Droits d'accès
Les droits d'accès d'un fichier sont au nombre de trois :
a- Lecture : r (read).
b- Ecriture : w (write).
c- Exécution : x (execute).
4- Catégories d'utilisateurs
a- Propriétaire
Le propriétaire d'un fichier est la personne qui le crée. Il est désigné par la
lettre u (user), Identifié par une valeur numérique : UID
b- Groupe
Un groupe d'utilisateur est un ensemble d'utilisateurs privilégiés ayant en général
des permissions moindres que le propriétaire d'un fichier. Cette catégorie est
désignée par la lettre g (group), Identifié par une valeur numérique : GID
c- Autres
Cette catégorie regroupe tous les utilisateurs qui ne sont ni le propriétaire d'un
fichier ni faisant partir du même groupe que le propriétaire. On les désigne par la
lettre o (other).
5- Identification des droits

Page 1 sur 4 M. A. AGALIT


M07 Chapitre 09

r : lire
w : écrire
x : exécuter
- : pas de droit

6- Changement des droits (chmod)


chmod [ -R ] droits fichier/dossier
-R : en cas de répertoire : tous ses fichiers et sous-dossiers récupèreront le même
droit.
a- Notation symbolique
chmod catégorie+opération+liste-des-droits fichier
avec :
Catégorie Description Opération Description
u propriétaire + ajouter
g groupe - retirer
o autres = définir
a tout le monde

Droit Description
r lecture
w écriture
x exécution
- rien

Exemple Description
chmod g=rwx temps.txt Alloue au groupe tous les droits.
chmod g-w temps.txt Retire au groupe le droit d'écriture.
chmod a-rwx temps.txt Retire aux autres tous les droits.
chmod u=rw temps.txt Alloue au propriétaire les droits en lecture et en écriture.
chmod a+r temps.txt Rajoute aux autres le droit en lecture.
b- Notation numérique
chmod serie-de-3-chiffres fichier
Triplet Nombre binaire Nombre octal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Page 2 sur 4 M. A. AGALIT


M07 Chapitre 09

Exemple Droits globaux associés


chmod 640 temps.txt rw-r-----
chmod 700 temps.txt rwx------
chmod 664 temps.txt rw-rw-r--
chmod 761 temps.txt rwxrw---x
chmod 610 temps.txt rw---x---
7- Masque de protection des fichiers (umask)
Le masque de protection de fichier permet de définir les droits par défaut de tout
fichier créé.
Manipulation
Le système Unix affecte à un fichier les droits globaux résultant de la soustraction
des droits maxima 777 par le masque de protection.
Exemple : si le masque de protection vaut 037 alors 740 (=777-037) seront les
droits alloués à tout nouveau fichier.
La commande permettant de définir un nouveau masque de protection est umask.
Syntaxe : umask droits
Exemple : umask 037
777 = rwx rwx rwx = 111 111 111
- 037 = --- -wx rwx = 000 011 111
= 740 = rwx r-- --- = 111 100 000
D'après cet exemple, tout nouveau fichier aura les droits 740 (rwxr-----) car le
masque de protection vaudra 037 (----wxrwx).
Pour connaître la valeur du masque de protection, tapez umask sans attribut.
8- Droits étendus
a- SUID
Le droit SUID permet d’exécuter un fichier avec les droits du propriétaire du
fichier.
Le droit SUID est noté --S --- --- dans le cas ou s remplace un – ou bien --s --- ---,
dans le cas ou s cache un x.
Manipulation :
Notation symbolique :
Syntaxe : chmod u+s fichier-exécutable.
Exemple : chmod u+s data/hotprog.
Notation numérique :
La valeur numérique d'un SUID est 4000 et s'ajoute à la valeur de la série
numérique globale.
Syntaxe : chmod 4000+droits fichier-exécutable
Exemple : chmod 4755 monprog  rwSr-xr-x
b- SGID :
La même chose que SUID mais pour le groupe.
Le droit SGID est noté --- --S --- dans le cas ou s remplace un - ou --- --s ---, dans le
cas ou s cache un x
Manipulation
La valeur numérique du droit SGID est 2000, il est symbolisé par la lettre s et est
affiché à la place du droit d'exécution du groupe.

Page 3 sur 4 M. A. AGALIT


M07 Chapitre 09

Notation symbolique
Syntaxe : chmod g+s fichier-exécutable|répertoire.
Exemple : chmod g+s data/.
Notation numérique
Syntaxe : chmod 2000+droits fichier-exécutable|répertoire.
Exemple : chmod 2755 monprog  rwxr-Sr-x
c- Sticky Bit
Il permet d'interdire à tout utilisateur (sauf le root) de supprimer un fichier dont
il n'est pas le propriétaire, quelque soient ses droits.
Sa valeur numérique est 1000 et est représenté symboliquement par t.
Syntaxe : chmod 1000+droits fichier-exécutable|répertoire.
Exemple : chmod 1755 tmp
Exemple : chmod o+t tmp  rwx r-x r-T
Ce droit s'affiche en lieu et place du droit en exécution de la catégorie autres.
Le droit sticky bit est noté --- --- --T dans le cas ou t remplace un – ou bien --- --- --t,
dans le cas ou t cache un x.
9- Changer le propriétaire de fichier
chown nouveau-propriétaire nom-fichier

10- Changer le groupe d’un fichier

chgrp nouveau-groupe nom-fichier

Page 4 sur 4 M. A. AGALIT


M07 Chapitre 10

Chapitre10 : Sauvegarde/compression sous Unix


1- Sauvegarde par tar
a- Créer une archive tar :

tar cfv nom_support liste_fichiers_à_sauvegarder


Exemple :
tar cvf /dev/sda7 fich1 fich2 ….
tar cvf archive1.tar /home/*
Remarque :
s : connecteur série SATA
d : disque
a : 1ere disque
7 : partition 7
b- Consulter une archive tar

tar -tvf nom_archive.tar

c- Restituer (restaurer) une archive

tar -xvf nom_archive.tar liste_fichiers

d- Compresser une archive tar

Il existe plusieurs outils de compressions des fichiers sous linux : gzip, bzip2…
gzip : tar czvf nom_archive.tar.gz les_fichiers_à_sauvegarder
bzip2 : tar cjvf nom_archive.tar.bz2 les_fichiers_à_sauvegarder
Pour décompresser et extraire une archive :
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2

2- Sauvegarde par cpio :


a- Créer une archive cpio :

cpio -ov > nom_support (entrée)


liste_des fichier (entrée)
:
:
:
Ctrl+d
Exemple :
cpio -ov > archive_cpio (entrée)
fich (entrée)
Documents (entrée)
Ctrl+d

Page 1 sur 2 M. A. AGALIT


M07 Chapitre 10

b- Consulter une archive cpio

cpio it < nom_support (entrée)

c- Restaurer une archive

cpio -iv [liste_fichiers] < nom_support (entrée)

3- Sauvegarde par dd :

dd if=fichier_à_lire [ibs=valeur] [skip=valeur] of=fichiers_à_écrire


[obs=valeur] [seek=valeur]

Exemple : dd if=fich1 of=archive_dd

4- La compression/décompression des fichiers :


a- Les fichiers gzip :

 Pour compresser en gzip :


gzip tutoriels.tar.gz tutoriels.tar  tutoriels.tar.gz
 Pour décompresser les fichiers gzip :
gunzip tutoriels.tar.gz  tutoriels.tar

b- Les fichiers bzip2 :

 Compression : bzip2 tutoriels.tar.bz2 tutoriels.tar


 tutoriels.tar.bz2
 Décompression : bunzip2 tutoriels.tar.bz2  tutoriels.tar

c- Les fichiers zip :

 Compression : zip -r tutoriels.zip tutoriels/  tutoriels.zip


 Décompression : unzip archive.zip  archive

Page 2 sur 2 M. A. AGALIT


M07 CHAPITRE 11

Chapitre 11 : Installation d’applications sous Gnu/Linux


1- Introduction
Basiquement il existe plusieurs façons de récupérer une application fonctionnant sous
Linux :
 Sous forme de paquetage RPM : un fichier portant l’extension. rpm permettant une
installation automatique, pour les distributions Linux telles que RedHat ou
Mandrake.
 Sous forme de paquetage DEB. 'un fichier portant l'extension .deb permettant une
installation automatique, pour les distributions Linux Debian.
 Sous forme d'archive. Il s'agit de fichiers compressés comportant
l'extension .tar.gz, .gz ou .tar.bz2
Quelques notions :
 paquet : c'est un programme « prêt à l'emploi », l'équivalent des programmes
d'installation sous Windows en quelque sorte ;
 dépendance : un paquet peut avoir besoin de plusieurs autres paquets pour
fonctionner, on dit qu'il a des dépendances ;
 dépôt : c'est le serveur sur lequel on va télécharger nos paquets.
2- Les packages RPM (Red Hat Package Manager)
2.1. Installation :rpm -i nom_paquet.rpm
-iv : afficher le rapport d’installation
-if : pour forcer l’installation
Exemple : rpm -ivh mpg123-0_59p-1_i386.rpm
2.2. Lister tous les paquetages installés : rpm -qa
Exemple : rpm -qa | grep httpd
2.3. Afficher les informations sur un paquetage installé : rpm -qil nom_paquet
2.4 Afficher les informations sur un package non installé :
rpm -qulp nom_paquet.rpm
2.5. Supprimer un paquetage rpm : rpm -e nom_paquet
2.6 Mise à jour d’un package rpm: rpm -Uvh mpg123-0_59p-1_i386.rpm
3- Les packages DEB :
3.1. Installation : dpkg -i nom_du_package.deb
3.2. Utilisation de APT :
Pour les paquets DEB, l'utilitaire d'installation s'appelle APT. Il est considéré
comme excellent et constitue une bonne raison de choisir une distribution
GNU/Linux basée sur Debian. Ce système fonctionne à partir d'une liste de
sources (emplacements auxquels des paquetages sont disponibles) présente dans
le fichier /etc/apt/sources.list.
Nous devons généralement suivre trois étapes pour télécharger un paquet :
 apt-get update (optionnel) : pour mettre notre cache à jour si ce n'est pas déjà
fait ;  télécharger la nouvelle liste des paquets proposés par le dépôt.
 apt-cache search monpaquet (optionnel) : pour rechercher le paquet que nous
voulons télécharger si nous ne connaissons pas son nom exact ;
 apt-get install monpaquet : pour télécharger et installer notre paquet.
3.3. Suppression un paquet deb : apt-get remove nom_du_package

Page 1 sur 2 M. A. AGALIT


M07 CHAPITRE 11

Pour supprimer également les fichiers de configuration il suffit d'utiliser la commande


suivante : apt-get remove --purge nom_du_package
3.4. Mise à jour des packages: apt-get upgrade
3.5.Rechercher un paquet : apt-cache search nom_paquet

4- Installation à partir d’une archive


Lorsque le programme est une archive (.tar.gz, .tar.bz2) il est nécessaire de compiler les
sources.
La méthode générale de l’installation à partir des sources :
 Décompresser et désarchiver les tarball dans un dossier
 Se déplacer en tant que root dans ce dossier
 Exécuter le scripte configure : #./configure (permettant d'adapter le programme
à la machine courante. )
 S’il n’y a pas des erreurs, on compile le programme en exécutant la commande :
# make (pour créer les dossiers nécessaires à l’installation)
 Et finalement on installe l’application en exécutant la commande : # make install
(pour installer les fichiers du logiciel dans les emplacements convenables)
Remarque : Bien que la compilation se fasse pratiquement toujours de la même façon
pour la majorité des applications, il est vivement conseillé de lire le
fichier INSTALL ou README pour connaître exactement les commandes nécessaires à
la compilation du programme.
5- Utilisation de yum :
yum est fourni en standard sous Fedora c’est une amélioration de rpm. Elle gère les
dépendances et elle charge les logiciels à partir des dépôts automatiquement.
5-1. Mise à jour du système : #yum update
5-2. Mise à jour d’un paquet : #yum update nom_du_paquet
Exemple : #yum update yum
5-3. Mise à jour sélective : #yum --exclude=nom_paquet update
Exemple : #yum --exclude=kernel\* update
5-4. Chercher un paquet : #yum list nom_paquet
Exemple : #yum liste tftpd
5-5. Installer un paquet : # yum install nom_paquet
5-6 Supprimer un paquet (désinstaller) : #yum remove nom_paquet
5-7. Liste des dépôts : #yum repolist all
5-8. Connaitre la liste des groupes des paquetages disponibles #yum grouplist
5-9 installer un group : #yum groupinstall ‘’nom_du_groupe’’
5-10 désinstaller un groupe de paquet : #yum groupremove ‘’nom_du_groupe’’

Page 2 sur 2 M. A. AGALIT


M07 CHAPITRE 12

Chapitre 12 : Système d’impression sous Gnu/Linux


1- Système lpd :
C’est le système d’impression original de linux développé par BSD.
1-1. Principe de fonctionnement
 Serveur d’impression : est démarré par le démon ldp
 Files d’attente : sont matérialisées par des répertoires
 Les imprimantes (locales ou distantes) : sont des fichiers spéciaux
 La configuration des systèmes d’impression : est mémorisé dans le fichier
/etc/printcap
1-2. Imprimer un fichier :
lpr options nom_fichier (pour BSD)
lp options nom_fichier (pour système V)

1-3. Visualiser les requêtes en attente :


lpq -P <nom_imprimante>
1-4. Annuler une tache d’impression :
lprm num_tâche
Exemple : lprm 4
1-5. Pour supprimer toutes les taches d’une imprimante
lprm -P nom_imprimante
2- Système CUPS : Common Unix Printing System
 Basé sur le protocole IPP (Internet Printing Protocol)
 Configurable à travers d’une interface graphique web
http://localhost:631/admin
Les fichiers de configuration de cups :
/etc/cups : répertoire contenant les fichiers de configuration
/etc/cups/cupsd.conf : fichier de configuration de démon cups
/etc/cups/printers.conf : fichier de configuration des imprimantes

Page 1 sur 1 M. A. AGALIT


M07 CHAPITRE 13

Chapitre 13 : Gestion des processus sous Gnu/Linux


1- Définition :
 Un processus est la phase d’exécution d’un programme
 Chaque processus est identifié par un numéro PID (Process Identifier)
 Tous processus est fils d’un autre processus
 Init est l’ancêtre de tous (PID=1)
 Dès sa création, un processus reçoit les paramètres suivants :
PID : identificateur du processus (numéro unique)
PPID : identificateur du processus père
UID : identificateur de l’utilisateur qui a lancé le processus
GID : identificateur du groupe de l’utilisateur qui a lancé le processus
2- Les types des processus :
 Démon : processus détaché de tout périphérique d’entrée/sortie
 L’orphelin : processus dont le père a disparu
 Zombie : Tout processus fils qui meurt et dont le père, toujours en vie, n'est
pas au courant, est appelé processus zombie. Un processus zombie est insensible
à tous signal.
3- Les états d’un processus :
Un processus peut se trouver dans l’un des états suivants :
1‐ Elu : (en cours d’exécution) : si le processus est en cours d'exécution
2-Bloqué : attente qu’un événement se produit ou bien ressource pour pouvoir continuer
3- Prêt : si le processus dispose de toutes les ressources nécessaires à son exécution à
l'exception du processeur.

Diagramme de transition d’un processus

4- Table des processus :


ps : Affiche les liste des processus lancés dans le shell courant
ps -ef : la liste des processus exécutés
ps -ax : affiche tous les processus actifs
ps -aux : affiche en plus les noms des utilisateurs propriétaire
pstree :affiche l’arborescence des processus
ps aux | grep nom_processus : filtrer un processus
ps -u olivier : pour voir les processus d'un seul utilisateur
top : Permet d'avoir un suivi de l'évolution des processus
jobs : Affiche la liste des processus lancés en arrière-plan

Page 1 sur 2 M. A. AGALIT


M07 CHAPITRE 13

5- Envoyer un signal à un processus :


On peut envoyer un signal à un processus comme un ordre.
Il existe plusieurs signaux : pour afficher la liste des signaux : kill -l
Exemple :
kill -TERM PID_processus <==> kill -15 PID_processus
kill -KILL PID_processus <==> kill -9 2960
6- Exécuter un programme en arrière-plan
commande option arguments &
Exemple : gedit fich1 &

7- Détachement d’un processus


Pour laisser l’exécution d’un programme après une déconnexion :
nohup commande option arguments

8- Autres commandes pour mettre un processus avant/arrière-plan et en


attente
Fg forground
Bg background
fg %N°_de_Job : Permet de mettre un processus en avant plan
bg %N°_de_Job : Permet de mettre un processus en arrière-plan
Ctrl-Z : Permet de mettre un processus en attente
9- Priorité des processus :
Il est possible d’affecter une priorité d’exécution des processus avec la commande nice.
nice valeur commande (valeur : entre 0 et 19 pour un simple utilisateur )
(valeur : entre -20(la plus haute) et 19 pour un super utilisateur )
Pour changer la priorité d’exécution d’un processus :
renice nouvelle_priorité PID_processus
Exemple :
$ nice 19 find / -name pdf : lance la commande find avec priorité la plus basse
# renice −20 2332 : place le processus dont le PID est 2332 en priorité la plus haute
(seul root peut le faire)

Page 2 sur 2 M. A. AGALIT

Vous aimerez peut-être aussi