Vous êtes sur la page 1sur 110

Chapitre

1
I. Introduc2on à Linux
I.A. Historique
I.B. Les Caractéris2ques des systèmes
I.C. Les distribu2ons Unix
I.C.1. Types de distribu2ons
I.D. Quelques défini2ons sous Linux
I.D.1. Le Kernel
I.D.2. Chemin d’accès d’un fichier
I.D.3. Montage/Point de montage
I.D.4. Les noms des disques durs
I.D.5. La Par22on Swap
I.D.6. Les types de fichiers sous Linux
I.E. Installa2on Linux (TP n°1 )
I.E.1. Par22onnement du disque
I.E.2. Démarrage sous GNOME
I.E.3. Démarrage sous KDE
Introduc2on



v  Dans le fonc2onnement global d'un PC, Windows est appelé système d'exploita2on.
Le système d'exploita2on permet comme son nom l'indique d'exploiter les ressources du PC
(processeur, mémoire, carte graphique, lecteur DVD...etc.).



v  Sans système d'exploita2on, on se retrouverait comme avec une voiture sans moteur.
Et bien, Linux est un autre système d'exploita2on disponible pour les PC.
Linux ne désigne en réalité que le noyau sans interface graphique

Linux = (Le Noyau)


Introduc2on



v  Pour obtenir un système d'exploita2on (qu'on désigne par GNU/Linux), il faut lui rajouter
tout un tas de logiciels et u2litaires. L’interface graphique sous Linux est un logiciel comme
un autre. Ainsi, il existe plusieurs Interfaces graphiques,
Les deux plus répandues étant GNOME et KDE.




v  De plus, étant donné que Linux (=le noyau) est sous licence libre (code source disponible et
Librement modifiable) et également gratuit, il est possible de "fabriquer" son propre
système D’exploita2on Linux. Le résultat de cela est qu'il existe un grand nombre de
systèmes D’exploita2on GNU/Linux: on parle alors de distribu2ons.




I.A. Historique

Le développement de Linux trouve son origine au début des années 1990. Linus Torvalds est
alors étudiant un étudiant finlandais, à l'université d'Helsinki.

•  Crée par les laboratoires Bell d’AT&T dans les années 70.
•  UNIX a été développé pour fournir un environnement de programma2on comparable à ceux
des grands systèmes.
•  La première version d’UNIX est écrite en fortran et assembleur. Elle était mono-tâche.
•  UNIX est réécrit en C. Il est devenu adaptable (portable) sur divers ordinateurs.
I.B. Les Caractéris2ques des systèmes



Un système d’exploita2on est un ensemble de programmes qui coordonnent le fonc2onnement
des différents composants matériels et logiciels d’un système informa2que.
UNIX est un système d’exploita2on ayant les caractéris2ques suivantes :

•  Mul1-u1lisateurs et Mul1tâches : cela signifie que plusieurs u2lisateurs peuvent accéder
simultanément au système et exécuter un ou Plusieurs programmes.

•  Temps partagé : c’est-à-dire que les ressources du processeur et du Système sont répar2es
entre les u2lisateurs.

•  Système de fichiers hiérarchique : plusieurs systèmes de fichiers Peuvent être ranachés au


système de fichiers principal ; chaque système de fichiers possède ses propres répertoires.

I.B. Les Caractéris2ques des systèmes




•  Entrées-Sor1es intégrées au système de fichiers : les périphériques sont représentés par
des fichiers, ce qui rend le système indépendant du matériel et en assure la portabilité ;
l’accès aux périphériques est donc iden2que à l’accès aux fichiers ordinaires.

•  Ges1on de la mémoire virtuelle : un mécanisme d’échange entre la RAM et le disque dur


permet de pallier un manque de RAM et op2mise le système.

•  Processus réentrants : les processus exécutant le même programme u2lisent une seule
copie de celui-ci en RAM.

•  Interface u1lisateur interac1ve (shell) : elle est cons2tuée d’un programme séparé du
noyau permenant à l’u2lisateur de choisir son environnement de travail. Elle intègre un
langage de commandes très sophis2qué (scripts).


I.C. Les distribu2ons Unix
I.C.1. Types de distribu2ons

v  Toutes les distribu2ons ne Sont pas forcément gratuites.



q Linspire et Red Hat sont deux exemples de distribu2ons
payantes

q  La distribu2on Mandriva est disponible en version


payante et en version gratuite

q Les distribu2ons les plus répandues sont Ubuntu,
Mandriva, Suse, Fedora, Debian.

I.D. Quelques défini2ons sous Linux

I.D.1. Le Kernel

v  Noyau (kernel) : ensemble de fonc0ons système assurant la ges0on de la mémoire,


des E/S et des processus
I.D. Quelques défini2ons sous Linux
I.D.2. Le chemin d’accès d’un fichier

Le système de fichier de Linux est une abstrac2on


virtuelle indépendante de tout support matériel. Tous
les répertoires sont reliés à une racine "/" (parfois
nommé dossier racine) et à aucun moment leur
support physique n’est visible à l’u2lisateur de base.
I.D. Quelques défini2ons sous Linux
I.D.3. Montage/point de Montage
I.D. Quelques défini2ons sous Linux
I.D.4. Les noms de disques durs

hda

•  h : la première lenre indique si le disque est de type IDE ou SCSI (un type de
connexion différent à la carte mère). Si c'est une IDE, la lenre est un h, si c'est un
SCSI (ou un S-ATA), la lenre est un s.

•  d : cene lenre ne change pas.

•  a : c'est cene lenre qui indique les différents disques durs. hda représente le
premier disque dur IDE, hdb le second, hdc le troisième etc.




Lorsqu'on crée des par22ons, on ajoute généralement un chiffre représentant le
numéro de la par22on. Ainsi, si on a 3 par22ons sur notre disque hda, elles seront
nommées hda1, hda2, hda3...
I.D. Quelques défini2ons sous Linux

I.D.5. la par22on swap

•  Le swap sous Linux est nécessaire pour faire fonc2onner son


système de manière op2male, même avec beaucoup de
mémoire. L'espace de swap permet au système d'y inscrire
toutes les données temporaires nécessaires aux
fonc2onnement des programmes en cours d'exécu2on : en
gros, on y trouve tout ce qui est u2lisé pour la mémoire
virtuelle.

I.D. Quelques défini2ons sous Linux

I.D.6. Les types de fichiers sous linux

•  Les systèmes UNIX définissent différents types de fichiers :




•  Les fichiers physiques, enregistrés sur le disque dur. Il s'agit du fichier au sens
où on l'entend généralement ;

•  Les répertoires sont des fichiers (nœuds) de l'arborescence pouvant contenir


des fichiers ou d'autres répertoires. Un répertoire con2ent à minima un
répertoire parent (noté ..), correspondant au répertoire de plus haut niveau,
et un répertoire courant (noté .), c'est-à-dire lui-même ;

•  Les liens sont des fichiers spéciaux permenant d'associer plusieurs noms
(liens) à un seul et même fichier. Ce disposi2f permet d'avoir plusieurs
instances d'un même fichier en plusieurs endroits de l'arborescence sans
nécessiter de copie, ce qui permet notamment d'assurer un maximum de
cohérence et d'économiser de l'espace disque. On dis2ngue deux types de
liens :

