Académique Documents
Professionnel Documents
Culture Documents
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
2. L’arborescence d’Unix
/
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 ~]$
@ : connexion
Localhost : ordinateur local
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
. 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
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
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.
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
Rq : Combinaison de and et or :
find /tmp -type f -a -user Samir -o -user Fedoua
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…
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
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
r : lire
w : écrire
x : exécuter
- : pas de droit
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
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
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
3- Sauvegarde par dd :