SUPPORT DE COURS UNIX



Documents pareils
Unix/Linux I. 1 ere année DUT. Université marne la vallée

TP1 - Prise en main de l environnement Unix.


La mémoire. Un ordinateur. L'octet. Le bit

Cours Programmation Système

La Comptabilité UNIX System V Acctcom

TP 1 Prise en main de l environnement Unix

SYSTÈME DE GESTION DE FICHIERS

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Premiers pas en Linux

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Personnes ressources Tice. Académie de Rouen

Programmation C. Apprendre à développer des programmes simples dans le langage C

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

Module : Informatique Générale 1. Les commandes MS-DOS

Cours Informatique 1. Monsieur SADOUNI Salheddine

C.M. 1 & 2 : Prise en main de Linux

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux

CH.3 SYSTÈMES D'EXPLOITATION

Systèmes d exploitation

Les Boitiers de Vote Electroniques (Clickers)

Le système GNU/Linux IUP NTIC /11/05

Chapitre 3 : Système de gestion de fichiers

Installation et Réinstallation de Windows XP

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

Introduction au Système d Exploitation Unix/Linux

Licence Sciences et Technologies Examen janvier 2010

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Aide-Mémoire unix. 9 février 2009

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Cours Shell Unix Commandes & Programmation. Révision corrigée du 31/01/2003

TP1 : Initiation à l algorithmique (1 séance)

Système de Gestion de Fichiers

Table des matières Hakim Benameurlaine 1

Shell Bash Niveau débutant

IV- Comment fonctionne un ordinateur?

Projet Administration Réseaux

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Séance 0 : Linux + Octave : le compromis idéal

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Cours Unix 1. Présentation d UNIX. Plan du cours 1

Serveur de sauvegardes incrémental

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Outils pour la pratique

Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

L informatique en BCPST

1 Démarrage de Marionnet

Manuel d installation De la Cryptolib CPS Dans un environnement client/serveur TSE/CITRIX

FreeNAS Shere. Par THOREZ Nicolas

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Symantec Backup Exec Remote Media Agent for Linux Servers

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Session 8: Android File System

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

Système et réseaux (SR1) Gestion des utilisateurs

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

TP 4 de familiarisation avec Unix

Bluetooth pour Windows

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Comment configurer Kubuntu

Introduction aux Systèmes et aux Réseaux

Atelier La notion de session utilisateur sous Linux

Installation d'un serveur FTP géré par une base de données MySQL

Interface PC Vivago Ultra. Pro. Guide d'utilisation

UNIX DÉBUTANTS. Olivier Collin CNRS Station Biologique de Roscoff

Guide de l'utilisateur de l'application mobile

Projet Semestre2-1SISR

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Windows Front-End Installation Guide HOPEX V1R1 FR

Introduction aux Systèmes et aux Réseaux

UBUNTU Administration d'un système Linux (4ième édition)

l'ordinateur les bases

Module 0 : Présentation de Windows 2000

Chapitre IX : Virtualisation

GESTION DES FICHIERS C/UNIX

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Comment utiliser Vijeo Designer avec les produits de machine virtuelle

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Mode Opératoire Windows XP

Utilisation d'un réseau avec IACA

56K Performance Pro Modem

Traitement de données

Transcription:

Année Universitaire 2013-2014 Ministères de l enseignement supérieur Institut Supérieur des Etudes Technologiques de Gabès E-mail :lassaad.tayari@isetn.rnu.tn SUPPORT DE COURS UNIX Elaboré par : TAYARI LASSAAD TECHNOLOGUE A ISET GABES E-mail :lassaad.tayari@isetn.rnu.tn

Cours LINUX(UNIX) Introduction générale INTRODUCTION GENERALE Chapitre 0 AUX SYSTEMES D'EXPLOITATIONS Objectifs: Définir et prouver la nécessité des systèmes d exploitation. Rappeler les notions de base des systèmes d exploitation. Mettre le système UNIX dans son contexte. Prérequis: Architecture des ordinateurs. Matériel et systèmes. (MS-DOS, ASSEMBLEUR, Système D exploitation...etc.). I/INTRODUCTION: Plan II/Qu est ce qu un système d exploitation? III/ Principes des systèmes d'exploitation: III-1/ Les processus: III-2/ Les systèmes de fichiers: III-3/ Les interpréteurs de commandes (shell): III-4/ Classification des systèmes d'exploitations existants: IV/ Résumé: TAYARI Lassaad Page 1 ISET DE GABES

Cours LINUX(UNIX) Introduction générale INTRODUCTION GENERALE Chapitre 0 AUX SYSTEMES D'EXPLOITATIONS I/INTRODUCTION: Sans logiciels, un ordinateur n'est qu'un morceau de matériel inutile. Grâce à ces logiciels, il peut mémoriser, traiter et restituer des informations et servir dans de nombreuses autres activités qui justifient sont utilité. Les logiciels se répartissent en deux grandes catégories: Les programmes système qui permettent le fonctionnement de l'ordinateur. Les programmes d'application qui résolvent les problèmes des utilisateurs. Le système d'exploitation est le programme fondamental des programmes systèmes. Il contrôle les ressources de l ordinateur et fournit la base sur laquelle seront construits les programmes d application. Un ordinateur moderne se compose d un ou plusieurs processeurs, d une mémoire principale, d horloges, de terminaux, d interfaces de connexion à des réseaux et d autres périphériques d entées sorties (E/S). Un ordinateur est donc un système fort complexe. L écriture de programmes qui prennent en compte tous ces éléments et les gèrent correctement est un travail extrêmement difficile. Bien peut de programmes seraient développés, si chaque programmeur devrait connaître le fonctionnement des disques, ainsi que toutes les erreurs qui peuvent apparaître. TAYARI Lassaad Page 2 ISET DE GABES

Cours LINUX(UNIX) Introduction générale Il y a quelques années, il est apparu clairement qu il fallait trouver un moyen de libérer les programmeurs de la complexité du matériel. Ce moyen, qui a évolué petit à petit, consiste à enrober le matériel par une couche de logiciel qui gère l ensemble de système. Il va falloir en fait présenter au programmeur une interface ou machine virtuelle plus facile à comprendre et à programmer. Cette couche de logiciel est le système d exploitation. La situation est présentée par la figure si dessous. Système Réservation Contrôle de jeux Programmes bancaire d avion processus industriel d application Compilation Edition interpréteur de Système d exploitation commande Programmes système Langage machine Microprogrammes matériel Dispositif physique Le matériel se trouve au niveau le plus bas et se compose lui-même de deux couches ou plus. La couche la plus basse contient les circuits physiques constitués de circuits intégrés, de fils électriques, d alimentation, de tube cathodique et de périphériques physiques. De cette nature, leurs constructions et leurs fonctionnements concernent l ingénieur en électricité. Vient en suite un logiciel de base qui contrôle ces différents périphériques pour fournir une interface plus simple à la couche suivante. Ce logiciel, appelé un microprogramme, se situe généralement dans la mémoire morte «ROM». Il s agit en fait d un interpréteur qui recherche des instructions en langage machine comme ADD, MOV et JMP et les exécuter l une après l autre. Le Microprogramme ne fait pas réellement partie du matériel, mais il est toujours décrit dans les manuels des constructeurs d ordinateurs. Ce qui amène de nombreuses personnes TAYARI Lassaad Page 3 ISET DE GABES