I.D. Quelques défini2ons sous Linux

I.D.6. Les types de fichiers sous linux

–  Les liens symboliques représentant des pointeurs virtuels (raccourcis)


vers des fichiers réels. En cas de suppression du lien symbolique le
fichier pointé n'est pas supprimé.


–  Les liens physiques (aussi appelées liens durs ou en anglais hardlinks)
représentent un nom alterna2f pour un fichier. Ainsi, lorsqu'un fichier
possède deux liens physiques, la suppression de l'un ou l'autre de ces
liens n'entraine pas la suppression du fichier.

I.D. Quelques défini2ons sous Linux

I.D.6. Les types de fichiers sous linux

•  Les fichiers virtuels n'ayant pas de réelle existence physique car ils
n'existent qu'en mémoire. Ces fichiers, situés notamment dans le
répertoire /proc con2ennent des informa2ons sur le système (processeur,
mémoire, disques durs, processus, etc.) ;


•  Les fichiers de périphériques, situés dans le répertoire /dev/,
correspondent aux périphériques du système.
Chapitre 2
II. Prise en main de Fedora

II.A. La hiérarchie des fichiers sous linux

II.B. Le super-u2lisateur

II.C. No2on de chemin ou PATHNAME

II.D. Commande rela2ves aux répertoires

II.D.1. la commande ls

II.D.2. la commande cd

II.D.3. la commande pwd

II.D.4. la commande mkdir

II.D.5. la commande rmdir

II.E. Ges2on des fichiers et des répertoires en mode commande (TP n°2 )

II.E.1. Exercice 1 : Déplacement dans une arborescence de répertoire , Listage du contenu

II.E.2. Exercice 2 : Créa2on et manipula2on de répertoires

II.E.3. Exercice 3 : Manipula2on et visualision de fichiers



II.A. La hiérarchie des fichiers sous Unix

/ la racine, elle con2ent les répertoires principaux

/bin Con2ent les exécutables essen2els au système, employés par tous les u2lisateurs.
/boot Con2ent les fichiers de chargement du noyau, dont le chargeur d'amorce.
/dev Con2ent les points d'entrée des périphériques.
/etc Con2ent les fichiers de configura2on nécessaires à l'administra2on du système (fichiers passwd, group, ini@ab, ld.so.conf,
lilo.conf, ...).
/home Con2ent les répertoires personnels des u2lisateurs. Dans la mesure où les répertoires situés sous /home sont des2nés à
accueillir les fichiers des u2lisateurs du système, il est conseillé de dédier une par22on spécifique au répertoire /boot afin
de limiter les dégâts en cas de satura2on de l'espace disque.
/lib Con2ent les bibliothèques standards partagées entre les différentes applica2ons du système.
/mnt Permet d'accueillir les points de montage des par22ons temporaires (cd-rom, disquene, ...).
/proc Regroupe un ensemble de fichiers virtuels permenant d'obtenir des informa2ons sur le système ou les processus en cours
d'exécu2on.
/root Répertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres
répertoires personnels car il se trouve sur la par22on racine, afin de pouvoir être chargé au démarrage, avant le montage
de la par22on /home.
/tmp con2ent les fichiers temporaires
/usr Hiérarchie secondaire
/usr/bin con2ent la majorité des fichiers binaires et commandes u2lisateurs

/usr/lib con2ent la plupart des bibliothèques partagées du système

/usr/local con2ent les données rela2ves aux programmes installés sur la machine locale par le root

/usr/src con2ent des fichiers de code source

/var con2ent des données versa2les telles que les fichiers de bases de données, les fichiers journaux (logs), les fichiers du
spouleur d'impression ou bien les mails en anente.

II.B. Le super-u2lisateur


•  Afin de permenre l’administra2on du système, un u2lisateur


spécial, nommé super u2lisateur (ou root), est toujours
considéré par le système comme propriétaire de tous les
fichiers (et des processus).

•  Le root est le seul à connaître son mot de passe et le seul qui


peut ajouter de nouveaux u2lisateurs au système.
II.C. No2on de chemin ou PATHNAME


Quand l'u2lisateur se connecte au système Unix, il est posi2onné
automa2quement dans un répertoire par défaut qui est généralement son
répertoire de travail. Après l'u2lisateur peut se déplacer à d'autre
répertoire. Mais à un instant donné, il est dans un des répertoire dans
l'arbre.

•  L’accès à un fichier, du point de vue de l’u2lisateur, s’effectue en
désignant le nom du chemin (pathname) qui y mène. Ce chemin peut
être :

•  absolu : partant de la racine
•  rela1f : à par1r du répertoire courant. Le répertoire courant est un noeud
de l'arbre du système de fichier dont lequel est posi1onné l'u1lisateur à
un instant donné.

II.C. No2on de chemin ou PATHNAME

•  Un chemin vers un fichier s’écrit en séparant les différents nœuds qui le


composent par le caractère / .

Il y a deux répertoires spéciaux :
. : Pour désigner le répertoire lui-même.
.. : Pour désigner le répertoire père.


II.D. Commande rela2ves aux répertoires

La commande ls
•  Syntaxe :
ls [op1ons] [noms]

•  Descrip2on :
ls liste les répertoires et les fichiers précisés dans noms. Par défaut, la sor2e est
envoyée à l'écran par ordre alphabé2que. Les op2ons déterminent les
informa2ons à afficher et la présenta2on de l'affichage. Sans op2ons, ls
n'envoie que le nom des fichiers. Si noms n'est pas précisé, c'est le répertoire
courant qui est listé.

•  Op2ons courantes:
-R Traitement récursif
-a Tous les fichiers (y compris ceux qui commencent par un point)
-d Affiche le nom des répertoires sans leur contenu
-l Format long (avec beaucoup de détails)
nom est le nom d'un fichier ou d'un répertoire (avec ou sans métacaractères)
II.D. Commande rela2ves aux répertoires

La commande cd
•  Syntaxe :
cd [répertoire]

•  Descrip2on :
La commande cd permet de changer le répertoire de travail. Si
répertoire n'est pas précisé, alors le nouveau répertoire de travail
sera le répertoire de connexion ($HOME).

•  Op2on :
répertoire représente le futur répertoire de travail.
II.D. Commande rela2ves aux répertoires

La commande pwd
•  Syntaxe :
Pwd

•  Descrip2on :
La commande pwd permet d'afficher le répertoire de travail.

•  Op2on :
La commande pwd n'accepte pas d'op1on
II.D. Commande rela2ves aux répertoires

La commande mkdir
•  Syntaxe :
mkdir [-p] nouveau_répertoire

