Sujet 103: Commandes GNU et Unix

Page 1 sur 62Lecteur de document UniversityLib

Sujet 103: Commandes GNU et Unix

Linux Command Line Operations · notes

Voir tous les documents en systèmes d'exploitation et cloud

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