Cours LINUX(UNIX) Introduction générale à le considérer comme faisant partie de le «Machine». Sur certaines machines le microprogramme est implanté dans le matériel et ne constitue pas a lui seul une couche distincte. La fonction primordiale d un système d exploitation est de masquer toute la complexité du matériel et de présenter au programmeur un ensemble d instructions plus simple à utiliser. Par exemple LIRE UN BLOC DE FICHIER est conceptuellement plus simple que d avoir à ce soucier de déplacer les têtes de lecture puis à ce positionner...etc. Le reste du logiciel système se trouve au-dessous du système d exploitation. On y trouve l interpréteur de commande (shell), les compilateurs, les éditeurs et les programmes de ce type qui ne dépendent pas des programmes d application. Il faut bien se rendre compte que ces programmes ne font pas partie du système d exploitation, bien qu ils soient fournis par les constructeurs d ordinateurs. Le système d exploitation est la partie du logiciel qui fonctionne en mode noyau ou mode superviseur. Elle protège le matériel contre les erreurs de manipulation des utilisateurs. Les compilateurs et les éditeurs fonctionnent en mode utilisateur. En fin, on trouve les programmes d application au-dessus des programmes système. Ces programmes sont écrits pour les utilisateurs pour résoudre leurs problèmes spécifiques tels que le traitement des données commerciales, les calculs scientifiques...etc. II/Qu est ce qu un système d exploitation? Définition 1: Un système d'exploitation regroupe un certain nombre de fonctions, toutes destinées à coordonner les opérations d un ordinateur nécessaires à la mise en oeuvre des programmes. Il gère, pour cela, les commandes destinées aux diverses ressources matérielles(mémoire centrale, périphériques d entrée sortie,...). TAYARI Lassaad Page 4 ISET DE GABES

Cours LINUX(UNIX) Introduction générale Définition 2: Un système d'exploitation est la couche logicielle qui transforme l ordinateur en une machine virtuelle facilement manipulable par un simple utilisateur. En effet, vu l architecture complexe de l ordinateur au niveau du langage machine, il est très difficile de pouvoir maîtriser la communication entre le processeur et les différents organes de la machine. D où la nécessité d une abstraction simple et de haut niveau qui permet au programmeur de réaliser des fonctions nécessaires sans se préoccuper de la complexité du matériel. Le système d'exploitation est donc un programme qui soustrait le matériel au regard du programmeur et offre une vue agréable à l ordinateur. III/ Principes des systèmes d'exploitation: L interface entre le système d'exploitation et les programmes de l utilisateur est constituée d un ensemble «d instructions» «étendues» fournies par le système d'exploitation. Ces instructions étendues sont qualifiées d appels systèmes. Elles varient d un système d'exploitation à l autre. Généralement, les appels systèmes appartiennent à l une des grandes classes suivantes: soit les processus soit les systèmes de fichiers soit les entrées sorties. III-1/ Les processus: Le processus est un concept clé de tous les systèmes d exploitation. Un processus est un programme exécutable, ses données et sa pile d exécution, son compteur ordinal, sont pointeur de pile et les autres registres, ainsi que les autres informations nécessaires à l exécution du programme. Périodiquement, le système d'exploitation décide d interrompre un processus en cours et de lancer l exécution d un autre. TAYARI Lassaad Page 5 ISET DE GABES

Cours LINUX(UNIX) Introduction générale Lorsqu un processus est temporairement suspendu de telle manière, il faut qu il puisse retrouver plus tard exactement l état ou il se trouvait au moment de sa suspension. Il faut donc que toutes les informations dont il a besoin soient explicitement sauvegardées quelque part. Dans un système d'exploitation, les informations relatives à un processus sont sauvegardées dans une table du système d'exploitation. Les appels systèmes les plus importants pour la gestion des processus sont ceux qui concernent la création et le fin des processus. III-2/ Les systèmes de fichiers: La deuxième grande catégorie d appels systèmes, concerne le système de fichiers. Il faut donc des appels systèmes pour créer et détruire des répertoires et de y mettre ou en retirer des fichiers. Fichier Répertoire racine Répertoire Exemple de ramification d un système de fichiers TAYARI Lassaad Page 6 ISET DE GABES

Cours LINUX(UNIX) Introduction générale III-3/ Les interpréteurs de commandes (shell): Le système d'exploitation est le code qui exécute les appels systèmes (noyau). Les éditeurs, les compilateurs et les interpréteurs de commandes ne font absolument pas partie du système d'exploitation. L'interpréteur de commandes (shell) constitue la première interface entre l utilisateur et le système d'exploitation. III-4/ Classification des systèmes d'exploitations existant: Mono-utilisateur «Single-user» Multi-utilisateur «Multi-user» Mono-tache MS-DOS «Single tasking» Multi- tache «Multi tasking» OS/2 OS/9 Windows windows95 WindowsNT UNIX Xwindows VMS IV/ Résumé: Dans cette introduction, nous avons examiné le système d'exploitation sous deux angles différents: La gestion des ressources et la machine étendue (virtuelle). Du point de vue de la gestion des ressources, le rôle de système d'exploitation est de gérer au mieux les différentes parties du système. Du point de vue de la machine étendue, le rôle de système d'exploitation est d offrir aux utilisateurs une machine virtuelle plus facile d emploi que la machine réelle. TAYARI Lassaad Page 7 ISET DE GABES