•  Descrip2on :
La commande mkdir créé le répertoire spécifié sur la ligne de commande
(nouveau répertoire ). Si l'un des répertoires intermédiaires n'existe
pas, la commande retourne un code d'erreur (exit status) sans créer le
répertoire (sauf si l'op2on -p est spécifiée).

•  Op2ons courantes
-p permet de créer tous les répertoires intermédiaires qui n'existeraient
pas.
répertoire représente le nom du répertoire à créer. C'est un argument
obligatoire
II.D. Commande rela2ves aux répertoires

La commande rmdir
•  Syntaxe :
rmdir [-p] [-s] répertoire

•  Descrip2on :
La commande rmdir supprime le répertoire spécifié sur la ligne de
commande (répertoire ). Si il existe des fichiers ou des sous répertoires,
la commande retournera un code d'erreur ( exit status).

•  Op2ons courantes
-p permet de détruire tous les sous-répertoires vides.
-s mode silencieux (aucun affichage).
répertoire représente le nom du répertoire à détruire. C'est un
argument obligatoire.
Chapitre 3
III. Les commandes de Ges2on des Fichiers sous linux
III.A. La commande cp
III.B. La commande mv
III.C. La commande rm
III.D. La commande cat
III.E. La commande less
III.F. La commande find
III.G. La commande grep
III.H. La commande head
III.I. La commande tail
III.J. La commande sort
III.K. La commande ln
III.L. La commande wc
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.A. Les droits d'accès
IV.B. Les permissions
IV.C. Changement de propriétaire et de groupe
IV.D. Droits d’accès étendus (SUID, SGID et S2cky bit )
V. L’éditeur de texte Vi
III. Les commandes de Ges2on des Fichiers sous linux

La commande cp
•  Syntaxe :
cp [-i] [-p] fichier1 fichier2
cp [-i] [-p] [-r] source1 [source2...] répertoire

•  Descrip2on :
La commande cp copie le contenu de fichier1 dans fichier2 ;
ou bien elle copie source1 et source2 (etc...) dans répertoire .

•  Op2ons courantes
-i mode interac2f, demande la confirma2on avant écrasement.
-p conserve les dates du fichier source.
-r copie récursive de répertoires.
source X représente le nom des fichiers ou répertoires à copier.
III. Les commandes de Ges2on des Fichiers sous linux

La commande mv
•  Syntaxe :
mv [-f] [-i] source1 [source2...] des1na1on

•  Descrip2on :
La commande mv déplace les fichiers fichier1, fichier2 etc...
dans des2na2on .
Si des2na2on est un fichier, alors mv a pour ac2on de renommer
fichier1 en des2na2on ; si des2na2on est un répertoire, alors mv déplace
fichier1 dans ce répertoire.

•  Op2ons courantes
-i mode interac2f, demande la confirma2on avant écrasement.
-f force la commande.
sourceX représente le nom des fichiers ou répertoires a déplacer.
des2na2on représente le nom des fichiers ou répertoires de des2na2on.
III. Les commandes de Ges2on des Fichiers sous linux

La commande rm
•  Syntaxe :
rm [-f] [-i] [-r] fichier1 [fichier2...]

•  Descrip2on :
La commande rm supprime les fichiers spécifiés sur la ligne de
commande.
Si vous n'avez pas les droits d'écriture sur fichier1 , alors rm vous
demandera de confirmer votre ac2on ; la réponse oui (y) détruira quand
même le fichier (sous réserve d'avoir les droits d'écriture sur le
répertoire).

•  Op2ons courantes
-i mode interac2f, demande la confirma2on avant chaque suppression.
-f force la commande (aucune confirma2on).
-r récursif (détruit tous les sous répertoires.
III. Les commandes de Ges2on des Fichiers sous linux

La commande cat
•  Syntaxe :
cat [fichier...]

•  Descrip2on :
La commande cat visualise et/ou concatène les fichiers
spécifiés sur la ligne de commande.
Par défaut, cat lit sur l'entrée standard et affiche le résultat
sur la sor2e standard.

•  Op2on :
La commande cat n'admet pas d'op1on.
III. Les commandes de Ges2on des Fichiers sous linux

La commande less

•  Syntaxe :
less [fichier...]

•  Descrip2on :
La commande less affiche page par page le contenu d’un
fichier spécifiés sur la ligne de commande.

•  Op2on :
La commande less n'admet pas d'op1on.
III. Les commandes de Ges2on des Fichiers sous linux

La commande find
•  Syntaxe :
find répertoire op1on1 [op1on2...]

•  Descrip2on :
La commande find permet de rechercher un fichier dans
l'arborescence à par2r du point spécifié.

•  Op2ons courantes:
-name fich recherche sur le nom fich
-size n recherche sur la taille en blocs
-c2me n recherche sur la date de créa2on
-print affiche le résultat de la recherche
! néga2on du critère de recherche
III. Les commandes de Ges2on des Fichiers sous linux

La commande grep
•  Syntaxe :
grep [-ilsfv] expression [fichier...]

•  Descrip2on :
La commande grep permet de rechercher expression dans fichier .
Elle affiche les noms de fichiers ainsi que les lignes contenant expression.

•  Op2ons courantes
-i ne 2ent pas compte des minuscules et des MAJUSCULES
-l n'affiche que le nom des fichiers (pas les lignes)
-s pas de message d'erreur sur les fichiers inaccessibles
-f fich spécifie un fichier contenant les expressions à rechercher
-v affiche toutes les lignes, sauf celles qui con2ennent l'expression
expression chaîne de caractères
fichier nom des fichiers à traiter
III. Les commandes de Ges2on des Fichiers sous linux

La commande head & tail


•  Syntaxe :
head [-n] [fichier...]
tail [-n|+n] [fichier]

•  Descrip2on :
La commande head affiche les n premières lignes d'un fichier,
alors que tail affiche les dernières lignes d'un fichier.
Si n n'est pas précisé, il prend la valeur 10.

•  Op2ons courantes
-n nombre de lignes à afficher depuis le début/la fin de fichier
+n affichage à par2r de la ligne numéro n
fichier nom des fichiers à traiter
III. Les commandes de Ges2on des Fichiers sous linux

La commande sort
•  Syntaxe :
sort [-ufnr] [-o fic] [fichier...]

•  Descrip2on :
La commande sort trie les lignes des fichiers en arguments et affiche le résultat à
l'écran.
Par défaut sort effectue un tri par ordre alphabé1que; mais les op2ons
suivantes en modifient les critères.

•  Op2ons courantes
-u permet de n'afficher qu'une seule fois les lignes mul2ples
-f ne différencie pas les minuscules et MAJUSCULES
-n effectue un tri numérique
-r ordre décroissant
-o fic enregistre la sor2e dans fic
III. Les commandes de Ges2on des Fichiers sous linux

La commande ln
•  Syntaxe :
ln [-s] fichier1 fichier2
ln [-s] fichier1 [fichier2...] répertoire

•  Descrip2on :
La commande ln permet de créer des entrées mul1ples dans l'arborescence
d'un système de fichiers pour un même fichier physique.
Ce qui revient à dire que si l'on modifie un fichier, ses liens le sont aussi.
ln permet aussi de faire des liens dans des systèmes de fichiers différents
par la méthode des liens symboliques (un peu comme les raccourcis de chez
MS). Si le dernier argument de la ligne de commande est un répertoire, ln crée
des liens dans ce répertoire pour tous les fichiers précités (fichier1,
fichier2, ...).

•  Op2on :
-s permet de faire un lien symbolique
III. Les commandes de Ges2on des Fichiers sous linux

La commande wc
•  Syntaxe :
wc [-lwc] [fichier...]

•  Descrip2on :
La commande wc compte le nombre de lignes, mots, ou caractères
d'un fichier texte. Si aucun fichier n'est passé en paramètre, c'est
l’entrée standard qui sera lue. Si aucune op2on (-lwc) n'est précisée,
alors wc compte le nombre de lignes, mots, et caractères du fichier.

•  Op2ons courantes
-l précise que c'est le nombre de lignes qui doit être compté
-w précise que c'est le nombre de mots qui doit être compté
-c précise que c'est le nombre de caractères qui doit être compté

IV. La ges2on des u2lisateurs et des groupes sous Linux

•  No1on d'u1lisateur (user)


Toute en2té (personne physique ou programme par2culier) devant interagir avec
un système UNIX est authen2fié sur cene machine par un u2lisateur ou user.

Ceci permet d'iden2fier un acteur sur un système UNIX. Un u2lisateur est
reconnu par un nom unique et un numéro unique (la correspondance
nom/numéro est stockée dans le fichier /etc/passwd).

IV. La ges2on des u2lisateurs et des groupes sous Linux

•  Groupe
Un u2lisateur UNIX appar2ent à un ou plusieurs
groupes. Les groupes servent à rassembler des
u2lisateurs afin de leur anribuer des droits
communs. Par exemple, sur un système doté d'une
carte son, il y a souvent un groupe audio qui
regroupe les u2lisateurs autorisés à en faire usage.

IV. La ges2on des u2lisateurs et des groupes sous Linux

•  Les Autres
tout un chacun n'étant ni propriétaire du fichier, ni
membre du groupe propriétaire du fichier.

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.A. Les droits d’accès

•  Par la propriété d'un fichier, on désigne à quel


u2lisateur appar2ent le fichier, qui le possède.

•  À par2r de cene possession (ou non), il sera ensuite
possible de définir des permissions d'accès sur le
fichier.

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.A. Les droits d’accès

La possession d'un fichier se définit sur trois catégories :

•  -1- l'u1lisateur propriétaire du fichier (u).La plupart du
temps, il s'agit du créateur du fichier.

•  -2- le groupe propriétaire du fichier (g). Si un


u2lisateur est membre d'un certain groupe qui possède
la propriété d'un fichier, l'u2lisateur aura aussi
certaines permissions par2culières sur ce fichier.

•  -3-les autres ,world, le reste du monde(o).Tout un
chacun n'étant ni propriétaire du fichier, ni membre du
groupe propriétaire du fichier.
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

•  Les permissions : désignent ce que les diverses


catégories d'u2lisateurs (propriétaire d'un fichier,
membres du groupe propriétaire d'un fichier et le
reste du monde) ont l'autorisa2on d'effectuer sur
un fichier donné.
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

Les permissions se définissent sur trois niveaux :

•  la lecture d'un fichier : cene permission est nécessaire pour
pouvoir accéder au contenu d'un fichier (écouter une piste audio,
visionner un film, lire un texte, naviguer à l'intérieur d'un
répertoire…). Cene permission est notée r (pour read, lire).

