You are on page 1of 48

Cours de Linux

Habib DHAHRI

2014-2015

Table des matires

Chapitre 1 : Prsentation de linux


1.

Dfinition dun systme dexploitation ....................................................................................... 1

2.

Quest quun logiciel Libre ........................................................................................................... 1

3.

Logiciel Libre / logiciel propritaire ............................................................................................. 1

4.

Bref historique de Linux ............................................................................................................... 2

5.

Les distributions de Linux ............................................................................................................. 2

6.

Installation de UBUNTU ............................................................................................................... 3

7.

Composants de Linux ................................................................................................................... 8

8.

Un Shell ........................................................................................................................................ 9

Chapitre 2: Systme de fichiers


1.

Le systme de fichiers ................................................................................................................ 11

2.

Les divers types de fichiers ........................................................................................................ 11

3.

Nomenclature des fichiers ......................................................................................................... 12

4.

Les chemins ................................................................................................................................ 12


4.1.

Structure et nom de chemin .................................................................................................... 12

4.2.

Un chemin absolu ou complet : .............................................................................................. 12

4.3.

Chemin relatif................................................................................................................................ 13

5.

Rpertoire personnel ................................................................................................................. 13

6.

Le tilde ........................................................................................................................................ 13

7.

Les commandes de base ............................................................................................................ 14


7.1.

Lister les fichiers et les rpertoires ...................................................................................... 14

8.

Manipulation des dossiers ......................................................................................................... 15

9.

Manipulation des fichiers........................................................................................................... 16

10.

Les liens symboliques ......................................................................................................... 19

11.

Le Manuel de Linux ............................................................................................................ 20

Chapitre 3: Connexion des utilisateurs


1.
1.1.

La gestion des utilisateurs .......................................................................................................... 21


Ajouter un utilisateur : adduser ......................................................................................... 21

1.2.

La commande passwd ........................................................................................................ 21

1.3.

Supprimer le compte d'un utilisateur (non connect) ...................................................... 22

2.

Gestion des comptes.................................................................................................................. 22

3.

Hirarchie de comptes ............................................................................................................... 23

4.

Contenu du fichier /etc/passwd ................................................................................................ 23

5.

Notion d'identifiant .................................................................................................................... 23

6.

Le fichier /etc/shadow ............................................................................................................... 24


7.1.

Le fichier/etc/group................................................................................................................... 25

7.2.

Gestion des groupes .................................................................................................................. 26

Chapitre 4: Protection des fichiers


1.

Droits et utilisateurs................................................................................................................... 27

2.

Modification des droits .............................................................................................................. 28

3.

2.1.

Par symboles ................................................................................................................................. 28

2.2.

Par base 8 ....................................................................................................................................... 28

Masque des droits...................................................................................................................... 29


3.1.

Restreindre des droits automatiquement.......................................................................... 29

3.2.

Calcul de masque ......................................................................................................................... 29

4.

Changer de propritaire et de groupe ....................................................................................... 30

5.

5. Droits daccs tendus ........................................................................................................... 30


5.1.

SUID et SGID .................................................................................................................................. 30

Chapitre 5: Recherche des fichiers


1.

Considrations gnrales ........................................................................................................... 32

2.

Critres de recherche ................................................................................................................. 32

3.

2.1.

Commandes ................................................................................................................................... 33

2.2.

Critre .............................................................................................................................................. 34

Crer des archives ...................................................................................................................... 34


3.1.

Compression de fichier : gzip, bzip2 .................................................................................... 35

Chapitre 6: Les redirections


1.

Principe ...................................................................................................................................... 36

2.

En sortie ..................................................................................................................................... 36

3.

En entre .................................................................................................................................... 37

4.

Les canaux standards ................................................................................................................. 38

5.

Filtre ........................................................................................................................................... 38

6.

Pipelines / tubes......................................................................................................................... 39

Chapitre 7: Gestion des processus


1.

Les processus systme (daemons) ............................................................................................. 40


2.

3.

Excution d'une commande ...................................................................................................... 41


3.1.

4.

Les processus utilisateurs.................................................................................................................. 40


Le mode en arrire-plan ........................................................................................................... 41

La commande ps ........................................................................................................................ 41

Chapitre 1: Prsentation de Linux


1. Dfinition dun systme dexploitation
Un systme dexploitation est un ensemble de programmes qui coordonnent le
fonctionnement des diffrents composants matriels et logiciels dun systme informatique.
Exemple dOS: Windows, Unix, Mac OS, Ms Dos

2. Quest quun logiciel Libre


Un programme informatique, que ce soit un noyau ou un logiciel, est constitu de nombreuses
lignes de code, crites dans un langage de programmation (le langage C dans le cas du noyau
Linux). Ce code n'est gnralement pas utilisable en tant que tel. Il faut passer par la phase de
compilation qui transforme le code source en programme excutable, souvent appel binaire.
Il suffit d'avoir le binaire pour utiliser le programme.
Quand on achte un logiciel (Microsoft Office par exemple) ou un systme d'exploitation
(Windows par exemple), on a un CD qui contient le binaire, mais pas les sources. Il est donc
impossible de savoir comment le programme est conu. Par consquent, on ne peut pas
modifier le programme. On peut seulement l'utiliser et ventuellement le copier l'identique.

3. Logiciel Libre / logiciel propritaire


Les logiciels propritaires sont donc les logiciels dont une licence, souvent payante, ne donne
qu'un droit limit d'utilisation. On n'a la plupart du temps accs qu'aux binaires de ces
logiciels. Certains logiciels propritaires sont gratuits, on les appelle alors des freewares.
(Windows est un OS propritaire dont le code source est jalousement gard par Microsoft.
Imaginez que c'est un peu comme le Coca-Cola : personne ne connat la recette de fabrication
(y'a bien des gens qui essaient d'imiter, mais bon). On ne peut donc pas le modifier ou
regarder comment il fonctionne l'intrieur.)
Les logiciels libres sont les logiciels que l'ont peut librement utiliser, changer, tudier et
redistribuer. Cela implique que l'on ait accs leur code source (d'o le terme quivalent
Open Source).

4. Bref historique de Linux


