Sujet 103 : Commandes GNU et Unix
103.1 Travailler en ligne de commande (Weight 4)
103.2 Contr ler des flux de texte l'aide des filtres (Weight 3)
103.3 Effectuer la gestion de base des fichiers (Weight 4)
103.4 Utilisation des flux, des tubes (pipes) et des redirections (Weight 5)
103.5 Cr ation, surveillance et destruction de processus (Weight 5)
103.6 Modifier la priorit d'ex cution d'un processus (Weight 3)
103.7 Recherche sur des fichiers texte avec des expressions r guli res
(Weight 2)
103.8 dition de fichiers texte avec "vi" (Weight 3)
ziedbouziri.com
1
Travailler en ligne de commande
ziedbouziri.com
2
Travail en ligne de commande
Description : Les candidats doivent tre capables de travailler en ligne de commande.
l'utilisation du shell bash sera trait dans cet objectif.
Termes, fichiers et utilitaires utilis s :
bash
echo
env
exec
export
pwd
set
unset
uname
history
ziedbouziri.com
3
bash
Bourne-again shell compatible avec sh, avec des fonctionnalit s de ksh, csh
un shell est un programme qui ex cute des programmes et permet aussi de
construire d'autres programmes appel s scripts.
prompts
salah@Bagdad:~> echo $PS1
\u@\h:\w>
salah@Bagdad:~> echo $PS2
>
ziedbouziri.com
4
S quences de commandes
Ex cuter s quentiellement des commandes l'une apr s l'autre :
cmd1 ; cmd2
Ex cuter cmd2 si et seulement si cmd1 s'est ex cut e sans erreur
cmd1 && cmd2
Ex cuter cmd2 si et seulement si cmd1 a renvoy une erreur :
cmd1 || cmd2
& en fin de commande permet de lancer cette commande en t che de fond
(background)
firefox &
ziedbouziri.com
5
Variables
Variables d'environnement : connues de toutes les commandes les commandes
lanc es depuis le shell.
salah@Bagdad:~> PS1="[\t][\u]\$"
[10:12:32] $
variable simple :
$ formation="lpi"
$ echo $formation
lpi
Rendre la variable visible pour les shells fils :
$ export formation
Afficher toutes les variables d'environnements : $ env
Afficher les variables simples et les variables d'environnement : $ set
Effacer une variable : $ unset formation
ziedbouziri.com
6
Quelques variables d'environnement bash
Variable
Fonction
USER
UID
HOME
?
#
1,2....
0
le nom de l'utilisateur courant
UID de l'utilisateur courant
Le repertoire de connexion de l'utilisateur courant
Le code d'erreur de la derni re commande
Le nombre de param tres l'appel du script
les param tres du script
le nom du script
ziedbouziri.com
7
quotes et variables
Quote double : Permet la substitution des variables
$ echo "mon repertoire est $HOME"
mon repertoire de connexion est /home/salah
Quote simple : D sactive l'interpr tation des caract res sp ciaux
$ echo 'mon repertoire de connexion est $HOME'
mon repertoire est $HOME
Quotes invers es : Permet la substitution des commandes
$ echo "mon repertoire courant est pwd"
mon repertoire courant est /tmp
ziedbouziri.com
8
Raccourcies claviers
history
HISTSIZE
HISTFILE
ziedbouziri.com
9
Raccourcies claviers, commandes Emacs
ziedbouziri.com
10
Contr ler des flux de texte l'aide des filtres
ziedbouziri.com
11
Traitement de flux de type texte par des filtres
Description : Les candidats doivent tre capables d'appliquer des filtres un flux de type
texte.
Termes, fichiers et utilitaires utilis s :
cat
cut
expand
fmt
head
od
join
nl
paste
pr
sed
sort
split
tail
tr
unexpand
uniq
wc
ziedbouziri.com
12
Filtres (1)
cut
Extraire des champs
nl
Publicité
Num roter les lignes
cat, less, more
Afficher le contenu
sort
Trier les lignes
tail / head
Afficher l'en te / enqueue
Fichier Texte
wc
Afficher le nombre d'octets, de mots et de lignes
ziedbouziri.com
13
cat et tac
Affiche le contenu d'un fichier.
Exemple fichier1
1 un
2 deux
3 trois
$ cat fichier1
$ tac fichier1
ziedbouziri.com
14
head et tail
head : Afficher le d but d'un fichier (par d faut les 10 premiers
lignes)
Exemple
$ head -3 /var/log/messages
tail : Afficher la derni re partie d'un fichier (par d faut les 10 derniers
lignes)
Exemples :
$ tail -c20 /etc/passwd
$ tail -f /var/log/messages
ziedbouziri.com
15
cut
Permet d'afficher certains champs d'un fichier donn
Exemple :
$ cut -d: -f1 /etc/passwd
ziedbouziri.com
16
nl
Num roter les lignes d'un fichier.
Exemples :
$ nl /etc/passwd
$ ls | nl -s')'
ziedbouziri.com
17
sort
Trier les lignes d'un fichier texte
options
-d : Trier dans l'ordre alphab tique
-n : Trier dans l'ordre num rique
-r : Inverser l'ordre
Exemples :
$ sort /etc/passwd
trier selon le champs RSS (resident size)
$ ps aux | sort -k 6 -n
ziedbouziri.com
18
wc
Afficher le nombre d'octets, de mots et de lignes d'un fichier.
Options
-c : Afficher uniquement le nombre d'octets
-m : Afficher uniquement le nombre de caract res
-l : Afficher uniquement le nombre de lignes
-w : Affiche uniquement le nombre de mots
Exemples :
$ wc -l fich
$ wc -w fich
$wc fich
ziedbouziri.com
19
Filtres (2)
paste
Regrouper les lignes
join
Jointure des lignes
Fichier Texte
split
D couper un fichier
ziedbouziri.com
20
paste
Regrouper les lignes de diff rents fichiers.
Exemple :
file1
1
2
3
file2
A
B
C
$ paste file1 file2
1 A
2 B
3 C
ziedbouziri.com
21
paste (suite)
$ paste -d'@' file1 file2
1@A
2@B
3@C
$ paste -s file1 file2
1 2 3
A B C
ziedbouziri.com
22
join
Fusionner les lignes de deux fichiers ayant un champ commun.
Exemple :
file1 :
1 one
2 two
3 three
file2 :
1 11
2 22
3 33
$ join -j 1 file1 file2
1 one 11
2 two 22
3 three 33
ziedbouziri.com
23
split
D couper un fichier en diff rentes partie.
Exemple1 :
file1 :
1 one
2 two
3 three
4 four
5 five
6 six
$ split -2 file1 splitout_
==> cr er trois fichiers splitout_aa, splitout_ab, et splitout_ac
Publicité
Exemple 2 : D couper un fichier en plusieurs de taille maximale d'une disquette :
$ split -b 1.4m grosfichier petitfichier_
ziedbouziri.com
24
Filtres (3)
fmt
Formater les paragraphes
expand (vs unexpand)
Convertir les tabulations en espaces
od
Afficher en format octal
Fichier Texte
tr
Convertir des caract res
Mise en forme pour l'impression.
pr
ziedbouziri.com
25
expand
Convertir les tabulations d'un fichier en espaces.
unexpand fait le processus inverse.
Exemple : convertir les tabulations en 2 espaces:
$ expand -t 2 monfichier
ziedbouziri.com
26
fmt
Formater les paragraphes dans un fichier.
options :
-u : Espacement uniforme. R duire les espacements entre les mots
une espace
-w : Remplir les lignes jusqu' la largeur mentionn e (par d faut
75 colonnes)
Exemple :
$ fmt -w 80 myfile.txt > myfile80wide.txt
ziedbouziri.com
27
od
Afficher le contenu d'un fichier en octal ou sous d'autres formats (decimal, hexadecimal,
ASCII)
option :
-t type S lectionner le format d'affichage des r sultats selon le type :
a : caract res litt raux
c : caract res ASCII ou s quences d' chappement pr fix es par
BackSlash
o : valeurs octales
u : valeurs d cimales non sign es
x : valeurs hexad cimales
Exemples :
$ od -t a file1
$od -t c file1
$ od -t x1 file1
ziedbouziri.com
28
pr
Mettre en forme des fichiers de texte pour l'impression.
Quelques options :
-wN : Indique le nombre de caract res par lignes (72)
-lN : Indique le nombre de lignes par page (66).
-hTexte : le Texte doit remplacer le nom de fichier dans l'en-t te
de chaque page.
-n : num rote les ligne
-m : imprimer tous les fichiers en parall le un par colonne
Exemples
$ pr -hLPI rapport.txt | lp
$ pr -m budget.oct budget.nov | lp
ziedbouziri.com
29
tr
Pour effectuer des conversions de caract res (exp minuscule/majuscule, ...)
Exemples :
$ cat file1 | tr 'a-z' 'A-Z' OU $ cat file1 | tr '[:lower:]' '[:upper:]'
la suppression des accents d'un texte :
cat file1 | tr ' ' 'aceeeeiioouuACEEEEIIOOUU'
Convertir les s quences de sauts de lignes en un seul saut de ligne (ceci
supprime les lignes blanches) :
cat file1 | tr -s '\n'
ziedbouziri.com
30
Gestion de fichiers
ziedbouziri.com
31
Effectuer une gestion de base sur les fichiers.
Description : Les candidats doivent tre capables d'utiliser les commandes Linux de base
pour g rer les fichiers et les r pertoires.
Termes, fichiers et utilitaires utilis s :
tar
cpio
dd
file
gzip
gunzip
bzip2
cp
find
mkdir
mv
ls
rm
rmdir
touch
ziedbouziri.com
32
Inodes
Associer chaque objet du syst me de fichier un inode (The
identification information for filesystem object)
Un inode regroupe des informations sur l'objet du syst me de fichiers :
localisation, date de modification, param tres de s curit ....
Chaque syst me de fichier ext2 est cr e avec un nombre fini d'inodes
calcul selon la taille du syst me de fichier et d'autres options pass es
la commande mke2fs.
plusieurs objets du syst me de fichiers peuvent partager le m me
inode : lien physique
ziedbouziri.com
33
Commandes de base
pwd : Afficher le chemin absolu du r pertoire courant
cd : changer de r pertoire
ls : lister le contenu d'un r pertoire
mkdir : cr er un nouveau r pertoire
rmdir : supprimer un r pertoire
touch : changer les informations de date et de d'heure d'un fichier; cr er un fichier
vide lorsque le fichier pass en argument n'existe pas.
cp :copier un fichier
mv : D placer ou renommer un fichier
rm : supprimer un fichier.
ziedbouziri.com
34
Utiliser les wildcards
Besoin de manipuler plusieurs fichiers la fois,
Par exemple : cas d'un d veloppement en C et pour tre sure de recompiler tous les
fichiers sources.
Wildcards
*
?
Descriptions
d signe 0 ou plusieurs caract res
D signe exactement un seul caract re
D signe un seul caract re de la liste
[!caract res] D signe un seul caract re en dehors de la liste
[!a-z]
Publicité
D signe un seul caract re appartenant l'intervalle de
caract res d fini entre [ ]
D signe un seul caract re n'appartenant pas l'intervalle de
caract res d fini entre [ ]
Exemples
x*
x? x??
x
x[!yz]
x[0-9] x
{frag1,frag2,..} brase expansion
file_{one,two,three}
ziedbouziri.com
35
Tubes et les redirections
ziedbouziri.com
36
Utilisation des flux, des tubes (pipes) et des redirections
Description : Les candidats doivent tre capables de rediriger des flux et de les connecter
dans le but de traiter efficacement ces donn es textuelles. Les t ches effectuer
comprennent les redirections de l'entr e standard, de la sortie standard et de la sortie
standard des erreurs, connecter la sortie d'une commande l'entr e d'une autre, utiliser la
sortie d'une commande comme param tre pour une autre commande et envoyer le r sultat
en m me temps sur la sortie standard et dans un fichier.
Termes, fichiers et utilitaires utilis s :
tee
xargs
ziedbouziri.com
37
Les tubes
Les tubes Unix permettent de combiner des commandes en les
utilisant comme des briques ind pendamment de leur provenance.
Trois types d'entr es / sorties
Entr e standard (stdin) : Descripteur 0
Sortie standard (stdout) : Descripteur 1
Sortie d'erreur standard (stderr) : Descripteur 2
ziedbouziri.com
38
Redirection
Fonction de redirection
Syntaxe
Envoyer stdout vers file
Envoyer stderr vers file
$ cmd > file ou $ cmd 1> file
$ cmd 2> file
Envoyer stdout et stderr vers file
$ cmd > file 2>&1
Envoyer stdout vers file1 et stderr vers file 2
$ cmd > file1 2>file2
Recevoir stdin partie de file
$cmd < file
Ajouter stdout la fin du file
$ cmd >> file ou $ cmd 1>> file
Envoyer stderr la fin du file
$ cmd 2>> file
Envoyer stdout et stderr la fin du file
$ cmd >> file 2>&1
ziedbouziri.com
39
Les tubes (pipe)
La sortie d'une commande devient l'entr e d'une autre.
Tubes et redirections peuvent tre combin es sur une ligne de
commande selon les r sultats qu'on veut obtenir.
Pipe stdout de cmd1 vers cmd2 :
$ cmd1 | cmd2
Pipe stdout et stderr de cmd1 vers cmd2.
$ cmd1 2>&1 | cmd2
Afficher les 6 premi res lignes du fichier /etc/passwd une fois ce
fichier tri par ordre alphab tique
$ sort /etc/passwd | head -6
La commande tee permet de dupliquer le flux de donn es en sortie : $
sort /etc/passwd | tee res1 | head -6
ziedbouziri.com
40
La commande xargs
cmd1 | xargs cmd2
" Permet de passer en arguments de la commande cmd2, le r sultat de la
commande cmd1
Exemples :
$ find /tmp -name core -type f -print | xargs /bin/rm -f
$ find /etc/ -name *.conf | xargs grep 'Linux'
ziedbouziri.com
41
Les Processus
ziedbouziri.com
42
Cr ation, surveillance et destruction de processus
Description :Les candidats doivent tre capables d'effectuer une gestion de base sur les
processus.
Termes, fichiers et utilitaires utilis s :
&
bg
fg
jobs
kill
nohup
ps
top
free
uptime
killall
ziedbouziri.com
43
Processus Unix ?
Un programme en cours d'ex cution qui utilise les ressources de la
m moire + processeur.
Quelques informations relatives un processus :
PID : Process ID
PPID : Parent Process ID
User ID (UID) et Group ID (GID) : Ayant lanc le processus
temps CPU
tables de r f rence des fichiers ouverts
ziedbouziri.com
44
ps
Quels sont les processus ex cut s par le syst me
Afficher tous les processus du syst me :
ps -A ou ps -ef
Manipulations
l'utilisateur salah ex cute la commande : $ vi test
Afficher les processus de l'utilisateur salah
ps -U salah
Afficher les utilisateurs qui ex cutent la commande vi
ps -f -C vi
UID PID PPID C STIME TTY TIME CMD
salah 5229 5201 0 18:23 pts/5 00:00:00 vi tets
zied 5278 4370 0 18:31 pts/0 00:00:00 vi test
ziedbouziri.com
45
top
Afficher des informations sur l'activit du syst me en temps r el
Quelques options interactives :
ctrl-L : refresh
h : help
n : nombre de processus afficher
q : quitter
r : (renice) changer le priorit d'un processus
ziedbouziri.com
46
Envoyer un signal un processus
Publicité
kill PID
Afficher une liste des noms de signaux connu : kill -l
ziedbouziri.com
47
Envoyer un signal un processus (suite ...)
Envoyer SIGTERM aux processus (PIDs 1000 et 10001
$ kill 1000 1001
$ kill -15 1000 1001
$ kill -SIGTERM 1000 1001
$ kill -TERM 1000 1001
relecture des fichier de configurations
kill -HUP cat /var/run/httpd.pid
Arr t forc !
kill -9 1000 1001 ou bien kill -KILL 1000 1001
Afficher les processus qui s'ex cutent en arri re plan (bg)
firefox &
[1] 5788
jobs
[1]+ Running ./firefox &
ziedbouziri.com
48
Envoyer un signal un processus (encore ...)
Vous avez oubli de lancer xterm en arri re plan (bg) :
xterm
(vous faites ctrt z)
TSTP (20)
[1]+ Stopped xterm
bg
[1]+ xterm &
CONT
(18)
Envoyer un signal des processus indiqu s par leurs noms
killall -HUP httpd
ziedbouziri.com
49
Modifier la priorit d'un processus
ziedbouziri.com
50
Modification des priorit s des processus
Description : Les candidats doivent tre capables de g rer les priorit s des processus.
Termes, fichiers et utilitaires utilis s :
nice
ps
renice
top
ziedbouziri.com
51
Priorit des processus
top ou bien ps -l
le noyau offre + temps CPU pour hight priority process
Par d faut les processus d'un utilisateur sont cr s avec la Nice Number 0.
Nice Number positif --> moins de priorit
Nice Number n gatif --> plus de priorit
Nice Number varie de -20 19
Un utilisateur peut lancer un processus avec un Nice Number positif
SEUL root peut lancer un processus avec un Nice Number n gatif
ziedbouziri.com
52
nice et renice
Un utilisateur lance cmd avec un Nice Number +5
$nice -5 cmd1
Seul root peut lancer des processus avecun Nice Number n gatif
nice - -10 vi /etc/hosts.deny
nice -n -10 vi /etc/hosts.deny
renice : Modifier la priorit d'un processus
#renice -20 501
#renice -10 -u salah -p 501
ziedbouziri.com
53
Recherche sur des fichiers texte avec des
expressions r guli res
ziedbouziri.com
54
Recherche dans des fichiers texte avec les expressions r guli res
Description : Les candidats doivent tre capables de g rer les priorit s des processus.
Termes, fichiers et utilitaires utilis s :
grep
egrep
fgrep
sed
ziedbouziri.com
55
Objectifs et outils
Recherche (texte) sur le contenu des fichiers, selon un mod le (motif) : les expressions
r guli res regex
Une expression r guli res (regular expression) est un motif qui permet de d crire un
ensemble de cha nes.
Outils : grep, egrep, sed, awk, Perl, java ...
grep regex
options :
-c : Afficher le nombre de lignes qui satisfait regex, pas les lignes
-h :Ne pas afficher le nom des fichiers dans les r sultats lorsque plusieurs fichiers sont
parcourus.
-i : Ignorer les diff rences majuscules/minuscules dans la recherche.
-n : Ajouter chaque ligne de sortie un pr fixe contenant son num ro dans le fichier
-v : Afficher les lignes qui ne satisfait pas regex
-E : Interpr ter regex comme une expression r guli re tendu. egrep
ziedbouziri.com
56
Expression r guli re : position
ziedbouziri.com
57
Expression r guli re : groupe de caract res
ziedbouziri.com
58
Expression r guli re : Les modificateurs
ziedbouziri.com
59
L' diteur vi
ziedbouziri.com
60
dition de fichiers texte avec "vi"
Description : Les candidats doivent tre capables de g rer les priorit s des processus.
Termes, fichiers et utilitaires utilis s :
vi
/, ?
h,j,k,l
i, o, a
c, d, p, y, dd, yy
ZZ, :w!, :q!, :e!
ziedbouziri.com
61
L' diteur historique du syst me UNIX
x : supprimer caract re
dd : supprimer la ligne
u : undo
ctrl-R : redo
/ : recherche
n : r sultat suivant
Mode Commande
i, a
esc
:
Mode Edition
w :enregistrer
wq : enregistrer et quitter
Mode Ex cution
ziedbouziri.com
62