•  l'écriture dans un fichier : cene permission est nécessaire pour


pouvoir apporter des modifica2ons à un fichier (corriger un texte
et enregistrer les changements ; ajouter, modifier ou supprimer
un fichier dans un dossier ; etc.). Cene permission est notée w
(pour write, écrire).

•  l'exécu1on d'un fichier : cene permission est nécessaire
par2culièrement pour les logiciels, afin qu'ils puissent être
exécutés. Cene permission est notée x (pour execute, exécuter).
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

Type de fichier
‘d ’ = directory
(Répertoire)
User Group Others
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

La commande chmod
•  Syntaxe :
chmod [-R] mode nom [...]
chmod [-R] [ ugoa]{+|-|=}[ rwx] nom [...]


•  Descrip2on :
La commande chmod change les droit d'accès aux fichiers spécifiés sur la ligne de commande.
Deux manières d'anribuer les droits sont possibles. La première s2pule les droits de manière
numérique par un calcul des différentes valeurs associées aux droits; la seconde permet de spécifier ces
mêmes droits de manière plus symbolique.


•  Op2ons courantes
-R récursif sur tous les fichiers et sous-répertoires contenus si nom est un répertoire
mode c'est la combinaison des droits numériques
ugoa caractère spécifiant le champ d'applica2on des modifica2ons : u représente l'u2lisateur, g le
groupe, o les autres, a regroupe tous ces derniers.
+|-|= indique l'ac2on à accomplir respec2vement l'ajout du droit, son retrait, ou bien son affecta2on.
rwx indique le droit proprement dit (r lecture, w écriture, x exécu2on).
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

•  Exemple 1:
$ chmod 777 toto rappel: r=4,w=2,x=1.
$ chmod g-rw toto 7=4+2+1 (r+w+x).
$ chmod -x toto Les droits du fichier ‘toto’ seront donc
rwxrwxrwx

Le groupe propriétaire du fichier ‘toto’
n'aura plus l'accès ni en lecture, ni en écriture.
rwx-- xrwx

Plus personnes n'aura le droit
d'exécu2on sur le fichier.
rw---- rw
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

•  Exemple 2 :
$ chmod u+rwx,go+rx fichier
donne tous les droits au user, et les droits en lecture et exécu2on aux autres u2lisateurs.

chmod u+rwx,go+rx fichier



chmod 755 fichier
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

A la créa2on d’un fichier, le système met des valeurs de permissions par défaut :

•  -rw- r- - r- - (644) pour les fichiers.
•  dwx r-x r-x (755) pour les répertoires.

Il est possible de changer les valeurs par défaut, pour la session courante, par la commande
umask .
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

La commande umask
•  Syntaxe :
umask [???]

•  Descrip2on :
La commande umask permet de définir les droits affectés par
défaut aux fichiers lors de leur créa2on. Si le masque ??? est omis,
alors umask affiche le masque en cours.

•  Op2ons courantes
??? Chaque ? représente une valeur entre 0 et 7 qui est le complément à
7 des droits à affecter aux fichiers. Si l'on veut avoir des fichiers avec 751
(rwxr-x--x ) comme droits, il faudra définir comme masque 026 (on
remarque que 7+0 = 5+ 2 = 1+ 6 = 7).
IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.B. Les Permissions

•  Exemple 1:
$ umask 022 Vos fichiers seront donc créés avec
$ umask les droits 755 (777-022 = 755)
022

Pour connaitre le mask par défaut de


la session ouverte

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.C. Changement de propriétaire et de Groupe


IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.C. Changement de propriétaire et de Groupe

UID : L’administrateur anribut un numéro à chaque u2lisateur


(User iden2fica2on), ce numéro est mémorisé dans les descripteurs de
fichiers pour en iden2fier le propriétaire. C’est donc l’informa2on
per2nente, u2lisée par le système Linux, pour iden2fier un u2lisateur.
L’UID de root est 0.



GID : L’administrateur iden2fie le groupe de connexion d’un u2lisateur
grâce au champ GID (Group Iden2fica2on). Le fichier /etc/group associe un
nom de groupe à ce GID et définit les groupes supplémentaires de
l’u2lisateur.


IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.C. Changement de propriétaire et de Groupe

Les commandes chown & chgrp
•  Syntaxe :
chown [-R] [-h] u1lisateur nom [...]
chgrp [-R] [-h] groupe nom [...]

•  Descrip2on :
La commande chown change le propriétaire des fichiers spécifiés sur la ligne de
commande.
La commande chgrp change le groupe des fichiers spécifiés sur la ligne de
commande.

•  Op2ons courantes
-R : récursif sur tous les fichiers et sous-répertoires contenus si nom est répertoire
-h : traitement sur les liens symboliques
Nom : exprime le nom d'un fichier ou d'un répertoire
U1lisateur : représente soit le nom de l'u2lisateur, soit son UID
Groupe : représente soit le nom du groupe, soit son GID

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.C. Changement de propriétaire et de Groupe

La commande id
•  Syntaxe :
id [u1lisateur]

•  Descrip2on :
La commande id affiche des informa2ons concernant le Numéro
d'u2lisateur (UID) ainsi que sur les groupes d'appartenance (GID).
Si u2lisateur est omis, id affiche les informa2ons concernant
l'u2lisateur courant.

•  Op2ons courantes
u2lisateur nom d'un u2lisateur connu du système

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.C. Changement de propriétaire et de Groupe

Exemple 1 :
$ chown root toto
$ chown 102 toto
$ chgrp vincigroup toto

Remarque :
Seul le propriétaire des fichiers traités ou root ont le droit d'u2liser chown et chgrp .

Exemple 2 :
$ id
uid=102( rsl) gid=100( other) groups=101( lp)
$ id root
uid=0( root) gid=3( sys) groups=0( root), 1( other), 2( bin), 3( sys)

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.D. Droits d’accès étendus (SUID, SGID et S2cky bit )

Les droits d’endossement SetUID et SetGID bit :
Les droits d’endossement correspondent symboliquement à la lenre s
et numériquement aux valeurs 4000 pour l’iden2té du User et 2000
pour celle du groupe.

Si le SUID est placé sur un programme, celui-ci se voit affecté, le temps
de son traitement, le numéro d’u2lisateur du propriétaire du fichier
programme, avec tous les droits d’accès correspondants.

De la même façon, si le SGID est posi2onné, le numéro de groupe
normale est remplacé par le numéro de groupe du propriétaire du
fichier programme.

Exemple :
Chmod u+s fichier Chmod rwsr-xr-x fichier Chmod 4755 fichier
Chmod g+s fichier Chmod rwxr-sr-x fichier Chmod 2755 fichier

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.D. Droits d’accès étendus (SUID, SGID et S2cky bit )


Set UID et Set GID bit :

Quand un fichier est exécutable par son propriétaire, il peut
de plus être setuid. Cela signifie que lorsqu'il est exécuté, il
l'est avec les droits de son propriétaire, et non avec ceux de
l'u2lisateur qui le lance.