UNIX est un systme d'exploitation, cr en 1969 par Ken Thompson et Dennis Ritchie. Sa
conception a t particulirement soigne, et apportait plusieurs innovations, notamment le
choix d'utiliser plusieurs outils simples et spcialiss, plutt que des logiciels complexes tout
faire. Il est l'un des systmes d'exploitation les plus populaires au monde, en raison du grand
nombre d'architectures qu'il supporte.
Project GNU: est un projet lanc par Richard Stallman, un chercheur du MIT.
Le but est de dvelopper un OS complet, libre et qui se base sur Unix afin de contrer le
dveloppement croissant des logiciels propritaires(le prix Unix devenait de plus en plus
payant).
Cependant, en 1991, le projet GNU n'avait toujours pas de noyau et tournait sur des Unix
propritaires.(Stallman avait crer les programmes de base:(programme de copie de fichier,
suppression de fichier, diteur de texte).
En 1991, Linus Torvalds, un tudiant de luniversit dHelsinki, dveloppe un noyau en
s'inspirant des principes du systme d'exploitation UNIX.
Le nom du systme prend le nom de Linux (en rfrence son crateur).
Le projet GNU (programmes libres) et Linux (noyau d'OS) ont fusionn pour crer
GNU/Linux.

5. Les distributions de Linux


GNULinux est un systme Unix complet, avec un noyau maintenu par Linus Torvalds et
diverses applications lies au systme. De nombreux outils, tels des compilateurs, des
diteurs, des interfaces graphiques, existent.
Il serait trs difficile pour beaucoup dutilisateurs de construire un systme complet en
partant du noyau, des sources des utilitaires, commandes, applications.
Linux est le plus souvent diffus sous forme dune distribution, un ensemble de programmes
(noyau, sources des utilitaires, commandes, applications) formant aprs installation un
systme complet. Chacune des distributions a ses avantages et ses inconvnients. Dbuter
avec Linux, cest surtout choisir une distribution qui corresponde avec les usages quon attend
du systme.
RedHat est la premire socit cre ayant pour objectif de rassembler tout ce qui est
ncessaire dans une distribution. Elle a t fonde en 1994 en Caroline du Nord. Ses objectifs
2

furent le dveloppement de solutions logicielles, du support tlphonique, du consulting sur


site, des formations.
Pour les dveloppeurs, RedHat met sa distribution disposition sur Internet. Cette socit la
vend aussi avec une documentation, cest la version dite Server Enterprise .
Parmi les distributions les plus utilises, on trouve RedHat, Debian, Slackware (toutes trois
gratuites) et SuSE, Mandrake (toutes deux payantes).

6. Installation de UBUNTU
Les phases principales de linstallation dune machines Gnu/Linux sont les suivantes :
Amorage de linstallation
Partitionnement du disque dur
Installation du chargeur de boot
Configuration du rseau
Dtermination du fuseau horaire
Initialisation du mot de passe root
Choix et installations des logiciels
Paramtrages post-installation
Lorsque votre ordinateur aura dtect votre support Live DVD/USB et affich brivement un
cran de chargement, lcran de Bienvenue apparatra. Au moyen de la souris, choisissez
votre langue dans la liste affiche gauche, puis appuyez sur le bouton intitul Essayer
Ubuntu. Ds lors, Ubuntu dmarrera et fonctionnera directement partir de votre support

Live DVD/USB.
Lcran Prparation de linstallation dUbuntu vous permettra galement de savoir si vous
avez assez despace disque et si vous tes connect { une source dnergie (dans le cas o
vous installez Ubuntu sur un ordinateur portable fonctionnant sur la batterie). Lorsque vous
avez slectionn vos choix, cliquez sur Continuer.

Si vous ntes pas connect { Internet, linstallateur vous demandera de choisir un rseau sans
fil (si disponible).

Linstallateur dUbuntu dtectera automatiquement tout systme dexploitation install sur


votre machine et prsentera des options dinstallation bases sur votre systme. Les options
listes dpendent de votre systme et ne seront peut-tre pas toutes disponibles :
Pour les configurations de dual-boot plus complexes, vous devrez configurer les partitions
manuellement.

Aprs avoir choisi le type dinstallation, cliquez sur Continuer ou Installer maintenant. Si vous
choisissez Autre chose, configurez les partitions suivant vos besoins. Lorsque vous tes
satisfait de la manire dont les partitions seront cres, cliquez sur le bouton Installer
maintenant en bas droite pour continuer.
Pour rduire le temps ncessaire { linstallation, Ubuntu continuera le processus dinstallation
en tche de fond, pendant que vous configurez les informations utilisateur importantes - telles
que votre nom dutilisateur, mot de passe, paramtrage du clavier et fuseau horaire par
dfaut.
Ubuntu a besoin dinformations { votre sujet afin de paramtrer le compte de lutilisateur
principal sur votre ordinateur. Lorsquil sera configur, votre nom apparatra sur lcran de
connexion ainsi que dans le menu utilisateur
5

Au cours de linstallation, vous avez la possibilit de vous connecter { votre compte Ubuntu
One existant ou den crer un nouveau. Renseignez toutes les informations ncessaires telles
que votre adresse de courriel et votre mot de passe et cliquez sur Continuer.
Si vous ne voulez pas utiliser Ubuntu One ou si vous voulez crer votre nouveau compte plus
tard, cliquez sur Me connecter plus tard.

Durant la progression de linstallation, un diaporama vous prsentera une introduction


quelques-unes des applications incluses par dfaut avec Ubuntu.

Aprs vingt minutes environ, linstallation est termine et vous pourrez cliquer sur
Redmarrer maintenant pour rinitialiser votre ordinateur et lancer Ubuntu.
Une fois linstallation termine et aprs avoir redmarr votre ordinateur, vous serez accueilli
par lcran de connexion dUbuntu. Lcran dconnexion vous prsentera votre nom
dutilisateur et vous devrez taper votre mot de passe pour continuer.

7. Composants de Linux
Linux est un systme dexploitation, constitu du noyau, dun interprteur de commandes et
dun grand nombre dutilitaires (Figure 1).
Le noyau assure la gestion des ressources physiques (processeur, mmoires, priphriques)
et logicielles (processus, fichiers...).
Comme cest le cas avec tout systme dexploitation, lutilisateur naccde pas directement au
noyau mais un interprteur de commandes : le shell
Linterface utilisateur de linux est donc constitue :
Dun ensemble de programmes excutables : les commandes.
Du shell luimme, interprteur de commandes mais aussi, plus que dans nimporte quel
autre systme dexploitation, langage de commandes permettant dcrire des programmes.
Parmi les utilitaires, on trouve :
Diffrents langages de programmation : C++, Fortran, Java, Perl, TCL/TK, GTK;
Des utilitaires de dveloppement et maintenance de logiciels : make, assembleur, diteurs de
lien ;
Des outils de bureautique : messagerie, traitement de textes ;
Des diteurs de textes (sed, vi et vim, emacs, gnotepad) ;
Des outils pour le Web (Apache, Netscape...)

Figure 1: Les composants de Linux

8. Un Shell
Est un interprteur de commande,
Affiche une invite (prompt),
Est un interprteur de commandes qui contient des redirections I/O,
Excute des commandes,
Excute des scripts.
Il existe plusieurs shells; Parmi les plus courants:
sh: Bourne shell est le shell standard pour les scripts. Il a t le premier inclure des
fonctionnalits de 'globbing', c'est dire de gestion des caractres joker (wildcards) dans les
noms de fichiers.
csh: Berkeley shell, gestion des jobs (travaux en arrireplan), historique des commandes,
alias.
ksh: shell Korn, syntaxe de type Bourne avec des fonctionnalits Berkeley.
bash: "Bourne Again shell", logiciel libre la manire du shell Korn. Le Shell standard des
Linux.
tcsh: Libre, le clone de Berkeley avec de nombreuses extensions.

habib@phd :~$
habib : le premier lment est votre pseudonyme.
phd : a c'est le nom de l'ordinateur sur lequel vous tes en train de travailler. La ligne d'invite
de commandes se lit donc habib chez phd . En d'autres termes, je suis identifi en tant que
habib sur la machine phd.
: c'est un sparateur.
9

~ :c'est le dossier dans lequel vous vous trouvez actuellement. le symbole ~ signifie que vous
tes dans votre dossier personnel, ce qu'on appelle le "Home" sous Linux. C'est l'quivalent du
dossier "Mes documents" de Windows.
$ : Ce dernier symbole est trs important, il indique votre niveau d'autorisation sur la
machine. Il peut prendre 2 formes diffrentes :
$ : signifie que vous tes en train d'utiliser un compte utilisateur "normal",
# : signifie que vous tes en mode super-utilisateur,

10

Chapitre 2: Systme de fichiers


1. Le systme de fichiers
Un systme de fichiers, appel communment File System ou FS, dfinit lorganisation des
donnes sur un support de stockage, donc comment sont grs et organiss les fichiers par le
systme dexploitation.
Linux est, comme tout Unix, un systme dexploitation entirement orient fichier. Tout (ou
presque) est reprsent par un fichier, tant les donnes (fichiers de donnes de tout
type comme une image ou un programme), que les priphriques (terminaux, souris,
clavier, carte son, etc.) Ou encore les moyens de communication (sockets, tubes
nomms, etc.). On peut dire que le systme de fichier est le cur de tout systme Unix.

Arborescence de Linux

2. Les divers types de fichiers


Le systme Linux ne connat que trois types de fichiers :
11

Les fichiers ordinaires (regular files). Ils servent mmoriser les programmes et les
donnes des utilisateurs et du systme.
Les fichiers rpertoires ou rpertoires (directories). Chaque rpertoire contient la
liste et la rfrence des fichiers placs sous son contrle et la rfrence du rpertoire
dont il dpend (rpertoire pre).
Les fichiers spciaux. Ils dsignent les priphriques, les tubes ou autres supports de
communication interprocessus. Les fichiers spciaux associs aux priphriques
peuvent tre caractres (terminaux) ou blocs (disque) ; les entres/sorties (E/S) se
font soit caractre par caractre, soit bloc par bloc, un bloc tant compos de n
caractres (512, 1024 ou 2048).

3. Nomenclature des fichiers


Linux fait la distinction entre les noms de fichiers en minuscules et en majuscules. Toto,
TOTO, ToTo et toto sont des noms de fichiers diffrents, avec un contenu diffrent.
La plupart des caractres (les chiffres, les lettres, les majuscules, les minuscules,
certains signes, les caractres accentus) sont accepts, y compris lespace. Cependant
quelques caractres sont viter car ils ont une signification particulire au sein du shell : & ;
( ) ~ <espace> \ / | ` ? (en dbut de nom).

4. Les chemins
4.1.Structure et nom de chemin
Les chemins permettent de dfinir un emplacement au sein du systme de fichiers. Cest la
liste des rpertoires et sous rpertoires emprunts pour accder un endroit donn de
larborescence jusqu{ la position souhaite (rpertoire, fichier). Un nom de fichier est ainsi
gnralement complt par son chemin daccs.
Le / situ tout en haut sappelle la racine ou root directory ( ne pas confondre avec
le rpertoire de ladministrateur root). Le nom de chemin ou path name dun fichier est
la concatnation, depuis la racine, de tous les rpertoires quil est ncessaire de
traverser pour y accder, chacun tant spar par le caractre /. Cest un chemin absolu
comme celui ci. /home/toto/Docs/Backup/fic.bak

4.2.Un chemin absolu ou complet :


12

Dmarre de la racine, donc commence par un /,


dcrit tous les rpertoires { traverser pour accder { lendroit voulu,
ne contient pas de . ni de ..
La longueur du chemin daccs absolu dun fichier est limite { 1024 caractres.

4.3.Chemin relatif
Un nom de chemin peut aussi tre relatif sa position courante dans le rpertoire. Vous
pouvez accder un autre rpertoire de larborescence depuis lemplacement actuel sans
taper le chemin complet uniquement en prcisant le chemin le plus court relativement votre
position actuelle au sein de larborescence.
Il faut pour cela souvent utiliser deux entres particulires de rpertoires :
Le point . reprsente le rpertoire courant, actif. Il est gnralement implicite.
Les doubles points.. reprsentent le rpertoire de niveau infrieur.
Exemple
Documents/Photos est un chemin relatif : le rpertoire Documents est considr
comme existant dans le rpertoire courant ;
./Documents/Photos est un chemin relatif parfaitement identique au prcdent, sauf
que le rpertoire actif (courant) est explicitement indiqu par le point. ./Documents
indique explicitement le rpertoire Documents dans le rpertoire actif ;
/usr/local/../bin est un chemin relatif : les .. sont relatifs { /usr/local et descendent dun
niveau vers /usr.

5. Rpertoire personnel
Lors de la cration dun utilisateur, ladministrateur lui alloue un rpertoire personnel appel
home directory. Lorsquil se connecte, lutilisateur arrive directement dans ce rpertoire,
qui est son rpertoire personnel. Cest dans ce rpertoire que lutilisateur pourra crer ses
propres fichiers et rpertoires.
Exemple
habib@phd:~$ pwd
/home/habib
habib@phd:~$

6. Le tilde
13

Le bash interprte le caractre tilde ~ comme un alias du rpertoire personnel. Les chemins
peuvent tre relatifs au tilde, mais le tilde ne doit tre prcd daucun caractre.

7. Les commandes de base


7.1. Lister les fichiers et les rpertoires
La commande ls permet de lister le contenu dun rpertoire (catalogue) en lignes ou
colonnes. Elle supporte plusieurs paramtres dont voici les plus pertinents.
Les options de ls sont :
l : Pour chaque fichier ou dossier, fournit des informations dtailles.
a : Les fichiers cachs sont affichs (ils commencent par un point).
d : Sur un rpertoire, prcise le rpertoire lui mme et non son contenu.

F : Rajoute un caractre la fin du nom pour spcifier le type : / pour un


rpertoire, * pour un excutable, @ pour un lien symbolique, etc.

R : Si la commande rencontre des rpertoires, elle rentre dans les sous rpertoires,
etc., de manire rcursive.

t : La sortie est trie par date

Exemple
habib@phd:~$ ls -l
total 248
drwxrwxr-x 3 habib habib 4096 sept. 3 2013 deja-dup
drwxr-xr-x 7 habib habib 4096 mars 26 16:57 Desktop
drwxrwxr-x 2 habib habib 4096 nov. 19 09:17 doc1
drwxr-xr-x 2 habib habib 4096 mars 24 09:41 Documents
drwxr-xr-x 5 habib habib 12288 mars 24 21:02 Downloads
-rw-rw-r-- 1 habib habib 93211 fvr. 2 12:21 emploiSem2.xlsx

-rw-rw-r--

habib

habib

93211

fvr. 2

emploiSem2.xlsx

1 : Le premier caractre reprsente le type de fichier ( : ordinaire, d : rpertoire, l : lien


symbolique...) ; les autres, par blocs de trois, les droits pour lutilisateur (rw), le
groupe (r) et tous (r). Les droits sont expliqus ultrieurement.
14

2 : Un compteur de liens.
3 : Le propritaire du fichier, gnralement celui qui la cr.
4 : Le groupe auquel appartient le fichier.
5 : La taille du fichier en octets.
6 : La date de dernire modification.
7 : Le nom du fichier.

8. Manipulation des dossiers


Print Working Directory :pwd
Affiche le chemin daccs du rpertoire courant.
habib@phd:~$ pwd
/home/habib
habib@phd:~$
Change Directory : cd
Permet de changer de rpertoire de travail.
habib@phd:~$ pwd
/home/habib
habib@phd:~$ cd ..
habib@phd:/home$
MaKe DIRectory :mkdir
Cre un nouveau rpertoire.
habib@phd:~$ mkdir rep1
habib@phd:~$ cd rep1
habib@phd:~/rep1$ pwd
/home/habib/rep1
habib@phd:~/rep1$
Remove DIRectory : rmdir
Supprime un rpertoire, sil est vide.
rmdir [-p] [-s] rpertoire
15

p : permet de dtruire tous les sous rpertoires vides.


s : mode silencieux (aucun affichage)
habib@phd:~$ rmdir rep1
Disk Usage : du
Donne loccupation disque en bloc des sousrpertoires du rpertoire spcifi ou, si aucun
rpertoire nest prcis, du rpertoire courant.
habib@phd:~$ du Pictures
9192 Pictures/2008/01/05
9196 Pictures/2008/01
176112

Pictures/2008/11/01

176116

Pictures/2008/11

9. Manipulation des fichiers


La commande cat est une commande multi-usage qui permet dafficher, de crer, de copier et
de concatner des fichiers.
Exemples
Affichage du contenu du fichier /etc/passwd.
habib@phd:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
La commande locate
Permet dafficher le nom complet de tout fichier ou rpertoire correspondant { un critre de
recherche donn.
Exemple
Recherche les fichiers et rpertoires contenant la chane de caractres touch.
habib@phd:~$ locate touch
/usr/share/man/man1/touch.1.gz
/usr/X11R6/man/man4/mutouch.4x.gz
/bin/touch
habib@phd:~$
16

La commande more
Afficher le contenu d'un fichier texte l'cran en arrtant le dfilement chaque page (espace
pour descendre d'une page, entre pour descendre d'une ligne, q pour quitter)
more nom_fichier
La commande less
Pareil que more, mais dispose d'un peu plus d'options (entre autre peut revenir en arrire : b
pour revenir d'une page, y pour revenir d'une ligne, il est aussi possible de se dplacer vers le
haut ou vers le bas avec les flches de direction).
Less nom_fichier
Copier des fichiers
La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou vers un
rpertoire.
cp fic1 [fic2 ... ficn] Destination
Dans le premier cas, fic1 est recopi en Destination. Si Destination existe, il est cras sans
avertissement selon le paramtre pass et selon les droits. Dans le second cas, fic1, fic2 et
ainsi de suite sont recopis dans le rpertoire
Destination. Les chemins peuvent tres absolus ou relatifs. La commande peut prendre,
entre autres, les options suivantes :
i Demande de confirmation de copie pour chaque fichier.
r Rcursif : copie un rpertoire et tout son contenu.
p Les permissions et dates sont prserves.
f Forcer la copie.
La commande touch :
La commande touch est utilise pour changer les dates daccs et de modifications dun
fichier (do le on touche le fichier pour faire croire { lordinateur quon vient de le
modifier alors quon na rien chang.
Exemple touch f1
La commande ECHO
Affiche { lcran le texte qui suit la commande echo.
habib@phd:~$ echo je vais tester la commande echo
je vais tester la commande echo
Dplacer et renommer un fichier

17

La commande mv (move) permet de dplacer, de renommer un fichier, ou les deux en mme


temps. Elle fonctionne comme la commande cp. Les paramtres -f et -i ont le mme effet.
Avec les trois commandes mv successives suivantes :
txt2 est dplac dans rep1 ;
txt1 est renomm en txt1.old ;
txt3 est dplac dans rep1 et renomm en txt3.old.
Exemple
touch txt1 txt2 txt3
mv txt1 txt1.old
mv txt2 rep1/txt2
mv txt3 rep1/txt3.old
Supprimer un fichier ou une arborescence
La commande rm (remove) supprime un ou plusieurs fichiers, et ventuellement une
arborescence complte, suivant les options. La suppression est dfinitive.
rm [Options] fic1 [fic2...]
Dans lordre, les commandes suivantes suppriment un simple fichier, suppriment un
rpertoire, et une arborescence de manire force :
rm fic1
rm -r rep1
rm -rf /home/public/depots
Remarque
Lutilisation combine des paramtres -r et -f bien que trs utile et pratique est trs
dangereuse, notamment en tant que root. Aucune confirmation ne vous est demande.
La commande Word Count
Cette commande permet le dnombrement des mots, lignes et caractres dans un fichier. Un
mot est dfini comme une suite de caractres prcde et suivie par des espaces, des
tabulations, le dbut ou la fin de la ligne.
wc lwcL fichier
l : affiche le nombre de lignes
w : affiche le nombre de mots
c : affiche le nombre de caractres
L : affiche la longueur de la ligne la plus longue
18

Exemple
habib@phd:~$ wc test.sql
91 252 2039 test.sql
habib@phd:~$
Commandes de consultation de fichiers
head nom_fichier : afficher uniquement le dbut du fichier.
-n suivi d'un nombre: permet d'afficher le nombre de lignes que vous voulez. Par exemple, si
vous ne voulez que les 3 premires lignes, tapez head n 3 nom fichier
tail nom_fichier : afficher uniquement la fin du fichier
sort nom_fichier : Tri par ordre alphabtique des lignes d'un fichier texte.

10.

Les liens symboliques

Un lien est un fichier spcial (comme des raccourcis) contenant comme information un
chemin vers un autre fichier. Il existe deux types de liens : le lien dur (hard link*-o et le lien
symbolique (soft link) qui correspond la dfinition donne.
Il est possible de crer des liens symboliques vers nimporte quel type de fichier, quel
quil soit et o quil soit. La commande de cration des liens symboliques ne vrifie pas si le
fichier point existe. Il est mme possible de crer des liens sur des fichiers qui nexistent pas.
ln -s fichier lien
Le cas chant le lien se comportera { lidentique du fichier point avec les mmes
permissions et les mmes proprits :
si le fichier point est un programme, lancer le lien lance le programme ;
si le fichier point est un rpertoire, un cd sur le lien rentre dans ce rpertoire ;
si le fichier point est un fichier spcial (priphrique), le lien est vu comme priphrique ;
Exemple : (diffrence entre liens physique et liens symboliques

Cration dun Rpertoire TESTS,


Une fois dans le dossier tests, crer un fichier fichier1 vide de 0 bytes
Crer un lien physique fichier2 , qui partagera le mme inode (le mme contenu)
que fichier1
Crer un lien symbolique fichier 3 , en pointant vers le nom du fichier1 ( et non
vers linode).
habib@phd:~$ mkdir TESTS
19

habib@phd:~$ cd TESTS
habib@phd:~/TESTS$ touch fichier1
habib@phd:~/TESTS$ ln fichier1 fichier2
habib@phd:~/TESTS$ ln -s fichier1 fichier3
habib@phd:~/TESTS$ ls -li
total 0
789699 -rw-rw-r-- 2 habib habib 0 oct. 19 06:48 fichier1
789699 -rw-rw-r-- 2 habib habib 0 oct. 19 06:48 fichier2
789701 lrwxrwxrwx 1 habib habib 8 oct. 19 06:49 fichier3 -> fichier1
Le fichier dorigine et le lien ont le mme type de fichier fichier rgulier indiqu par le tiret
en tte des permissions, alors que les liens symbolique a un type diffrent (l: lien ).
Le fichier dorigine et le lien physique ont le mme horodatage (alors que le lien symbolique
affiche lheure et la date de sa cration.
Enfin on remarque, la fin de la ligne du lien symbolique, une flche en direction du chemin
du fichier vers le lien dur.

11.

Le Manuel de Linux

La commande man permet de rechercher des informations sur les commandes. Man est le
manuel Unix en ligne. Cette commande recherche les informations, le cas chant, dans deux
rpertoires et leurs sousrpertoires :
/usr/man
/usr/local/man

20

Chapitre 3 :Connexion des utilisateurs


Pour permettre de nombreux utilisateurs de travailler sur la mme machine, Linux met en
uvre des mcanismes didentification des utilisateurs, de protection et de confidentialit de
linformation, tout en permettant le partage contrl ncessaire au travail en groupe. Tout
utilisateur est identifi par un nom (login name) et ne peut utiliser le systme que si son nom
a pralablement t dfini par ladministrateur du systme (ou superutilisateur), dont le
nom est gnralement root. Ce dernier a tous les droits et aucune restriction daccs ne lui est
applicable.

1. La gestion des utilisateurs


1.1.

Ajouter un utilisateur : adduser

Crer un compte utilisateur " etudiant" :


[root@ubuntu /]# adduser tudiant
Le compte est cr, c'est--dire qu'un rpertoire tudiant a t cr dans le rpertoire /home
et l'utilisateur tudiant a t ajout dans le fichier de configuration /etc/passwd.
Dterminer un mot de passe pour l'utilisateur tudiant est l'aide de la commande passwd:
[root@ubuntu /]# passwd tudiant
passwd vous demande de rentrer deux fois le mme password.
sudo : devenir root jusqu' ce qu'on tape la commande exit (ncessite le mot de passe root)
sudo nom_d'utilisateur : devenir un autre utilisateur (ncessite le mot de passe de
l'utilisateur)
userdel nom_d'utilisateur : supprime l'utilisateur (il faut tre root)
userdel --remove nom_d'utilisateur : supprime l'utilisateur et son rpertoire personnel avec
tout ce qu'il contient (il faut tre root)

1.2.

La commande passwd

Syntaxe : passwd [options ] nom_login


21

Options
-d l'utilisateur pourra se connecter sans mot de passe !
-l pour verrouiller le compte et empcher sa connexion.
-u pour dverrouiller le compte.

1.3.

Supprimer le compte d'un utilisateur (non connect)

La commande userdel
Syntaxe : userdel [-r] nom_login
L'option -r supprime aussi le rp. personnel de l'utilisateur
La commande supprime toute trace de l'utilisateur dans le fichier de configuration :
/etc/passwd y compris dans les groupes d'utilisateurs.

2. Gestion des comptes

Connatre l'uid et le gid de l'utilisateur courant


Commandes ( id, whoami)
habib@phd:~$ id
uid=1000(habib) gid=1000(habib) groupes=1000 (habib), 4(adm), 24(cdrom), 27(sudo),
30(dip), 46(plugdev),108(lpadmin),124(sambashare)
La commande chfn permet d'indiquer dans le champ numro 5 du fichier /etc/passwd
diffrentes informations sur un utilisateur.
Chaque utilisateur qui utilise le systme doit tre connu de celui-ci par un nom et,
ventuellement, un mot de passe.
Un utilisateur doit appartenir un ou plusieurs groupes d'utilisateurs pour tre autoris
utiliser le systme.
Il existe plusieurs mthodes d'identification et de contrle des utilisateurs, nous ne parlerons
ici que de la mthode la plus simple mettant en uvre les fichiers /etc/passwd et /etc/group.
Les utilisateurs et les groupes sont reprs dans le systme par des numros : uid pour le
numro d'utilisateur (User IDentifier) et gid pour le numro de groupe (Group IDentifier).
Le numro est unique pour un utilisateur ou un groupe donn.
L'identification d'un utilisateur s'effectue dans le fichier /etc/passwd.
22

3. Hirarchie de comptes
Super utilisateur(Root)
Les permissions daccs ne sont pas appliques sur lui,
il peut faire tous,
Compte pour ladministrateur du systme,
bin, daemon, lp, sync, news, ftp
comptes utilisateur utiliss par diffrentes applications et dmons,
ne peuvent pas tre utilis comme login
Comptes ordinaires

4. Contenu du fichier /etc/passwd


Un utilisateur est caractris par une ligne dans le fichier /etc/passwd.
Une ligne est forme par les champs suivants : login:passwd:uid:gid:comment:home:shell
login : Il s'agit du nom de l'utilisateur. C'est un alphanumrique de 8 caractres
maximum.
passwd : Il apparat dans ce fichier sous forme code.
uid : Il s'agit d'un numro unique de l'utilisateur. Compris entre 0 et 65535. Les 100
premiers nombres sont par convention rservs au systme et ne correspondent pas
des utilisateurs normaux.
gid : Numro de groupe. Chaque utilisateur appartient un groupe principal. Il pourra
galement appartenir des groupes secondaires. Cette notion de groupe interviendra
au niveau des permissions sur les fichiers.
comment : Nom complet de l'utilisateur.
home : Chemin complet de la rpertoire attribue l'utilisateur
shell : Chemin complet du shell, le programme qui interagit avec l'utilisateur et qui
permet de taper des commandes (csh, sh, bash, tcsh, ...).

5. Notion d'identifiant
Tous les identifiants sont dfinis dans le fichier /etc/passwd:
23

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
habib:x:1000:1000:habib,1,76636260,:/home/habib:/bin/bash
guest-1X1nXe:x:116:125:Guest,,,:/tmp/guest-1X1nXe:/bin/bash

6. Le fichier /etc/shadow
Le fichier /etc/passwd est public (toute personne qui a un compte sur la machine peut le lire).
Pour contrecarrer cette faille, certains systmes ont introduit le fichier /etc/shadow lisible
uniquement par root .
Ce fichier contient les mots de passe des utilisateurs, qui disparaissent alors de /etc/passwd.
Une ligne /etc/shadow est compose des champs suivants:
Nom de login ,
mot de passe crypt,
Nombre de jours couls depuis le 1er janvier 1970 jusqu'au dernier changement de
mot de passe ,
Nombre de jours durant lesquels le mot de passe est encore valide ,
Nombre de jours aprs lesquels le mot de passe doit tre chang ,
Nombre de jours avant l'expiration du mot de passe impliquant l'avertissement de
l'utilisateur,
Nombre de jours aprs l'expiration provoquant la dsactivation du compte
Numro du jour depuis le 1er janvier 1970 partir duquel le compte a t dsactiv
Champs rserv,
habib@phd:~$ sudo cat /etc/shadox
24

habib:$6$YqAhRKne$H8inEeyLzCwI59Akv6siggiDEIb6mZ7EFwFx3KSBZPFLovQiIz6uLnqWvkwf
xtv5FWKprR3eeHoM3StYWYYkm1:15986:0:99999:7

7. Notion de groupe
Les systmes base de Unix dfinissent une notion de groupe; les groupes sont stocks dans
le fichier/etc/group permettant d'associer un nom de groupe (gname) un numro de groupe
(gid) ainsi que la liste de ses membres.
Un utilisateur appartient un groupe principal (dfini dans le fichier /etc/passwd) et
ventuellement des groupes secondaires.

7.1. Le fichier/etc/group
Une ligne contient quatre champs, spars par deux points (:)
Nom du groupe :
Nombre maximum de caractres : 8.
Il est unique sinon conflit avec la commande newgrp.
Mot de passe :
Champ gnralement vide.
Lorsquil existe, il permet d'augmenter la scurit du systme.
Il est demand lorsqu'un utilisateur essaie de changer de groupe.
Numro du groupe (GID) :
Lien entre les fichiers /etc/group et /etc/passwd.
Il est appel numro de groupe primaire (NGP) dans le fichier /etc/passwd, .
Chaque NGP possde une entre dans le fichier /etc/group
Cest cet identifiant qui est connu du systme, et non le nom du groupe, qui n'est utilis
que pour l'affichage.
Les membres
Chaque groupe comprend une liste des membres.
La commande newgrp permet chaque membre de changer de groupe Intrts
Accs des fichiers communs un autre groupe.
Un utilisateur peut appartenir plusieurs groupes (groupes secondaires) (secondary group
set).
Le fichier de dclaration des groupes /etc/group contient une ligne par groupe dans un
format similaire au fichier /etc/passwd.
25

Par exemple :
sudo cat /etc/group
habib:x:1000:
sambashare:x:124:habib
guest-1X1nXe:x:125:
guest-Fwpfxc:x:126:
guest-eZmlJz:x:127:
guest-fFlWYd:x:128:
mysql:x:129:
winbindd_priv:x:130:
dhahri:x:1001:

7.2.Gestion des groupes


groupadd nom_du_groupe : ajouter un groupe (il faut tre root)
groupdel nom_du_groupe : supprime le groupe (il faut tre root)
Usermod -g nom_du_groupe nom_d'utilisateur : Modifier le groupe principal dun
utilisateur
adduser nom_d'utilisateur G nom_du_groupe : ajouter un utilisateur un groupe (il
faut tre root)

26

Chapitre 4: Protection des fichiers

1. Droits et utilisateurs
Le rle dun systme dexploitation est aussi dassurer la scurit et laccs aux donnes, ce
qui est possible grce au mcanisme des droits. Chaque fichier ou rpertoire se voit
attribuer des droits qui lui sont propres, des autorisations daccs individuelles. Lors dun
accs le systme vrifie si celui-ci est permis.
sa cration par ladministrateur, un utilisateur se voit affecter un UID (User Identification)
unique. Les utilisateurs sont dfinis dans le fichier /etc/passwd. De mme chaque
utilisateur est rattach un groupe au moins (groupe principal), chaque groupe
possdant un identifiant unique, le GID (Group Identification). Les groupes sont dfinis
dans /etc/group.
La commande id permet dobtenir ces informations. En interne, le systme travaille
uniquement avec les UID et GID, et pas avec les noms eux mmes.
habib@phd:~$ id
uid=1000(habib)

gid=1000(habib)

groupes=1000(habib),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(samb
ashare)
habib@phd:~$
chaque fichier (inode) sont associs un UID et un GID dfinissant son propritaire et son
groupe dappartenance.
Vous affectez des droits pour le propritaire, pour le groupe dappartenance et pour le reste
du monde. On distingue trois cas de figure :
UID de lutilisateur identique { lUID dfini pour le fichier. Cet utilisateur est propritaire du
fichier.
Les UID sont diffrents : le systme vrifie si le GID de lutilisateur est identique au
GID du fichier. Si oui lutilisateur appartient au groupe associ au fichier.
Dans les autres cas (aucune correspondance) : il sagit du reste du monde (others), ni le
propritaire, ni un membre du groupe.
27

Signification
r :Readable (lecture).
w : Writable (criture).
x :Executable (excutable comme programme).

2. Modification des droits


Lors de sa cration, un fichier ou un rpertoire dispose de droits par dfaut. Utilisez la
commande chmod (change mode) pour modifier les droits sur un fichier ou un rpertoire. Il
existe deux mthodes pour modifier ces droits : par la forme symbolique et par la base 8.
Seul le propritaire dun fichier peut en modifier les droits (plus ladministrateur
systme). Le paramtre -R change les droits de manire rcursive.

2.1.Par symboles
chmod modifications Fic1 [Fic2...]
Sil faut modifier les droits de lutilisateur, utilisez le caractre u, pour les droits du
groupe le caractre g, pour le reste du monde le caractre o et pour tous le caractre a.
Pour ajouter des droits, on utilise le caractre +, pour en retirer le caractre , et pour
ne pas tenir compte des paramtres prcdents le caractre =.
Enfin, le droit daccs par lui mme : r, w ou x.
-rw-rw-r-- 1 habib habib

0 mars 31 11:07 fic1

habib@phd:~$ chmod g+w fic1


habib@phd:~$ ls -l
-rw-rw-rw- 1 habib habib

0 mars 31 11:07 fic1

chmod u=rwx,g=x,o=rw fic1


-rwx--xrw- 1 habib habib

0 mars 31 11:07 fic1

Si vous voulez supprimer tous les droits, ne prcisez rien aprs le signe = :
habib@phd:~$ chmod o= fic1
habib@phd:~$ ls -l
-rwx--x--- 1 habib habib

0 mars 31 11:07 fic1

2.2. Par base 8


La syntaxe est identique celle des symboles. chaque droit correspond une valeur
octale, positionnelle et cumulable. Pour encoder trois droits rwx, il faut trois bits, chacun
28

prenant la valeur 0 ou 1 selon que le droit est absent ou prsent. 2 3 =8, do une
notation octale possible.
habib@phd:~$ chmod 755 fic1
habib@phd:~$ ls -l
-rwxr-xr-x 1 habib habib

0 mars 31 11:07 fic1

3. Masque des droits


3.1.Restreindre des droits automatiquement
Lors

de

la

cration

dun

fichier

ou

dun

rpertoire,

des

droits

leur

sont

automatiquement assigns. Gnralement, cest rwrr (644) pour un fichier et rwxrxrx (755)
pour un rpertoire. Ces valeurs sont contrles par un masque, lui mme modifiable par la
commande umask. La commande umask prend comme paramtre une valeur octale dont
chaque droit individuel sera supprim des droits daccs maximum du fichier ou du
rpertoire.
Par dfaut, tous les fichiers sont crs avec les droits 666 (rwrwrw).
Par dfaut tous les rpertoires sont crs avec les droits 777 (rwxrwxrwx).
Puis le masque est appliqu.
Le masque est le mme pour lensemble des fichiers.
Un masque ne modifie pas les droits des fichiers existants, mais seulement ceux des
nouveaux fichiers.
Le masque par dfaut est 022, soit ----w--w-. Pour obtenir cette valeur, tapez umask sans
paramtre.

3.2. Calcul de masque


Pour un fichier
Dfaut rw-rw-rw- (666)
Retirer ----w--w- (022)
Reste rw -r--r--

(644)

Pour un rpertoire
Dfaut rwxrwxrwx (777)
Retirer ----w--w-

(022)

Reste rwxr-xr-x

(755)

Remarque
29

Notez quappliquer un masque nest pas soustraire, mais supprimer des droits de ceux par
dfaut, droit par droit. Par exemple :
Dfaut rw-rw-rw- (666)
Retirer ----wxrwx (037)
Reste rw-r----- (640)
Et non 629, ce qui est impossible en octal...

4. Changer de propritaire et de groupe


Il est possible de changer le propritaire et le groupe dun fichier { laide des commandes
chown (change owner) et chgrp (change group). Le paramtre -R change la proprit de
manire rcursive.
chown utilisateur fic1 [Fic2...]
chgrp groupe fic1 [Fic2...]
En prcisant le nom dutilisateur (ou de groupe), le systme vrifie dabord son
existence. Vous pouvez prciser un UID ou un GID, dans ce cas le systme neffectuera pas
de vrification.
Pour les deux commandes, les droits prcdents et lemplacement du fichier ne sont pas
modifis. Il est possible de modifier en une seule commande la fois le propritaire et le
groupe.
chown utilisateur[:groupe] fic1 [fic2...]
chown utilisateur[.groupe] fic1 [fic2...]
Seul le root a le droit de changer le propritaire dun fichier. Mais un utilisateur peut changer
le groupe dun fichier sil fait partie du nouveau groupe.
chgrp video fic1
ls -l fic1
-rwxr-xr-x 1 seb video 0 mar 21 22:03 fic1

5. 5. Droits daccs tendus


5.1.SUID et SGID
Il est possible dtablir des droits daccs tendus { lexcution dune commande. Ces
droits

daccs

tendus appliqus une commande permettent cette commande de

sexcuter avec les droits du propritaire ou du groupe dappartenance de la commande, et


non plus avec les droits de lutilisateur layant lance.
30

Lexemple le plus simple est le programme passwd permettant de changer son mot de passe.
Si la commande tait excute avec les droits dun utilisateur classique, passwd ne pourrait
pas ouvrir et modifier les fichiers /etc/passwd et /etc/shadow :
habib@phd:~$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2019 janv. 27 13:08 /etc/passwd
habib@phd:~$
Vous constatez que ce fichier appartient root, et que seul root peut y crire. Un utilisateur
simple ne peut lire que son contenu sans interagir. La commande passwd ne devrait donc pas
pouvoir modifier les fichiers. Voyez les droits de la commande passwd (/bin/passwd ou
/usr/bin/passwd) :
habib@phd:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47064 juil. 26 2013 /usr/bin/passwd
Un nouveau droit est apparu : le droit s pour les droits de lutilisateur root. Ce nouvel attribut
permet lexcution de la commande avec des droits daccs tendus. Le temps du traitement,
le programme est excut avec les droits du propritaire du fichier ou de son groupe
dappartenance. Dans le cas de passwd, il est lanc avec les droits de root.
Le droit s sur lutilisateur est appel le SUIDBit (Set User ID Bit), et sur le groupe le GUIDBit
(Set Group ID Bit)
La commande chmod permet de placer les SUIDBit et GUIDBit.
chmod u+s commande
chmod g+s commande
Les valeurs octales sont 4000 pour le SUIDBit et 2000 pour le GUIDBit.
chmod 4755 commande
chmod 2755 commande
Seul le propritaire ou ladministrateur peut positionner ce droit. Positionner le SUIDbit ou le
SGIDBit na de sens que si les droits dexcution ont pralablement t tablis (attribut x sur
le propritaire ou le groupe). Si ceux ci ne sont pas prsents ; le s est remplac par un S.

31

Chapitre 5 : Recherche des fichiers


1. Considrations gnrales
La commande find parcourt les rpertoires et leurs sous-rpertoires de manire rcursive la
recherche de fichiers.
La syntaxe de cette commande est :
find rpertoire(s) critre_de_slection option(s)
Un rpertoire ne peut tre parcouru que si lutilisateur dispose des droits de lecture et
dexcution sur ce rpertoire ou sous-rpertoire

2. Critres de recherche
Les paramtres permettent de dfinir les critres de recherche. Ces critres, sils sont
plusieurs, sont combins entre eux :
les options des slection des fichiers et rpertoires peut etre par :
name : recherche par nom de fichier
type : recherche par type de fichier
user : recherche par propritaire
group : recherche par lappartenance { un groupe
size : recherche par taille de fichier
atime : recherche par date de dernier accs
mtime : recherche par date de dernire modification
ctime : recherche par date de cration
perm : recherche par autorisations daccs
links : recherche par nombre de rfrences (links) aux fichiers
Exemple
% find -type d -print
Affiche tous les rpertoires contenus dans le rpertoire courant.
% find -type f -name *s* -print
Affiche tous les fichiers contenus dans le rpertoire courant et dont le nom contient la lettre s .
32

% find -type f -size +200k -print


Affiche tous les fichiers de plus de 200 Ko.
% find -mtime -3 -print
Affiche tous les fichiers dont la date de la dernire modification remonte moins de trois
jours.
% find /home/TP_Linux -type d -perm 755 -print
Affiche tous les sous-rpertoires du rpertoire /TP_Linux ayant comme autorisations daccs
rwxr-xr-x.

2.1.Commandes
Outre loption -print on trouve dautres options permettant deffectuer une action sur les
fichiers trouvs.
Le critre -exec va excuter la commande situe juste aprs pour chaque occurrence trouve.
Quelques remarques simposent :
-exec doit obligatoirement tre la dernire option de la commande find.
La commande excute par -exec doit se terminer par un ; . Ce caractre spcial doit
scrire \; pour ne pas tre interprt par le shell.
Pour passer comme paramtre pour la commande le fichier trouv par find, il faut crire {}
(substitution du fichier).
Exemple pour effacer tous les fichiers finissant par .mp3 :
find . -type f -name "*.mp3" -exec rm -f {} \;
Traitement aprs confirmation avec ok
Les mmes explications sappliquent galement { loption ok, mais celle-ci, demande une
confirmation dexcution de la commande pour chaque fichier trouv. Ce nest quen cas de
rponse affirmative (avec y), que la commande place derrire ok sera excute.
Exemple
find . -type f -name "*.mp3" -ok rm -f {} \;
Combinaison de critres pour recherches complexes
Les critres de slection peuvent tre combins. Un fichier valide doit rpondre
simultanment { lensemble des critres dfinis.
La commande find permet galement des combinaisons logiques de ses options :
! : Ngation logique des options
a : liason par ET logique des options de recherche (and)
33

o : liaison par OU logique des options de recherche (or)


Exemple
habib@phd:~$ find ! \( -type f -o -type d \) -ls
140199 0 lrwxrwxrwx 1 habib habib

23 mars 5 19:28

./.config/pulse/94cf1668d3d045cf8dcc6e3a52222785-runtime -> /tmp/pulse-2L9K88eMlGn7


418558 0 lrwxrwxrwx 1 habib habib

46 avril 2 11:00 ./.config/google-

chrome/SingletonSocket -> /tmp/.com.google.Chrome.psoaMv/SingletonSocket


418525 0 lrwxrwxrwx 1 habib habib

8 avril 2 11:00 ./.config/google-

chrome/SingletonLock -> phd-4756

2.2.Critre
Le modle de critres peut contenir les caractres spciaux suivants :
[] : Plage de caractres permis { cet emplacement
[^] : Plage de caractres non permet { cet emplacement
.:

Un caractre quelconque (y compris un espace)

: Signe de rptition. Agit sur le caractre plac devant le *


$ : Matrialise une fin de ligne
| : ou
^ : dbut de ligne
\{\} : Caractre de rptition, entre les accolades
\{nombre\} nombre exacte
\{nombre,\} nombre minimum
\{nombre1,nombre2\} de nombre1 nombre2

3. Crer des archives


La commande tar signifie tape archive' . C'est la mthode standard' pour lire et crire des
archives.
Vous trouverez souvent des archives de fichiers avec des noms comme fichiers.tar, ou
fichiers.tar.gz. Ce sont respectivement des fichiers dans une archive tar et des fichiers dans
une archive tar qui a t compresse avec le programme de compression gzip.
Il est trs probable, si quelqu'un vous envoie des fichiers, qu'ils soient compresss dans une
archive tar. De mme, si vous devez envoyer des fichiers, vous devriez utiliser tar.
34

tar xvf archive.tar : extrait les fichiers de l'archive archive.tar, en affichant les noms des
fichiers qui la composent.
tar xvfz archive.tar.gz : extrait les fichiers de l'archive en utilisant gzip .
tar jxvf archive.tar.bz2 : extrait les fichiers de l'archive en utilisant bzip2.
tar cvf archive.tar fichier1 : Cre un fichier 'archive.tar' contenant fichier1.
tar cvfz archive.tar.gz mon_dossier : cre un fichier gzip contenant le contenu du
dossier mon_dossier

3.1. Compression de fichier : gzip, bzip2


gzip est un outil GNU de compression et de dcompression. L'extension pour les fichiers
gzipps est .gz.
gzip fichier.txt : cre le fichier compress fichier.txt.gz
gunzip fichier.txt.gz : extrait le fichier fichier.txt
L'utilitaire bzip2 offre (en gnral) un meilleur taux de compression que gzip, mais au prix
d'un temps de compression et dcompression plus lev.
bzip2 fichier.txt : cre le fichier fichier.txt.bz2
bunzip2 fichier.txt.bz2 : dcompresse le fichier fichier.txt.bz2.

35

Chapitre 6 : Les redirections


1. Principe
La redirection consiste { de rediriger laffichage de lcran vers un fichier, une imprimante ou
tout autre priphrique, les messages derreur vers un autre fichier, de remplacer la saisie
clavier par le contenu dun fichier.
Tout flux de donnes en entre ou en sortie de commande passe par un canal. Comme pour
leau, il est possible de dvier le cours des donnes vers une autre destination ou depuis une
autre source.
Linux utilise des canaux dentres/sorties pour lire et crire ses donnes. Par dfaut le canal
dentre est le clavier, et le canal de sortie, lcran. Un troisime canal, le canal derreur, est
aussi redirig vers lcran par dfaut.
Il est possible de rediriger ces canaux vers des fichiers, ou du flux texte de manire
transparente pour les commandes Linux.

2. En sortie
On se sert du caractre > pour rediriger la sortie standard (celle qui va normalement sur
lcran). On indique ensuite le nom du fichier o seront placs les rsultats de sortie.
Exemple
habib@phd:~$ ls -l >fich1
habib@phd:~$ cat fich1
total 9632
rwxrwx--- 1 habib habib 2039 janv. 12 2012 test.sql
-rw-rw-r-- 1 habib habib

0 janv. 27 19:09 ttt

-rw-rw-r-- 1 habib habib 1936 janv. 27 19:16 ttt.sh


-rw-rw-r-- 1 habib habib

292 janv. 27 19:13 ttt.sh~

drwxrwxr-x 31 habib habib 4096 fvr. 2 19:08 Ubuntu One


drwxr-xr-x 2 habib habib 4096 aot 31 2013 Videos
Remarque
36

Si le fichier nexiste pas, il sera cr. Sil existe, son contenu sera cras, mme si la commande
tape est incorrecte. Le shell commence dabord par crer le fichier puis excute ensuite la
commande.
Pour rajouter des donnes { la suite du fichier, donc sans lcraser, on utilise la double
redirection >>. Le rsultat de la commande est ajout la fin du fichier.
Exemple
ls -l > fich1
ddate >> fich1
cat fich1
-rwxrwx--- 1 habib habib 2039 janv. 12 2012 test.sql
-rw-rw-r-- 1 habib habib

0 janv. 27 19:09 ttt

-rw-rw-r-- 1 habib habib 1936 janv. 27 19:16 ttt.sh


-rw-rw-r-- 1 habib habib

292 janv. 27 19:13 ttt.sh~

drwxrwxr-x 31 habib habib 4096 fvr. 2 19:08 Ubuntu One


drwxr-xr-x 2 habib habib 4096 aot 31 2013 Videos
Today is Sweetmorn, the 18th day of Discord in the YOLD 3180

3. En entre
Les commandes qui attendent des donnes ou des paramtres depuis le clavier peuvent aussi
en recevoir depuis un fichier, { laide du caractre <. Un exemple avec la commande wc (word
count) qui permet de compter le nombre de lignes, de mots et de caractres dun fichier.
Exemple
wc < resultat.txt
La redirection << est particulire. Elle permet lutilisation des documents en ligne. Cela
permet la saisie dun texte jusqu{ un point donn et lenvoi de son rsultat { une commande
ou un filtre. Les redirections classiques sont aussi autorises. Aprs le << vous indiquez
une chane dfinissant la fin de saisie, par exemple ici end.
habib@phd:~$ tr "[a-z]" "[A-Z]" << end
> Ceci est un Exemple
> le test de la commande tr
> end
CECI EST UN EXAMPLE
37

LE TEST DE LA COMMANDE TR

4. Les canaux standards


On peut considrer un canal comme un fichier, qui possde son propre descripteur par dfaut,
et dans lequel on peut ou lire ou crire.
Le canal dentre standard se nomme stdin et porte le descripteur 0.
Le canal de sortie standard se nomme stdout et porte le descripteur 1.
Le canal derreur standard se nomme stderr et porte le descripteur 2. On peut rediriger
le canal derreur vers un autre fichier.
habib@phd:~$ rmdir dossier2
rmdir: chec de suppression de dossier2: Aucun fichier ou dossier de ce type
habib@phd:~$ rmdir dossier2 2>error.log
habib@phd:~$ cat error.log
rmdir: chec de suppression de dossier2: Aucun fichier ou dossier de ce type.
Vous pouvez rediriger les deux canaux de sortie dans un seul et mme fichier, en les
liant. On utilise pour cela le caractre >&. Il est aussi important de savoir dans quel
sens le shell interprte les redirections. Les redirections tant en principe en fin de
commande, le shell recherche dabord les caractres <, >, >> en fin de ligne. Ainsi si vous
voulez grouper les deux canaux de sortie et derreur dans un mme fichier, il faut procder
comme suit.
ls -l > fich1 2>&1
La sortie 2 est redirige vers la sortie 1, donc les messages derreurs passeront par la
sortie standard. Puis le rsultat de la sortie standard de la commande ls est redirig vers le
fichier fich1. Ce fichier contiendra donc { la fois la sortie standard et la sortie derreur.
Vous pouvez utiliser les deux types de redirection la fois :
habib@phd:~$ wc < fich1 > fich2
habib@phd:~$ cat fich2
136

5. Filtre

38

Un filtre (ou une commande filtre) est un programme sachant crire et lire des
donnes

par

les

canaux

standards dentre et de sortie. Il en modifie ou

traite

ventuellement le contenu. wc est un filtre. En voici quelques uns : more (affiche les donnes
page par page), sort (tri des donnes), grep (critres de recherche).

6. Pipelines / tubes
Les redirections dentre/sortie permettent de rediriger les rsultats vers un fichier. Ce
fichier peut ensuite tre rinject dans un filtre pour en extraire dautres rsultats. Cela
oblige taper deux lignes : une pour la redirection vers un fichier, lautre pour
rediriger ce fichier vers le filtre. Les tubes ou pipes permettent de rediriger directement
le canal de sortie dune commande vers le canal dentre dune autre. Le caractre
permettant cela est | accessible depuis la combinaison [AltGr] 6 des claviers franais.
$ ls -l > fich1
$ wc < fich1
devient
habib@phd:~$ ls -l | wc
35

327 2085

39

Chapitre : Gestion des processus

Un processus est un programme en cours dexcution. Les attributs dun processus


appartiennent { ce que lon appelle son environnement : parmi eux le code, les donnes
temporaires, les donnes permanentes, les fichiers associs, les variables.
Le processus fils est un processus qui a t cr par un autre processus qui prend le nom de
processus pre.
Un processus sous Linux est identifi par un numro unique qui sappelle le numro
didentification du processus PID (Process IDentifier) et qui lui est attribu par le systme { sa
cration.
Il est possible de distinguer deux types de processus : les processus systme et les processus
utilisateurs.

1. Les processus systme (daemons)


Ces processus ne sont sous le contrle daucun terminal et ont comme propritaire
ladministrateur du systme ou un uid dadministration. Ils assurent des tches dordre
gnral, parfois disponibles { tous les utilisateurs du systme. Ils ne sont dhabitude stopps
qu{ larrt du systme dexploitation. Les plus courants sont :
init : initialise un processus par terminal connect sur la machine, permettant la
connexion des utilisateurs. Ce processus a le numro 1. Cest le processus parent de
tous les interprteurs de commandes crs par la connexion dun utilisateur.
crond : permet lexcution dun programme en mode cyclique.
xinetd : super dmon internet charg de crer les processus serveurs rseau

sur

requtes des clients.

2. Les processus utilisateurs


Ils correspondent { chaque excution dun programme par lutilisateur, le premier dentre eux
tant linterprteur de commandes { la connexion. Ces processus appartiennent { lutilisateur
et sont gnralement attachs un terminal.

40

3. Excution d'une commande


Il existe cinq modes dexcution dune commande sous Linux :
Le mode interactif (foreground),
Le mode en arrire-plan (background), appel aussi mode asynchrone,
Le mode diffr,
Le mode batch,
Le mode cyclique.
Le mode interactif
La commande est lance { partir dun interprteur de commandes. Pendant lexcution de la
commande, lutilisateur ne peut pas utiliser le terminal pour lancer une autre commande. Le
contrle nest restitu { lutilisateur qu{ la fin de lexcution de la commande.
tout moment, il est possible dinterrompre cette commande en utilisant la combinaison de
touches <ctrl-c>, ou de la suspendre { laide de <ctrl-z> .

3.1.Le mode en arrire-plan


Le lancement de commandes en arrire-plan permet de rendre immdiatement le contrle
lutilisateur. Cette fonctionnalit est intressante pour des tches ne ncessitant pas
dinteraction entre lutilisateur et la tche, comme par exemple la compilation dun
programme. La commande est lance suivie du caractre &. Son excution peut tre surveille
par les commandes ps ou jobs.
Exemple
Le fichier essai est un excutable. Son excution ninteragit pas avec lutilisateur.
$ essai &
Lutilisateur a la main. Il peut continuer { travailler tout en surveillant rgulirement
lexcution de la commande essai.
Lexcution diffre dune commande est ralise { laide de la commande at qui permet de
dclencher lexcution dune commande une date fixe.
Exemple
$ at 20:05 20/09/14 commande

4. La commande ps

41

ps : permet d'obtenir la liste des processus qui tournent au moment o vous lancez la
commande
habib@phd:~$ ps
PID TTY

TIME CMD

3497 pts/0 00:00:00 bash


7036 pts/0 00:00:00 less
8213 pts/0 00:00:00 man
8225 pts/0 00:00:00 pager
8295 pts/0 00:00:00 man
8303 pts/0 00:00:00 preconv
PID : processus a un numro unique qui permet de l'identifier.
TTY : c'est le nom de la console depuis laquelle a t lanc le processus.
TIME : la dure d'excution du processus.
CMD : le programme qui a gnr ce processus.
Remarque
ps sans arguments affiche seulement les processus lancs par le mme utilisateur.
ps ef:permet dobtenir la liste de tous les processus lancs par tous les utilisateurs sur toutes
les consoles.
ps -u UTILISATEUR : lister les processus lancs par un utilisateur

5. Arrter Un Processus
Ctrl + C : arrter un processus lanc en console
kill : tuer un processus
kill -9 vous demandez Linux de tuer le processus sans lui laisser le temps de s'arrter
proprement

6. killall : tuer plusieurs processus


La commande kill -signal PID sert essentiellement arrter des processus en arrire-plan
(background). Loption -signal correspond au signal envoy au processus. Un certain nombre
dvnements (erreur, <ctrl-c>,...) peut tre signal { un processus { laide dun signal. Les
principaux signaux sont :
SIGHUP :(SIGnal Hang UP : fin du shell)
42

SIGINT :(SIGnal INTerrupt : interruption du programme)


SIGKILL :(SIGnal KILL : tuer le processus)
SIGTERM :(SIGnal TERMinate : terminaison douce)
SIGQUIT :(SIGnal QUIT : terminaison brutale)
SIGSTOP :(SIGnal STOP : stopper le processus)

43

Bibliographie
1. Jean-Paul Armspach, Pierre Colin,Frdrique Ostr-Waerzeggers,
LINUX Initiation et utilisation ,Edition DUNOD ,2004.
2. Christophe Blaess, Shells Linux et Unix par la pratique, Edition
EYROLLE, 2008.
3. Sbastien Blondeel, Daniel cartron, Hermantino singodiwirjo,
Dbuter sous linux , , Edition EYROLLE, 2004.

44

You might also like