Travaux Pratiques Unix/Linux Introduction aux systèmes

publicité
Ecole Nationale Polytechnique
Unité d’Enseignement Méthodologique
.
Travaux Pratiques
Unix :
Notions avancées
Unix :
Notions de base
Unix/Linux
i
Introduction aux systèmes d’exploitation
*
1
Commandes de base
*
2
Système de fichiers
**
3
Gestion de fichiers & répertoires
***
4
Redirections & commandes filtres.
*
5
Gestion des droits d’accès
***
6
Gestion des processus
**
7
L'interpréteur de commandes (le shell)
*
Travaux Pratiques
.
Unix/Linux
Introduction aux systèmes d’exploitation
i.1 Définitions
o Un ordinateur est une machine de traitement de l’information
o Système d’Exploitation : Programme assurant la gestion de l'ordinateur et de ses périphériques.
i.2 Du matériel au Système d’exploitation
L’utilisation d’un ordinateur repose d’une part sur une composante matériel (le Hardware)
et d’autre part sur une composante logicielle (le Software).
Hardware (Matériel)
Software (Logiciel)
Application
Application
Application
Système d’exploitation
Noyau
Pilot
e
Pilot
e
Matériel (Hardware)
Pour la partie matérielle, on distingue :
a) Le microprocesseur
Les unités de commande et de traitement constituent le µp
b) La mémoire : RAM et ROM
-RAM (Random Access Memory) : mémoire volatile, en
lecture/écriture
-ROM (Read Only Memory), mémoire en lecture seule :
Programmes BIOS du PC
c) Les périphériques :
L'acquisition et la récupération des données se font par les
périphériques. Pour la sauvegarde des informations
(données et résultats), on utilise ce qu'on appelle les
mémoires de masse tel que disque dur, disquette, Cdrom
Dvd, Flash disk, bande magnétique, …etc
i.3 Système d’exploitation
a) Fonctions d’un système d'exploitation
Un système d'exploitation peut être vu comme un ensemble de
logiciels (organisé en couches), entre l'utilisateur et la partie
matérielle de l'ordinateur.
Le système d’exploitation doit s’occuper de :
l ’exécution des commandes d’entrée/sortie
la gestion de la mémoire
la gestion des fichiers
la multi-programmation (« multi-tâche »)
la sécurité (gestion des accès,…)
Pour la partie logicielle, on a :
o Les programmes d’applications destinés à
exécuter certaines tâches (traitements de
textes, tableurs, etc)
o Le système d’exploitation (operating
system, SE ou OS)
o Le Firmware (BIOS :Basic Input-Output
System) : Petit programme sur la carte
mère (ROM); au démarrage, gère les
fonctions de base.
Les pilotes de périphérique (drivers) sont des
modules qui complètent le système
d'exploitation pour gérer un périphérique
particulier.
Le SE doit aussi fournir :
un langage de commande
une interface graphique pour l’utilisateur
(GUI)
divers utilitaires (compilateurs, éditeurs,
outils, …)
Note :
Un SE ne se résume pas seulement à
l’IGU (interface graphique)
TP : Initiation Unix
ENP/ ABDELOUEL
Page 2
b) Abstraction du terme « Machine » selon Coy:
Machine réelle
= Unité centrale
+ Périphériques
Machine virtuelle = Machine réelle + Système d'exploitation
Machine utilisable = Machine virtuelle + Applications
i.4 Quelques systèmes d’exploitation
Aujourd’hui, deux systèmes d’exploitation se partagent le marché
1. Windows: Conçu pendant les années 90 pour les
processeurs 80x86.
2. Unix : Conçu pendant les années 70 et a servi de modèle pour
MS-DOS, Windows. Plusieurs manufacturiers ont porté Unix
pour leurs machines : SunOS/Solaris pour machines SUN,
HP-UX pour HP, AIX pour IBM, DG/UX pour Data General
…etc. Ces Unix commerciaux descendent du code source
original d'AT&T et nécessite l'achat d'une licence.
• Linux, version libre (open source, depuis 1992) d’Unix conçu
pour les processeurs 80x86, 68000, PowerPC, Sparc.
Autres Systèmes :
• CP/M (depuis 1974) de Digital Research
• MS-DOS (depuis 1981), Microsoft
•
•
MSDOS
Linux
Microsoft
Windows
95/98, NT, 2000,
2003, XP, Vista
Unix :
SunOS/Solaris
AIX, HP/UX, DG/UX
MacOS (Apple)
OS/2
OS/2 (IBM)
MacOS (depuis 1984,GUI), (Apple) Processeurs 68000/PowerPC
1
i.5 Présentation du système Unix
Les origines d’Unix remontent à la première version développé en
1969 par Ken Thompson dans les laboratoires Bell. Depuis, Unix
a beaucoup évolué et a donné naissance à une grande famille de
systèmes d'exploitation. Ces systèmes sont le plus souvent une
adaptation soit de la version Unix BSD développée
essentiellement par l’université de Berkeley (Californie), soit de
l’UNIX Système V commercialisé par ATT. Beaucoup d'efforts ont
été faits récemment pour établir des normes (POSIX1), doter le
système d'interface graphique, etc.
Plus récemment, en 1991, Linus Torsvald, un étudiant finlandais
a developpé le noyau d’un système de type Unix baptisé Linux.
Quelques versions d’Unix
Système Unix
Constructeur
AIX
IBM
HPUX
HP
ULTRIX
DEC
SPIX
BULL
DG/UX
DATA GENERAL
IRIX
Silicon Graphics
Solaris, SunOS
Sun Microsystems
Autres versions :
Xenix,Venix, Sco Unix, Minix, Xinu
Linux
De par sa gratuité, son ouverture et ses performances, Linux gagne en popularité par rapport aux autres Unix.
Même les grosses sociétés qui faisaient leur propre Unix s'y mettent ! (comme IBM, Sun, HP, SGI., Dell..)
1
Une norme a été proposée par l’IEEE : POSIX (Portable Operating System's Interface), une standardisation de l'interface
des appels systèmes.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 3
i.6 Le System d’exploitation GNU/Linux
Au sens strict, Linux est le nom du noyau de
système d'exploitation libre, multitâche,
multiplate-forme et multi-utilisateur de type
UNIX créé par Linus Torvalds, souvent
désigné comme le noyau Linux. Par extension,
Linux désigne couramment le système
d'exploitation libre combinant le noyau et un
ensemble d'utilitaires système et accompagné
d'une collection de logiciels très variés (projet
GNU) 2..
• Linux est donc un noyau.
• GNU est un ensemble de programmes
utilitaires.
• GNU/Linux est le système d'exploitation.
Pour l'utilisateur final, Linux se présente sous
la forme d'une distribution Linux
i.7 Quelques distributions Linux/ BSD Unix
GNU/Linux étant gratuit, différentes sociétés l'on reprit et complété afin de distribuer un système
d'exploitation à leur goût. C'est ce qu'on appelle les distributions. Parmi les plus connues, citons
RedHat, Mandriva, Fedora, Suse, Slackware, Debian, ubunto
Quelle distribution GNU/Linux choisir ? La réponse se trouve dans le niveau d'expérience et de
connaissance que l'on a dans l'univers Unix et tout dépend de ce qu’on veut en faire. :
-Pour les débutants :
• RedHat et ses dérivés Mandrake/Mandriva:/Fedora : Distributions communautaires,
probablement les plus utilisées aujourd'hui, un standard.
•
•
•
SuSE/: OpenSuSe : Distribution de qualité, conviviale mais assez lourde.
Knoppix: Distribution live-cd basée sur une Debian, très utile pour découvrir Linux sans risque : Aucune
installation n'est nécessaire sur disque dur.
Ubuntu et ses dérivés Kubuntu, nUbuntu,Xubuntu : Distributions basées sur une Debian avec une
interface aussi simple à utiliser que Windows (voir plus !, Live-CD)
-Dans le domaine professionel, des environnements BSD ou Linux sont utilisés pour leur fiabilité et leur
performances:
• Debian: Distribution complète (plus de 18000 paquets), une conception unique, un système
somptueux.
• NetBSD : Distribution basé sur BSD Unix, très sécurisé et fiable et hautement portable
• OpenBSD :Un SE basé sur BSD Unix. Multiplate-forme, porté sur la standardisation, l'exactitude
et la sécurité.
i.8 Linux : Caractéristiques Générales :
1. Code source disponible (licence GPL)
2. Distributions multiples
3. Système multitâche et multi-utilisateur
4. Multi-plateforme(intel x86, Sun Sparc, etc…)
5. Gestion du multiprocesseur (option SMP)
6. Compatible POSIX (standard logiciel)
7. Compatibilité de code avec les autres UNIX
8. Gestion des consoles virtuelles
9. Possibilité de cohabitation avec d’autres systèmes
10. Support d’un grand nombre de systèmes de fichiers
2
Le projet GNU ("GNU is Not Unix") a démarré en réaction aux gros logiciels commerciaux, qui étaient pour la plupart hors
de prix. GNU a apporté des tas d'utilitaires au noyau Linux, tel que le fameux compilateur gcc, et les milliers d'utilitaires (tar,
tail, man, bash...)
TP : Initiation Unix
ENP/ ABDELOUEL
Page 4
i.9 Architecture Globale du système Linux: 3 couches
Architecture Globale : 3 couches
1. Couche «physique»: périphériques + BIOS
2. Couche «système»: noyau (kernel) et processus
3. Couche «interface»: shell + X-Window
A) Le Shell : interpréteur de commande
1.
2.
3.
4.
Lit et exécute les commandes de l’utilisateur
Propose un contrôle des processus
Gère les redirections en entrée et en sortie
Propose
un
véritable
langage
de
programmation
Plusieurs types de shell disponibles: Le plus utilisé: bash, •Autres: csh, ksh, etc…
B) Le Système X-Window :
•
•
•
•
Interface graphique standard des systèmes UNIX
Repose sur un «serveur X»
Utilise un gestionnaire de fenêtres: plusieurs sont disponibles (KDE2, WindowMaker, etc…)
Possibilité de déporter l’affichage à travers un réseau
C) Le noyau Linux
Le noyau (kernel) Linux est l'élément essentiel du système. Il permet le contrôle à bas niveau du
matériel et assure les fonctions essentielles suivantes :
• Le démarrage du système.
• Le contrôle de tous les processus du système (La gestion des processus) :
• Le contrôle des communications entre les processus
• L’ accès aux périphériques matériels.
Linux dispose d'une interface spéciale du noyau appelée système de fichiers virtuel (VFS, Virtual
FileSystem) qui lui permet de supporter plusieurs systèmes de fichiers.
i.10 Logiciel libre et Licence GPL
La principale originalité de Linux par rapport à d'autres systèmes d'exploitation concurrents comme
Microsoft Windows, Mac OS, ou les autres UNIX propriétaires est d'être constitué d'un noyau libre et
de logiciels libres3. Une partie des logiciels libres sont protégés par la licence GPL. Ses quatre grands
principes sont :
- Le droit d'utiliser le logiciel sans restriction
- Le droit de modifier le logiciel pour l'adapter à ses besoins
- Le droit de diffuser et de redistribuer le logiciel sous certaines conditions précises
- L'accès au code source, gage de sécurité et de pérénité.
3
Un logiciel libre n'est pas nécessairement un logiciel gratuit, Ce n’est pas non plus un logiciel libre de droits : c'est en vertu
de leurs droits d'auteurs que les contributeurs d'un logiciel libre accordent les quatre libertés sous la licence GPL (General
Public Licence)
TP : Initiation Unix
ENP/ ABDELOUEL
Page 5
A1
Linux : Commandes de base
1.1 Environnement de travail Linux
Linux est un systeme d’exploitation de type Unix. L’environnement de travail ressemble à celui de Windows.
Cependant,. sur Linux, toute tache peut s’accomplir par des commandes, ce qui n’est pas le cas sur Windows.
Cet aspect rend le systeme d’exploitation Linux très flexible. Cependant, certaines tˆaches s’effectuent
uniquement par des commandes. Linux est donc un peu plus difficile à apprendre pour les debutants.
1.2 Les utilisateurs Unix
Dans un contexte multi-utilisateurs, il est nécessaire que les usagers possèdent un compte identifiant chaque
utilisateur et permettant une bonne gestion de l'accessibilité aux ressources. Pour Unix, il y a deux catégories
d’utilisateurs :
1. Les utilisateurs ordinaires : Ils ont des droits limités, c'est à dire que certaines commandes leurs sont
interdites et ils n'ont pas accès à certaines parties du système
2. Les administrateurs système : Ils ont tous les droits sur le système et sont chargés entre autres de la
création /gestion des comptes utilisateurs, de la configuration du système et de l’installation de logiciels.
Généralement sur un système UNIX, on limite volontairement le nombre d'administrateurs (appelé ROOT4
ou super utilisateur).
Le compte utilisateur est attribué une fois pour toute par l’administrateur système. Il est caractérisé par :
• Un nom de connexion unique (Login), et un mot de passé affecté à la creation du compte
• Une entrée dans le fichier /etc/passwd
• Un répertoire de travail : A chaque compte est associé à un répertoire privé (home directory). L'usager
est libre de gérer son répertoire comme il l'entend. L'espace disque utilisé peut être limité par la
capacité du disque ou par L'administrateur.
1.3 Session de travail sous Unix
Une session de travail sous UNIX est composée de trois parties:
(1) Connexion : (login=Se logger)
Identification & Authentification par un mot de passe
(password). Si l’usager est autorisé :
• Le système définit son répertoire d’accueil (privé), comme répertoire courant.
• Le système lance son programme interface avec le noyau (Shell)
(2) Exécution de commandes : Interaction avec l'interpréteur de commandes (mode
terminal/xwindows)
(3) Déconnexion : Clôture de la session de travail (logout / exit = Se délogger).
Avant de quitter un ordinateur, il faut TOUJOURS fermer sa session de travail.
Remarque : L’une des particularités importantes des systèmes Unix est leur capacité à ouvrir une
session distante. L’un des outils qui permet de faire cela est telnet.
4
Ne pas confondre l’usager root avec le répertoire qui est parent de tous les fichier et qui porte aussi le nom de "root",
représenté par le caractère "/".
TP : Initiation Unix
ENP/ ABDELOUEL
Page 6
A1
Linux : Commandes de Base
1.4 Les Commandes Unix5
Une commande est l’exécution d’un programme dans l’interprète (Shell). Elle prend en entrée des options et/ou
des paramètres. Elle peut renvoyer de l’information à l’écran ou dans un fichier, modifier un fichier, ou produire
un message d’erreur. Ces commandes sont généralement des programmes indépendants du shell (ou
commandes externes au shell), par exemple ls ou echo. Le shell reconnait cependant un certain nombre de
commandes comme étant des ordres qui lui sont adressés: on les appelle les commandes internes (par exemple
cd, exit, eval. Etc)
Synthaxe générale d’une commande :
commande
Commande
Options
Arguments
[options]
[arguments]
nom de la commande (par convention en minuscules)
permettent de modifier le comportement de la commande, elles peuvent être isolées ou
regroupées, le premier caractère de l’option est “-“
Les arguments sont soit definis par l’utilisateur, soit des variables prédéfinis par le shell ou
des chaines de caractères quelconques
1.5 Quelques commandes de base
Les commandes suivantes sont des commandes couramment utilisées :
N°
Commande
Description/ fonction
Exemple
(eqv. Msdos)
1
2
3
ls
pwd
(print work dir)
cd
4
5
6
7
8
9
cat
man
mkdir (Make Dir.)
rm (ReMove )
mv (Moves )
cp
10
11
12
chmod
locate
find
Liste le contenu du répertoire mentionné. Supporte les jokers
dir
Affiche la position courante dans le Systeme de fichiers
Changement de répertoire courant. Lorsqu'aucun argument n'est
fourni, change au repertoire principal de l'usager
Affiche le contenu d’un ou plusieurs fichiers
Aide sur une commande
Création d’un nouveau répertoire
Efface les fichiers ou le répertoire ( rm -d)
Déplace ou Renomme un fichier ou répertoire
Copie un fichier ou un répertoire (attention cette fonction permet
aussi d'écraser le fichier ou le répertoire du même nom)
Permet de changer les droits sur un fichier a
Recherche un fichier portant un nom donné
Recherche un fichier portant un nom donné (beaucoup d'options)
cd
cd
type
help
md
rd
move
copy
1.6 Où trouver plus d'aide
Unix offre de nombreuses source d'information sur le système. Si vous connaissez le nom d'une commande et
que vous voulez connaître son mode d'emploi, essayez :
Man [commande]
Cela va générer la page de manuel de la commande. Il y une page de manuel en ligne pour la plupart des
commandes du système. Ainsi, il n'est jamais nécessaire d'apprendre par coeur toutes les options des
commandes UNIX car le manuel en ligne est toujours à disposition et rapide d'accès pour vous rafraîchir la
mémoire.
Remarques :
• La majorité des commandes vous donne une courte description des options possibles et de la façon de
s'en servir lorque vous les exécutez avec le paramètre --help. Exemple : ls --help
• Si seul le sujet vous est connu ou alors seulement un mot-clé, alors essayez : apropos [sujet] ou info
[sujet]. Cela vous montrera une liste de commandes en relation avec ce sujet.
Exemple : apropos copy
5
Ce document n'est pas un manuel de référence sur Unix/Linux. Il ne s'agit que d’une présentation et d'une énumération des
quelques commandes qu'il est indispensable de connaître pour travailler sur le système. Cela ne vous empêche pas de
feuilleter de véritables livres et de consulter des sites web détaillant le fonctionnement d'Unix.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 7
A2
Le système de fichiers Unix
2. 1 Les systèmes de fichiers
Les informations (données, programmes, images, courriers...) sont stockées dans des fichiers6 qui sont
enregistrés dans des dossiers appelés répertoires (directory). Le traitement d’information nécessite
souvent des opérations comme par exemple: ouvrir, lire, se déplacer et fermer un fichier … etc. La
plupart des systèmes d’exploitation possèdent un système de fichiers (SF). Celui ci masque les
spécificités des disques et autres périphériques d’entrées sorties pour offrir une vue logique uniforme
des informations stockées.
Un fichier peut/doit avoir :
• un nom et divers attributs : taille, propriétaire (pour un système multi-utilisateur)
• droits (lecture/écriture/exécution), ...
• éventuellement d'autres informations : application associée, nature, ..
• On appelle système de fichiers l'agencement logique et structuré des données sur un média.
• On appelle arborescence la structure logique des fichiers et répertoires, telle qu'elle apparaît à
l'utilisateur.
Linux supporte un grand nombre de systèmes de fichiers, et notamment ceux provenant du monde
Windows
•
•
•
(Système FAT : Fichiers MSDOS.
Système FAT32 : Fichiers Windows 98.
Système NTFS : Système propre à Windows NT
•
•
•
Système HPFS : Fichiers du système OS/2.
Système CDFS : Fichiers sur CD-ROM.
Système de fichiers Linux Ext2, Ext3, Swap
Exemple de structure arborescente de répertoires
Unités et Partitions7 Windows
Le système de fichiers Windows est structuré en unités On trouve
une racine par partition, repérée par une lettre suivi du caractère
deux points et de l’anti-slash (C:\, D:\ …etc.)
Arborescence du système de fichiers
et analogie avec un système
d’archivage de dossiers
Noms des lecteurs et unités
A:, B:
Lecteurs de disquette,
C:
Premiere partition disque dur.
D: jusqu'à Z: Unités supplémentaires
6
Quelque soit sa structure un fichier peut toujours être vu comme une suite finie de bits ou d'octets.
7 On appelle partition (sur un disque) un bloc du disque organisé pour faire un système de fichier complet.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 8
Exemple : Les systèmes de fichiers Windows
Le système de fichiers Windows (FAT, FAT32) qui repose sur une table d'allocation des fichiers (FAT)
est l'un des plus simples que l'on puisse trouver. Par exemple, le MSDOS, organise les fichiers d'une
certaine façon: les noms de fichiers ne peuvent dépasser huit caractères et il n'existe aucune
information de permission sur les fichiers.
Dans le système de fichiers NTFS (New Technology File System), l'organisation des fichiers est
optimisée sur la partition, d'où une très faible fragmentation. NTFS respecte la norme POSIX et permet
une bonne gestion des disques de grande taille. Il prend également en charge le modèle de sécurité
des systèmes Windows NT, Server et:
2.2 Le système de fichiers Unix
Linux a aussi son propre système de fichiers appelé ext2 (version 2 du système de fichiers ext). Ses
principales caractéristiques sont les suivantes :
1. Répertoires séparés par des / ;
Le système ext3fs est un système ext2
2. Fichiers cachés débutant par un « . ».
avec un journal. Ce qui permet le
3. Espaces et noms longs acceptés ;
maintient de la cohérence des données
4. Défragmentation quasi-inutile
pour les descripteurs de fichiers
2.2.1 Noms de fichiers
Le nombre maximum de caractères composant le
Caractères utilisés :
nom est de 255 (sur presque tous les Unix
• Majuscules [A-Z], Minuscules [a-z],
d'aujourd'hui). L’extension est facultative et n’a
• Souligné [ _ ], Virgule [,] et point [.]
aucune signification pour le système.
• Chiffres [0-9]
Caractères de remplacement (ou joker)
? On peut remplacer le symbole ? par n'importe quel caractère (ou aucun),
* On peut remplacer le symbole * par n'importe quelle chaîne de caractères
• Le SF Unix est sensible à la casse (majuscules/minuscules)
C'est-à-dire que les majuscules et les minuscules sont différenciées comme à l'écran lors du
traitement des expressions ou des noms de fichiers et de répertoires. Prenez donc de bonnes
résolutions et faites attention à l'usage des majuscules lors de la saisie de commandes ou de chemins
d’accès …etc.
2.2.2 Structure physique du SF Linux (La table des inodes)
Dans un SGF 'Unix/Linux, les fichiers et les répertoires sont identifiés par un numéro unique : le
numéro d'inode (i-node number).
• La table des inodes contient des informations telles que
• Identification du propriétaire et de son groupe
• Type du fichier (ordinaire, répertoire, lien
symbolique, spécial).
• Les permissions d'accès.
• Nombre de liens sur le fichier, taille du fichier
en octets (bytes).
• Dates du dernier accès, dernière modification,
dernière modification de l'i-node ;
• Tableau de pointeurs sur les blocs de données.
•
•
•
•
Le nom du fichier n’est pas stocké dans la table des inodes.’
Comme tout fichier, un répertoire possède aussi son inode.
Le contenu du répertoire représente la correspondance entre les noms de fichiers et les inodes.
Les noms " . " et " .. "figurent dans tout répertoire. " . " correspond au répertoire courant et " .. " au
répertoire supérieur (ou répertoire parent).
TP : Initiation Unix
ENP/ ABDELOUEL
Page 9
2.2.3 Les types de fichiers Unix :
Fichiers
standards
Les différents type de fichiers Unix sont récapitulés dans le tableau suivant
Code
signification Commentaire
Fichier texte ou binaire: C’est une séquence d'octets sans aucune
- Fichier
ordinaire
organisation interne spécifique
Fichier spécial dans lequel sont inscrits les liens du répertoire :
d Fichier
répertoire
(association entre un nom et un numéro d'i-node)
Lien
Fichier permettant de référencer un fichier ordinaire ou un répertoire
l
symbolique en utilisant un nom différent (Raccourci)
En plus, l’accès aux périphériques et aux ressources système s’effectuent à travers des descripteurs
de fichiers. Sous Unix, « tout est Fichier » : Les disques, les lecteures (disquettes/Cdrom), le clavier,
l’ecran, l’imprimante, la carte réseau …etc sont considérés comme des fichiers spéciaux8
Fichiers
spéciaux
Code
c
b
p
Signification
Périphérique accédé en mode Caractère
Périphérique accédé en mode Bloc
Tube ou pipe
s
Socket
Commentaire
Exemple : terminaux, imprimante, souris
Disques, mémoire, bande magnétique
Fichier spécial permettant de communiquer entre
différents programmes.
Fichier spécial permettant de communiquer entre
différentes machines (en réseau)
2.3 Arborescence classique d’Unix
Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers
est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/».
• Remarque : Le répertoire racine (root)
Sous Windows, les partitions logiques ou physiques du disque sont généralement repérées
par des lettres (Par exemple A : pour la disquette, C: pour un disque dur, D:pour un CDROM
etc). Il faut oublier cette organisation pour Unix. Quelle que soit la structure du disque, Unix
ne voit qu'une seule arborescence qui démarre à la racine9 /. Les autres partitions10 (Swap,
Disques, CDROM …etc) vont donc s'insérer dans cette arborescence comme répertoires
venant en aval du répertoire /.
Les systèmes Unix possèdent tous plus ou moins la même arborescence, dans laquelle on retrouve
les mêmes répertoires importants.
Rép.
Contenu
/etc
Contient les fichiers de configuration nécessaires à l'administration du
système (fichiers passwd, group, inittab, ld.so.conf, lilo.conf, ...).
/dev
Contient les fichiers spéciaux permettant d’accéder aux périphériques.
/bin
Contient les exécutables essentiels au système, employés par tous les
utilisateurs
/sbin
Contient les commandes essentielles d’administration du système.
/usr
Hiérarchie secondaire : Contient les applications complémentaires utilisées
par le système. En particulier, le répertoire /usr/local contient les données
relatives aux programmes installés sur la machine locale par le root
(comparable au répertoire c:\program files de Windows)
/usr
contient les fichiers binaires non essentiels au système réservés à
/sbin
l'administrateur système
/home contient les répertoires personnels des utilisateurs
/var
Contient les fichiers journaux (logs), les fichiers du spouleur d'impression ou
bien les mails en attente.
/mnt
Répertoire de montage des périphériques amovibles de stockage (Cdrom …)
8
Les fichiers spéciaux se trouvent dans le répertoire /dev ("device").
Le slash (/) joue pour Unix le rôle de l'antislash (\) du DOS/Windows pour désigner les répertoires.
10
Les partitions de swap ont pour rôle de fournir une mémoire virtuelle pour les programmes tournant sous Unix
TP : Initiation Unix
9
ENP/ ABDELOUEL
Page 10
A3
Le système de fichiers Unix (2)
Chemins d’accès
3.1 Chemins d'accès à un fichier/répertoire
On appelle «chemin» la succession des répertoires conduisant à un fichier, à partir d’un endroit donné
dans l’arborescence. Par extension, le chemin désigne la succession des répertoires et le nom du
fichier lui-même.
Pour désigner un fichier, il est possible de procéder de deux manières:
• à l’aide d’un chemin absolu: on prend comme convention un parcours de l’arbre partant de la
racine (root) (i.e. la désignation de la racine de l’arbre) doit être tout d’abord spécifié.
Chemin Absolu=
•
/ [rep1/ [rep2/ ..]] fichier
à l’aide d’un chemin relatif: c’est la succession des répertoires à traverser, à partir d’un
répertoire donné de l’arborescence (autre que la racine). En générale, par rapport au répertoire
courant.
Chemin relatif = [rep1/ [rep2/ ..]] fichier
Remarques :
•
Dans les chemins, le délimiteur entre nom de répertoire et nom de fichier est la barre oblique
slash «/»
• Placé au début d’un chemin d’accès, le slash est nom de l a racine de l’arborescence Unix:
a) Comment spécifier un chemin d’accès
• Tapez le caractère slash (/), symbole du répertoire racine.
• Tapez les noms des répertoires et des sous-répertoires qui contiennent le fichier,
en prenant soin d'insérer un slash (/) devant chaque nom de répertoire.
• Tapez le nom du fichier. Un slash (/) doit précéder le nom du fichier.
Exemple : /home/sf1a/maths/matrix.pas
est une référence absolue (un chemin d'accès absolu) au fichier matrix.pas
b) Quelques règles
• Régle 1 : Chaque nom de chemin d’accès absolu commence par slash (/)
• Régle 2 : Le SE Unix utilise toujours des noms de chemin d’accès absolu. Les chemins d’accès
relatifs sont complétés en utilisant si nécessaire le répertoire par défaut (rép. de travail)
Chemin Absolu = Répertoire de Travail + Chemin relatif /rép.Travail
Exemple : pour le fichier matrix.pas
Répertoire de Travail = /home/sf1a/
Chemin relatif au fichier matrix.pas =
maths/matrix.pas
& Chemin Absolu = /home/sf1a/maths/matrix.pas
•
•
•
Régle 3 : Pour un fichier ou un répertoire donné, il n’existe qu’un seul chemin absolu, mais il
existe des tas de chemins relatifs.
Régle 4 : A tout instant, un utilisateur se trouve dans un répertoire, dénommé répertoire
courant ou répertoire de travail.
Régle 5 : Lors de sa connexion, un utilisateur est placé dans son repertoire personnel (home directory.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 11
3.2 Quelques commandes utiles et très pratiques
copie (= duplique) le fichier specifie par le chemin «chemin1» dans le fichier
specifie par le chemin «chemin2». Si «chemin2» est un repertoire, la copie
de «chemin1» est placée dans ce répertoire ; sinon, «chemin1» est copie
dans un fichier dont le nom est «chemin2».
copie l’objet spécifié par le chemin «chemin1» dans l’objet spécifié par le
cp -r «chemin1» «chemin2» chemin «chemin2». Si «chemin1» est un répertoire, cette commande copie
l’ensemble des fichiers et répertoires qui s’y trouvent (récursivement). Sinon,
cette commande est équivalente a cp «chemin1» «chemin2» .
déplace le fichier spécifié par le chemin «chemin1» dans le fichier spécifié
mv «chemin1» «chemin2»
par le chemin «chemin2». Si «chemin2» est un répertoire, «chemin1» est
déplacé dans ce répertoire ; sinon, «chemin1» est déplacé dans un fichier
portant le nom «chemin2» .
rm «chemin1
détruit (= efface) le fichier spécifié par le chemin chemin1. Ce chemin doit
spécifier un fichier, pas un répertoire.
rm -r «chemin1
détruit tous les fichiers et répertoires dont la racine est chemin1. Si chemin1
est un fichier, cette commande est équivalente a rm chemin1.
rmdir «chemin1
détruit le répertoire spécifié par le chemin chemin1. Ce chemin doit spécifier
un répertoire vide.
crée un lien pointant sur l’objet (fichier ou répertoire) spécifié par le chemin
«chemin1» qui porte le nom indiqué par le chemin «chemin2». Avant
ln -s «chemin1» «chemin2» l’exécution de cette commande, l’objet «chemin2» ne doit pas exister. Apres
son exécution, l’objet «chemin1» peut être accèdé via le chemin «chemin2».
Par lien, nous entendons que «chemin1» et «chemin2» sont en fait le même
objet et que cet objet peut maintenant être accédé selon deux chemins
différents (on peut en ajouter autant que l’on veut).
Attention un lien n'est pas une copie: si vous modifiez le fichier alors tous les liens sur ce fichier seront
modifiés. Il existe deux sortes de liens: le lien physique et le lien symbolique (avec l'option -s). Le lien physique
ne peut adresser que des fichiers, alors que le lien symbolique peut aussi lier des répertoires.
cp «chemin1» «chemin2»
Autres commandes
more chemin1 chemin2 …
echo chaine
banner chaine
visualise le contenu du ou des fichiers par page.
affiche la chaine passée en paramètre
affiche la chaine passée en paramètre avec des grosses lettres
3.3 Les alias
Les alias sont une des choses les plus pratiques qui soient. Régulièrement on utilise les mêmes
commandes avec parfois de nombreuses options Voici quelques exemples classiques d'alias :
alias l="ls --color=auto"
alias dir="ls -l "
N.B : Les alias se placent habituellement dans le fichier de configuration (.bashrc, .profile …etc.)
3.4 Commandes par thèmes
Les informations sur
les programmes et les commandes :
les fichiers
les répertoires :
le système et l'environnement
Les variables
Manipulation de fichiers et répertoires
Divers
Processus
Le courrier électronique
man, whereis, which
diff, cat, grep, head, tail, file, more
ls, pwd, find
id, uname, logname,, tty, w, who
alias, unalias
cd, rm, rmdir, mkdir,
chmod, cp, mv, ln sort, touch
echo, sleep
kill, ps
elm, mail
TP : Initiation Unix
ENP/ ABDELOUEL
Page 12
A4
Redirections & commandes filtres
4.1 Redirection des entrées-sorties
Un grand nombre de programmes se contentent de lire un flot de donnés, de faire un traitement sur
ces données et d'écrire un ot de données résultat. Ces programmes prennent donc leurs données sur
l'entrée standard (périphérique logique 0), et écrivent leurs résultats sur la sortie standard (périphérique
logique 1), et produisent d'éventuels messages d'erreur sur l'erreur standard (périphérique logique 2),.
Un programme qui respecte cette convention porte (dans le jargon UNIX) le terme de filtre. Il faut juste
préciser qu'un filtre n'affecte pas de fichier à ces trois périphériques logiques il délégue cette
responsabilité au programme qui l'appelle. Le shell a donc sa propre stratégie d'affectation des
périphériques logiques quand il lance un programme. Si l'utilisateur ne précise rien :
• Le périphérique logique 0 est affécté par défaut au clavier du terminal.
• Le périphériques logiques 1 & 2 sont afféctés par défaut à l'écran du terminal.
Pour les cas où ces afféctations par défaut ne conviennent pas à l'utilisateur, le shell dispose d'un
mécanisme permettant de spéciér les afféctations désirées. Ce mécanisme s'appelle la redirection des
entrées-sorties.
Périphérique d'entrée standard
Commande
Périphérique de sortie standard
(par defaut le clavier)
Programme
(par defaut l'écran)
Périphérique d'entrée
fichier / texte
Commande
Programme
Périphérique de sortie
Fichier /texte
4.2 Notations de redirections
> nom_de_fichier
permet de rediriger la sortie standard (1) d'une commande à partir de
("sortie à.)"
nom_de_fichier
< nom_de_fichier
permet de rediriger l'entrée standard (0) d'une commande à partir de
("entrée de...")
nom_de_fichier.
>> nom_de_fichier Il existe une autre forme consistant à remplacer le signe > par le signe >>.
"Ajouter
Dans ce cas,si nom_de_fichier existe, son contenu n'est pas perdu : le flot
sortie à..."
redirigé va s'écrire à la fin du fichier
Les notations de redirections peuvent apparaitre
Exemples : commande < data_in > data_out
avant ou après la commande et dans n'importe
on peut écrire indifférement:
quel ordre. Il est traditionnel de les mettre après
•
< data_in commande > data_out
la commande, et si on redirige entrée et sortie,
•
< data_in > data_out commande
de mettre la redirection de l'entrée, puis celle de
•
commande > data_out < data_in
la sortie, mais ce n'est nullement obligatoire
TP : Initiation Unix
ENP/ ABDELOUEL
Page 13
Exemple
bc (binary calculator), lit une ligne au terminal, interpréte
cette ligne comme étant une expression à calculer, calcule
l'expression et imprime le résultat sur le terminal. On peut
cependant imaginer beaucoup de situation où l'on aimerait
activer bc en lui faisant lire les expressions à partir d'un
fichier data et afficher les résultats dans results
4.3 Communication par canal : |
|
$ bc -l
123+456
579
12*4
48
quit
Bc < Data > Result
- Canal, tube /Pipe
Commande1 | Commande 2
Enchaînement de l'exécution de deux commandes Commande1 commande2 .
c’àd envoie de la sortie écran de commande1 à command2 comme entrée de clavier.
Entrée 1
(Clavier)
Commande 1
Sortie 1
(Ecran)
Entrée 2
(Clavier)
Commande 2
Sortie 2
(Ecran)
Canal de communication
Entrée 1
Commande 1
Commande 2
Sortie 2
Les résultats générés par commande 1 sont transmis via le canal | de telle sorte qu’ils servent
comme données d’entrée à commande 2
4.4 Commandes filtres
Les commandes filtres, permettent de produire des résultats filtrés selon des critères bien définis :
Commande More, find, sort.
La commande MORE s'utilise pour visualiser le contenu de longs fichiers texte, écran par écran
Commande
MORE
MORE < [chemin]fichier, ou commande | MORE
La commande MORE lit les données d'entrée standard provenant d'un canal de
communication ou d'un fichier redirigé et affiche un écran de données à la fois
Recherche récursive d'un fichier spécifié par chemin
find "chemin"
-name fichier : fichier à chercher
-print : affiche le chemin trouvé
Affiche les lignes du fichier contenant la chaîne de caractères
grep "chemin
-i : majuscules et minuscules identiques
-n : avec numéros de lignes
Exemples
ls | more,
ls *.* | find "Alilo"
envoie les sorties de la commande ls vers le filtre find qui affiche seuls les fichiers avec le mot
"Alilo". Comme il n'y a pas de > en fin de commande, la liste filtrée va à l'écran.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 14
A5
Gestion des droits d’accès
5.1 Catégories et droits d’accès
Unix défirencie trois catégories de personnes:
L’utilisateur (user) est le propriétaire du fichier. Les codes utilisés sont les suivants
Chaque utilisateur appartient à un ou plusieurs u
Le propriétaire du fichier: (owner) (u) User
groupes. La troisième catégorie concerne les droits g
Les membres du groupe de l’utilisateur:
de toute autre personne connectée à la machine.
o
Les autres utilisateurs (o) Others
Sous unix, on ne compte que trois permissions11 distinctes
r
w
x
r
w
x
r w x
-_, d
r
Read : Permission de lecture
w Write : Permission d'écriture
x EXecute : Permission d'exécuter
Octale
400 200 100 40
20
10
4 2 1
Lorsqu'on lit les permissions sur un fichier
(cmd ls), on obtient le format suivant :
Type
User
u
Group
g
Others
o
Le premier groupe de « rwx» concerne les droits du propriétaire (User), le second ceux du groupe et le dernier
ceux des autres. Si la lettre apparaît, le droit correspondant est donné. Si la lettre est remplacée par un tiret, le
droit correspondant est refusé.
5.2 Droits d’accès : notation octale
Dans la table des i-nodes, les permissions d'accès sont représentées par des "bits" dans un mot qui en contient
neuf. Si le bit est activé, alors l'opération correspondante pour le ou les usagers (u,g,o) est permise. La notation
octale permet d'attribuer les permissions de manière beaucoup plus efficace et concise. (voir la valeur des
différentes permissions dans la notation octale). Ci-après quelques exemples:
Octal
Total en binaire Droits
Commentaires
644
110 100 100
rw-r--r
Le propriétaire peut lire et écrire, les autres peuvent uniquement
lire.
755
111 101 101
rwxr-xr-x Comme ci-dessus+exécution permise pour tout le monde
600
110 000 000
rw------Seul le propriétaire peut lire et écrire.
Remarque : Seul le propriétaire des fichiers ou un utilisateur ayant des droits particuliers (root)
peut changer le mode d'accès.
5.3 Signification des permissions
Les droits d’accès s’interprètent de manière différente selon qu’il s’agisse de fichiers ou de répertoires
Fichier (-)
Répertoire (d)
La lecture d’un répertoire se fait lorsqu’on liste son contenu en absence
de ce droit, on peut néanmoins atteindre et lister les fichiers des sousr
Lecture autorisée
répertoires, s’il en existe, et si on connaît leur nom.
w
Ecriture autorisée
x
Exécution autorisée
l’écriture dans un répertoire se fait lorsqu’on crée ou détruit un fichier
l’exécution se fait lorsqu’un chemin de fichier ou une commande cd
spécifie le nom de ce répertoire En absence de ce droit, aucun accès au
répertoire et a la sous arborescence issue du répertoire n'est possible.
5.4 La commande umask
La commande umask permet de déterminer les droits par défaut avec lesquels tout fichier sera créé.
La commande umask valUmask provoque la prise en compte des droits de base rw-rw-rw- (666 en octal), puis
on fait l'opération : (droits de base) et (non umask). Ce qui revient à retirer chaque élément correspondant à un
1 binaire de valUmask. Par exemple :
Droits de base 110 110 110
Droits à la
Conséquences
creation
umask 022
000 010 010
110100100
crée les fichiers avec les droits rw-r--r--
11
Il y a des fichiers dont les droits contiennent d’autres lettres que r,w et x. On trouve les lettres s, S, t. Pour en savoir plus,
consultez le manuel en ligne de la commande chmod.
TP : Initiation Unix
ENP/ ABDELOUEL
Page 15
A6
Unix : Gestion des processus
6.1 Les processus Unix
o Tous les systèmes multitaches permettent d'avoir plusieurs programmes exécutables en même temps
Principaux attributs d'un processus
o Un processus est un programme en exécution (vue de
l'usager qui lance des commandes). Une commande PID
identificateur de processus
donnée peut lancer plusieurs processus.
PPID
Id du processus père
Principaux attributs d'un processus
COMMAND intitulé de la commande
Unix assigne un numéro unique à tous les processus actifs
correspondant au processus
pour les différencier et de les contrôler.Chaque processus est PRI
Priorité du processus
donc repéré par un identificateur de processus (PID – TTY
Terminal d’execution
Processus IDentifier) qui se présente sous la forme d'un UID
propriétaire actif12
nombre entier. Ainsi, lorsqu'on veut effectuer une action sur un et GID
réel et effectif.
processus donné, on le repère exclusivement par son PID.
NI
La valeur Nice
o Toutes les informations concernant les processus s’obtiennent avec la commande "ps"
6.2 Exécution d’une commande dans le Shell
Le processus
Fils (commande)
Le processus
Père (shell)
La gestion des processus sous Unix est dite hiérarchisée. Lorsqu’on lance une commande externe au shell (par
exemple ls), un processus fils du shell est créé et la commande s’execute dans celui-ci. Le processus père (le
shell) attend que la commande soit exécutée pour redevenir actif.
Ainsi, lorsqu'on demande l'exécution d'une
Execution d’une commande dans le Shell
commande, le shell lance la commande et se met en
Une commande
attente de sa terminaison. Ceci est mis en évidence
est Lancée dans le
aux yeux de l'utilisateur par le fait que le shell
Shell courant
n'imprime un prompt que lorsque la commande en
cours est terminée. Quand on travaille de cette
maniére on dit que l'on exécute les programmes en
premier plan (foreground)
Dort
Est exécuté
Il existe donc une possibilité pour l'utilisateur de
demander au shell de lancer l'exécution d'un Est Informé de la
programme et de ne pas attendre la fin de son
fin d’exécution
exécution( exécution en arrière-plan :background). Il
suffit de taper le caractére & à la fin de la commande
Se Réveil
Meurt
Comme il ne peut y avoir pour un shell intéractif qu’un
processus en avant-plan à la fois, on comprend qu’il est
facile de le gérer, en particulier grâce aux caractères
(par exemple : arrêt par "CTRL C")..
Par contre, il est possible d’avoir simultanément
plusieurs processus en arrière-plan, lancés à partir du
même shell intéractif. Dans ce cas, on contrôle ces
processus en obtenant leur identifiant et leur état par
les commandes ps/jobs, puis éventuellement en
modifiant leur état par les commandes fg, bg ou kill13.
12
Propriétaire actif réel et effectif. Le réel est celui qui lance en premier le processus. L'effectif est celui qui exécute le
processus avec les mêmes droits que le réel mais avec parfois des droits supplémentaires durant l'exécution du processus
13
Contrairement à son nom, cette commande n’est pas destinée réellement à tuer un processus, mais plutôt à lui envoyer un
signal. La commande suspend n’existe pas en standard, mais on peut la définir avec un alias : alias suspend=’kill -STOP’
TP : Initiation Unix
ENP/ ABDELOUEL
Page 16
A7
L'interpréteur de commandes : shell
7.1 L'interpréteur de commandes : shell
Le Shell c’est
Les différents Shell
Shell
sh
bash
Bourne Again Shell
• Une Interface utilisateur avec le système Unix
C
Shell
csh
Trusted
Shell
tsh
• Un Interpréteur de commandes
Bourne
Shell
bsh
Restricted
Shell
Rsh
• Un langage de programmation
Korn
Shell
ksh
Remote
Shell
rsh
Le shell est un interpréteur de commandes. Il permet
de lancer les commandes UNIX disponibles en leur Les
différences
entre
ces
shells
portent
affectant un certain nombre de paramètres essentiellement sur la syntaxe des constructions du
d’exécution, de contrôler les données d’entrée et de langage et sur la richesse fonctionnelle. Mais
sortie, les messages d’erreur éventuels et surtout de certaines fonctionnalités sont proposées d'une
les enchaîner de manière efficace et pratique
manière ou d'une autre par tous les shells.
•
Le shell est lui même un fichier binaire, qu’il est possible de lancer comme n’importe quelle autre commande
UNIX.
•
Un shell est démarré pour chaque console ouverte (ou fenêtre X11 équivalente créée); il est interactif dans
ce cas, car les lignes de commande tapées au clavier sont exécutées une par une avec confirmation
systématique (touche <return>).
7.2 Les méta caractères du shell
Les méta caractères du shell permettent de construire des chaînes de caractères génériques ou de modifier
l'interprétation d'une commande: Le shell interprète les caractères spéciaux avant d'exécuter la commande
*
désigne une chaîne de caractères quelconque
?
désigne un caractère quelconque
[...]
désigne les caractères entre crochets, définis par énumération ou par un intervalle
{ et }
permettent de regrouper un ensemble de commandes et de les exécuter dans le "shell courant"
( et )
permettent de regrouper un ensemble de commandes et de les exécuter dans un "shell fils".
;
sépare deux commandes sur une même ligne
'
délimite une chaîne de caractères contenant des espaces (à l'intérieur, tous les méta caractères
perdent leur signification)
"
délimite une chaîne de caractères contenant des espaces (à l'intérieur, tous les méta caractères
perdent leur signification, à l'exception des méta caractères ` et $)
`
Le texte donné entre anti-quotes (`) ou $( ) est considéré comme une commande à exécuter et
ou $( ) remplacé par son résultat. Cela permet d'utiliser le résultat d'une commande comme argument
d'une autre.
\
annule la signification du méta caractère qui suit
Exemples
ls *.[csp]
Liste de tous les fichiers ayant l'un des suffixes .c, .s ou .p
ls /usr/[a-z][0-9]
Liste de tous les éléments de /usr dont le nom est composé de deux caractères :
une minuscule suivie d'un chiffre
ls /bin/[!a-z]*
Liste de tous les éléments de /bin dont le nom ne commence pas par une minuscule
$ echo Je suis
sous `pwd`
TP : Initiation Unix
ENP/ ABDELOUEL
Page 17
7.3 Variables du shell
Comme dans la plupart des langages, il est possible d'utiliser des variables dans un script. Les variables du shell
contiennent des chaînes de caractères. Elles n'ont pas besoin d'être déclarées. Elles prennent vie lors de la
première affectation (avant la première affectation, elles ont pour valeur la chaîne vide).
Bash, ksh
csh
Remarques
variable=chaine
set variable valeur
Affectation de valeur à variable
Attention, Il ne doit pas y avoir d'espace autour du signe =
$variable
Valeur de la variable
${variable}
Valeur de la variable (permet d'éviter certaines ambiguïtés:
si a="var",${a}b renvoie varb alors que $ab est invalide)
Exemple ENP="Ecole Nationale Polytechnique"
On récupère le contenu de la variable en la préfixant du signe $: echo $ENP
Variables pré positionnées
Lorsque le shell courant ou un programme en shell démarre, son environnement contient un certain nombre de
variables qui sont positionnées dynamiquement, et dont le contenu (pour les principales,) est le suivant :
$0
Le nom du programme shell en cours.
$1,..${N} Les N paramètres passés au programme (au shell) lors de son appel.
$#
Le nombre de paramètres passés à l’appel du programme shell (non compris le paramètre $0)
$*
La liste des paramètres passés à l’appel du programme shell (non compris le paramètre $0)
$?
Le code d’erreur de la dernière commande exécutée
$HOME Votre répertoire principal
$PWD
Le répertoire courant
$PATH
La liste des répertoires où le shell est susceptible de trouver les commandes élémentaires à
exécuter. Cette variable est toujours positionnée dans les fichiers profile (/etc/profile et .profile)
au moment du démarrage
$PS1
Le prompt (ce qui s’affiche après chaque ligne de commande en mode interactif)
$prompt
Ces variables d’environnement sont transmises par le système d’exploitation à tous les processus. Chaque
processus hérite des variables de son père (le processus qui l’a lancé, ici en général le shell). Ces variables
peuvent être consultées ou modifiées.
Exemple : La variable PS1 contient la forme de votre invite : exemple : PS1="[\u@\h \w]
7.4 Les Scripts shell :
Les scripts shell sont des programmes courts (et parfois un peu moins courts) interprétés, constitués d'appels de
commande et de constructions du langage proposé par le shell correspondant. Ils permettent notamment de
contrôler les informations transmises aux programmes et d'analyser de manière rudimentaire les sorties générées
par de tels programmes. Pour faire des traitements plus complexes, tout en gardant la souplesse d'utilisation des
scripts, on peut faire appel à l'un des nombreux langages de scripts tels que PERL, Python ou encore TCL.
Écriture et exécution d'un script
Un script shell est un fichier texte contenant des
instructions, des commandes et des symboles
spéciaux. On exécute le script en passant le nom du
fichier en paramètre au shell.
% cat exemple
#!/bin/sh
echo hello
% chmod +x exemple
% ./exemple
Le premier symbole spécial est le #. Tout mot commençant par un # est ignoré et le reste de la ligne
également. Le caractère # introduit donc un commentaire.
Il existe un commentaire spécial de la forme #!programme que l'on peut mettre sur la première ligne du script.
Dans ce cas, si le fichier contenant le script a le droit d'exécution, il peut être exécuté comme un programme
normal
TP : Initiation Unix
ENP/ ABDELOUEL
Page 18
Téléchargement