Par exemple, le programme passwd, qui permet à un
u2lisateur de modifier son mot de passe, est setuid root (c'est
à dire qu'il est setuid et qu'il appar2ent à l'u2lisateur root): il
doit pouvoir écrire dans le fichier /etc/passwd (ou /etc/
shadow), dans lequel seul root peut écrire.

IV. La ges2on des u2lisateurs et des groupes sous Linux
IV.D. Droits d’accès étendus (SUID, SGID et S2cky bit )

Droit d’accès étendu pour les répertoires : S1cky bit

Le S2cky bit correspond symboliquement à la lenre t et


numériquement au droit 1000.

Un u2lisateur qui a le droit d’écrire dans un répertoire peut
supprimer tous les fichiers de ce répertoire.

Si le S1cky bit est posi2onné celui qui a créé le fichier
est le seul à avoir le droit de le supprimer.

Exemple :

chmod u+t rep
chmod 1777 rep


VI. Les jokers

Les jokers

Les jokers ("?", "*", "[]") sont aussi appelés caractères génériques car ils peuvent
remplacer tout ou partie d'un chemin, d'un répertoire ou d'un nom de fichier.

Pour remplacer n'importe quelle chaîne de caractère:

*
Pour inclure tous les noms commençant par une lettre majuscule allant de A à X:
[A-X]*

pour remplacer par un A ou un X


[AX]
Pour remplacer deux caractères:
??

V. L’Editeur de texte vi



L’Editeur de texte vi


Vi est un des éditeurs de texte les plus populaires sous Linux (avec Emacs et pico)
malgré son ergonomie très limitée. est un éditeur en2èrement en mode texte, ce qui
signifie que chacune des ac2ons se fait à l'aide de commandes texte. Cet éditeur, bien
que peu pra2que à première vue est très puissant et peut être très u2le en cas de non
fonc2onnement de l'interface graphique.

La syntaxe pour lancer Vi est la suivante :
vi nom_du_fichier

Une fois le fichier ouvert, il vous est possible de vous déplacer à l'aide des curseurs,
ainsi que des touches h, j, k et l (au cas où le clavier ne possèderait pas de curseurs
fléchés).

V. L’Editeur de texte vi

Vi possède 3 modes de fonc2onnement :



Le mode normal: celui dans lequel vous êtes à l'ouverture du fichier. Il permet de
taper des commandes.

Le mode inser1on: Ce mode permet d'insérer les caractères que vous saisissez à
l'intérieur du document. Pour passer en mode inser2on, il suffit d'appuyer sur la
touche Insert de votre clavier, ou à défaut de la touche i.

Le mode de remplacement: Ce mode permet de remplacer le texte existant par le
texte que vous saisissez. Il vous suffit de réappuyer sur insert (ou i) pour passer du
mode inser2on au mode remplacement, et d'appuyer sur la touche Echap pour revenir
en mode normal.

V. L’Editeur de texte vi


Les commandes d'édi1on

V. L’Editeur de texte vi


Chapitre 4
IV. Introduc2on au Shell
IV.A. Le rôle du shell
IV.B. Les différents shells
IV.C. le démarrage du shell
IV.D. les caractères d’échappement
IV.E. Langage de commandes Bourne Shell
IV.E.1. Les variables
IV.E.2. Variables prédéfinies
IV.E.3. Exporta2on des variables
IV.E.3. Paramètres d'une commande
IV.F. Les tests dans le shell
IV.F.1. Tests sur les fichiers
IV.F.2. Tests numériques
IV.F.3. Tests sur les chaines
IV.F.4. Combinaison de tests
IV.F.5. Commande expr
IV.G. Les structures condi2onnelles et les boucles
IV.G. 1. les structures IF & CASE
IV. G.2. Les boucle : FOR, WHILE, UNTIL et BREAK

IV. Introduc2on au Shell

Il existe deux catégories d’ou2ls pour travailler avec un système Unix:



§  Les interfaces graphiques qui simplifient l’exécu2on des tâches courantes de
l’u2lisateur. On note l’émergence des bureaux Gnome et KDE très liés au monde Linux.

§  les Shels qui permenent aux u2lisateurs de saisir le texte des commandes à
exécuter .ce monde de travail est le seul accessible à par2r d’un terminal de type texte.
Il devient rapidement incontournable pour les u2lisateurs qui souhaitent exploiter au
mieux les ressources du système Unix et des logiciels applica2fs.





IV.  Introduc2on au Shell
IV.A. Le rôle du Shell


Un interpréteur de commandes (le "shell", la coquille qui entoure le "noyau" du système) est
un programme qui sert d'intermédiaire entre l'u2lisateur et le système d'exploita2on.
Sa tâche essen2elle est l'exécu2on de programmes.

Pour cela, il effectue (en boucle infinie) : la lecture d'une ligne sa compréhension comme une
demande d'exécu2on d'un programme avec d'éventuels paramètres.
IV.  Introduc2on au Shell
IV.B. Les différents Shells



Voici les noms des principaux shell qui existent :

sh : Bourne Shell. L'ancêtre de tous les shells.

bash : Bourne Again Shell. Une améliora2on du Bourne Shell, disponible par défaut sous Linux et
Mac OS X.

ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires, mais aussi disponible
en version libre, compa2ble avec bash.

csh : C Shell. Un shell u2lisant une syntaxe proche du langage C.

tcsh : Tenex C Shell. Améliora2on du C Shell.

zsh : Z Shell. Shell assez récent reprenant les meilleures idées de bash, ksh et tcsh.
IV.  Introduc2on au Shell
IV.B. Les différents Shells


Évolu2on des shells. Chacun hérite de la plupart des fonc2onnalités de son ancêtre
IV.  Introduc2on au Shell
IV.C. Le démarrage du Shell



§  Lors de la créa2on de son compte, un u2lisateur est associé à un type de shell

§  Lire le fichier /etc/passwd : le dernier champ con2ent le nom du fichier exécutable (shell par
défaut) /bin/bash

§  Le shell associé est ainsi lancé automa2quement dès la saisie du login u2lisateur.

§  Il poursuit sa configura2on en exécutant des scripts globaux à tous les u2lisateurs et des
scripts liés au compte et qui permenent une personnalisa2on.

§  Enfin, il affiche le prompt et se met en anente de la lecture d'une commande.

§  Jusqu'à la commande exit, pour quiner le shell (ce qui équivaut à se déconnecter (logout))

IV.  Introduc2on au Shell
IV.D. les caractères d’échappement


Les méta-caractères

* Correspond à une chaîne de caractères quelconque (même vide).

? Correspond à un caractère quelconque.

[abc...] Correspond à un des caractères spécifiés dans la liste. Il est possible de
décrire des listes de caractères en ne précisant que le premier
caractère et le dernier caractère de la liste séparé par un moins (par
exemple : a-z, I-M, 0-9).

[!abc...] Correspond à tout caractère non spécifié dans la liste.






IV.  Introduc2on au Shell
IV.D. les caractères d’échappement


Les guillemets
‘ ’ Tous les caractères compris entre les apostrophes (quote en anglais) sont pris en
compte tel quel.

` ` La chaîne comprise entre les an2-apostrophes (back-quote en anglais) est évaluée en


tant que commande et son résultat vient se subs2tuer à la chaîne ini2ale.

\ Tout caractère précédé d'un \ est pris en compte tel quel. Ceci est très u2le pour
affiche tous les caractères interprétés par le shell.

"" Seul les caractères non interprétables (espace compris) sont pris en compte tel quel,
les autres sont interprétés.
IV.  Introduc2on au Shell
IV.D. les caractères d’échappement


Les séparateurs

cmd & Lance la commande cmd en arrière plan.


cmd1 ; cmd2 Séparateur de commandes. Permet d'écrire deux commandes sur la
même ligne.
(cmd1 ; cmd2) Ensemble de commandes groupées.
cmd1 | cmd2 Tube (Pipe). Permet de rediriger le canal de sor2e de la commande
cmd1 vers le canal d'entrée de cmd2. Les informa2ons vont être
traitées d'abord par cmd1 puis par cmd2.
cmd1 && cmd2 Exécute la commande cmd1 puis, si cmd1 s'est bien déroulée, exécute
cmd2.
cmd1 || cmd2 Exécute la commande cmd1 puis, si cmd1 s'est mal déroulée, exécute
cmd2.

{ cmd1 ; cmd2 } Permet d'exécuter un ensemble de commandes dans un sous-shell.


IV.  Introduc2on au Shell
IV.D. les caractères d’échappement



Les redirec1ons
cmd n> fich Envoie le canal n de la commande cmd vers le fichier fich (en écrasant fich
s'il existe). Si n n'est spécifié ou s'il vaut 1, c'est le canal de sor2e, s'il vaut
2 c'est le canal d'erreur.
cmd n>>fich Envoie le canal n de la commande cmd vers fichier fich (en ajoutant à fich
s'il existe). Si m n'est spécifié c'est le canal de sor2e.
cmd < fich Renvoie dans le canal d'entrée de la commande cmd le fichier fich.
cmd <<texte Renvoie dans le canal d'entrée de la commande cmd toutes les chaînes de
caractères provenant du canal d'entrée standard jusqu'à qu'apparaisse la
phrase texte. Si aucun texte n'est spécifié, la lecture s'arrête sur EOF.

cmd m>&n Envoie le canal n vers le canal n. Si m n'est spécifié c'est le canal de sor2e.

cmd n> fich Envoie le canal n de la commande cmd vers le fichier fich (en écrasant fich
s'il existe). Si n n'est spécifié ou s'il vaut 1, c'est le canal de sor2e, s'il vaut
2 c'est le canal d'erreur.
cmd n>>fich Envoie le canal n de la commande cmd vers fichier fich (en ajoutant à fich
s'il existe). Si m n'est spécifié c'est le canal de sor2e.
IV.E. Langage de commandes Bourne Shell
IV.E.1. Les variables



Les variables
une variable est iden2fiée par un nom (suite de caractères commençant par une
lenre)

par exemple : x, jour, fichier_erreur, x1 .… Elle possède une valeur (de type chaîne de
caractères) par exemple 44, /etc/fich, fin.

Le contenu d’une variable est obtenu par son nom précédé de $, ex: $x
Pour affecter une valeur a une variable : variable=valeur

Exemples:
$ x=400
echo $x
400
$ rep=/home/prof/enseignant-X/projets
$ cd $rep
$ pwd
/home/prof/enseignant-X/projets
IV.E. Langage de commandes Bourne Shell
IV.E.1. Les variables



Les variables
peut être affectée la valeur a une variable de manière interac2ve : read var
echo "donner votre choix"
read reponse

commande read
Soit le programme shell :
#!/bin/bash
echo "veuillez écrire 2 mots"
read a b
echo "vous avez saisi $a $b"
résultat :
> veuillez écrire 2 mots
> salut david
> vous avez saisi salut david

on peut détruire la variable par: unset
$ unset rep
IV.E. Langage de commandes Bourne Shell
IV.E.2. Les Variables prédéfinies



Les variables prédéfinies

Environnement :
L'environnement d'un shell con2ent un certain nombres de variables prédéfinies La
liste de toutes les variables (prédéfinies ou définies par l'u2lisateur) peut être obtenue
avec la commande set

Variables prédéfinies :

HOME : répertoire d'accueil
PATH : chemin d'accès aux commandes
TERM : type du terminal
IFS : liste des séparateurs des arguments d'une commande
PS1 : prompt primaire
PS2 : prompt secondaire
PWD : répertoire actuel
MAIL : nom de la boîte à lenre
IV.E. Langage de commandes Bourne Shell
IV.E.3. Exporta2on des variables



Exporta1on des variables

Le shell n'exécute pas lui même les commandes qu'on lui demande mais crée un
autre shell qui se charge de l'exécu2on.

Les variables du shell père ne sont pas connues des processus fils.
Pour qu'une variable soit commune à tous les processus fils d'un processus elle
doit être exportée.
$ var=19
$ export var
$ sh ; echo $var
19

IV.E. Langage de commandes Bourne Shell
IV.E.3. Paramètres d'une commande



Paramètres d'une commande

$ cmd arg1 arg2 arg3


Dans cmd :

$0 représente le nom de la commande
$1 premier argument
$2 deuxième argument
$n nième argument (n <=9)
$# le nombre d'arguments
$* liste des arguments en un seul mot
$@ liste des arguments tels qu’ils sont passés
$$ PID du shell
$? la valeur retournée par la dernière commande

IV.F. Les tests dans le shell
IV.F.1. Les tests su les fichiers

Les tests sur les fichiers

Syntaxe :
test expression

Tests sur les fichiers :
test -f arg vrai si arg est un fichier ordinaire
test -x arg vrai si arg existe et est un fichier exécutable
test -w arg vrai si arg existe et est autorisé en écriture
test -d arg vrai si arg est un répertoire
test -l arg vrai si arg est un lien symbolique
test -s arg vrai si arg existe et est non-vide

IV.F. Les tests dans le shell
IV.F.2. Tests numériques

Les tests numériques

syntaxe :
test val1 opérateur val2

opérateur peut être :
-eq =
-ne ≠
-gt >
-ge ≥
-lt <
-le ≤

IV.F. Les tests dans le shell
IV.F.3. Tests sur les chaînes

Les tests sur les chaines

test chaîne vrai si chaîne vide



test –z chaîne vrai si longueur chaîne est nulle

test –n chaîne vrai si longueur chaîne n’est pas nulle

test chaîne1 = chaîne2 vrai si les deux chaînes sont iden2ques

test chaîne1 != chaîne2 vrai si les deux chaînes ne sont pas
iden2ques

IV.F. Les tests dans le shell
IV.F.4. Combinaison de tests

Combinaison de tests

! (néga1on) -a (et logique) -o (ou logique)


\( \) permet de grouper plusieurs tests

exemple :
test \( -r fich1 -o -r fich2 \) -a -w fich3
vrai si fich1 ou fich2 accessible en lecture et fich3 accessible en écriture

IV.F. Les tests dans le shell
IV.F.5. Commande expr

Commande expr

évalue l’expression formée par les arguments et retourne la valeur du


résultat

syntaxe :
expr n1 + n2
expr n1 - n2
expr n1 * n2
expr n1 / n2
expr n1 % n2 (modulo)

IV.G. Les structures condi2onnelles et les boucles
IV.G. 1. les structures IF & CASE

La structure IF
Syntaxe:
if commandes1
then
commandes2
[ elif commandes ; then suite_de_commandes ]...
[ else commandes ]

Si commandes1 retourne 0 => commandes2 sera exécuté
1 => elif puis else
Exemple:
if test –f fichier
then echo “fichier existe”
else echo “fichier n’existe pas”


IV.G. Les structures condi2onnelles et les boucles
IV.G. 1. les structures IF & CASE

La structure case
Syntaxe:
case variable in
chaîne1) commande1 ;;
chaîne2 | chaîne3) commande2 ;;
chaîne4 | chaîne5 | chaîne6 | …) commande3 ;;
*) commande4 ;;
esac



IV.G. Les structures condi2onnelles et les boucles
IV.G. 1. les structures IF & CASE

La structure case
Exemple:

echo ’’pour imprimer le fichier taper : i’’
echo ’’pour détruire le fichier taper : d’’
echo ’’votre réponse ?’’
read reponse
echo
case $reponse in
i | I | [iI]*) ac2on=i ;;
d | D | [iD]*) ac2on=d ;;
*) echo ’’ erreur : ac2on non prise en compte’’ ;;
esac