Cours de LINUX(UNIX) Le Système UNIX Chapitre 1 LE SYSTEME UNIX Objectifs: Introduire le système UNIX à travers sont historique. Définir le système UNIX en précisant ses caractéristiques. Définir le SHELL d UNIX. Aider l'étudiant a ce familiariser avec l'environnement UNIX à travers la procédure de connexion, quelque commandes simples pour débuter et la procédure de déconnexion. (Un flash) Prérequis: Le chapitre précédent de ce cours d UNIX et ses Prérequis. Plan I/ Historique II/ Généralité sur le système II-1/ Définition du système UNIX II-2/ Caractéristiques d'unix II-3/ Raison du succès d'unix II-4/ Structure du système UNIX II-5/ Le SHELL II-6/ Premier contact avec UNIX TAYARI Lassaad Page 7 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX Chapitre 1 LE SYSTEME UNIX I/ Historique Le système UNIX a été développé dans les bell loboratories de la firme américaine AT&T, grâce au travail acharné de l'ingénieur KEN THOMPSON qui a été rejoint par la suite par son collègue DENNIS RITCHIE. Le but des concepteurs d UNIX était de disposer d'un système d'exploitation interactif opérant sur des petits systèmes, mais dont la puissance est comparable au systèmes d'exploitation des grandes machines. Sa conception a suivi les péripéties suivantes: Apparition de la première version sur DIGITAL PDP7 et PDP8 en 1969. Cette version a été écrite en assembleur et fonctionne en mono utilisateur. Une nouvelle version opérationnelle sur le DIGITAL PDP11 en mode multiprogrammation a été lancée toujours par THOMPSON et DENNIS en 1971. En 1973, réécriture d'unix en langage C, lui même développé par DENNIS RITCHIE dans les bell loboratories, brisant la tradition qui associes l'assembleur à tout système d'exploitation. Octroie par bell loboratories aux universités la licence d'utilisation d'unix pour des buts académiques. Lancement en 1975 d'unix version 6, un produit non "bell loboratories". Extension de l'environnement multiutilisateurs et ajout des utilitaires de gestion de ressources avec l'apparition de la version UNIX PWB (Programmers Work Bench) en 1976. TAYARI Lassaad Page 7 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX En 1978, UNIX a été porté sur le VAX11 à partir de la version 7. De nouveaux utilitaires sont apparus, ainsi que la possibilité de portabilité a été améliorée. 1980, l'université californienne de BERKLEY sort la version UNIX BSD4.1 qui apporte des améliorations sur la gestion de la mémoire virtuelle et des réseaux et introduit l'éditeur plein écran vi. Introduction sur le marché en 1981 de la première version UNIX temps réel par la firme MASCOMP. Lancement en 1982 par AT&T de l'unix version 7 et l'unix system III, conçu par AT&T. Lancement en 1983 par AT&T de l'unix system V avec amélioration de la gestion des mémoires partagées. Toujours en 1983, apparition de la version dérivée d'unix conçue pour tourner sur des micro-ordinateurs IBM AT ou compatibles: XENIX de MICROSOFT...etc. A partir de l'année 1991, UNIX a commencé à s'ajuster au temps réel notamment avec les versions UNIX system V.4, VXWORKS de Wind River System et VRTX de Ready Systems. Concurrent Computer met sur le marché un nouvelle version d'unix, la RTU 6.0, utilisant l'architecture RISC et conçue à partir du noyaux V.3 d'at&t mais intégrant l'environnement BERKLEY BSD 4.2. II/ Généralité sur le système II-1/ Définition du système UNIX. UNIX est un ensemble de programmes qui servent de liaison entre un ordinateur et son utilisateur. UNIX possède trois fonctions: Il commande l'ordinateur: Le logiciel du système UNIX chargé de la commande de l'ordinateur est appelé le noyau Kernel ou le SE. Son rôle est l'allocation des ressources matérielles, la gestion de la mémoire, la gestion du système des fichiers et le contrôle de l'accès à l'ordinateur. TAYARI Lassaad Page 8 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX Il sert d'interprète utilisateur-ordinateur: Le logiciel du système UNIX de telle liaison s'appelle le SHELL dont le rôle est de contrôler et d'interpréter les demandes des utilisateurs et d'extraire de la mémoire des programmes associés afin de les exécuter. Il offre un ensemble d'outils de travail destinés à la communication téléphonique, a la manipulation des fichiers, à la programmation et au développement de nouveaux logiciels. APPLICATION SE (UNIX) MATERIEL II-2/ Caractéristiques d'unix. Un système d'usage général: L'utilisateur peut effectuer des travaux de toutes sortes comme la programmation, le traitement de texte, la messagerie... Un système interactif: Il offre une interaction entre l'utilisateur et la machine. Un système de temps partagé ou un système multiutilisateur: C'est la technique de partage avec d'autres utilisateurs tout en donnant l'impression à chaque utilisateur qu'il est le seul maître a bord. En effet, le système alloue à chaque travail soumis une tranche de temps pour l'exécution d'une partie ou la totalité de ce travail. Grâce à la rapidité d'exécution du système, il paraît fonctionner simultanément avec tous les utilisateurs. Un système multitâches: Il permet l'exécution de plusieurs programmes simultanément. II-3/ Raison du succès UNIX. Un système portable: Ecrit en langage C, UNIX est supporté par une grande variété de machines allant des micro-ordinateurs jusqu'aux grosses machines. Il présente donc un avantage commercial énorme. TAYARI Lassaad Page 9 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX Un système facilement adaptable aux situations particulières: Le code source d'unix, écrit en langage évolué, est disponible. Un système simple d'utilisation et riche en fonctionnalités. Il existe deux sortes d'utilisateurs pour un système UNIX donné: L'administrateur du système: c'est un usager particulier qui a tous les droits, et qui est responsable du bon état du système. Son nom est root. Les autres utilisateurs: C'est l'administrateur qui enregistre un nouvel usager. Les usagers sont rassemblés en groupes. En général un groupe rassemble les personnes qui travaillent sur un même sujet. Pour changer de groupe, il faut le demander a l'administrateur. II-4/ Structure du système UNIX. Le noyau du système UNIX est un bloc qui contient une série de composantes qui assurent la gestion des fichiers, la gestion des processus et la gestion de la mémoire. APPLICATION APPEL SYSTEME UNIX SYSTEME DE GESTION DE FICHIERS BUFFERING GESTION DE GESTION DE DRIVER DE PERIPHERIQUES MEMOIRE PROCESSUS CONTROLE MATERIEL MATERIEL Structure du noyau UNIX TAYARI Lassaad Page 10 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX II-5/ Le SHELL. Pour travailler avec UNIX, il est important de savoir qu'il est possible de communiquer directement avec le noyau de SE. Cette communication passe par un utilitaire qui sert d'intermédiaire entre la saisie des commandes et le noyau du système. Sous UNIX, il est appelé le SHELL (en français, la coquille ou interpréteur de commande). On trouve plusieurs SHELLS tel que: C-SHELL, KORN-SHELL et BOURNE-SHELL). II-6/ Premier contact avec UNIX. Ouverture d'une session UNIX Login : nom de l'utilisateur Password : mot de passe $ c'est le prompt utilisateur, il indique que le système est recevoir des commandes. Changer le mot de passe $passwd permet de créer ou changer le mot de passe $passwd Setting password for user :userx old password new password : saisie de l'ancien mot de passe : saisie du nouveau mot de passe Re-enter new password : validation du nouveau mot de passe. Afficher l'heure et la date $date Mon Sept 22 09:13:21 EET 2006 TAYARI Lassaad Page 11 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX Afficher les utilisateurs, leurs adresses et l'heure et la date de la connexion $ $who adm tty11 May 28 13:59 user1 tty12 May 28 15:12 user2 tty13 May 28 15:13 user7 tty18 May 28 16:40 $ $ $who am i user2 tty13 May 28 15:13 $ Fermeture d'une session: Deux possibilités Avec la commande exit. En appuyant sur ^d (ou contrôle d ). Syntaxe de la commande: Une commande UNIX doit posséder la syntaxe suivante: $ Commande [option1]...[optionn] [arg1] -------[argn] ( ce qui est entre crochets n'est pas toujours obligatoire) TAYARI Lassaad Page 12 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX Exemple: $wc fich1 44 446 3028 fich1 $wc -l fich1 44 fich1 $wc -c fich1 3028 fich1 $wc -w fich1 446 fich1 $ uname [-option] -s : nom du système UNIX courant. -n : nom du noeud. -r : N de l'édition du système UNIX. -m : nom de la machine. -v : version du système UNIX. -a : toutes les données sous-mentionnées. Affichage des premières et dernières lignes d'un fichier: $head -5 fich1 $tail -3 fich1 Documentation: La commande man permet de consulter la documentation on-line d'unix: $man ls TAYARI Lassaad Page 13 ISET DE NABEUL

Cours de LINUX(UNIX) Le Système UNIX $man pg TAYARI Lassaad Page 14 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix LE SYSTEME DE FICHIERS D'UNIX Chapitre 2 Objectifs: Connaître la structure du système de fichiers d'unix. Prérequis: Manipuler les commandes de base du système de fichier d UNIX. Les chapitres précédents de ce cours d UNIX. Plan I/ Structure du système de fichier I-1/ les fichiers normaux I-2/ les fichiers répertoires I-3/ les fichiers spéciaux II/ Répertoire de travail III/ La manipulation des répertoires III-1/création d'un répertoire III-2/ contenu d'un répertoire III-3/ suppression d'un répertoire III-4/ taille des répertoires IV/ La manipulation des fichiers IV-1/ création simple d'un fichier répertoire IV-2/ lecture d'un fichier IV-3/ duplication de fichiers IV-4/ déplacement de fichiers IV-5/ suppression de fichiers IV-6/ autres opérations sur les fichiers V/ Conclusion TAYARI Lassaad Page 15 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix LE SYSTEME DE FICHIERS D'UNIX Chapitre 2 I/ Structure du système de fichier Définition: Un fichier est une suite d'octets, stockées sur une mémoire auxiliaire. Le système UNIX distingue plusieurs types de fichiers. les fichiers normaux (ordinary files) les fichiers répertoires (répertoire ou directory) les fichiers spéciaux (special files ou devices) Chaque fichier possède un nom, un contenu, un endroit où se trouve, sont propriétaire, sa taille et les personnes qui peuvent y accéder. I-1/ les fichiers normaux : contiennent soit des textes soit des programmes exécutables. I-2/ les fichiers répertoires: permettent d'organiser l'espace du disque dur. Les fichiers normaux sont regroupés dans des répertoires. Ces répertoires peuvent contenir euxmêmes des sous-répertoires, des fichiers normaux et des fichiers spéciaux. I-3/ les fichiers spéciaux : représentent les interfaces avec les périphériques gérés par le système d'exploitation. Exemple: console, imprimante et disque. / /boot /UNIX /bin /dev /etc /Lib /tmp /usr mail news usern User3 User2 User1 TAYARI Lassaad Page 16 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix /boot : Premier programme exécuté par la machine, il permet de lancer UNIX. /UNIX : Programme du KERNEL (résident en mémoire). Au fonctionnement, /UNIX est lu, copié dans la mémoire et exécuté. /bin : Contient les utilitaires et programmes exécutables comme cat, date, wc, who,... /dev : Contient les fichiers spéciaux qui représentent des périphériques comme console, ttyxx, lp,... /etc : Contient des programmes et fichiers de données pour l'administration du système comme le fichier des mots de passe "passwd" et le fichier des membres de chaque groupe d'utilisateur group. /Lib : Bibliothèque de programmes et de langages. /tmp : contient des fichiers temporaires /usr : /news : Nouveautés dans le domaine d'unix /mail : Boite à lettres /userx : Répertoire de l'utilisateur userx. II/ Répertoire de travail Au moment du login, l'utilisateur est placé sur un répertoire propre à lui, relié au répertoire système /usr. On appelle ce répertoire, le répertoire de départ ou répertoire de connexion. A partir de sont répertoire de départ, tout utilisateur peut créer ou modifier ses propres fichiers et répertoires qui doivent êtres situés dans la partie inférieure de l'arborescence à partir du répertoire de départ. L'utilisateur peut aussi remonter le système de fichiers jusqu'à la racine ou se positionner sur un répertoire issu de sont répertoire appelé répertoire de travail ou répertoire courant. Chaque fichier ou répertoire est décrit par sont chemin d'accès par rapport au répertoire courant ou par rapport à la raine. Exemple de chemin d'accès: TAYARI Lassaad Page 17 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix /usr/user2/fich1 : Chemin d'accès de fich1 par rapport à la racine. fich1 /usr/spool : Chemin d'accès de fich1 par rapport au répertoire de connexion de user2. : Chemin d'accès du fichier spool par rapport à la racine. Pour connaître le répertoire courant, ou le répertoire de travail, on dispose de la commande pwd. $pwd Pour se déplacer dans l'arborescence et changer de répertoire, on utilise la commande cd suivie du chemin d'accès du répertoire. $Cd /usr $pwd $cd /usr/spool $pwd pour remonter d'un niveau dans l'arborescence: $cd.. $pwd $cd userx $pwd III/ La manipulation des répertoires III-1/création d'un répertoire Pour créer un répertoire, on utilise la commande mkdir suivie du nom du répertoire (ou des noms des répertoires) à créer TAYARI Lassaad Page 18 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix $mkdir trav $mkdir temps pers III-2/ contenu d'un répertoire La commande ls permet de lister le contenu d'un répertoire en fichiers et sousrepertoire sans distinction Exemple: $ls fich1 pers temps trav virus Pour distinguer entre les fichiers et les répertoires on utilise ls avec l'option -p. Dans ce cas les répertoires serons terminés par / Exemple: $ls fich1 pers/ temps/ trav/ virus TAYARI Lassaad Page 19 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix Pour obtenir une description plus détaillée du contenu du répertoire, on utilise ls avec l'option -f. $Ls -l -rw-rw-- 1 userx group 12 May 29 10:64 fich1 drwxrwxr-x 2 userx group 32 Jun 3 10:45 virus La première colonne représente le mode du fichier: si le premier caractère est d : répertoire -: fichier ordinaire b,c,p: fichier spécial. Les neufs (9) caractères du champs mode décrivent les permissions accordées à ces fichiers et répertoires ( à voir ultérieurement). En suite, on obtient le nombre d'octets dans chaque fichier et répertoire, la et l'heure de sa dernière modification et son nom. $Ls -l / Dans le cas d'un fichier spécial, le champ indiquant le nombre d'octets est remplacé par deux paramètres, le numéro majeur et le numéro mineur. Le numéro majeur permet de codifier le type du périphérique (exemple : 0 pour console, 1 pour les terminaux tty, 2 pour les disques...etc.) tandis que le numéro mineur permet de différencier les périphériques de même type par des chiffres distincts. $Ls -l /dev III-3/ suppression d'un répertoire La suppression se fait par la commande rmdir: Exemple: TAYARI Lassaad Page 20 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix $rmdir temp $ls -p La même tâche peut être faite avec la commande rm : Exemple $mkdir temp $ls -l $rm -r temp $ls -l III-4/ taille des répertoires La commande du (disk usage) fournit la taille en espace disque occupée par les répertoires et les sous-répertoires. Sa syntaxe est : $ du -option répertoire les options peuvent êtres: a: taille de chaque fichier des répertoires en question. R: générer des messages pour les fichiers ou répertoires non lus s: seules les tailles totales des répertoires sont données. Par défaut, la taille de chaque répertoire et sous-répertoire seront données en blocs. La commande du interprète chaque bloc de 1024 octets en deux blocs de 512 octets (par exemple, un fichier ou répertoire de 500 octets est interprété comme 2 blocs). Exemple $du 1.pers TAYARI Lassaad Page 21 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix 1.trav 20.tp IV/ La manipulation des fichiers IV-1/ création simple d'un fichier répertoire Il est possible de créer un fichier ordinaire soit en utilisant un éditeur de texte comme vi, soit en utilisant la commande cat et la redirection. Exemple: $ cat > nom du fichier ligne1 ligne2 ^d Une fois la ligne est validée, tout ce qui sera saisie sera copié sur le fichier qui peut être fermé et sauvegardé dans le répertoire indiqué en tapant ^d. Exemple : $ cat fich2 Ce fichier est composé de deux lignes et sera sert à tester la commande cat. ^d $ls -l -rw-rw-r-- 1 userx group 12 May 29 10:45 fich1 -rw-rw-r-- 1 userx group 68 Jun 3 11:16 fich2 drwxrwxrwx 2 userx group 32 Jun 3 10:15 temp TAYARI Lassaad Page 22 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix IV-2/ lecture d'un fichier Il est possible de lire un fichier ordinaire soit en utilisant un éditeur de texte comme vi, soit en utilisant la commande cat. Exemple : $cat fich1 $cat fich1 fich2 Dans le cas de fichiers volumineux, on remarque que le défilement sur l'écran est rapide. Donc, il faut y avoir du temps de pause pour l'affichage. Pour cela on peut utiliser la commande pg. pg permet l'affichage de un ou plusieurs fichiers page par page. $pg nom de fichier pg attend des instructions supplémentaires qui peuvent être: h: voir toutes les possibilités de pg L: afficher la ligne suivante < >: Afficher page suivante.: afficher la page courante f: afficher la page d'après $: Afficher la dernière page +il: Afficher les i lignes suivantes /chaine/ : Rechercher en avant d'une chaîne?chaîne?: Rechercher en arrière d'une chaîne Exemple: TAYARI Lassaad Page 23 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix $pg fich1 <texte> :h :L :+3L :. :< > :$ :q $ $pg -5 +15 fich1 : affiche fich1 toutes les 5 lignes à partir de la 15 ème ligne. Syntaxe: IV-3/ duplication de fichiers Pour dupliquer un fichier, il suffit d'utiliser la commande cp. $cp source(s) destination source(s) = un ou plusieurs fichiers Exemples: 1- copie de deux fichiers sur un autre répertoire en gardant les mêmes noms: $cp virus fich2 trav $ls trav 2- Duplication d'un fichier sur le même répertoire de travail avec un nom diffèrent: $cp fich2 essai. $ ls -p TAYARI Lassaad Page 24 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix $cat essai 3- Duplication d'un répertoire sur un autre: $cd trav $ls $cp * /usr/userx/pers ou $ cp *../pers $ls../pers $cd.. Question: Comment peut-on réaliser le dernier exemple sans changer de répertoire? IV-4/ déplacement de fichiers Pour déplacer un fichier, il suffit d'utiliser la commande mv (move). Syntaxe: $mv source(s) destination Exemples: 1- Déplacement d'un fichier d'un répertoire a un autre sans changement de nom: $mv essai trav/essai $ls -l $ls -l trav 2- Déplacement d'un fichier d'un répertoire a un autre avec changement de nom: $mv trav/essai essai1 $ls -l $ls -l trav TAYARI Lassaad Page 25 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix Attention: Si le fichier de destination existe déjà, la commande mv remplacera son contenu par celui du fichier source. IV-5/ suppression de fichiers Pour supprimer un fichier, on utilise la commande rm (rermove) Syntaxe: $rm [-option] fichier(s) Exemples: $rm trav/fich2 pers/fich2 $ls -p trav pers L'utilisation de l'option i permet au système de poser une question de validation avant d'effacer le fichier. Exemples: $rm -i pers/virus pers/virus:? n $ls pers $rm -i pers/virus pers/virus:? y $ls pers IV-6/ autres opérations sur les fichiers La commande file permet de tester sur le contenu d'un fichier. Cette commande permet de deviner le type de fichier invoqué. Syntaxe: TAYARI Lassaad Page 26 ISET DE NABEUL

Cours de LINUX(UNIX) Le système de fichier d'unix $file fichier Exemples: $file /bin /bin : directory $file /bin/ed /bin/ed : cannot open for reading $file essai1 essai1 : data V/ Conclusion: Dans ce chapitre nous avons étudié le système de fichier d'unix du point de vue de l'utilisateur. En effet, nous avons défini les différents types de fichiers, la structure générale du système de fichier (organisation hiérarchique des répertoires) et les commandes de base pour la manipulation du système de fichier d'unix. Par contre, nous n'avons pas évoqué la notion de sécurité qu'offre le système UNIX. Dans le chapitre suivant, on étudiera ce point. TAYARI Lassaad Page 27 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers Chapitre3 SECURITES DES FICHIERS Objectif: Prérequis: Connaître les différentes techniques de sécurité des fichiers sous UNIX Les chapitres précédents de ce cours d UNIX. Plan I/ INTRODUCTION: II/ NOTIONS D UTILISATEUR ET DE GROUPE : III/ LES DROITS D ACCES D UN FICHIER: IV/ CHANGEMENT DE DROIT D ACCES : V/ CHANGEMENT DE PROPRIETAIRE ET DE GROUPE VI/ L INODE: TAYARI Lassaad Page 25 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers Chapitre 3 SECURITES DES FICHIERS I/ INTRODUCTION: A chaque fichier est associé un ensemble de permissions qui octroient les droits d accès en lecture, en écriture ou en exécution au propriétaire lui- même, aux membres de son groupe de travail ou au différents autres utilisateurs du système. II/ NOTIONS D UTILISATEUR ET DE GROUPE : 1) l utilisateur : Au login, l'utilisateur doit introduire sont identificateur, qui correspond d un nombre uid reconnu par le système. 2) le groupe: Le groupe d utilisateurs est l ensemble d utilisateurs qui peuvent partager les memes fichiers, ou qui travaillent sur le même projet Chaque groupe est identifié par son nom et par un identificateur unique, le gid. Pour connaitre les groupes définis dans un système, on tape: $ cat /etc/group root::0:root,adm sys::3:root,adm group::50:user1,user2,user3,user4 On obtient donc une liste des groupes dans le système. Chaque nom de groupe est suivi par un champ libre, son gid et enfin l ensemble des membres (utilisateurs) du groupe. TAYARI Lassaad Page 26 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers 3) Connaitre les utilisateurs et les groupes : le fichier / etc / passwd,qui est le fichier des mots de passe, il contient toute les informations du login pour chaque utilisateur. Ce fichier ne peut etre modifié que par le super-utilisateur, mais peut etre consulté par les autres avec la commande : $ cat / etc/ passwd pg les entiées de se fichier sont de la forme : log-id : mp : uid : gid: comm: rep-conn: prog -conn: log_id:= identificateur de lutilisateur mp= mot de passe uid: user identifier gid: group identifier comm: facultatif ( reservé pour les commentaires ) rep_con : repertoire de connexion prog_conn: le shell Exemple: $ cat /etc /passwd root: * : 0: 1: superuser:/: bin : *: 2: 2: owner of systeme commandes: / bin: sys :*: 3:3: owner of systeme files :/usr/sys user1 : * : 208 : 50 :: / usr/ user1: / bin /sh user2 : * : 209 : 50 :: / usr / user2:/ bin /sh la commande id permet a l utilisateur d afficher son login et son groupe aussi que les uid et gid TAYARI Lassaad Page 27 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers III/ LES DROITS D ACCES D UN FICHIER: Les droit d acces d un fichier forment un ensemble de trois groupes de troix caracteres chacun : $ ls -l -rwx rwx rwx................... fichier Propriétair e Groupe Autres La signification des mentions de ses groupes diffère selon q il s'agit d un fichier ordinaire, d un fichier spécial ou d un fichier répertoire Pour un fichier ordinaire : r: droit d accès en lecture w: droit d accès en écriture x: droit d exécution si le fichier est exécutable. Pour un répertoire : r: droit de lecture du contenu (ls) w: droit de créer / supprimer des fichiers (cp,mv) x: droit d opérer dans le répertoire (cd) Exemples : $ ls -l / etc/ passwd -rw-r--r-- root sys... /etc/passwd $ ls -l /bin/ ls -rwx--x--x... /bin/ls. TAYARI Lassaad Page 28 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers IV/ CHANGEMENT DE DROIT D ACCES : A la création d un fichier ou répertoire, c est le système ( kernel) qui se charge d accorder ou de refuser la permission au propriétaire, aux membres du groupe et au autres. Ses permissions peuvent être modifiées avec la commande chmod. Seul le propriétaire d un fichier ou d un répertoire peut changer les permissions. En effet, il peut décider qui sera autorisé à lire, modifier, créer, supprimer et utiliser ses fichiers et répertoires, et à qui cela sera interdit. Le changement des droits d accès peut se faire en deux modes : En symbolique ou En absolu notion symbolique : la syntaxe de la commande chmod est : $chmod sujet [operateur ] [ permission] fichier(s). Ou sujet : u : utilisateur et propriétaire. : g : membre du groupe de l utilisateur. : o : autres utilisateurs du système. :a : tout le monde. operateur : + : ajouter des droits : - : enlever les droits : = : valider les droits cités dans la commande et enlever les autres. permission : r : lecture (fichier) : affichage (répertoire ) TAYARI Lassaad Page 29 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers : w : écriture (fichier) : création ou suppression (répertoires ) : x : exécution (fichier ) : droit d opérer ( répertoire ). Exemples: 1- Lister les droits d accès du fichier virus. $ ls -l virus -rw-r--r-- 1 userx group... virus. 2- Ajouter le droit d exécution au propriétaire et interdire les nom_ membre du groupe d y accéder : $ chmod a+ x, o-r virus $ ls -l virus -rwx----- 1 userx group... virus 3- Enlever le droit du propriétaire à la lecture, et ne permettre au groupe et aux autres que l execution : $chmod u-r, g=x, o+x virus $ ls -l virus --wx--x--x 1 userx groupe...... virus 4- lire le fichier virus $ cat virus cat : cannot open virus [ ou access denied virus ] 5- remettre le fichier a l état initial : $ chmod u= rw, go= r virus. TAYARI Lassaad Page 30 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers $ ls -l virus -rw-r--r-- 1 userx group... virus $ cat virus ( taper entrer ) notion absolue: syntaxe: $ chmod mode fichier(s) mode : est la représentation octale des permission : - le chiffre 1 correspond au mention r,w ou x - le chiffre 0 correspond au tiret - Exemple: Permission rwx rw- r-- 111 110 100 correspond le mode 764 1- obtenir les droit d accès suivants pour le fichier virus: rw--w--w- $ chmod 622 virus. $ ls -l virus -rw--w--w-... virus 2- protéger le fichier contre toute écriture $ chmod a -w virus $ ls -l virus TAYARI Lassaad Page 31 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers -r--r--r-... virus $ cat > virus virus: can not create. 3- remettre les droites d accès de se ficher et l état initiale : $ chmod 644 virus $ ls -l virus -rw-r--r--... virus V/ CHANGEMENT DE PROPRIETAIRE ET DE GROUPE 1) changement de propriétaire : Sous Unix le propriétaire a tout les droits sur ses fichiers. En effet, il a le droit de transférer la propriété d un fichier ou d un répertoire vers un autre utilisateur. Pour se faire il doit utiliser la commande chown (change owner) attention!!:le changement de propriétaire fait perdre a celui -ci tout droit d accès sur se fichier, même celui de restaurer la propriété, sauf les droits permis pour les autres. Syntaxe de chown: $ chown nouveaux _ login -id fichier(s) (ou répertoire (s)) ou $ chown nouveau-ind fichier (s) (ou répertoire (s)). Exemple : 1- changement de propriété du fichier essai1: $ ls -l essai1 -rw--r--r-- 1 userx group... essai1 $ chown admn essai1 TAYARI Lassaad Page 32 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers $ ls -l essai1 -rw-r--r-- 1 admn group... essai 2- remettre le fichier à l état initial. $ chown userx essai1. essai1 : not owner. Donc, la propriété ne peut être restaurée que par le nouveau propriétaire. Cette opération se fait a l aide de l approche suivante : $ chown usrx /usr/userx/essai 1 2) changement de groupe: Un utilisateur peut choisir pour une de ses fichiers ou répertoires un groupe autre que celui assigné normalement par le kernel. Cette procédure est réalisable par la commande chgrp.(change groupe). La syntaxe de la commande chgrp est: $ chgrp nouveau_groupe fichiers () (ou répertoire (s)) ou $ chgrp nouveau_gid fichier(s) (ou répertoire (s) ) Exemple : 1- changer le groupe du fichier essai1: $ ls -l essai1 -rw-r--r-- 1 userx group...essai1 $ chgrp sys essai1 $ ls -l essai1 -rw-r--r-- 1 userx sys... essai1 Les membres du groupe de travail de userx n ont plus que le droit de lecture. TAYARI Lassaad Page 33 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers 2- Pour restaurer le groupe d origine: $ chgrp group essai1 $ chgrp group essai1 -rw-r--r-- 1 userx group...essai1 Remarque : manipuler les répertoires de la même manière. VI/ L INODE: Un fichier possède plusieurs informations, tel que le nom, le contenu et d autres informations comme les permissions et les dates des derniers modifications. ces informations sont sauvegardées dans l INODE (index mode) avec d autres données essentielles comme la longueur du fichier, sont emplacement sur le disque,...etc. 1) Représentation de l'inode : TAYARI Lassaad Page 34 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers L INODE est une suite de 64 octets qui définit les caractéristiques d un fichier (type, permission, adresse des données ). Toutes les INODES sont regroupées en une liste. L importance des inodes réside dans le fait qu'il sont pour le système comme le nom pour l utilisateur. $ ls -i 8643 fich1 6286 fich2 $ le i-num d un fichier est enregistré dans les deux premiers octets du repertoire, et est l unique connexion entre le nom du fichier et sont contenu. 2) lien d un fichier : Le nom du fichier dans le répertoire servant de lien entre un nom dans la hiérarchie d un répertoire et l inode est appelé le lieu. Le même i-num peut apparaitre dans des répertoires différents avec des nom de fichiers différents grâce a la commande ln: syntaxe: $ ln fichier_ ancien fichier_ nouveau. Le but de cette opération de donner deux noms au même fichier. $ ls -li bidon 6231 -rw-rw-rw 1... bidon $ ln bidon /work/bidonne $ ls -li bidon 6231 -rw-rw-rw 2... bidon $ ls -li bidonne TAYARI Lassaad Page 35 ISET DE NABEUL

