UNIX :
Standard pour les systèmes d’exploitation
Quelques caractéristiques importants des systèmes UNIX :
Système de fichiers :
Structure logique permettant la gestion de l’espace disque
Chaque disque logique (partition) possède un système de fichiers
/
/home
/usr
Organisation des systèmes de fichiers dans une arborescence
Hiérarchisation des systèmes de fichiers
Rattachement des systèmes de fichiers secondaires au système de fichiers principal
...
Représentation de toutes les ressources disponibles (fichiers classiques, dispositifs diverses, périphériques)
Plusieurs types de fichiers :
Les fichiers réguliers ou ordinaires
Les fichiers répertoires
Les fichiers spéciaux (clavier, écran, etc.)
Les tubes nommés (points de communication)
Les liens symboliques (identification de données avec plusieurs noms)
Nom des fichiers : jusqu’à 255 caractères alphanumériques
Sous UNIX : différenciation des lettres en majuscule et en minuscule
Exemple : air et AIR sont deux chaînes de caractères différentes Fichiers cachés : nom commen¸cant par un point (.bashrc, ..)
Deux fichiers particuliers :
. : le répertoire courant
.. : le répertoire père
Pour le système, pas de distinction au niveau du contenu
Mais pour les commandes, distinction importante :
Les fichiers binaires
Les fichiers textes : structurés en ligne
Ligne : suite de caractères se terminant par un caractère
<fin de ligne>, non visible à l’écran unité élémentaire pour la plupart des commandes
Chaque fichier :
appartient à un utilisateur (user) et un groupe (group)
possède des droits décrivant leurs modes d’utilisation et d’accès :
Répartition des droits sur trois niveaux correspondant à trois classes d’utilisateurs :
Le propriétaire du fichier (user)
Le groupe auquel appartient le propriétaire (fixé par l’administrateur du système) (group)
Les autre utilisateurs (other)
Un utilisateur à part possédant tous les droits : le super utilisateur (root)
En résumé, chaque fichier possède des droits en
pour
... ...
Rappel : Programme en exécution dans un système UNIX
Toute activité correspond à un processus
Tout processus correspond à un fichier ou un ensemble defichiers (dans le répertoire /proc sous Linux)
Création avec fork ou exec dans un programme C
Par défaut, trois fichiers standards associés à un processus :
Entrée standard (clavier - descripteur 0)
Sortie standard (écran - descripteur 1)
Sortie des erreurs (écran - descripteur 2)
PID : l’identifiant du processus
PPID : l’identifiant du père du processus
UID : identifiant de l’utilisateur propriétaire priorité : valeur entre -20 (priorité élevée) et +20 (priorité faible) terminal de contrôle (tty)
répertoire courant mémoire utilisée (vive et swap) temps d’exécution (réel, et au niveau de l’utilisation processeur)
2 types de processus :
processus système : Processus lié au fonctionnement du système (init, udevd, rpcbind, etc.) processus utilisateur : exécution d’une commande, d’un programme ou d’une application (apache, ls, ...)
Organisation des processus selon un arbre hiérachique
La racine : processus init (PID = 1)
Chaque nœud : un processus
Un processus créé est lié à son père (PPID) tant que celui-ci existe, sinon il est lié au processus de PID 1
IDLE : Le processus en cours de création
RUN : Le processus est en exécution. Il dispose du processeur.
Pret : Le processus attend que le système lui attribue le processeur.
SLEEP : Le processus est en attente d’un évènement particulier (entrée/sortie parexemple).
STOP : Le processus est prêt mais ne demande pas l’accès au processeur.
ZOMBIE : Le processus se termine. Il attend que son père prenne en compte sa terminaison et que le système libère ses ressrources.
Mécanisme simple de communication entre processus et de contrôle d’exécution
En général, un nombre (ou un code mnémonique ) entre 1 et 31 (extensible avec la norme POSIX) :
2 (INT) : interruption au clavier (CTRL-c)
9 (KILL) : terminaison du processus (non modifiable)
10 (USR1) : définition par l’utilisateur
11 (SEGV) : violation mémoire (référence invalide)
17 (CHLD) : terminaison d’un fils
20 (TSTP) : arrêt du processus (ctrl-z) (voir /usr/include/bits/signum.h sous Linux)
Comportement :
Procédures de connexion et de déconnexion
Commandes de base
Gestion et déplacement dans l’arborescence
Gestion et manipulation des fichiers
Généralités
Sur une machine UNIX, un utilisateur doit être référencé pour
pouvoir l’utiliser
Authentification d’un utilisateur :
Connexion : indiquer
son nom d’utilisateur (entrée login)
son mot de passe (entrée password)
Par exemple :
login: hamon <Enter>
Password: ******** <Enter>
En mode texte, 3 possibilités :
Votre [email protected] de la Machine:1:> logout
Votre [email protected] de la Machine:1:> exit
Votre [email protected] de la Machine:1:> CTRL-D
En mode graphique :
(Variation d’un gestionnaire de fenêtres à un autre)
Dans les menus, demander la déconnexion, et confirmer la demande
Multiboot :
Chaque PC possède deux systèmes d’exploitation (sauf les salles F206 et F207)
Possibilité du choix du système au démarrage
Arrêt : Après s’être déconnecté, dans un menu, cliquez sur shutdown ou éteindre
N.B. : Ne jamais arrêter brutalement la machine (sauf en cas d’extrême nécessité)
Redémarrage (Reboot), 2 possibilités :
Dans un menu, cliquez sur reboot ou Redémarrer
Tapez la séquence de touche : CRTL-ALT-SUPPR
Lecture/écriture de fichiers textes bruts (pas d’application de style, modèle, format, etc.)
Exécution : emacs
Utilisation du menu ou de commandes basées sur des combinaisons de touches
Utilisation important des touches ESC, META, ALT, CTRL, SHIFT
Sortie : CTRL-x CTRL-c
Lecture d’un fichier : CTRL-x CTRL-f
Sauvegarde d’un fichier : CTRL-x CTRL-s
Destruction d’un buffer d’Emacs : CTRL-x k
Aide :
Fonction d’une touche : CTRL-h c ou
CTRL-h k
Description d’une fonction : CTRL-h f
Généralités
Commande : programme effectuant une tache particulière (copie de fichier, tri d’un fichier, etc.)
UNIX fournit de nombreux programmes de base
Ligne de commande : série de caractères tapés et se terminant par un retour chariot (entrée, Enter)
La commande est la première série de caractères jusqu’à un séparateur
Exécution des commandes à travers un interpréteur de commandes (Shell) dans un terminal
commande [argument(s)]
En général :
Lecture des données sur l’entrée standard (par défaut, le clavier)
Ecriture des données en sortie sur la sortie standard (par défaut ´ l’écran)
Ecriture des erreurs sur la sortie en erreur standard (par défaut, ´ l’écran)
Rappel : sous UNIX, les minuscules et les majuscules sont différenciés
ls options répertoires
Options (les plus courantes) :
-a : Affichage des fichiers cachés ou non
-l : Affichage de toutes les informations sur les fichiers (droits d’accès, propriétaire, taille, dernière date de mise à jour)
Exemple :
ls -l
Affichage à l’écran du contenu du répertoire courant avec les informations sur les fichiers :
-rw-r--r-- 1 hamon users 902 Nov 25 13:33 exo1.c
drwxrwx--- 2 hamon users 512 Dec 30 10:43 Repertoire1
cd répertoire
Exemple :
cd /home/air/hamon/Repertoire1
Déplacement dans le répertoire /home/air/hamon/Repertoire1
Utilisation particulière :
cd : Retour au répertoire de connexion
cd .. : Retour au répertoire père
cd - : Retour au répertoire précédent
pwd
Exemple :
cd /users/users/hamon/Repertoire1
pwd
Affichage à l’écran :
/users/users/hamon/Repertoire1
Création : mkdir répertoire
Destruction (d’un répertoire vide) : rmdir répertoire
Destruction (d’un répertoire contenant des fichiers) :
rm -r répertoire
Exemples :
mkdir Repertoire1
création du répertoire Repertoire1
rmdir Repertoire1 destruction du répertoire Repertoire1
cp options fichier1 fichier2
(Copie du contenu de fichier1 dans fichier2)
cp options fichier1 [fichier2 ...] répertoire
(Copie du contenu des fichiers fichier1 et fichier2 dans répertoire)
-i : mode interactif (confirmation avant écrasement)
-R ou -r : copie récursive de répertoires
-p : conserve la date du fichier source
Exemples :
cp /etc/fstab .
cp -r rep1 rep2
mv options fichier1 [fichier2 ...] répertoire
Déplacement des fichiers fichier1 et fichier2 dans répertoire
Options :
-i : mode interactif (confirmation avant écrasement).
-f : force la commande
Exemple :
mv fichier1 rep1
N.B. : La commande peut être utilisée pour renommer un
fichier
rm options fichier1 [fichier2 ...]
Suppression des fichiers spécifiés
Options :
-i : mode interactif (confirmation avant écrasement)
-f : force la commande
-r : supprime récursivement les répertoires
Exemples :
rm fichier1
rm -r repertoire