IV.G. Les structures condi2onnelles et les boucles
IV. G.2. Les boucles : FOR, WHILE, UNTIL et BREAK

La boucle For
première syntaxe :

for variable in val1 val2 val3 ….


do
commandes
done

deuxième syntaxe :

for var in val1 val2 val3 ….


do
suite_de_commandes
done
IV.G. Les structures condi2onnelles et les boucles
IV. G.2. Les boucles : FOR, WHILE, UNTIL et BREAK

La boucle For
Exemples:

#!/bin/bash
for a in toto tata
do
echo $a
done

#!/bin/bash
For ((i=0 ; i<=10 ; i++))
do echo $i
done
IV.G. Les structures condi2onnelles et les boucles
IV. G.2. Les boucles : FOR, WHILE, UNTIL et BREAK

La boucle While
La boucle while exécute une séquence de commandes tant qu’une
condi2on est vraie.

Syntaxe :
while commande1
do
commandes
Done

Exemples:
while test $# -ne 0
do echo $1
shiŽ
done
IV.G. Les structures condi2onnelles et les boucles
IV. G.2. Les boucles : FOR, WHILE, UNTIL et BREAK

La boucle Un1l
La boucle un2l fonc2onne à l’inverse de la boucle while

Syntaxe :
un1l commande1
do commandes
done
Tant que le résultat de commande1 est faux alors exécuter commandes
false retourne toujours faux

Exemple :
un2l test $# -eq 0
do echo $1
shiŽ
done
Manipula2on de fichiers


Couper un fichier en morceau : split

La commande split permet de couper un fichier en morceau (en plusieurs fichiers),


ses op2ons sont :

- b n (Bytes) découpage par blocs de n octets
ou
- l n (Lignes) découpage par blocs de n lignes

Syntaxe : split fichier
Exemple: split -10 mon-fichier

Par défaut, les fichiers issus de la découpe auront un nom ayant pour préfixe x et pour suffixe
une suite de lenre du type aa, ab,ac... créés dans l'ordre lexicographique naturel (descendant
de 'a' vers 'z').

Manipula2on de fichiers


Edi1on de champ d'un fichier : cut

La commande cut permet d'extraire certains champs d'un fichier. Les op2ons sont les
suivantes :

-c extrait suivant le nombre de caractères
-f extrait suivant le nombre de champs
-dx Le caractère x est le séparateur de champ

Avec la commande cut, le premier champ a comme numéro 1, le deuxième 2 est ainsi de suite.

Manipula2on de fichiers

Edi1on de champ d'un fichier : cut

Soit le fichier carnet-adresse suivant


ali:29:0298334432:rabat
nadia:13:0466342233:casa
lamiaa:75:0144234452:rabat
hamid:92:013344433:rabat

La commande : cut -c-10 carnet-adresse
Va extraire les 10 premiers caractères de chaque ligne, on ob2ent :

