Sie sind auf Seite 1von 33

cole Nationale

Suprieure des Mines


SAINT-TIENNE
Cycle ISMIN Premire anne
GP : Concepts et Outils pour lInformatique
UP : Environnement Informatique et Rseaux
Utilisation du systme Linux
Philippe Laleve
Septembre 2013
Table des matires
I Dnitions et vocabulaire 3
1 Systme informatique 3
1.1 Rles dun systme informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Support pour les applications 6
3 Langages de programmation 7
II Utilisation de Linux 8
4 Prsentation de Linux (Unix) 9
5 Premire utilisation 11
5.1 Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 Commandes Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6 Systme de chiers 15
6.1 Prsentation et concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2 Manipulation des lments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.3 Gestion des droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Le shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.5 Gestion des activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Prologue
Ce cours constitue les premiers pas de la plupart des apprenants dans le monde des systmes
dexploitation, en particulier les systmes Unix. Mme si beaucoup utilisent dj des logiciels de
bureautique ou de calcul mathmatique, il est important dtudier les principaux concepts du
logiciel de base supportant ces applications, cest--dire le systme dexploitation.
2
Lobjectif majeur du cours est de rendre lutilisateur indpendant ; cest--dire, matrisant cor-
rectement lutilisation des principales commandes et la consultation des pages du manuel en
ligne de Unix. Pour atteindre cet objectif, les principales commandes Unix sont prsentes avec
leurs concepts affrents. Cest votre pratique rgulire qui vous permettra de matriser et dap-
profondir ce qui est vu en cours pour convenablement utiliser les commandes.
Mme si les environnements graphiques multifentres permettent de ne taper que peu de com-
mandes, lutilisateur averti connat les commandes correspondantes. En outre, aucun environ-
nement graphique multifentre ne pourra atteindre la puissance dexpression du mode com-
mande . Enn, les commandes permettent de mieux apprhender et comprendre les concepts
des systmes dexploitation et leur utilisation quotidienne. Cest pourquoi le cours est une s-
quence de paires concept et suite de commandes.
Voici quelques ouvrages et lectures recommands.
Bibliographie (et sources du cours)
Principes des systmes dexploitation, A Silberschatz, P Galvin et G Gagne
Les systmes dexploitation, A Tanenbaum
Mon systme Linux, P Laleve et C Schller
Unix et Linux, JM Lry
3
Premire partie
Dnitions et vocabulaire
1 Systme informatique
Dnition
Un systme informatique est un ensemble de matriels et de logiciels destin raliser
des tches mettant en jeu le traitement automatique de linformation.
La communication dun tel systme avec le monde extrieur est assure par des organes
daccs
Ces organes doivent adapter le monde rel au monde numrique
Ncessit de codage, numrisation, chantillonnage, etc.
1.1 Rles dun systme informatique
Fonctions dun systme
La fonction dun systme informatique est la fourniture de prestations (services) capables dai-
der la ralisation de problmes usuels.
Quelques exemples :
gestion de linformation : stockage, dsignation, recherche, communication, protection
contre les intrusions ou les incidents
prparation et mise au point de programmes
gestion de lensemble des ressources pour permettre lexploitation des programmes
(cest--dire cration dun environnement ncessaire lexcution du programme)
gestion et partage de lensemble des ressources (matriels, informations...) entre len-
semble des usagers
Composants matriels dun ordinateur
Un ordinateur est compos de
Unit centrale : traitements
4
Mmoire centrale : stockage des donnes
Priphriques : units externes (disques, son, cran...)
Composants dun Systme Informatique
Un systme informatique est compos de
Matriel : excutions des tches
Les quipements physiques
Le langage machine, interface permettant de piloter les quipements
Programmes systme : machine virtuelle
Programmes dapplication : besoins utilisateur
Rle du systme dexploitation
Fonction des programmes systme
Les programmes systme sont des programmes qui remplissent deux grandes fonctions :
grer les ressources matrielles en assurant leur partage entre les applications et/ou les
utilisateurs (scurit, performance, abilit)
prsenter aux utilisateurs une interface simplie que celle de la machine physique =
Machine virtuelle
Dnition
Un Systme dexploitation (ou systme) est compos de lensemble des programmes systme.
Lobjectif global de larchitecture logicielle est de fournir une machine virtuelle comme abstrac-
tion du matriel utilis (processeurs, disques, rseaux...).
5
La machine virtuelle a pour rle doffrir aux utilisateurs des fonctionnalits adaptes leurs
besoins. Le premier de ces besoins est de masquer les caractristiques physiques du matriel
an que lutilisateur ne voit pas de diffrences entre les diffrents ordinateurs quil utilise. Par
exemple, le systme Unix est utilis de la mme faon, que lon travaille sur une machine mo-
noprocesseur dans les salles de TP ou sur le serveur de calcul du service informatique, qui est
une machine multiprocesseurs .
Le second besoin est la distinction des diffrents niveaux dabstraction. Un informaticien utilise
sans doute directement les commandes du systme dexploitation. En revanche, un utilisateur
nophyte accdera, par exemple, une application de comptabilit, qui soccupera des appels
des commandes de base du systme dexploitation. En consquence, larchitecture logicielle suit,
telle que dessine dans ce transparent, une structure en couches logicielles, chacune offrant des
services de plus en plus volus au niveau suprieur.
Plus les services sont volus, moins les utilisateurs ont besoin de connaissances sur la gestion
des ressources matrielles. Ce cours tudie la couche logicielle de base constitue du systme
dexploitation. Les cours de programmation prsenteront des langages et la mthodologie per-
mettant de construire des logiciels applicatifs. Un cours de deuxime anne sera consacr la
programmation systme proprement dite.
Les deux objectifs majeurs dun systme dexploitation sont de transformer le matriel en une
machine utilisable, c.--d. fournir des outils adapts aux besoins des utilisateurs indpendam-
ment des caractristiques physiques, et doptimiser lutilisation des ressources (matrielles et
logicielles), donc les partager principalement pour des raisons conomiques.
Prenons lexemple dun service prsent sur tous les ordinateurs, le service dimpression. Lutili-
sateur demande des impressions de documents avec diverses options : titre, bannire, nombre
de copies... Le premier objectif du systme dexploitation est de proposer lutilisateur une
commande dimpression simple offrant les options cites ci-dessus. Le deuxime objectif est de
permettre laccs tous de toutes les imprimantes disponibles. Cela suppose la mise en oeuvre
de mcanismes de gestion des problmes poss par le partage (synchronisation, gestion des
conits...).
Dautres aspects peuvent aussi tre considrs dans les objectifs dun systme dexploitation,
comme la scurit (ne pas mlanger deux impressions), la abilit (obtenir un listing correct en
cas dincident, comme par exemple un bourrage papier) et la performance (obtenir le document
imprim dans un dlai raisonnable). Ces derniers objectifs ne sont pas toujours obtenus sans
faire des compromis. Par exemple, lintgrit et les contrles daccs peuvent obliger ladminis-
trateur de lordinateur supprimer temporairement laccs aux imprimantes lorsque des utili-
sateurs malveillants essaient de perturber le fonctionnement normal de cet ordinateur. Autre
exemple, ces mmes contrles dintgrit et daccs prennent du temps et diminuent dautant
les performances de lordinateur.
Lunit dexcution (ou de traitement) gre par le systme dexploitation est lactivit (ou
tche). Une activit correspond lexcution dun ou plusieurs programmes. Un programme
est la matrialisation du rsultat de lanalyse, de la conception et de la programmation de tout
ou partie dune application. Il est possible que plusieurs activits simultanes et indpendantes
correspondent des excutions du mme programme. Ces diffrentes excutions doivent ne
pas mlanger leurs donnes : donnes en entres, donnes intermdiaires pour les traitements,
donnes daccs aux priphriques, rsultats... En outre, un programme peut lancer lexcution
6
dautres programmes. Ces derniers peuvent tre excuts successivement dans la mme activit
ou dans dautres activits cres pour loccasion en progressant simultanment et indpendam-
ment.
La multiprogrammation signie avoir simultanment en mmoire centrale plusieurs activits
candidates lexcution et pouvoir faire progresser indpendamment ces diffrentes excutions.
Le principe de base est dattribuer lunit centrale tour tour aux diffrentes activits excutant
les diffrents programmes. Une activit est appele un processus en Unix. Dans la suite du
cours, le terme processus sera prfr au terme activit puisque le systme dexploitation
tudi est Unix.
Lune des caractristiques les plus dterminantes pour classer les systmes dexploitation est
le nombre dutilisateurs pouvant potentiellement excuter des commandes simultanment. Sur
un ordinateur individuel, lexcution dune commande ne commence que lorsque lexcution de
la commande prcdente est termine. Dans le cas o une commande est en attente pendant
une interaction avec un priphrique, par exemple en attente de donnes que lutilisateur entre
au clavier, le processeur nest pas utilis. Un tel systme dexploitation qui ne gre quun seul
processus la fois est dit mono-tche.
Avec un systme multi-utilisateur, comme Unix par exemple, plusieurs utilisateurs peuvent tra-
vailler en mme temps. Les services du systme dexploitation tels que le service dimpression
peuvent aussi sexcuter concurremment aux commandes des utilisateurs. Un tel systme dex-
ploitation qui doit grer plusieurs processus la fois (systme multitche) est dit multiutilisa-
teur ou temps partag. Le processeur est partag par plusieurs processus qui en obtiennent le
contrle par quantums de temps. Ce type de systme dexploitation comporte entre autre une
entit appele un moniteur multitche qui optimise lutilisation de lunit centrale.
2 Support pour les applications
Architecture dun systme dexploitation
Comme cela a t montr prcdemment, le systme dexploitation est une couche intermdiaire
7
entre les applications des utilisateurs et le matriel. Du haut vers le bas , le systme offre
une machine virtuelle aux applications ; et du bas vers le haut , le systme gre les
ressources entre les applications.
Un dveloppeur doit donc connatre la machine virtuelle sur laquelle seront excutes ses ap-
plications.
Support pour les applications
Interface de Programmation dApplications (API)
Le systme propose une interface de programmation pour accder aux services, fournis
dans des bibliothques (libraries)
Il propose une vision uniforme des donnes et de leur accs
Communication avec le systme
Entre-sortie : change dinformations entre lapplication et le monde extrieur selon
un protocole prcis
Deux interfaces sont privilgies : le clavier et lcran (terminal)
Sauf exception, les applications nont pas daccs direct au matriel ; parmi ces exceptions, on
peut trouver des raisons de performance, de scurit ou encore de portabilit. Tous les accs
au matriel se font donc par lintermdiaire du systme dexploitation, qui offre pour cela des
bibliothques de services, utilisables par les programmes et les outils. Cela permet en outre de
fournir une vision uniforme des ux de donnes. Par exemple, la copie dun chier mp3 vers le
chier carte son utilise le mme service que la copie dun document vers limprimante.
Ces changes de et vers les organes externes dun ordinateur sappellent les entres-sorties. Il
existe trs peu de programmes qui nen effectuent pas. Pour utiliser les ressources dun ordi-
nateur, il faut donc matriser les instructions que sait traiter un processeur et la gestion des
entres-sorties.
3 Langages de programmation
Concept de programme
Un programme permet la ralisation dune tche : il peut tre crit dans diffrents
langages
Langages
sous la forme dun algorithme : squence dactions lmentaires
sous la forme dun excutable : ensemble dinstructions permettant la ralisation du
programme
8
sous la forme dun source : utilisation dun langage de programmation, intermdiaire
entre les deux
Ncessit de passer dun langage un autre
algorithme source : programmation
source excutable : compilation
Programmation
Dnition
La programmation consiste traduire un algorithme dans un langage de programmation choisi
quation de Wirth (livre du mme nom)
Structures de donnes + Algorithmes = Programmes
tapes de programmation
Analyse des donnes (ux) du programme
Analyse de lalgorithme permettant de produire les donnes en sortie partir des don-
nes en entre
Chane de dveloppement
tapes du dveloppement
Ncessit de disposer doutils (applications) pour cela...
9
Deuxime partie
Utilisation de Linux
4 Prsentation de Linux (Unix)
GNU/Linux : systme multiutilisateur
Linux, issu dUnix, est un systme dexploitation multi-utilisateur et multi-tche
Le noyau contient les fonctionnalits du systme
Les bibliothques : interface de programmation (API)
Des interfaces homme/machine (IHM) textuelles ou graphiques
Des applications de gestion du systme (outils)
Le systme dexploitation tudi dans ce cours est Unix. Plus particulirement, la version utilise
lEMSE sappelle GNU/Linux. GNU signie Gnu is Not Unix et comprend une suite trs
importante de logiciels dits libres.
Cette suite de logiciels a dabord t dveloppe autour dUnix, do son nom pour ne pas la
confondre avec Unix. Linux vient des quatre premires lettres du prnom de linitiateur du projet
(Linus Thorsvald, nlandais) et de la dernire lettre de Unix. Plus prcisment, la distribution
installe est celle du distributeur Ubuntu. Les raisons de ce choix sont multiples, mais nexcluent
pas lintrt de ltude dune autre distribution ou dune autre version ou encore dun autre
systme dexploitation.
La premire raison du choix de Unix est son anciennet et sa stabilit. Unix a t conu en
1969 aux Bell Labs, chez AT&T par et pour des ingnieurs de dveloppement. Le langage de
programmation C a dailleurs t conu initialement pour la refonte de Unix et son portage
sur de nombreuses architectures matrielles. Unix a volu grce dimportantes contributions
de lUniversit de Berkeley. Ces apports ont t capitaliss dans les versions notes BSD et
fortement repris par la suite par dautres versions. Parmi les nouveauts de BSD, il faut noter
lapparition de TCP/IP, qui deviendra plus tard Internet. Les principales versions actuelles sont
System VR4, OSF/1, Linux, Solaris, FreeBSD, IBM AIX, HP UX...
Pour quun systme dexploitation puisse tre un Unix, il faut quil respecte la norme POSIX.
La deuxime raison du choix de Unix est donne par les orientations qui prvalent ds son
origine : simplicit, nombreux logiciels dans le domaine dit public (voire logiciel libre
), documentation importante, bote outils tendue, universalit (nombreuses architectures
matrielles), conance (normalisation et certication)...
10
Larchitecture logicielle du systme dexploitation Unix possde une structure en couches. En-
tourant le matriel et en donnant le premier niveau dabstraction, le noyau Unix ne fait pas
lobjet de ce cours, si ce nest par la prsentation gnrale de quelques concepts tels que les
inode du systme de chiers et les processus. Pour ceux que cela intresse, des enseignements
sont dispenss en deuxime anne du cycle ISMIN sur la construction interne du noyau Unix.
Le noyau Unix est programm en langage C, cest donc tout naturellement que son interface est
dcrite et accessible en langage C. Le langage C est le premier langage de programmation tudi
dans le cycle ISMIN. Les logiciels de base au-dessus du noyau sont, classiquement, classs en
interprteurs de commande appels shell en Unix, et outils et les utilitaires. Le cours porte sur-
tout sur ces deux parties. Dautres couches logicielles existent au-dessus de ces couches basses
pour donner des personnalits de gestion de la persistance avec les bases de donnes, de gestion
de la rpartition avec les middleware. . . Ces lments sont tudis lEMSE en deuxime et
troisime annes.
Pourquoi choisir Linux ?
Caractre universel dUnix/Linux
Multi-plateforme
Le systme est structur en couches =portabilit
Unix est prsent sur (presque) tous les matriels existants
Vision uniforme des donnes
Tous les ux de donnes sont vus comme des chiers, avec la mme smantique
Laccs aux services utilise toujours le mme mcanisme
Le systme est crit 95% en langage C
La plupart des systme Unix sont open source, dont Linux
Unix est le premier systme dexploitation qui nait pas t conu pour une architecture mat-
rielle particulire. Le caractre universel de Unix en fait lun des rares systmes dexploitation
(voire le seul) rencontr dans presque tous les types darchitecture matrielle existants ce
jour : des micro-ordinateurs aux super-calculateurs, en passant par les smartphones (sous An-
droid) et les box Internet. Cette performance est obtenue par la programmation en un langage
lui-mme trs largement rpandu (le langage C), par les nombreux outils en standard et dans
le domaine public, par la prsence doutils de communication locale trs puissants (les tubes)
et par des interprteurs de commandes aussi trs puissants (les shell). Les tubes et le shell sont
tudis plus loin.
Utilisation de Linux
Postes des salles informatiques
Lors de la mise sous tension de la machine =choix du systme
Soit Windows, soit Linux
11
Votre machine personnelle
Installation fortement conseille !
Machine virtuelle : solution plus simple, mais ncessite des ressources = virtualbox
(www.virtualbox.org)
Double boot : solution plus efcace, mais complexe mettre en oeuvre =voir les rootz
(install party)
5 Premire utilisation
5.1 Premiers pas
Session - Connexion
Tout utilisateur doit tre dclar , enregistr avec un nom de compte (login) et un mot
de passe (password)
La session dbute par une connexion effectue partir dun nom de compte et du mot
de passe associ
La n de la session intervient lorsque lutilisateur clt la session par le sous-menu clore
la session dans le menu
Dautres connexions sont possibles dans un terminal
Linterprteur de commande dans une fentre terminal sappelle le shell
Le shell attend une commande en afchant une invite de commande (prompt) par dfaut
$
chaque frappe sur ENTRE, le shell excute la commande et afche linvite de com-
mande
La connexion se termine avec la commande exit
Attention, Unix distingue les minuscules des MAJUSCULES dans lcriture des com-
mandes.
linvitation de la fentre graphique douverture de session, lutilisateur sidentie en donnant
son nom de compte et son mot de passe. Toutes les commandes lances par lenvironnement
graphique qui suivent appartiennent la mme session. La session dbute par une connexion
effectue partir du nom de compte. Lorsque lutilisateur ouvre une fentre de terminal en
tapant la commande xterm (ou une commande quivalente) ou en cliquant sur licne corres-
pondant, une nouvelle connexion est ouverte et prsente un message de bienvenue (tenu jour
par ladministrateur systme) contenant des informations gnrales sur les services offerts. Si
aucun message ne safche, cest que ladministrateur systme na aucune information parti-
culire donner. Linterprteur de commande, appel shell en Unix, indique quil attend une
commande en afchant un prompt (invitation taper une requte) qui est par dfaut la chane
de caractres $ . La connexion se termine lorsque lutilisateur se dconnecte normalement par
la commande exit, et lorsquautorise, par la commande CTRL-D. La session se termine lorsque
lutilisateur clique sur licone de n de session. La terminaison de la session ferme toutes les
fentres, y compris les terminaux, c.--d. les connexions, non encore ferms.
Premires commandes sur lenvironnement
12
id : afche le nom de connexion et le numro didentiant de lutilisateur et du groupe
auquel il appartient
logname : afche le nom de connexion
hostname : afche le nom de la machine
uname : afche le nom du systme dexploitation
clear : efface lcran
who : liste les utilisateurs connects sur le mme site
sam console Aug 2 09:45
pol ttyp2 Aug 2 12:17 (celia)
clo ttyp3 Aug 3 11:52 (:0.0)
| | | |
nom terminal date machine ou cran
exit : termine le shell (idem CTRL-D si congur)
su - nom_connexion : change temporairement lidentit de lutilisateur
Voici une premire liste de commandes taper pour connatre son environnement de travail.
Pour chacune de ces commandes, il est intressant de noter les informations suivantes :
id : le nom de lutilisateur est le nom de connexion; chaque utilisateur appartient un
groupe dutilisateurs ; chacun de ces noms correspond un numro utilis par le systme
dexploitation.
logname : cest le mme nom dutilisateur que celui fourni par id. hostname : chaque
machine porte un nom pour tre repre dans le rseau.
uname : la commande uname -a donne plus dinformations : le type de machine, le nom
de la machine fourni aussi par la commande prcdente, le numro de version du noyau
du systme dexploitation ( ne pas confondre avec le numro de version de la distribu-
tion), le nom du systme dexploitation (ici GNU/Linux) et la date de construction (par
compilation) du noyau du systme dexploitation.
date : les informations afches sont relatives au fuseau horaire indiqu avant lanne.
clear : les commandes tant tapes dans une fentre de terminal, la commande clear
permet deffacer lafchage des commandes prcdemment tapes et de leurs rsultats :
la fentre ne prsente plus que le prompt sur la premire ligne.
who : toutes les connexions sont listes ; il y en a donc au moins deux pour la personne
utilisant le poste de travail : la connexion douverture de session et la connexion de la
fentre de terminal utilise pour taper la commande who ; si un autre utilisateur sest
connect distance, son nom apparat aussi dans la liste.
exit : il est prfrable de taper cette commande plutt que CTRL-D car lorsque plusieurs
shell sont dmarrs en cascade dans la mme fentre de terminal, il est plus facile de
compter le nombre de exit taps que de CTRL-D.
su : la commande su permet un changement temporaire didentit ; la commande de-
mande le mot de passe de cet utilisateur et neffectue le changement didentit que si la
rponse est correcte ; loption tiret (su - domy) permet un changement didentit qui-
valent une connexion; le retour lidentit relle seffectue par exit ou CTRL-D.
xdpyinfo : cest un utilitaire qui afche des informations sur le serveur XWindow de la
machine sur laquelle la commande est excute. Il est utilis pour examiner les capacits
dun serveur, les valeurs prdnies pour les diffrents paramtres utiliss en communi-
cation entre les clients et le serveur et les diffrents types dcrans.
Mot de passe
13
Mot de passe = clef daccs au compte (chiers, courrier...)
Doit tre able (pas de prnom, pas de nom usuel, pas de mot courant, pas dana-
gramme...)
Le mme sur toutes les machines de lEMSE!
Attention, le changer rgulirement et ds quil existe un doute (que quelquun le
connaisse)
Pour changer son mot de passe, procdure spcique lEMSE
Avoir un compte implique des droits et des devoirs : se rappeler la charte signe lors de
louverture du compte
Lcole fournit un nom de compte et un mot de passe chaque utilisateur larrive lEMSE.
Pour changer de mot de passe, il faut utiliser un navigateur Web et suivre les instructions :
donner deux fois son mot de passe courant (la premire fois pour la connexion distante
par telnet, la deuxime pour autoriser le changement de mot passe)
puis deux fois le nouveau mot de passe (la premire fois pour le choisir et la deuxime
pour le conrmer et viter les erreurs de frappe donnant un mot de passe non voulu
voire non connu).
5.2 Interface graphique
Environnement graphique
Un environnement graphique consiste en :
Un programme appel le serveur qui gre lafchage et contrle le clavier et la souris
Des programmes appels clients qui offrent diverses fonctionnalits (terminal, dition de
texte, messagerie...)
Un client particulier, le gestionnaire de fentres, qui gre les fentres (dplacement,
iconication ...) et permet de lancer dautres clients grce des menus.
Un environnement de bureau intgr permet laccs convivial des applications
Il y en a plusieurs sous Linux : gnome ou KDE
Un environnement de bureau utilise un gestionnaire de fentre. gnome utilise metacity
gnome propose un certain nombre dapplications :
nautilus est le gestionnaire de chiers propos par gnome
gnome-terminal excute une fentre de terminal.
diteurs de texte
Un diteur de texte permet de saisir un texte brut, cod en ASCII ou Unicode, et de
lenregistrer dans un chier texte. Les styles offerts (soulign, italique...) sont trs limits
et aucune mise en forme nest possible. Plusieurs diteurs de texte sont disponibles sur
Unix
Lditeur Unix standard vi est trs puissant mais peu convivial : le mode par dfaut au
lancement est le mode commande
Lautre diteur parmi les plus populaires est emacs. Il est trs puissant aussi ; linverse
du prcdent, le mode saisie est prpondrant
gedit, un client gnome permet aussi de faire de ldition de texte, sans disposer des
14
fonctionnalits dEmacs
eclipse est un environnement de dveloppement intgr, comprenant un diteur
5.3 Commandes Unix
Syntaxe des commandes
La syntaxe gnrale dune commande Unix est la suivante : nom [-options] [argu-
ment1...] o nom est le nom de la commande options reprsente une ou plusieurs
options argument1 est le premier argument
Les options sont composes dun caractre aprs un tiret
Il est possible daccoler plusieurs options Par exemple, -asli pour les options -a -s -l -i
Si loption demande un paramtre, il est spar par un espace comme dans -o chier
Les crochets dsignent un lment facultatif, ils ne doivent donc pas tre taps.
Les points de suspension indiquent une rptition possible Par exemple, ls /etc /usr
pour plusieurs arguments.
Dans une commande, chaque mot est spar des autres par un espace ou une tabulation
La syntaxe type dune commande Unix comprend le nom de la commande (premier mot) suivi
ventuellement doptions (sous la forme -x) et complt par des arguments parfois optionnels.
Dans cette description, les points de suspension (...) signient quun lment (option ou argu-
ment) peut tre rpt plusieurs fois et un nom donn entre crochets ([ nom ]) correspond
un lment facultatif. Le sparateur de mots est le caractre espace et il sutilise aussi bien pour
sparer la commande et les options que les diffrents arguments entre eux. On peut aussi utili-
ser la tabulation. Cependant, il existe quelques diffrences de syntaxe selon les versions, le plus
souvent lies des origines diffrentes et gardes dans un souci de compatibilit. Par exemple,
un argument doption est le plus souvent spar par un espace (-x arg) mais il arrive quil soit
coll loption (-xarg). Enn, les commandes peuvent accepter le format des options la GNU
avec deux tirets (xxx). Les noms doption avec un seul tiret contiennent le plus souvent un
seul caractre alors que les noms doption la GNU sont des mots anglais en entier plusieurs
caractres.
Documentation
Toutes les commandes, tous les concepts systme... sont documents dans un manuel
accessible en ligne.
Les principales sections de cette documentation sont :
La section 1 pour les commandes Unix utiliss dans ce cours
La section 2 pour les appels systme utiliss dans les cours de deuxime anne
La section 3 pour les sous-programmes de bibliothques utiliss dans les cours dal-
gorithmique et de programmation en langage C
La section 4 pour les formats de chiers Unix : passwd, host...
La section 7 concerne les chiers spciaux
La section 8 concerne ladministration (dmarrage, gnration...)
Les commandes Unix prsentent quelques diffrences, particulirement au niveau des options
selon lorigine des systmes (System V, OSF/1, BSD, GNU/Linux...). Chaque utilisateur a donc
15
intrt consulter la documentation propre au systme utilis qui est la documentation de
rfrence absolue. Cette documentation est disponible sous forme lectronique.
Avant dtudier la commande man permettant de la consulter, voici son organisation. Tout
dabord, la documentation est classe en huit sections numrotes de 1 8. On peut gale-
ment trouver dautres sections, comme la section l pour les ajouts locaux ou la section n pour
les logiciels diffuss par les news. De mme, on trouve parfois un sufxe prcisant le domaine
(M pour maintenance, C pour communication. . .). Dautre part, chaque section contient une
entre intro dnissant la liste des lments de la section avec leurs particularits.
Utilisation de la documentation
Dans une fentre de terminal, la commande man permet daccder une page du manuel
en ligne Par exemple, man id pour la page de la commande id
Les rubriques des pages du manuel en ligne sont :
NAME pour le nom de la commande
SYNOPSIS pour le syntaxe
DESCRIPTION pour le fonctionnement dtaill.
Chaque page du manuel en ligne est prsente par morceau selon la taille de la fentre
de terminal.
Pour se dplacer dans une page du manuel, utilisez les touches suivantes :
ENTRE ou RETURN pour avancer dune ligne
ESPACE pour avancer dune page
b pour reculer dune page
/ suivi dun mot pour rechercher ce mot
n pour rechercher loccurrence suivante du mme mot
q pour quitter laide
6 Systme de chiers
6.1 Prsentation et concepts
Prsentation et concepts
Un lment de larborescence est repr par son nom prcd de
Son chemin absolu et unique depuis la racine commenant par / Par exemple :
/users/ismin2013/dupont/src/prog.c
Son chemin relatif par rapport au rpertoire courant Par exemple : src/prog.c,
prog.c...
Remarquez le double rle de /
Au dbut du nom absolu pour indiquer la racine de larborescence
16
Ailleurs comme sparateur de rpertoires
Lun des rles importants du systme dexploitation est de donner accs aux donnes mani-
puler, sachant que les programmes, dont font partie les commandes, sont eux aussi reprs par
leur contenant, les chiers. Cette section prsente les concepts affrents lorganisation et la
manipulation (copie, renommage...) des donnes : les rpertoires, les chiers (ordinaires) et les
chiers spciaux. La section se termine par le concept de droit daccs aux donnes.
La structure du systme de chiers se prsente comme un arbre invers comportant des noeuds
qui reprent les rpertoires et des feuilles les chiers. Le point dentre de larborescence est
appel racine et est not par un slash (/). Tout lment de larborescence peut tre rfrenc
de deux faons, soit par rapport la racine (le nom de llment est dit absolu ), soit par
rapport au rpertoire de travail courant (le nom est alors dit relatif ). On peut remarquer que
le caractre slash joue un double rle : en premier caractre dun nom, il symbolise la racine et
caractrise un nom absolu alors que partout ailleurs il ne sert que de sparateur de noms.
Commandes pwd, cd et ls
Dans un terminal, essayez les commandes suivantes :
pwd : afche le nom absolu du rpertoire de travail
cd : change le rpertoire de travail
Avec argument : nom du rpertoire destination (en absolu ou en relatif)
Sans argument : retour au rpertoire de connexion
ls : liste les entres dun rpertoire
Sans argument : les entres du rpertoire de travail
Avec arguments : les entres repres par les arguments Par exemple, ls, ls /, ls /usr,
ls .bashrc
Dans la commande prcdente (ls .bashrc), le chier dont le nom commence par un
point ( . ) est appel un chier cach
La commande ls possde de nombreuses options par exemple, a pour visualiser les
chiers cachs, l pour tous les attributs (type, droits, liens physiques, propritaire,
groupe, taille, date, nom)
Lutilisateur qui se connecte est situ sous son rpertoire de connexion et il peut en connatre le
nom avec la commande pwd (print working directory) qui afche le nom absolu du rpertoire
courant (ou rpertoire de travail).
Pour en connatre le contenu, il doit utiliser la commande ls qui liste les entres (non caches)
du rpertoire courant. Lutilisateur qui veut visualiser le contenu dautres rpertoires peut utili-
ser la commande ls avec le nom de ces rpertoires en arguments ou se dplacer dans larbores-
cence avant dutiliser cette commande sans argument.
La commande cd permet un dplacement sous le rpertoire pass en argument. Quelle que
soit sa position dans larborescence, lutilisateur peut tout moment revenir directement son
rpertoire de connexion grce la commande cd sans argument.
La commande ls permet dafcher les entres dun rpertoire avec plus ou moins dinformations
selon les options utilises. Par dfaut, ls afche seulement le nom des entres dites non caches,
c.--d. celles dont le nom ne commence pas par un point. Pour visualiser les entres caches, il
17
faut ajouter loption -a pour les afcher toutes. La commande ls dispose de beaucoup doptions
dont la plus utilise est loption -l qui permet dafcher les principaux attributs des entres :
type, droits, liens, propritaire, groupe, taille, date et nom.
Structure de larborescence
Larborescence contient 3 types dlments :
Des rpertoires qui sont des sortes de dossiers ou classeurs
Des chiers ordinaires contenant une suite squentielle doctets
Des chiers spciaux reprant les priphriques
Le systme dexploitation possde une vision uniforme de ces entres grce au concept
dinode : mme syntaxe, mmes commandes, mmes protections
Un inode contient ces informations :
Type de llment (chier, rpertoire, chier spcial)
Identit du propritaire et du groupe
Droits daccs Dates de modication...
Autres (taille, liens, adresses...)
La caractristique principale du systme de chiers Unix est doffrir une vision uniforme luti-
lisateur malgr la diversit des types dlments : rpertoires, chiers (traditionnels ou ordi-
naires) ou chiers spciaux.
Les chiers spciaux reprsentent les priphriques. Ainsi, lutilisateur dispose des mmes com-
mandes ou primitives, dune mme syntaxe et des mmes possibilits (protection, identication.
. .) pour accder un lment quil soit un rpertoire, un chier ordinaire ou un chier spcial.
Ensuite, le noyau effectue en interne un aiguillage sur le programme adapt selon la nature
de llment. Cette uniformit est assure grce la notion dinode qui est une structure de 64
octets servant de descripteur pour toute entre du systme de chiers. Clairement, cette unifor-
mit a des limites : par exemple, on ne peut pas crer une entre associe un priphrique
comme on cre un chier ordinaire et certaines commandes sont spciques un type dlment
(comme par exemple changer de rpertoire courant).
On retrouve aussi quelques diffrences au niveau de linode, en particulier ladressage des blocs
de donnes dun chier ordinaire est remplac dans le cas dun priphrique par un couple
dentiers servant dindex pour reprer le bon pilote. De mme, certaines informations nont pas
de signication pour tous les types dlments comme par exemple la taille dun chier qui ne
reprsente rien pour les chiers spciaux.
Pour pouvoir stocker des informations sur un support magntique tel quun disque, celui-ci doit
dabord tre format. Ensuite, le disque est dcoup en partitions (ou disques virtuels), chacune
tant alors utilise comme un disque part entire et se prsente comme une suite de N blocs
numrots de 0 N-1.
Pour stocker des donnes sur une partition, il faut y crer une structure adapte au type de
systme de chiers. Cette opration a pour objet de distinguer quatre parties sur le disque et
dy crer un rpertoire racine. Le premier bloc (bloc 0) est rserv pour contenir un programme
chargeur (amorce) qui sert au dmarrage du systme. Bien que seul le disque de dmarrage
ait besoin de cette amorce, le bloc 0 de chaque systme de chiers est rserv pour des raisons
dhomognit.
18
Le bloc suivant (bloc 1), appel super-bloc , sert de descripteur du systme de chiers. Il est
pour un systme de chiers lquivalent de linode pour un chier. Il contient les caractristiques
du systme de chiers telles que son nom, la date de mise jour, la taille des blocs...
Sy trouvent galement des informations de gestion telles que le dbut des listes dinodes et de
blocs libres. Un certain nombre de blocs partir du numro 2 sont rservs pour contenir la liste
des inodes. Ce nombre dinodes dtermine le nombre maximal de chiers que peut contenir ce
systme de chiers. Les blocs suivants (du premier bloc aprs la liste des inodes jusquau dernier)
servent pour stocker les blocs de donnes, ce qui comprend les blocs de donnes effectives,
c.--d. le contenu rel des chiers, les blocs libres et les blocs de chanage qui servent pour
ladressage.
Unix permet la cration de chiers vides : il suft de crer un inode seul sans lui associer de
donnes. Un systme de chiers peut tre satur de deux manires, soit par manque de blocs
de donnes libres, soit par manque de blocs dinodes.
Fichiers ordinaires
Un chier ordinaire ne possde aucune structure particulire : cest une suite doctets
Voici les commandes de base pour consulter le contenu dun chier de texte :
cat ch, more ch : afchage simple et page par page
head ch, head n ch : afchage des 10/n premires lignes
tail ch, tail n ch : afchage des 10/n dernires lignes
wc ch : afchage du nombre de lignes, de mots, de caractres
Options l, w et c pour les nombres de lignes, de mots et de caractres.
Un chier ordinaire ne comporte aucune structure particulire, cest une suite doctets et le seul
type daccs est la lecture squentielle. Un chier ordinaire est compos dune rfrence dans
un rpertoire (association entre son nom et son numro dinode), dun inode et des blocs de
donnes associs.
Priphriques
Un priphrique est un matriel (physique) connect lunit centrale dun ordinateur :
disque, souris, cran...
Les priphriques sont reprables par un nom dans larborescence (sous /dev)
Un pilote de priphriques (driver) est une fonction du systme dexploitation via les
oprations classiques autorises par les inodes : open, read, write, close
Un pseudo-priphrique est une entre gre comme un priphrique bien que non
associe un lment physique
La premire utilisation est le reprage de priphriques dits virtuels, c.--d. des par-
ties de priphriques (physiques), par exemple : les crans virtuels de lcran (phy-
sique), les partitions (logiques) du disque (physique)...
La seconde utilisation est la mise en vidence de fonctionnalits du systme dexploi-
tation dans larborescence, par exemple : la poubelle qui a pour nom /dev/null,
ou la gnration de nombres alatoires (/dev/random)
19
Unix offre lutilisateur une vision uniforme des entres-sorties en attribuant un nom dans
larborescence tous les priphriques, ce qui leur confre les mmes attributs quaux chiers.
Sous GNU/Linux, le rpertoire /dev (devices) est prvu pour contenir toutes les entres des
priphriques tels que hdX (X : a z) pour les disques, fd9 (0 9) pour les lecteurs de dis-
quettes...
Le systme dexploitation effectue un aiguillage interne soit vers le systme de chiers, soit vers
les pilotes de priphriques, en distinguant deux modes dutilisation : bloc et caractre.
Il existe un pilote pour chaque type de priphrique. Linode dun priphrique contient deux
entiers qui sont le majeur (major number) et le mineur (minor number). Le majeur sert din-
dex dans lune des tables an de slectionner le pilote du priphrique concern. Un pilote de
priphrique pouvant grer plusieurs units du mme type, par exemple plusieurs crans ou
plusieurs disques, le mineur permet de caractriser lunit particulire du type de priphrique
concern.
Parmi les priphriques en mode bloc, on trouve principalement les disques physiques, les par-
titions, les bandes magntiques, les disquettes... La dernire caractristique du mode bloc est
la plus importante car elle signie un accs aux informations en deux tapes : un transfert du
disque vers la mmoire du systme dexploitation et une copie entre la mmoire du systme
dexploitation et lespace utilisateur. Le noyau garde la mmoire des donnes quil a lues. La
lecture dune information peut donc ne pas conduire un accs au disque mais seulement une
copie de mmoire mmoire.
Il peut alors arriver quen cas de coupure de courant par exemple, il y ait incohrence, car des
donnes en mmoire nont pas t crites sur le disque. Aussi, lors du dmarrage du systme
dexploitation, si celui-ci saperoit quil y a eu arrt brutal de la machine, donc potentiellement
des incohrences, la commande fsck (le system check) teste et rtablit si possible automatique-
ment la cohrence.
Les principaux priphriques en mode caractre sont les crans, les imprimantes, les lignes de
communication... Les accs sont quasiment identiques ceux lis aux chiers ordinaires. La
lecture standard sur ce type de priphrique seffectue par ligne, c.--d. que les caractres lus
ne sont transmis quaprs la lecture dun code de validation (NEWLINE).
Lors de la lecture, diverses oprations, en particulier des corrections (effacement de caractres,
de mots ou de la ligne) sont possibles grces des codes de contrle. Il existe un autre mode
de lecture, appel brut (raw), dans lequel les caractres sont transmis au fur et mesure. Ce
mode de lecture caractre par caractre est utilis par divers utilitaires tels que des diteurs,
des logiciels de communication...
Les priphriques en mode bloc peuvent aussi tre grs en mode caractre pour permettre
certaines oprations avec de meilleures performances. Pour cela, un priphrique dispose dune
entre dans chacune des deux tables.
Le terme pseudo-priphrique qualie des entres qui sont gres comme des priphriques
donc par des pilotes bien quelles ne soient pas associes des lments physiques. On dis-
tingue deux catgories de pseudo-priphriques, ceux associs des priphriques virtuels et
dautres lis des fonctionnalits du systme dexploitation. Un priphrique virtuel correspond
une partie dun priphrique physique et les principaux sont les crans (ou terminaux) vir-
20
tuels et les partitions (ou disques logiques). Un terminal virtuel correspond une fentre dans
un environnement multifentre ou une connexion distante via un rseau local.
Tous les systmes de chiers disposent de quatre autres pseudo-priphriques standards, grou-
ps comme les priphriques sous /dev et qui sappellent null, zero, mem et tty. Llment
null sert de poubelle. Par exemple, il sert crer des chiers vides comme ceci : cp /dev/null
chier_vide. Les lments tty et mem reprent respectivement le terminal et limage mmoire
associs au processus en cours dexcution. Llment zero permet de gnrer des valeurs nulles.
Rpertoires
Le contenu dun rpertoire est un catalogue qui met en correspondance des noms de
chiers, de sous-rpertoires avec des numros dinode
Ds la cration par la commande mkdir rep, deux entres existent :
La rfrence au rpertoire parent (du rpertoire cr) note ..
La rfrence au rpertoire lui-mme note .
La suppression seffectue avec la commande rmdir rep
Pour supprimer un rpertoire, il faut quil soit vide : ne contenir que .. et .
Lafchage du contenu dun rpertoire seffectue par la commande ls
Loption -a permet de visualiser les entres . et ..
Loption -l permet dafcher les informations des inodes
Un rpertoire Unix est en fait un catalogue, c.--d. la mise en correspondance entre des noms
de chiers et des numros dinode. Ds sa cration avec la commande mkdir, tout rpertoire
contient deux entres qui sont notes . (point) pour le rpertoire lui-mme (auto-rfrence)
et .. (point point) pour le rpertoire de rattachement (parent) dans larborescence.
Pour supprimer un rpertoire avec la commande rmdir, il faut que celui-ci soit vide, c.--d. ne
contienne que les deux lments de dpart ( . et .. ).
Pour la racine (/), les deux lments . et .. sont confondus.
Principaux rpertoires
/boot : chiers de dmarrage du systme
/root : espace de travail de ladministrateur
/etc : chiers de conguration des programmes systme
/dev : priphriques
/var : chiers de donnes des programmes systme
/usr : programmes et outils pour les utilisateurs
/bin et /usr/bin : commandes Unix standards
/lib et /usr/lib : bibliothques
/home : espaces de travail des utilisateurs
/tmp : chiers temporaires
21
6.2 Manipulation des lments
Copie dlments
Commande cp
NOM
cp - Copier des chiers et des rpertoires
SYNOPSIS
cp [OPTION]... [-T] SOURCE CIBLE cp [OPTION]... SOURCE... RPERTOIRE cp
[OPTION]... -t RPERTOIRE SOURCE...
DESCRIPTION
Copier la SOURCE vers la CIBLE, ou de multiples SOURCEs vers le RPERTOIRE.
La commande cp accepte deux syntaxes :
La premire forme avec deux noms de chiers en arguments (cp c1 c2) permet de
dupliquer le premier chier pour crer le deuxime. Cette commande cre une nouvelle
entre dans le rpertoire, un nouvel inode et duplique les blocs de donnes.
La deuxime forme accepte deux arguments ou plus dont le dernier est un nom de r-
pertoire (cp c1 ... rep), ce qui permet de copier tous les arguments prcdents (des
chiers) sur ce rpertoire en leur donnant le mme nom relatif. Si on se place sur le
rpertoire de destination avant de faire la copie, on peut donner le nom du rpertoire
courant avec son auto-rfrence (point).
Il est intressant dutiliser les options -l et -i de la commande ls pour constater les diffrences
entre un original et sa copie au niveau des attributs.
En particulier, la comparaison montre que les numros dinode (premier champ) sont diffrents,
ce qui prouve une duplication des donnes.
Renommage ou dplacement dlments
Commande mv
NOM
mv - Dplacer ou renommer des chiers
SYNOPSIS
mv [OPTION]... [-T] SOURCE CIBLE mv [OPTION]... SOURCE... RPERTOIRE mv
[OPTION]... -t RPERTOIRE SOURCE...
DESCRIPTION
Renommer la SOURCE en CIBLE ou dplacer la SOURCE vers le RPERTOIRE.
Renommer un chier correspond en ralit au dplacement dune entre dun rpertoire.
Dailleurs, la commande sappelle mv (move). Cette commande accepte les deux mmes syn-
taxes que cp, c.--d. soit deux arguments pour renommer le premier chier par le second, soit
22
deux arguments ou plus avec en dernier un nom de rpertoire, ce qui revient dplacer les
premiers arguments sur le rpertoire donn en dernier avec les mmes noms relatifs.
De la mme manire que pour cp, si on se place sur le rpertoire de destination avant de faire
le dplacement, on peut donner le nom du rpertoire courant avec son auto-rfrence (point).
La commande mv permet aussi de renommer des rpertoires. La commande ls -li permet de
montrer que le numro dinode na pas chang, ce qui conrme que ni linode, ni les blocs de
donnes sur disque nont t modis.
Liens et raccourcis
Lien = chemin daccs un chier
Commande ln : cration dun lien, c.--d. ajout dune entre dans un rpertoire $ ln
R1/fbis R2/lien
Deux (ou plus de deux) chemins daccs un mme contenu
Nom local (alias) plus court, nom gnrique (par exemple, console)
Pas de liens entre SF diffrents
noter : les liens symboliques avec loption -s, quivalents aux raccourcis Windows
Une entre dun rpertoire permettant laccs un chier via son inode sappelle un lien (rf-
rence ou chemin daccs) et Unix permet la cration de liens multiples sur un mme lment.
Chaque cration dun lien (avec la commande ln) consiste ajouter une entre dans un r-
pertoire avec le mme numro dinode et le mme nom (possible uniquement si rpertoires
diffrents) ou un autre nom. Dans linode, le compteur de lien qui vaut un la cration du
chier est incrment dune unit chaque nouveau lien.
Il y a plusieurs raisons dutiliser des liens :
Un premier usage permet dutiliser un nom local donc plus court pour rfrencer un
lment. Ici, le lien joue le rle dalias et il vite une frappe longue, ce qui diminue le
risque derreur.
Les liens servent aussi dnir diffrents noms logiques pour un mme lment. Par
exemple, un administrateur qui reprsente ses partitions par des noms logiques na que
des liens modier lorsquil veut changer un disque et toutes ses procdures (dmarrage,
sauvegarde. . .) continuent tre oprationnelles si elles utilisent les noms logiques.
Suppression dlments
Commande rm
NOM
rm - Effacer des chiers et des rpertoires
SYNOPSIS
rm [OPTION]... FICHIER...
DESCRIPTION
23
Le programme rm efface chaque chier list. Par dfaut, il nefface pas les rper-
toires.
Exemples de rm
Suppression dun lien : $ rm R1/fbis Fichier toujours accessible par R2/lien
Suppression du dernier lien = libration totale $ rm R2/lien
La suppression dun lment de larborescence, avec la commande rm (remove), est en fait la
suppression dun lien, c.--d. la mise zro du numro dinode, la dcrmentation du nombre
de liens et dans le cas o ce lien est le dernier, la libration des blocs de donnes et de linode.
Par consquent, un chier ordinaire existe tant quil existe au moins un lien sur celui-ci, quil
sagisse du nom initial ou dun lien tabli ensuite. Ce type de lien prsente trois limitations. Tout
dabord, on ne peut pas tablir de liens entre systmes de chiers diffrents, chacun numrotant
ses inodes partir de deux. Ensuite, on ne peut pas non plus tablir un lien sur un rpertoire.
Dailleurs, pour un rpertoire, le nombre de liens correspond au nombre de sous-rpertoires
quil contient (y compris les deux entres . et .. ). Enn, linode contenant lidentiant
du propritaire des donnes, si un autre utilisateur cre un lien sur le mme chier, le premier
propritaire ne peut pas seul dcider de diminuer son quota de blocs de donnes.
On trouve souvent un alias qui rednit la commande rm en intgrant loption -i (alias rm=rm
-i). Cette prcaution est trs utile pour des utilisateurs dbutants car elle permet dviter des
suppressions effectues par erreur comme par exemple la suite dune erreur de frappe. Avec
lalias ci-dessus, lutilisateur va sapercevoir de son erreur quand le systme dexploitation de-
mandera conrmation avant de supprimer un chier garder et il pourra arrter la commande
avec CTRL-C.
Accs au contenu
Quelques commandes simples :
cat ch : afchage simple (et concatnation)
more ch ou less ch : afchage par page Requtes avec touches espace, RETURN,
help...
head ch : afchage dbut (10 lignes)
head -n ch : afchage dbut (n lignes)
tail ch : afchage de la n (10 lignes)
tail -n ch : afchage de la n (n lignes)
wc ch : afchage du nombre de lignes, de mots, de caractres
wc -l ch : afchage du nombre de lignes
wc -w ch : afchage du nombre de mots
wc -c ch : afchage du nombre de caractres
le ch : afchage de la nature du chier
Les premires commandes de ce transparent sont des premires commandes du type ltre. Un
ltre est un programme qui ralise un traitement sur un ot de donnes, ici caractris par un
chier texte en entre, pour fournir un ot de donnes en sortie. Ce concept plutt classique
prend tout son intrt grce aux diffrentes formes que peuvent prendre les ots de donnes.
Ce point sera dtaill dans la section sur le shell avec les redirections et les tubes.
Les ltres prsents maintenant sont des ltres dits simples . Ces commandes acceptent de
24
trs nombreuses options que nous navons pas le temps ni lespace de dcrire ici. La commande
de base pour afcher le contenu dun chier de texte est cat suivie du nom du chier. Cette com-
mande accepte plusieurs noms de chiers comme arguments, ce qui permet de les concatner
(cat signie concatenate) en un seul ot de sortie. Sans argument, la commande cat lit ce que
lon appelle lentre standard, c.--d. par dfaut le clavier, ce qui permet de crer rapidement
des petits chiers. La n de chier ou n de saisie est matrialise par la frappe des touches
CTRL-D. La commande cat nest gure pratique avec des chiers dont la taille dpasse celle
de lcran car lafchage dle de faon ininterrompue et seules les dernires lignes afches
restent visibles sur lcran la n de la commande.
La commande more (ou less) prend en compte le nombre de lignes de lcran pour offrir un
afchage page par page. Cette commande afche une page du chier suivie dune ligne din-
formation avec le pourcentage de texte dj afch et elle attend une requte du clavier. Si la
commande est appele avec plusieurs arguments, elle afche en plus un en-tte avec le nom du
chier entre deux lignes constitues de caractres deux points ( :). Les requtes les plus utili-
ses sont espace (ou z) pour afcher la page suivante, d pour afcher la demi-page suivante,
RETURN pour afcher la ligne suivante, v pour appeler un diteur sur le chier courant et q
(ou Q) pour quitter la commande avant la n. Enn, la requte h donne toutes les requtes
disponibles.
La commande tail afche la n du chier pass en argument. Par dfaut, tail afche les dix
dernires lignes. Cette commande permet galement de suivre dynamiquement lvolution dun
chier. En utilisant loption -f, elle afche la n du chier puis elle entre dans une boucle innie
avec afchage chaque seconde de toute nouvelle information qui est ajoute au chier.
La commande head afche le dbut du chier pass en argument. Par dfaut, head afche les
dix premires lignes. Cette commande ressemble la commande tail mais elle est plus limite
au niveau des options. En revanche, elle peut accepter plusieurs chiers comme arguments.
Dans ce cas, la commande head afche avant le dbut de chaque chier, un en-tte avec le nom
du chier.
Toujours pour un chier de texte, la commande wc (word count) permet de compter les lignes,
les mots et les caractres. Lorsque la commande est appele avec plusieurs arguments, elle
afche galement un total cumul.
Avant dappliquer un ltre sur un chier, il est prfrable de sassurer que le chier contient du
texte. La commande le permet de le savoir. Dans le cas dun chier texte, elle prcise si les
caractres sont uniquement des caractres ASCII ou sils contiennent dautres caractres, par
exemple des caractres accentus ISO-8859-X (X dans [1-15]).
6.3 Gestion des droits
Droits daccs
tout lment de larborescence sont associs trois droits daccs
En lecture : r pour read
En criture : w pour write
En excution : x pour execute
Pour trois catgories dutilisateurs
25
Le propritaire : u pour user
Le groupe : g pour group
Les autres : o pour others
Par exemple : rwx r-x r
lecture, criture et excution autorises pour le propritaire
lecture et excution autorises pour le groupe
lecture seule autorise pour les autres
Un groupe est un ensemble dutilisateurs ayant les mmes droits daccs par rapport
un chier dun utilisateur ; vous appartenez au groupe de votre promotion
Parmi les informations contenues dans linode de tout lment de larborescence, on trouve les
droits daccs dont les deux principes de base sont la simplicit et la conance accorde aux
utilisateurs.
La protection dun lment repose sur trois droits daccs qui contrlent les trois oprations de
lecture (droit r pour read), dcriture (droit w pour write) et dexcution (droit x pour execute).
Ces trois droits (rwx) sont appliqus trois catgories dutilisateurs qui sont le propritaire (u
pour user), (les membres de) son groupe dappartenance (g pour group) et les autres utilisateurs
(o pour other). Les identiants des deux premires catgories sont donns par la commande id.
Le systme de chiers distingue trois catgories dutilisateurs mais sans aucune hirarchie entre
elles. Ainsi, le contrle des accs seffectue en commenant par la recherche selon un ordre
dtermin de la catgorie (propritaire, groupe puis les autres), et ensuite, il se poursuit par la
vrication du droit concern.
Les droits daccs pour une catgorie ne servent rien pour les autres catgories. Par exemple,
si un chier possde le droit dexcution pour les catgories o et g mais pas pour le propritaire,
alors le propritaire se voit refuser une demande dexcution alors que tous les autres peut
excuter ce chier.
Tout systme de protection doit offrir des mcanismes permettant certaines oprations avec des
droits diffrents, en gnral plus puissants, comme par exemple la lecture du chier contenant
les mots de passe lors de la connexion. Ces mcanismes ne sont pas tudis dans ce cours. Nous
ne verrons pas les droits s pour lutilisateur (bit SUID) ni pour le groupe (bit SGID).
Pour information, il existe un dernier droit, le droit t (sticky bit) qui ne sera pas non plus
prsent. Pour des informations sur ces droits, se rfrer la bibliographie et aux pages du
manuel en ligne.
Tout systme dexploitation a galement besoin de comptes spcialiss, avec des droits impor-
tants, pour des tches dadministration. Sous Unix, il existe un compte root dit compte du
super-utilisateur (ou administrateur), caractris par son numro dutilisateur (lUID zro) qui
lui confre les pleins pouvoirs. Pour toute action avec cette identit, le systme ne contrle pas
les droits daccs et autorise lopration.
Modication des droits
Modication avec la commande chmod selon 2 mthodes :
1. Valeur numrique calcule sur le poids de rwx : r = 4, w = 2, x = 1. Par exemple :
26
chmod 741 chier rwx r x
chmod 600 chier rw-
2. Valeur littrale :
Catgories : u, g, o, ou tous (a = all = ugo)
Oprations : ajout (+), retrait (-), ou affectation (=)
Droits : r, w, x et dautres (t, s...) Par exemple : (chier avec les droits rw- )
chmod g+r chier rw- r
chmod ug+x chier rwx r-x
chmod a=r chier r r r
chmod u+wx chier rwx r r
chmod go-r chier rwx
La commande chmod (chmod droits chier...) permet de modier les droits daccs qui
peuvent tre donns sous une forme numrique absolue ou sous une forme littrale relative.
La modication des droits dun chier nest autorise qu son propritaire et bien sr au super-
utilisateur.
Une valeur numrique est compose de trois chiffres indiquant dans lordre, les droits du pro-
pritaire, ceux du groupe et ceux des autres. Chaque chiffre est obtenu par addition des valeurs
des droits positionner en sachant que le droit r (lecture) vaut quatre, le droit w (criture)
deux et le droit x (excution) un.
La valeur littrale est compose de trois caractres prcisant dans lordre la catgorie concer-
ne, lopration effectuer et le droit modier. La catgorie peut prendre une ou plusieurs
valeurs parmi les lettres u pour le propritaire, g pour le groupe, o pour les autres ou a pour
lensemble (a quivaut ugo et cest la valeur par dfaut). Lopration peut prendre une valeur
parmi les caractres + pour lajout, - pour le retrait ou = pour laffectation qui correspond au
positionnement du droit indiqu et au retrait des autres. Le droit peut prendre une ou plusieurs
valeurs parmi les lettres r pour la lecture, w pour lcriture ou x pour lexcution. Le droit peut
tre omis si on souhaite supprimer tous les droits.
Cas particuliers
Toute opration sur un chier contrle partir des droits r, w et x
Cration dun chier = ajout du numro dinode et du nom dans un rpertoire
cration contrle par le droit w du rpertoire daccueil
Idem pour le renommage (changement de nom) et la suppression (mise 0 du numro
dinode) Attention : suppression dun chier conditionne par les droits du rpertoire et
non pas ceux du chier
Pour un rpertoire, x autorise la traverse et le positionnement sous celui-ci
Pour un chier spcial, x na pas de signication
Toutes les oprations sur un chier sont contrles partir des droits r, w et x. Aussi, pour
toute opration autre quune lecture, une criture ou une excution, il faut examiner quoi elle
correspond exactement.
La cration dun chier qui correspond lcriture dune entre dans un rpertoire est contrle
par le droit dcriture dans ce rpertoire. Le renommage ou le dplacement dun chier sont
aussi contrls par le droit dcriture dans les rpertoires.
27
En outre, la suppression dun chier tant ralise par la mise zro du numro dinode dans le
rpertoire, cest encore le droit dcriture qui sapplique. Un utilisateur peut donc avoir le droit
de supprimer un chier mme sil na pas le droit de le lire, de le modier ni de lexcuter.
Dautre part, le droit x dun rpertoire autorise la traverse et le positionnement sous celui-
ci. Un utilisateur peut donc avoir accs un chier sans avoir le droit de lire le contenu du
rpertoire qui le rfrence ni des rpertoires parents dans larborescence. Cest une manire de
protger par le secret des donnes tout en donnant accs certains utilisateurs avertis.
6.4 Le shell
Gnralement, les systmes dexploitation proposent deux manires de lancer des commandes.
La premire dentre elles a t dcrite prcdemment : cest linterface graphique gnome pour
GNU/Linux lEMSE. La deuxime forme a aussi commenc tre utilise, cest ce que lon
appelle le mode commande via les fentres de terminal.
Le mode commande est prsent plus en dtail dans cette section par le biais de linterface
correspondante appele le shell en Unix. Comme cela a dj t indiqu auparavant, mme si
les environnements graphiques multifentres permettent de ne taper que peu de commandes,
lutilisateur averti connat les commandes correspondantes et aucun environnement graphique
multifentre ne pourra atteindre la puissance dexpression du mode commandes .
En outre, les commandes permettent de mieux apprhender et comprendre les concepts. Cette
section dnit le double rle dun shell : interprteur et langage de programmation.
Le shell est linterface homme/machine Unix. Il en existe plusieurs qui diffrent par la syntaxe
mais aussi par les fonctionnalits offertes. Ici, nous tudions bash. Le shell possde un double
rle, celui dinterprteur de commandes ainsi que celui de langage de programmation et
ce titre, il gre des variables et des fonctions et dispose de structures de contrle (boucles,
conditionnelles...). Ces fonctionnalits servent essentiellement pour lcriture de procdures
(appeles shell-scripts) qui permettent chacun de paramtrer une session et de dvelopper
ses propres outils. Dans ce module dintroduction, le shell est principalement tudi dans son
premier rle dinterprteur de commandes.
Espace de travail
Chaque utilisateur dispose de son propre espace de travail
quil doit grer : permissions, contenus, archiver, organiser...
quil doit utiliser : documents, TP, projets...
Chaque utilisateur appartient un groupe : promotion P2013
Reprsent par un noeud dans larborescence du systme
Pas de quota lcole, mais surveillance...
Interprte de commande
Principe : boucle innie :
28
1. Afchage du prompt ( $ ) dattente de lecture au clavier
2. Lecture dune commande (RETURN)
3. Analyse syntaxique (dcoupe en mot)
4. Substitution (caractres spciaux)
5. Excution de la commande
Exemple :
Le shell afche $ et se met en attente
Lutilisateur tape ls -l /usr
Le shell reconnat trois mots : commande, option et argument
Il cre un processus qui excute la commande ls avec loption -l et largument /usr
Il attend la n du processus avant dafcher $
Sortie de la boucle (dconnexion) par exit ou par CTRL-D ( viter)
Lalgorithme gnral du shell est relativement simple. On sort de la boucle innie soit par lex-
cution de la fonction exit, soit par la frappe de la touche CTRL-D.
Si le shell associ est celui de la connexion, cette sortie provoque la dconnexion de lutilisateur
et la n de ce processus (et la fermeture de la fentre dans laquelle sexcutait le shell).
Pour analyser les commandes lues au clavier, le shell dcoupe la ligne lue en mots, dont le
premier est considr comme la commande excuter. Pour effectuer ce dcoupage en mots, le
shell prend en compte les caractres dnis comme sparateurs (par dfaut espace, tabulation
et NEWLINE) mais aussi certains caractres spciaux, appels mta-caractres qui sont alors
substitus pour remplir leur rle.
Redirections
la connexion, le shell dispose de deux ots de donnes : lentre standard (clavier) et
la sortie standard (cran)
Redirection = association de lentre ou de la sortie standard vers dautres ots
Entre : utilisation de < Exemple : write paul < message
Sortie : utilisation de > (crasement du chier) Exemple : ls -l /usr > chier
Sortie : utilisation de > > (ajout la n du chier) Exemple : ls -l /etc > > chier
Tubes (pipes) : utilisation de | entre deux commandes, dont la sortie de la premire est
associe lentre de la seconde Exemple : wc -l /etc/password | wc -l
Lorsque le shell est activ, il dispose de deux ots de communication qui sont lentre standard
et la sortie standard. Lentre standard est associe par dfaut au clavier et la sortie standard
est associe par dfaut lcran. La modication de lune de ces affectations par dfaut sappelle
une redirection et elle nest valable que le temps de la commande sur laquelle elle porte.
Dans son travail dinterprtation, le shell traite en premier les redirections et cela indpendam-
ment du rsultat des commandes associes. Par consquent, lorsquune commande choue, la
redirection associe a quand mme t effectue.
La redirection la plus utilise est celle de la sortie standard avec pour objectif la rcupration
du rsultat dune commande ailleurs qu lcran, le plus souvent dans un chier. Pour cela, il
suft dajouter sur la ligne dune commande le caractre suprieur suivi du nom du chier de
29
redirection (> nom_ch). Lexcution de la commande avec la redirection entrane la cration
dun chier de nom nom_ch.
Dans le cas de la sortie standard, si un tel chier existe dj, son contenu initial est perdu.
Si lon souhaite conserver linformation contenue dans un chier de redirection, il faut utiliser
deux fois le caractre suprieur ( nom_de_chier) pour que le rsultat soit ajout la n du
chier. Comme pour une redirection simple, si le chier de redirection nexiste pas, il est cr
automatiquement.
La redirection de lentre standard permet une commande dutiliser comme donnes le
contenu dun chier la place dune lecture clavier. Pour cela, il suft de placer le caractre
infrieur suivi du nom de chier de redirection (< nom_ch). la diffrence dune redirection
en sortie, le chier de redirection doit exister sinon cela provoque une erreur avec un message
du style no such le ou cannot open . La redirection de lentre standard est peu utilise
car la plupart des commandes acceptent un nom de chier en argument. Par exemple, la com-
mande cat permet de visualiser soit lentre standard (appel sans argument), soit le contenu
dun chier (dont le nom est pass en argument. Une redirection ne ferait qualourdir lcriture
(cat < chier est quivalent cat chier).
Un tube est une zone mmoire permettant deux processus de communiquer de faon synchro-
nise, c.--d. que lcrivain est mis en attente lorsquil ny a plus de place disponible et de mme,
le lecteur est mis en attente quand il ny a pas dinformation prte. Ce principe est utilisable au
niveau du shell avec le caractre barre verticale ( | ) entre deux commandes. Cela permet de
rediriger la sortie standard de la premire sur lentre standard de la seconde. Avec un tube, le
rsultat de la premire commande nest pas accessible.
Parfois, il est utile de garder une telle information intermdiaire. Pour cela, la commande tee
duplique lentre sans la modier. Linformation fournie en entre tee est rpercute en sortie
et une copie est faite dans un chier dont le nom est pass en argument : par exemple, ls | tee
chier | wc -l.
Les tubes sont trs utiliss avec les ltres. Le principal intrt des ltres est de pouvoir les com-
biner grce des tubes pour cumuler leurs effets sans avoir besoin de chiers intermdiaires.
En effet, le principe consiste dcomposer un traitement complexe en plusieurs actions plus
simples et dvelopper un outil pour chaque action de base, ce qui est plus facile que dcrire
directement un programme adapt au traitement global. Ensuite, les ltres dvelopps peuvent
tre rutiliss dans la dcomposition dun autre traitement. En revanche, on rencontre une cer-
taine redondance qui provient soit du dveloppement simultan doutils analogues dans des
milieux diffrents, soit dune volont disoler certaines fonctions juges trs importantes.
Caractres spciaux
Caractres spciaux : permettent de paramtrer linterprtation des commandes
Le texte entre deux simples quotes (texte) nest pas interprt
Aprs un \, le caractre qui suit nest pas interprt
Dans un texte entre guillemets ("texte"), le caractre \ et les sparateurs ne sont pas
interprts.
Pour rfrencer des noms de chiers :
30
* : chane de caractres quelconques
? : un seul caractre, quelconque
[...] : un seul caractre parmi ceux cits
[...] : un seul caractre hors de ceux cits
Le caractre est remplac par le rpertoire de connexion; user est remplac par le
rpertoire de connexion de user
Le caractre ; permet de placer plusieurs commandes sur une mme ligne
En dehors des caractres utiliss pour les redirections et les tubes, le shell gre de nombreux
autres caractres spciaux, permettant de paramtrer linterprtation des commandes.
Un texte donn entre quotes (...) nest pas interprt par le shell mais considr comme un
simple mot. Cela permet en particulier dinclure dans un argument des caractres spciaux
(espace, caractres de redirection. . .).
Le caractre antislash (\n) prcise que le caractre suivant ne doit pas tre interprt par le
shell, ce qui permet dutiliser un caractre spcial comme la quote. La caractre antislash nest
effectif que pour le caractre suivant, il faut le rpter autant de fois que de caractres ne pas
interprter.
Les caractres dun texte donn entre double quote ("...") ne sont pas interprts sauf \ (annu-
lation du sens).
Plusieurs caractres jouent le rle de jokers pour rfrencer des noms de chiers, en particu-
lier le caractre toile ( * ) remplace une chane de caractres quelconque et le caractre point
dinterrogation ( ? ) remplace un caractre quelconque. Le caractre toile peut reprsenter
la chane vide. Par ailleurs, utiliser seul, le caractre toile reprsente la liste des chiers non
cachs du rpertoire courant (quivalent au rsultat de la commande ls). Il faut noter que le
caractre point en dbut du nom dun chier doit tre donn explicitement et non pas avec un
joker . Cest pourquoi ltoile seule ne repre pas les chiers cachs. Il en est de mme pour
le caractre slash. Par contre, ailleurs quau dbut du nom, le point est trait comme les autres
caractres.
Lutilisation des crochets permet de dnir un caractre quelconque appartenant lensemble
dni entre les crochets. Cet ensemble peut tre dni partir dune liste de caractres juxtapo-
ss ([aeiou]), ou partir dun intervalle pour inclure tous les caractres selon lordre ASCII entre
les deux bornes spares par un tiret ([0-9]), ou un mlange des deux ([0-9aeiou]). On peut
galement spcier le complment de lensemble indiqu en mettant un point dexclamation
( !) en premier caractre juste aprs le crochet ouvrant ([ !...]). Pour prendre en compte dans
lensemble lun des caractres servant dnir cet ensemble, il suft de les placer ailleurs que
l o ils ont une signication. Ainsi, le crochet ouvrant peut tre plac nimporte o et le point
dexclamation nimporte o sauf en premier, le crochet fermant doit tre plac en premier et le
tiret en premier ou en dernier. Pour ces deux derniers lments, la notion de premier caractre
est tendue au deuxime lorsque le premier est le point dexclamation.
Une redirection (en entre ou en sortie) ne faisant intervenir quun seul chier, il nest pas trs
logique dutiliser les caractres spciaux dinterprtation des noms de chiers qui servent le plus
souvent pour reprsenter en ensemble dlments. Mais sils sont utiliss quand mme, le shell
ne les interprte pas (les caractres correspondants tant alors des caractres ordinaires) sauf
si linterprtation conduit un seul nom de chier.
31
La touche ESCAPE offre un mcanisme de complmentation des noms de chiers selon le prin-
cipe suivant : lorsque lutilisateur tape un nom de chier, deux appuis successifs sur la touche
ESCAPE entranent lafchage automatique du reste du nom. Si plusieurs solutions sont pos-
sibles (cas de plusieurs chiers avec mme dbut de nom), le shell afche tous les caractres
communs et attend que lutilisateur continue la frappe. Et dans le cas o aucun nom de chier
ne commence par le texte dj tap, un bip est mis.
Historique
Le shell mmorise les commandes tapes, et permet de les afcher et de les relancer.
La commande history permet dafcher lhistorique
Les touches che vers le haut ou vers le bas permettent de naviguer dans
lhistorique
Sur une ligne slectionne,
les touches ches vers la gauche ou vers la droite permettent de naviguer
sur cette ligne
Les touches Dbut, Fin, Suppr, Backspace ont leur signication usuelle
La touche Entre relance lexcution de la commande
Conguration du compte
tapes du dmarrage lors dune connexion initiale
Les commandes places dans le chier /etc/prole sont excutes
Les commandes places dans le chier /.prole sont ensuite excutes
tapes du dmarrage lors dune autre connexion
Les commandes places dans le chier /.bashrc sont ensuite excutes
Ces chiers permettent de congurer le compte au dmarrage (man bash)
6.5 Gestion des activits
Gestion des processus
Toute commande lance conduit la cration dun processus Unix
La commande ps permet de visualiser les processus de la machine
ps : les processus actifs de lutilisateur
ps x : tous les processus de lutilisateur
ps ax : tous les processus de tous les utilisateurs
La commande top permet un afchage rpt des processus
Sous gnome, sous le menu Systme / Administration, lapplication Moniteur systme
gre les processus
La commande kill permet darrter un processus, en indiquant son numro (pid)
32
Excution diffre
Excution synchrone
Dans un terminal, le shell attend la n de la commande, pour passer la suivante =
excution synchrone
La commande sexcute en mode foreground
Excution diffre
Dans le cas dune excution asynchrone, le shell nattend pas la n =mode background
Ajout de & la n de la commande
jobs : liste des tches du shell
fg et bg : changement de mode
CTRL-Z : stopper la commande active choisir ensuite un mode
Recherche de chiers
nd
nd rpertoire critres... : recherche de chiers satisfaisant les critres sous le r-
pertoire indiqu
Exemples de critre : -name, -type
Exemple : nd . -type f -name *.c
locate : recherche dans tout le systme, partir dune base de donnes journalire
which commande : afche le nom absolu de la commande
Rechercher des chiers dans le menu Raccourcis de gnome
Commandes bien utiles
Recherche de donnes : grep
Gestion des donnes : sort, cut, awk
Archivage et sauvegarde : tar, rsync
Espace de travail : df, du, gzip
33

Das könnte Ihnen auch gefallen