Académique Documents
Professionnel Documents
Culture Documents
Cours Linux 3eme Annee
Cours Linux 3eme Annee
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
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.
• 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
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.
• 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
• 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 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.B. Le super-u2lisateur
II.D.1. la commande ls
II.D.2. la commande cd
II.E. Ges2on des fichiers et des répertoires en mode commande (TP n°2 )
/usr/local con2ent les données rela2ves aux programmes installés sur la machine locale par le root
/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
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 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
• 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
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
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
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 inclure tous les noms commençant par une lettre majuscule allant de A à X:
[A-X]*
§ 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.
§ 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).
\ 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 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
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
La boucle For
première syntaxe :
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 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
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 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
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
$ 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
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
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)