ali:29:029
nadia:13:0
lamiaa:75:
hamid:92:0

La commande : cut –c1-3 carnet-adresse Va extraire du premier au troisième caractère de
chaque ligne.

ali
nad
lam
ham
Manipula2on de fichiers


Edi1on de champ d'un fichier : cut

La commande : cut -c25- carnet-adresse Va extraire du 25ème caractère jusqu'à


la fin de chaque ligne.

La commande : cut -d: -f1,4 carnet-adresse Va extraire le premier et quatrième
champ, le : fixant le séparateur de champ. On ob2ent :

ali:rabat
nadia:casa
lamiaa:rabat
hamid:rabat

La commande : cut -d: -f3- carnet-adresse Va extraire du troisième champ jusqu'au dernier
champ, soit :

0298334432:rabat
0466342233:casa
0144234452:rabat
013344433:rabat
Manipula2on de fichiers


Fusion de fichiers : paste

La commande paste permet la fusion de lignes de fichiers. Les op1ons sont les
suivantes :

-dx Le caractère x définit le séparateur de champs
-s Les lignes sont remplacées par des colonnes


Soit le fichier carnet-adresse :
ali:29:0298334432:rabat
nadia:13:0466342233:casa
lamiaa:75:0144234452:rabat
hamid:92:013344433:rabat

Et le fichier travail :
ingénieur
vendeuse
étudiante
prof
Manipula2on de fichiers


La commande awk

awk : est une commande très puissante, c'est un langage de programma2on, elle permet une
recherche de chaînes et l'exécu2on d'ac2ons sur les lignes sélec2onnées. Elle est u2le pour
récupérer de l'informa2on, générer des rapports, transformer des données entre autres. Une
grande par2e de la syntaxe a été empruntée au langage c.

Syntaxe

awk [-F] [-v var=valeur] 'programme' fichier


ou
awk [-F] [-v var=valeur] -f fichier-commande fichier

L'argument -F doit être suivi du séparateur de champ (-F: pour un ":" comme séparateur de
champ).
L'argument -f suivi du nom du fichier de configura2on de awk.
L'argument -v définit une variable (var dans l'exemple) qui sera u2lisée par la suite
dans le programme.
Un programme awk possède la structure suivante: critère de sélec2on d'une chaîne {ac1on},
quand il n'y a pas de critère c'est que l'ac2on s'applique à toutes les lignes du fichier.

Manipula2on de fichiers


La commande awk

U1lisa1on
Considérons, à 2tre d'exemple, le fichier de données exemple.txt :

Si on tape :
$ awk '{print}' exemple.txt
Le Le contenu du fichier exemple.txt s'affiche à l'écran.
La même chose, écrite différemment donnerait :
$awk '{print $0}' exemple.txt
Manipula2on de fichiers


La commande awk

La variable $0 représente un enregistrement.


Il existe aussi $1, $2, …,
$NF représentant chaque champ de l'enregistrement courant.
NR Nombre d'enregistrements déjà lus.
Le symbole $ est u2lisé comme spécificateur de colonne.
NF est le nombre de champs de l'enregistrement.

La commande awk suivante exécutée sur le fichier ci-dessus affiche le premier champ.
Comme aucun arrangement n'a été spécifié, l'ac2on {print $1} s'applique à tous les
enregistrements du fichier :

$awk '{print $1}' exemple.txt


Manipula2on de fichiers


La commande awk

L'arrangement NR > 1 pourrait être spécifié pour sauter le premier enregistrement :


awk 'NR>1 {print $1}' exemple.txt

$ awk '{if($2>24) print $2, $1}' exemple.txt OU $ awk '$2>24 {print $2, $1}' exemple.txt
Ges2on des Processus


La commande ps
Syntaxe :
ps [-ef] [-t liste] [-u liste]

Descrip2on :
La commande ps affiche l'état des processus; si aucune op2on n'est donnée, ce sont les
processus de la session ac2ve qui sont affichés.

Op2ons courantes
-e affiche tous les processus du système
-f affiche les informa2on au format long
-t liste affiche les processus liés aux terminaux de la liste
-u liste affiche les processus liés aux u2lisateurs de la liste
Ges2on des Processus


La commande ps

La significa2on des différentes colonnes est la suivante:



UID nom de l'u2lisateur qui a lancé le process
PID correspond au numéro du process
PPID correspond au numéro du process parent
C facteur de priorité : plus la valeur est pe2te, plus le processus est prioritaire
STIME correspond à l'heure de lancement du processus
TTY correspond au nom du terminal
TIME correspond à la durée de traitement du processus
COMMAND correspond au nom du processus.

Ges2on des Processus


Changer la priorité d'un processus

Vous disposez de la commande nice pour modifier la priorité d'un processus. La syntaxe est la
suivante :
nice -valeur commande

Plus le nombre est grand, plus la priorité est faible.
Par exemple une valeur de 0 donne, la priorité la plus haute 20 donne la priorité la plus faible.

Par exemple :
nice -5 ps –ef
nice -5 monprogramme.c

Ges2on des Processus

Arrêter un processus

Vous disposez de la commande kill pour arrêter un processus, on doit aussi tuer un processus.
Si vous voulez arrêter un processus, vous devez connaître son PID (commande ps), puis vous
tapez :

kill -9 PID

Un u2lisateur ne peut arrêter que les processus qui lui appar2ent (qu'il a lancé). Seul
l'administrateur système a le droit d'arrêter un processus ne lui appartenant pas.
Ges2on des Processus

Lancer un processus en arrière plan

Pour lancer une commande quelconque, vous en saisissez le nom après le prompt du shell, tant
que la commande n'est pas terminée, vous n'avez plus la main au niveau du shell, vous ne
disposez plus du prompt.

Si la commande prend un certain temps, votre shell ne vous donnera pas la main tant que la
commande n'est pas terminée, vous êtes obligé de lancer un autre shell, pour taper une autre
commande.


Ges2on des Processus


Lancer un processus en arrière plan

Vous disposez d'une technique simple qui permet de lancer une commande à par2r d'un shell,
et de reprendre aussitôt la main.
Il vous suffit de rajouter un & à la fin de commande. Celle-ci se lancera en " tâche de fond ", et
vous reviendrez directement au prompt du shell.

En tapant une commande en tâche de fond, vous aurez à l'affichage :
ps &
[321]

A la suite de la saisie de la commande suivie d'un &, le shell vous donne immédiatement la
main, et affiche le numéro du PID du processus lancé. En lançant une commande à par2r du
shell sans le & à la fin, et si celle-ci prend du temps à vous rendre la main, vous pouvez faire en
sorte qu'elle bascule en tâche de fond, pour que vous repreniez la main.


Ges2on des Processus


Lancer un processus en bg et le ramener en fg

fg (foreground, faire revenir une tâche en avant plan. Un processus en avant plan s'exécute plus
rapidement)

fg PID sinon fg sans PID concerne le processus en cours

bg (background, lance en tâche de fond un processus suspendu après CRTL + Z)



Bonne chance pour l’examen



Fin de Cours LINUX

Vous aimerez peut-être aussi