Cours de LINUX(UNIX) Sécurité des fichiers 6231 -rw-rw-rw 2 /work / bidone nombre de liens. Les deux fichiers pointent donc surs le même inode, ce qui veut dire qu il ya un seul espace disque associé aux deux noms de fichiers. $ mv bidon bidon0 $ ls -li bidon0 6231 -rw-rw-rw 2... bidon0 $ rm bidon0 $ ls -li bidon work/bidone bidon not fownd 6231 -rw-rw-rw 1 work/bidonne REMARQUE: la commande rm n élimine pas l inode, mais élimine le nom du fichier dans le répertoire tout en décrémentant le nombre de liens par 1, les données restent intactes sur le disque. TAYARI Lassaad Page 36 ISET DE NABEUL

Utilisation Du SHELL Chapitre 4 UTILISATION DU SHELL D'UNIX Objectifs: Connaître la structure de la ligne de commande dans le SHELL d'unix. Manipuler les méta caractères du SHELL d UNIX. Prérequis: Introduire la notion de la programmation dans le SHELL d UNIX. Les chapitres précédents de ce cours d UNIX. Plan I/ La structure de la ligne de commande I-1/ La forme canonique I-2/ L'association de plusieurs commandes sur la même ligne I-3/ Lancement d'une commande en arrière plan I-4/ La redirection I-5/ Le tube II/ Les méta caractères III/ La programmation dans le SHELL III-1/ types de variables SHELL III-2/ Evaluation des expression arithmétiques III-3/ Les arguments résultats de commandes III-4/ La création de nouvelles commandes III-5/ Affectation de variables en interactif III-6/ Les commandes avec arguments TAYARI Lassaad Page 35 ISET DE NABEUL

