ENSI Septembre 2006 Environnement Unix Support de cours Unix élaborer par: Dr.
ENSI Septembre 2006 Environnement Unix Support de cours Unix élaborer par: Dr. Maher SALLAMI Modifier par: Dr. Montaceur ZAGHDOUD (2005) Réviser par: Salem BELHAJ (2006) ENSI/ Environnement Unix/ Septembre 2006 /84 2 SOMMAIRE Chapitre 1 : Présentation Générale du Système Unix ................................................................ 4 1.1 Introduction...................................................................................................................... 4 1.2 Caractéristiques d’UNIX.................................................................................................. 5 1.3 Architecture d’UNIX........................................................................................................ 5 1.3 Le noyau........................................................................................................................... 6 1.4 Le langage shell................................................................................................................ 6 1.5 Les commandes................................................................................................................ 7 1.6 Les entrées-sorties et leur redirection............................................................................... 7 1.7 Notions de processus........................................................................................................ 7 1.8 La gestion des fichiers...................................................................................................... 8 1.9 Les droits d'accès aux fichiers et répertoires.................................................................... 9 1.10 Procédure de connexion Unix ...................................................................................... 10 1.11 Quelques Commandes Unix......................................................................................... 11 Chapitre 2 : Commande de Base du Système Unix ................................................................. 12 Chapitre 3 : Programmation Shell............................................................................................ 27 1 Introduction ...................................................................................................................... 27 2 Les caractères génériques................................................................................................. 27 3 Création de script, fonction du shell.................................................................................. 27 4 Paramètre des fichiers scripts............................................................................................ 28 5 Création des variables ....................................................................................................... 28 5.1 Création des variables ................................................................................................... 29 5.2 Les variables systèmes ................................................................................................... 29 6 L’environnement d'un SHELL.......................................................................................... 29 7 Structure de contrôle ......................................................................................................... 29 8 Aritmétique entière et logique........................................................................................... 32 9 Redirection ........................................................................................................................ 32 10 Les signaux...................................................................................................................... 32 11 Le Korn Shell (K-Shell) .................................................................................................. 32 Chapitre 4 : Les Filtres............................................................................................................. 37 4.1 Filtres.............................................................................................................................. 37 4.1.1 Les métacaractères ...................................................................................................... 38 4.1.1.1 Le métacaractère ‘.’.............................................................................................. 38 4.1.1.2 Les métacaractères ‘[ ]’........................................................................................ 38 4.1.1.3 Les métacaractères ‘^’ et ‘$’ ................................................................................ 39 4.1.1.4 Le métacaractère ‘*’............................................................................................. 39 4.1.1.5 Les métacaractères \( \) ........................................................................................ 39 4.1.2 Les expressions régulières........................................................................................... 39 4.1.3 La commande tail........................................................................................................ 40 4.1.4 La commande head...................................................................................................... 41 4.1.5 La commande tee ........................................................................................................ 41 4.1.6 La commande sort ....................................................................................................... 41 4.1.7 La commande tr........................................................................................................... 42 4.1.8 La commande find....................................................................................................... 43 4.1.9 La commande grep...................................................................................................... 45 4.1.10 Les commandes cat et less ........................................................................................ 47 4.1.11 La commande cut: sélection de colonnes.................................................................. 48 4.1.12 La commande wc ...................................................................................................... 48 ENSI/ Environnement Unix/ Septembre 2006 /84 3 4.1.13 La commande tr......................................................................................................... 48 4.1.14 L’utlitaire sed ............................................................................................................ 49 4.1.15 L'utilitaire awk........................................................................................................... 54 4.2 La redirection ................................................................................................................. 59 4.2.1 Les pipes.................................................................................................................. 59 4.2.2 L'aiguillage (tee)...................................................................................................... 60 Chapitre 5: Programmation du Noyau Unix ............................................................................ 62 5.1 Le noyau Unix................................................................................................................ 62 5.2 La gestion des fichiers et les entrées/sorties de base...................................................... 62 5.2.1 Les i-noeuds ............................................................................................................ 62 5.2.2 Les systèmes de fichiers.......................................................................................... 64 5.2.3 Descripteurs des fichiers ......................................................................................... 65 5.2.4 Les E/S sur fichier................................................................................................... 66 5. 3 Les répertoires............................................................................................................... 66 5.4 Les signaux sous UNIX.................................................................................................. 68 5.4.1 Présentation des signaux ......................................................................................... 68 5.4.2 L'envoi de signaux................................................................................................... 68 5.4.3 Le traitement des signaux........................................................................................ 69 5.4.4 La primitive alarm................................................................................................... 70 5.5 Les Processus ................................................................................................................. 70 5.5.1 Les états d'un processus........................................................................................... 71 5.5.2 Priorité d'un processus............................................................................................. 72 5.6 La création de processus ................................................................................................ 73 5.7 Synchronisation du père et du fils.................................................................................. 75 5.8 Les tubes......................................................................................................................... 75 5.8.1 Introduction............................................................................................................. 75 5.8.2 Les piles FIFO (First In First Out) ou pipes nommés ............................................. 77 5.8.3 Les événements ....................................................................................................... 77 5.9 Solutions des exercices................................................................................................... 77 ANNEXE: Les variables Unix ................................................................................................. 81 Méta-caractères d'expansion ................................................................................................ 81 Variables d'environnement prédéfinies................................................................................ 81 Variables de substitution prédéfinies ................................................................................... 82 Variables utilisateur.............................................................................................................. 82 Fichiers d'initialisation ......................................................................................................... 82 /etc/profile (sous System V uniquement)............................................................................. 83 .profile .................................................................................................................................. 83 .zshrc, .bashrc (en zsh ou bash)............................................................................................ 84 .login, .cshrc, .tcshrc, .logout (en csh ou tcsh) ..................................................................... 84 ENSI/ Environnement Unix/ Septembre 2006 /84 4 Chapitre 1 : Présentation Générale du Système Unix 1.1 Introduction Le système Unix a été mis au point par Ken Thompson dans les laboratoires Bell au New Jersey aux Etats-Unis. Le but de Ken Thompson était de mettre au point un système d’exploitation interactif simple pour faire fonctionner un jeu qu'il avait créé (space travel, une simulation du système solaire). La première version de ce système a vu le jour en 1969, il s'inspirait des principaux systèmes d'exploitation de l'époque (Multics, Tenex), et était destiné à une utilisation mono- utilisateur, d'où son nom (Unix= Multix uni-utilisateur à priori). Peu de temps après, D. Ritchie rejoint l'équipe de K. Thompson afin de mettre au point, en 1971, une version d'UNIX permettant la multiprogrammation. Parallèlement, D. Ritchie participe grandement à la définition du langage C (puisqu'il est considéré comme un de ses créateurs avec B.W. Kernighan), ainsi l'ensemble du système a été entièrement réécrit en langage C en 1973. En 1975, à partir de la version 6 du système, Unix va être commercialisé. Lorsque le système passe à la version 7, l'évolution s'accompagne de nombreuses modifications notables telles que la suppression du bridage lié à la taille des fichiers, une meilleure portabilité du langage et l'ajout de plusieurs utilitaires. Figure 1.1 : Arborescence des versions du système Unix 1983 été marquée par l'apparition de UNIX system V, un système Unix commercialisé par AT&T. De son côté l'Université de Californie met au point une variante du système ENSI/ Environnement Unix/ Septembre 2006 /84 5 destinée aux systèmes VAX nommée UNIX BSD. Les deux systèmes se sont concurrencés pour longtemps fait la guerre et c'est le system V qui en est sorti vainqueur. De nos jours les systèmes Unix restent très présents dans les milieux professionnels et de l'éducation grâce à sa grande stabilité et son utilisation en réseau. Une nouvelle version Open Source d'Unix a été développée pour les PCs (Personal Computers) par le Finlandais Linus Torvalds et s'appelle Linux. 1.2 Caractéristiques d’UNIX Un système d’exploitation est un ensemble de programmes qui coordonnent le fonctionnement des différents composants matériels et logiciels d’un système informatique. UNIX est un système d’exploitation ayant les caractéristiques suivantes: a) Multi-utilisateurs et Multitâches: cela signifie que plusieurs utilisateurs peuvent accéder simultanément au système et exécuter un ou plusieurs programmes; b) Temps partagé: c’est-à-dire que les ressources du processeur et du système sont réparties entre les différents utilisateurs; c) Système de fichiers hiérarchique: plusieurs systèmes de fichiers peuvent être rattachés au système de fichiers principal; chaque système de fichiers possède ses propres répertoires; d) Entrées-Sorties intégrées au système de fichiers: les périphériques sont représentés par des fichiers, ce qui rend le système indépendant du matériel et en assure la portabilité; l’accès aux périphériques est donc identique à l’accès aux fichiers ordinaires; e) Gestion de la mémoire virtuelle: un mécanisme d’échange entre la RAM et le disque dur permet de pallier un manque de RAM et optimise le système; f) Processus réentrants: les processus exécutant le même programme utilisent une seule copie de celui-ci en RAM; g) Interface utilisateur interactive (shell): elle est constituée d’un programme séparé du noyau permettant à l’utilisateur de choisir son environnement de travail. Elle intègre un langage de commandes très sophistiqué (scripts). 1.3 Architecture d’UNIX Le système Unix est constitué d'un système d'exploitation (le noyau), d'un interpréteur de commandes (shell) et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...) Afin d’assurer une certaine stabilité au système, UNIX a été conçu autour d’une architecture en couche. Il y a trois couches fondamentales qui forment le système: ■ le noyau (Kernel); ■ le shell (sh, Bshell, Kshell, Cshell); ■ la couche de gestion des périphériques; ■ la couche des processus utilisateurs. ENSI/ Environnement Unix/ Septembre 2006 /84 6 Figure 1.2 : Architecture du système Unix 1.3 Le noyau Le noyau d'Unix gère les tâches de base du système: ■ l'initialisation; ■ la gestion des processus système; ■ la gestion des processus utilisateurs; ■ la gestion du processeur et de la RAM; ■ la gestion des systèmes de fichiers. Le partage du temps processeur entre les processus actifs est géré par le processus système appelé 'scheduler' et il est basé sur l'horloge de l'ordinateur. À des intervalles réguliers (de l'ordre d'un centième de seconde), le processeur abandonne l'exécution du processus courant et passe à l'exécution du premier processus de plus haute priorité en attente. Pour accomplir les tâches qui lui sont propres, le noyau accède à un groupe de tables, dites système, qui concernent les processus actifs, les fichiers ouverts, le super bloc (voir gestion des fichiers), les buffers d'entrées-sorties, etc. À chaque intervalle, un examen de la table des processus permet au noyau de déterminer lequel doit être exécuté; les données propres à chaque processus actifs (environnement de variables, état des registres, ...) sont présentes dans une zone mémoire réservée du noyau. Avant l'exécution du processus sélectionné, le noyau passe la main au 'swapper', le processus système qui gère les ressources mémoire et procède si nécessaire à des échanges entre la RAM et le disque dur. Ensuite, le processus est enclenché (état Actif). 1.4 Le langage shell Sous le nom shell (coquille), on désigne l'interface utilisateur qui, dans l'architecture d'UNIX, entoure le noyau (kernel). Plus simplement, le shell est un programme qui permet à l'utilisateur de dialoguer avec le coeur du système (le noyau). Il permet de réaliser plusieur tâches: a) il interprète les ordres tapés au clavier par l'utilisateur et permet ainsi b) l'exécution des programmes; c) il fournit à l'utilisateur un langage de programmation interprété; d) il permet de modifier l'environnement; ENSI/ Environnement Unix/ Septembre 2006 /84 7 e) il se charge de réaliser les redirections des entrées-sorties, les pipes et la substitution de type fichier (détaillés plus loin uploads/Industriel/ complem-cours-unix-sep-2006.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 22, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.6969MB