Chapitre 4 Utilisation Du SHELL UTILISATION DU SHELL D'UNIX I/ La structure de la ligne de commande: Lorsqu'une commande est lancée par le SHELL, trois fichiers ayant chacun un numéro appelé "file discriptor (fd) " sont ouverts par le système. Ce sont: Le fichier stdin ou standard input (fd=0) Le fichier stdout ou standard output (fd=1) Le fichier stderr ou standard error (fd=2) I-1/ La forme canonique. La commande la plus simple est un mot qui fait appel à un fichier de même nom: Exemple: $ who $ date I-2/ L'association de plusieurs commandes sur la même ligne. Plusieurs commandes peuvent êtres lancés sur la ligne si elles sont séparées par un point virgule ";". Exemple: $ date ; who I-3/ Lancement d'une commande en arrière plan. TAYARI Lassaad Page 36 ISET DE NABEUL

Utilisation Du SHELL l est possible de profiter de la caractéristique multitâche d'unix pour avoir plusieurs commandes qui tournent en même temps et qui proviennent du même utilisateur. Ceci est accompli en faisant exécuter des commandes en arrière plan a l'aide du caractère &. Exemple: $sleep 5 (Attende 5 secondes pour donner la main) $ (Le prompt reçue après 5 secondes ) $(sleep 5 ; date )& date 2108 (l'identificateur du processus) Mon Sept 22 09:13:21 1997 Mon Sept 22 09:13:26 1997 L'avant dernière ligne est le résultat de deuxième commande date, alors que la dernière ligne est celui de la première commande date. On remarque le décalage de 5 secondes dans l'heure. Si le résultat d'une commande lancée en arrière plan n'est pas affichable sur l'écran, la fin du processus n'est pas indiquée par le SHELL. Dans ce cas, il est conseillé de terminer la commande par un message. Exemple: $(ls -l >liste;sleep 10; echo "fini")& 21554 $fini Le mot fini est affiché 10 secondes après l'écriture sur liste. L'exemple d'utilisation le plus courant est l'écriture sur l'imprimante. Chaque tâche lancée en arrière-plan est identifiée par un numéro appelé identificateur de processus (process identifier) ou PID. Les état de ces tâches peuvent êtres consultés sur l'écran grâce à la commande: TAYARI Lassaad Page 37 ISET DE NABEUL

Utilisation Du SHELL $ ps -f. Les informations obtenues sont: Le nom de l'utilisateur qui a lancé la commande, le numéro du PID de chaque processus, le numéro du PID du processus père, l'heure du début du processus, la durée du processus la commande de lancement Exemple: $sleep 50& 22472 $ps -f UID PID PPID C STIME TTYTIME COMMAND userx 21579 21578 3 14:03:16 P00 0:03 -sh usery 22472 21579 0 14:26:07 P00 0:00 sleep 50 userz 22473 21579 16 14:26:10 P00 0:01 ps -f Connaissant le numéro de la tâche ou son PID, il est possible d'arrêter son exécution. Pour ce faire, il suffit d'envoyer le signal 9 a la tâche désirée à l'aide de la commande kill. Exemple: $Kill -9 22472 (tuer la tâche 22472) 22472 terminated $ps -f TAYARI Lassaad Page 38 ISET DE NABEUL

Utilisation Du SHELL UID PID PPID C STIME TTYTIME COMMAND userx 21579 21578 3 14:03:16 P00 0:03 -sh userz 22473 21579 16 14:26:10 P00 0:0± ps -f On remarque que le processus (sleep 50) qui avait le PID 22472 à disparu de la liste des processus. I-4/ La redirection. Toute commande d'unix suppose l'existence d'un flux de données en entrée qui provient généralement du clavier et un flux de données en sortie qui est généralement affiché sur l'écran. Le clavier est donc considéré comme entrée standard (stdin) et l'écran est considéré comme la sortie standard (stdout). Toute fois, le SHELL permet à l'utilisateur de : Rediriger ses résultats vers un fichier Accepter les données à partir d'un fichier. Les données résultat d'une commande peuvent êtres dirigées vers un fichier au lieu de l'écran en utilisant le caractère ">" si le fichier est nouveau et le caractère ">>" si les données seront ajoutées en fin de fichier. Les syntaxes sont les suivantes: $commande > fichier où $commande >> fichier Exemples: $ $echo toto >temp $cat temp TAYARI Lassaad Page 39 ISET DE NABEUL

Utilisation Du SHELL toto $echo lolo >>temp $cat temp toto lolo I-5/ Le tube (pipe). C'est un moyen qui permet le simplification de l'exécution de plusieurs commandes quand chaque commande doit prendre comme entrée la sortie de la commande qui la précède. Exemple: $who > f_temp $wc < f_temp $who wc En général, la séquence de redirection suivante: $commande1 > fichier_temp $commande2 < fichier_temp est remplacée par: $commande1 commande2 Les données résultat de la commande1 sont les données entrée de la commande2. Exercice: ( a corriger en classe par les étudiants) TAYARI Lassaad Page 40 ISET DE NABEUL

Utilisation Du SHELL Décomposez et interprétez les commandes suivantes: $ls -l wc -l $ls -l head -6 tail -1 $ls -l tail -8 tail -2 II/ Les méta caractères Le SHELL possède un ensemble de caractères spéciaux appelés méta artères: Le méta caractère astéries (*) remplace n'importe quelle séquence de caractères: $echo * ls $echo fich.* ls fich.* Le méta caractère point d'interrogation (?) remplace un seul caractère. Exemple: $ls *.? Permet de lister que les fichiers dont les extensions se composent d'un seul caractère. Le méta caractère crochet ([...]) remplace un des caractères contenus entre crochet. Le méta caractère crochet ([^...]) remplace un des caractères non contenus entre crochet. Exemples: $ls essai[0-9] affiche fichiers ayant le nom "essai" et qui se termine par un chiffre (essai1, esaai2,...etc) $ls essai[!5,7] affiche fichiers ayant le nom "essai" et qui ne se termine pas par 5 ou 7. L'interprétation spéciale des méta caractères par le SHELL est annulée soit en les faisant précédé par l'antislash "\", ou en les mettant entre guillemets. TAYARI Lassaad Page 41 ISET DE NABEUL

Utilisation Du SHELL III/ La programmation dans le SHELL L'un des rôles les plus importants du SHELL est la programmation a de créer de nouvelles procédures et commandes. Le SHELL utilise les variables pour mémoriser et traiter les données. III-1/ types de variables SHELL. Deux (2) types de variables sont traités par le SHELL: les entiers les chaînes de caractères. Le type de variable est implicitement reconnu par le SHELL. Exemple: $var1=167 $var2=suite :var1 est un entier :var2 est une chaîne de caractères. La valeur d'une chaîne de caractères doit être incluse entre guillemets si elle comprend des espaces, des tabulations ou des point-virgules. Le caractère $ doit toujours précéder le nom de la variable, sauf au moment de la déclaration de cette variable. Une variable peut être assignée à une autre variable: Exemple: $ch2=$ch1 (Attention, ici le premier dollar ($) est le prompt d'unix) Exercice: Ecrire l'instruction qui permet d'obtenir la réponse suivante du système: TAYARI Lassaad Page 42 ISET DE NABEUL

Utilisation Du SHELL ch1=première chaîne et ch2= deuxième chaîne III-2/ Evaluation des expression arithmétiques. La commande expr ordonne au chell d'évaluer une expression arithmétique qui peut être composée de variables entières seulement, de constantes entières seulement ou d'une combinaison des deux. Les opérations arithmétiques permises sont: L'addition + la soustraction - l multiplication \* la division / et le reste de la division euclidienne % Les termes de l'expression doivent être séparés par des blancs. Exemples: $ $var1=15 $var2=5 $X1= ` expr $var1 + 1 ` $echo $X1 16 $expr $var1 - $var2 10 TAYARI Lassaad Page 43 ISET DE NABEUL

Utilisation Du SHELL $X2=` expr $var1 / $var2 ` $echo $X2 3 $X2=` expr $var1 % $var2 ` $echo $X2 0 $ III-3/ Les arguments résultats de commandes. Le résultat d'une commande peut servir comme argument à une autre commande. Dans ce cas, la commande argument doit être à l'intérieur des apostrophes. Exemple: $mail ` cat work/agenda ` < essai1 permet d'envoyer le fichier essai1 à tous les utilisateurs déclarés dans le fichier agenda. Le résultat d'une commande peut aussi être stocké dans une variable et utilisé ultérieurement. Exemple: $date Fri Sep 7 10:7:26 EET 1997 $heure=`date` $echo $heure Fri Sept 7 10:7:45 EET 1997 TAYARI Lassaad Page 44 ISET DE NABEUL

Utilisation Du SHELL Le résultat paramétré, c'est à dire subdivisé en plusieurs champs par la commande set. Ces champs seront représentés par les paramètres $1, $2,..., $N Exemple: $ $set `date ` $echo $1 Fri $echo $5 EET $echo $6 1997 $ III-4/ La création de nouvelles commandes. Soit le traitement suivant: $ $cat > cmd1 echo la date est `date ` ^d $cat cmd1 echo la date est `date ` $ TAYARI Lassaad Page 45 ISET DE NABEUL

Utilisation Du SHELL Cette nouvelle commande est lancée en utilisant le fichier comme argument de la redirection en entrée pour le SHELL. La forme générale est: sh < commande ou sh commande Exemple: $ $sh cmd1 la date est Fri Sept 7 10:15:45 EET 1997 $ L'exécution du fichier des commandes peut être simplifier en invoquant seulement son nom. Seulement, l'utilisateur doit posséder de droit d'accès en exécution sur ce fichier. L'exemple suivant montre comment on peut combiner plusieurs commandes utiles pour ne former qu'une seule. $ $Vi etat echo " salut, la date est ` date ` les utilisateurs sont ` who ` mon répertoire est ` pwd ` " TAYARI Lassaad Page 46 ISET DE NABEUL