Vous êtes sur la page 1sur 118

La SS2L de rfrence pour les services, les formations et les solutions Open Source

Formations

Shell Linux Les basiques

BY-NC-SA

Licence d'Utilisation Commerciale - Partage des Conditions Initiales l'Identique 2.0 Paternit - Pas
France

Vous tes libres :

de reproduire, distribuer et communiquer cette cration au public, de modifier cette cration.

Selon les conditions suivantes : Paternit. Vous devez citer le nom de l'auteur original. Pas d'Utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette cration des fins commerciales. Partage des Conditions Initiales l'Identique. Si vous modifiez, transformez ou adaptez cette cration, vous n'avez le droit de distribuer la cration qui en rsulte que sous un contrat identique celui-ci. chaque rutilisation ou distribution, vous devez faire apparatre clairement aux autres les conditions contractuelles de mise disposition de cette cration. Chacune de ces conditions peut tre leve si vous obtenez l'autorisation du titulaire des droits.
BY-NC-SA
2

LINAGORA, premier EOS

Crateur des concepts SS2L (Socit de Services en Logiciels Libres) et TM2L (Tierce Maintenance Logiciel Libre), LINAGORA se dfinit dsormais comme un diteur Orient Service (EOS). LINAGORA propose une Open Source Software Assurance (OSSA) sur 150 logiciels libres :

Prts l'industrialisation, sur une plate-forme unique : le 08000LINUX.com. Avec garantie de service contractuelle : en cas de bug, LINAGORA sengage au rsultat sur des dlais de rsolution. Gestion de la feuille de route du logiciel pour le compte du client et sengage au reversement des dveloppements.

LINAGORA apporte galement son expertise sur toute une gamme de services professionnels et de formations au travers de LINAGORA Formations Paris et Lyon.

BY-NC-SA

Pourquoi Linagora met ce support sous licence Creative Commons

Volont de contribuer activement l'essor du logiciel libre Promouvoir l'change et favoriser l' mulation communautaire Assurer la prennit de l'industrie logiciel libre et ne comptabiliser que la Valeur Ajoute (le formateur) Partager le savoir et la connaissance une vaste chelle

Linagora croit au Libre !


BY-NC-SA
4

LINAGORA Formations

10 annes d'exprience, au service des technologies libres et Open Source


40 modules de formation rpartis au travers de 7 filires Un cadre agrable, au coeur de Paris, Toulouse et Lyon Salles de formation climatises pouvant accueillir jusqu' 10 stagiaires. 2007 : Plus de 400 stages effectus 2007 : Plus de 2300 stagiaires Une satisfaction moyenne client de 18/20 Une note moyenne formateur de 16,27/20

BY-NC-SA

Filires de formations
Dveloppement Web Linux embarqu

Administration et scurit

J2EE OpenSource

Les basiques Bureautique OpenOffice.org


BY-NC-SA

Bases de donnes

Organisation gnrale et planning


09h30 : dbut des cours 10h30 : pause du matin 10h45 : reprise des cours 12h00 : pause djeuner Jour 1 :
Rappel des essentiels Structure de contrle Alias et fonctions Expressions rgulires

Jour 2 : 13h00 : reprise des cours 15h00 : pause de l'aprs-midi 15h15 : reprise des cours 17h30 : fin de journe 17h30 : libre discussion avec le formateur Jour 3 :
Le filtre SED Le processeur de texte AWK Des commandes simples et pratiques Chane de caractre Gestion de fichiers

BY-NC-SA

Sommaire jour 1

Rappel des essentiels Structure de contrle Alias et fonctions Expressions rgulires


BY-NC-SA
8

Sommaire jour 2

Chane de caractre Gestion de fichiers

BY-NC-SA

Sommaire jour 3

Le filtre SED Le processeur de texte AWK Des commandes simples et pratiques

BY-NC-SA

10

Rappel des essentiels


Le rle du shell

Interprteur interactif de commandes

Excute des programmes (scripts)

script ls sh date sh date ls

BY-NC-SA

11

Rappel des essentiels


Le rle du shell
Le Shell est un interprteur de commandes, mais aussi un langage de programmation.

Type de Shell : Shell Bourne C-Shell Korn Shell Bash (linux) Diffrents prompts : $ % #

: /bin/sh : /bin/csh : /bin/ksh : /bin/bash ...

BY-NC-SA

12

Rappel des essentiels


Editeur vi
Les 3 modes : Le mode VI => attend la frappe d'une touche pour dclencher une action Le mode insertion => criture ou modification de texte Ex: i, a Le mode EX => permet de lancer des commandes Ex: :wq, :q!

BY-NC-SA

13

Rappel des essentiels


Editeur vi

Application: vimtutor

BY-NC-SA

14

Les jokers
Joker = caractre de substitution

Utilisation du shell

* ? [...]

Une suite quelconque de caractres Un caractre quelconque et un seul Un des caractres compris entre les []

BY-NC-SA

15

Les jokers
$ ls chap1 chap2 chap23 chap43 $ echo * chap1 chap2 chap23 chap43 $ echo chap2* chap2 chap23

Utilisation du shell

BY-NC-SA

16

Les jokers
$ echo chap?2 chap23 chap43

Utilisation du shell

$ echo chap[1234] # ou echo chap[1-4] chap1 chap2

BY-NC-SA

17

Utilisation du shell
Les caractres d'chappement

'...' "..." \

Echappe tous les caractres Echappe tout sauf : \ ` $ Echappe le caractre qui suit

BY-NC-SA

18

Utilisation du shell
Les caractres d'chappement
Que vont donner les commandes suivantes ? $ echo \* \~ \$ \\

$ echo '* ~ $ \'

$ echo le caractre * ou le \*

BY-NC-SA

19

Utilisation du shell
Les caractres d'chappement
Que vont donner les commandes suivantes ? rponse ... $ echo \* \~ \$ \\ * ~ $ \ $ echo '* ~ $ \' * ~ $ \ $ echo le caractre * ou le \* le caractre [liste fichiers] ou le *

BY-NC-SA

20

Utilisation du shell
Les caractres d'chappement
Que se passe t'il ?

$ echo bon\ > jour bonjour

BY-NC-SA

21

Les redirections
Redirection de la sortie standard STDOUT crasement ajout

Utilisation du shell

> >> < 2>

Redirection de l'entre standard STDIN Redirection des messages d'erreur STDERR

BY-NC-SA

22

Les redirections

Utilisation du shell

Ouverture d'un fichier : n de descripteur Entre standard Sortie standard Erreur standard 0 1 2

Redirections : Entre Sortie Erreur 0< 1> 2>

BY-NC-SA

23

Les redirections

Utilisation du shell

> >>

cmd cmd

fichier fichier

ls -l >liste who >> liste

<

fichier

cmd

mail admin < liste

BY-NC-SA

24

Utilisation du shell
Les redirections
Que contient le fichier toto ? $ date ven sep 16 17:11:13 CEST 2005 $ date > toto $ whoami >> toto

$ whoami root

BY-NC-SA

25

Les redirections
Que contient le fichier toto ? rponse ...

Utilisation du shell

ven sep 16 17:11:13 CEST 2005

$ date > toto $ whoami >> toto

ven sep 16 17:11:13 CEST 2005 root

BY-NC-SA

26

Utilisation du shell
Les redirections
Comment automatiser cela ?

$ mail stan Subject: test coucou ! <Ctrl-D>

BY-NC-SA

27

Utilisation du shell
Les redirections
Comment automatiser cela ? rponse ...

Mettre le message dans un fichier $ echo coucou ! > message

Puis rajouter la commande suivante dans /etc/crontab : $ mail stan -s test < message

BY-NC-SA

28

Les redirections
$ ls /etc/group XXX ls: XXX: Aucun fichier ou rpertoire de ce type /etc/group Que se passe t'il avec les commandes suivantes ? $ ls /etc/group XXX 2> erreur $ ls /etc/group XXX > erreur 2>&1

Utilisation du shell

BY-NC-SA

29

Utilisation du shell
Les redirections
Que se passe-t-il avec les commandes suivante ? Rponse ... $ ls /etc/group XXX 2> erreur /etc/group $ cat erreur ls: XXX: Aucun fichier ou rpertoire de ce type $ ls /etc/group XXX > erreur 2>&1 $ cat erreur ls: XXX: Aucun fichier ou rpertoire de ce type /etc/group
BY-NC-SA
30

Utilisation du shell
Les redirections

Fichier spcial /dev/null

Applications :

commande > /dev/null commande 2> /dev/null

BY-NC-SA

31

Utilisation du shell
Les redirections
Quelles diffrences ?

$ cal > temp; mail stan < temp; rm temp $ cal | mail stan

BY-NC-SA

32

Utilisation du shell
Les redirections
Quelles diffrences ? rponse ... $ cal > temp; mail stan < temp; rm temp $ cal | mail stan AUCUNE !!! $ cal
sortie standard

mail stan
entre standard

BY-NC-SA

33

Utilisation du shell
Les redirections

ls -l | grep file | wc -l

ls

grep

wc

BY-NC-SA

34

Utilisation du shell
Le remplacement de commandes

Remplace dans la ligne, la commande par le rsultat Exemple : $ echo la date la date $ date lun oct 10 10:40:40 CEST 2007 $ echo la date est `date` la date est lun oct 10 10:40:19 CEST 2007

BY-NC-SA

35

Utilisation du shell
Le remplacement de commandes
Que font les commandes suivantes ?

$ echo ????: `ls | wc -w`

$ echo ????: `who | cut -d ' ' -f1`

BY-NC-SA

36

Utilisation du shell
Le remplacement de commandes
Que font les commandes suivantes ? rponse ...

$ echo nombre de fichiers du rpertoire: `ls | wc -w`

$ echo Utilisateurs connects: `who | cut -d ' ' -f1`

BY-NC-SA

37

Atelier 3

Utilisation du shell

Le shell A vous de jouer !

BY-NC-SA

38

Le principe

Les scripts shell

Fichier texte contenant des commandes Excution squentielle En cas d'erreur, l'excution se poursuit Les bonnes pratiques:

Signaler le dmarrage Dtruire les fichiers temporaires Avertir de la fin du script

BY-NC-SA

39

Exemple de scripts

Les scripts shell

#!/bin/bash # Ceci est un commentaire echo "Hello World"

BY-NC-SA

40

Execution d'un script


Excution via la commande sh Ex: $ sh script.sh Cration d'une nouvelle commande Ex: $ chmod +x script.sh $ ./script.sh Excution par le shell courant Ex: $ . script.sh ou $ source script.sh

Les scripts shell

BY-NC-SA

41

La mise au point

Les scripts shell

Activation / dsactivation du mode trace dans un script #!/bin/sh set -x echo affiche la trace des commandes set echo mode normal A l'execution d'un script $ sh -xv script.sh

BY-NC-SA

42

Affichage
Insertion de caractre spciaux : $'chane' \a alerte \b effacement arrire \e un caractre escape \f fin de page \n fin de ligne \r retour chariot \t tabulation horizontale \v tabulation verticale \\ anti-slash \nnn code ASCII en octal \xnnn code ASCII en hexadcimal

Les scripts shell

BY-NC-SA

43

Atelier 4

Les scripts shell

Les scripts shell A vous de jouer !

BY-NC-SA

44

Les variables
Les variables
$ nom=STANKIEWICZ $ societe=Linagora $ echo $nom STANKIEWICZ $ echo $societe Linagora $ unset societe $ echo $societe

BY-NC-SA

45

Les variables du shell


Numro de la ligne d'un script LINENO Un nombre au hasard Le rpertoire courant Le rpertoire de connexion ... RANDOM PWD HOME

Les variables

BY-NC-SA

46

Les variables
L'environnement
Variables qui seront copies aux fils Placer une variable dans l'environnement : export Visualiser les variables d'environnement : env Supprimer des variables d'environnement : unset

BY-NC-SA

47

Le fichier .profile
Variables d'environnement Options du shell (set -o) Paramtres du terminal Droits par dfauts

Les variables

BY-NC-SA

48

Les paramtres

Les variables

$ script.sh

alpha beta gamma Ensemble des paramtres $* $1 $2 $3 Leur nombre $#

La commande $0

BY-NC-SA

49

Les variables
Les paramtres
* @ # ? $ $! Ensemble des paramtres (regroup) Ensemble des paramtres Nombre de paramtres Code retour de la dernire commande PID du shell qui excute le script PID du dernier processus

BY-NC-SA

50

Les variables
Les paramtres
Exercice - faire un script qui produise la sortie suivante : $ sh script.sh alpha beta gamma Mon nom est script.sh, j'ai recu 3 paramtres Le PID de mon shell est 10900 Les voici globalement alpha beta gamma Le 1er paramtre est alpha

BY-NC-SA

51

Les paramtres
Exercice - faire un script qui produise la sortie suivante : #!/bin/bash echo "Mon nom est $0, j'ai recu $# paramtres" echo "Le PID de mon shell est $$" echo "Les voici globalement $*" echo "Le 1er paramtre est $1"

Les variables

BY-NC-SA

52

Les paramtres
Set remplace tous les paramtres Shift dcale les paramtres $ set 1 2 3 $ echo $* 123 $ shift; echo $* 23 $ set 1 $ echo $* 1

Les variables

BY-NC-SA

53

Les variables
Les paramtres
$ set un deux trois; echo $* ? $ shift; echo $*; echo $1 ? $ shift; echo $*; echo $1 ? $ shift; eco $# ?

BY-NC-SA

54

Les paramtres
$ set un deux trois; echo $* un deux trois $ shift; echo $*; echo $1 deux trois deux $ shift; echo $*; echo $1 trois trois $ shift; eco $# 0

Les variables

BY-NC-SA

55

L'instruction read
Lecture des caractres saisis au clavier Scripts interactif Exemple: $ sh script.sh Login: stan Welcome stan echo -n "Login: " read user echo "Welcome $user"

Les variables

BY-NC-SA

56

Les variables
Atelier 5

Les variables A vous de jouer !

BY-NC-SA

57

Les instructions de contrle


If
if commande then commande else commande fi

BY-NC-SA

58

Les instructions de contrle


Le code retour
$ date lun oct 10 14:04:41 CEST 2005 $ echo $? 0 $ cat FILE cat: FILE: Aucun fichier ou rpertoire de ce type $ echo $? 1

BY-NC-SA

59

Les instructions de contrle


Le code retour
Valeurs possible : 0 255 Valeur 0 Vrai Autres valeurs - Faux

BY-NC-SA

60

Les instructions de contrle


Oprateur && et ||
Conditionne l'xcution d'une commande par le code retour cmd1 && cmd2 cmd1 || cmd2 Si code retour = 0, excute cmd2 Si code retour 0, excute cmd2

BY-NC-SA

61

Les instructions de contrle


La commande test
Syntaxe : if test option ; then ... fi if [ option ] ; then ... fi Test d'un attribut de fichier : -e <fichier> -f <fichier> -d <fichier> -x <fichier> Vrai si existe Vrai si existe + fichier ordinaire Vrai si existe + rpertoire Vrai si existe + xcutable

BY-NC-SA

62

La commande test
-z <chane> -n <chane> <chane> = <chane>

Les instructions de contrle


Vrai si longueur = 0 Vrai si longueur 0 Vrai si chane identique

Comparaison de chanes de caractres

<chane> != <chane> vrai si chane diffrente Comparaison de deux nombres -eq = -ne -lt < -le <= -ge > -gt >=

BY-NC-SA

63

Le choix multiple

Les instructions de contrle

case $1 in 1) echo choix un ;; 2) echo choix deux ;; *) echo autre choix ;; esac

BY-NC-SA

64

Les instructions de contrle


La boucle tant que
while [ ! -f fichier ] do sleep 10 done echo fichier existe

BY-NC-SA

65

Les instructions de contrle


La boucle jusqu'
until [ -f fichier ] do sleep 10 done echo fichier existe

BY-NC-SA

66

Les instructions de contrle


La boucle for
for var in un deux trois do echo var = $var done Si pas de clause in => $*

BY-NC-SA

67

Les instructions de contrle


Sauts inconditionnels
Interrompre une boucle while, until, for : break, reprend aprs le done continue, reprend au dbut de la boucle

BY-NC-SA

68

Les instructions de contrle

Les instructions de contrle

A vous de jouer !

BY-NC-SA

69

Alias et fonctions
Alias
Alias = synonymes de commandes

Crer un alias : Utiliser un alias : Afficher la liste des alias: Dtruire un alias :

$ alias dir='ls -lba' $ dir $ alias $ unalias dir

BY-NC-SA

70

Alias et fonctions
Sous programme
$ more programme #!/bin/sh echo Dbut programme sous_programme echo Fin programme $ more sous_programme #!/bin/sh echo Dbut sous programme echo Fin sous programme

BY-NC-SA

71

Sous programme
$ more programme #!/bin/sh sous_programme() { echo Dbut sous programme echo Fin sous programme } echo Dbut programme sous_programme echo Fin programme

Alias et fonctions

BY-NC-SA

72

Sous programme
#!/bin/bash compare() { if [ $1 = $2 ] ; then echo "Chane identique" else echo "Chane diffrente" fi } compare "chaine" "cha" compare "33" "33

Alias et fonctions

BY-NC-SA

73

Sous programme Sous programme #!/bin/bash


login() { read password if [ "$password" == "linux" ] ; then return 0 else return 1 fi } if login; then echo "Correct password"; fi

Alias et fonctions

BY-NC-SA

74

Alias et fonctions

Les alias et les fonctions A vous de jouer !

BY-NC-SA

75

L'arithmtique
expr
$ expr 3 + 2 5 $ expr 3 \* 5 15 $ a=3 $ b=`expr $a + 3` $ echo $b 6

BY-NC-SA

76

expr

L'arithmtique

Exercice afficher 15 fois Bonjour en utilisant une boucle

BY-NC-SA

77

L'arithmtique
expr
Exercice afficher 15 fois Bonjour en utilisant une boucle #!/bin/bash nb=0 while [ $nb -lt 15 ] ; do echo " Bonjour" nb=`expr $nb + 1` done

BY-NC-SA

78

L'arithmtique
bc
$ bc 3.4 + 2 5.4 x=2 3+x 5 quit $ echo 3+4 | bc 7

BY-NC-SA

79

Atelier 8

L'arithmtique

L'arithmtique A vous de jouer !

BY-NC-SA

80

Les expressions rgulires


Utilisation de grep
Syntaxe grep [option] exp_reg fichier Options -v -c -n -i -l

Toutes les lignes qui ne correspondent pas Compte le nombre de lignes Affiche le numro des lignes Ignore les diffrences majuscules/minuscules Affiche le nom des fichiers

BY-NC-SA

81

Les expressions rgulires


Les mta-caractres
^ $ . x* \x [adv], [a-f], [^0-9] Dbut de ligne Fin de ligne Un caractre quelconque Suite de caractres x Echappe le caractre x Caractre compris dans un domaine

BY-NC-SA

82

Les expressions rgulires


egrep
Possibilits supplmentaires r+ une ou plusieurs occurences r? zro ou une occurrence r1 | r2 r1 ou r2 (r) groupe d'expression

BY-NC-SA

83

Atelier 9

Les expressions rgulires

Les expressions rgulires A vous de jouer !

BY-NC-SA

84

Les chanes de caractres


Expressions de variables
Longueur d'une chane ${#var} $ fic=/usr/local/bin/emacs $ echo ${#fic} 20

BY-NC-SA

85

Les chanes de caractres


Expressions de variables
Suppression du dbut d'une chane ${var##modele} plus grande occurence ${var#modele} plus petite occurence $ fic=/usr/local/bin/emacs $ echo ${fic#/*/} local/bin/emacs $ echo ${fic##/*/} emacs

BY-NC-SA

86

Expressions de variables

Les chanes de caractres

Suppression de la fin d'une chane ${var%modele} plus grande occurence ${var%%modele} plus petite occurence $ user=`grep stan /etc/passwd` $ echo $user stan:x:1001:1001:Stankiewicz,,,:/home/stan:/bin/bash echo ${user%:*} stan:x:1001:1001:Stankiewicz,,,:/home/stan echo ${user%%:*} stan

BY-NC-SA

87

Les chanes de caractres


basename, dirname
$ fic=/usr/local/bin/emacs $ basename $fic emacs $ dirname $fic /usr/local/bin

BY-NC-SA

88

Atelier 10

Les chanes de caractres

Les chanes de caractres A vous de jouer !

BY-NC-SA

89

La gestion de fichiers
Sparateur de champs
#!/bin/bash echo -n "?" read v1 v2 v3 echo "$v1 - $v2 - $v3" IFS=, echo -n "?" read v1 v2 v3 echo "$v1 - $v2 - $v3"

$ sh script.sh ?1 2 3 1-2-3 ?1 2,3 12-3-

BY-NC-SA

90

La gestion de fichiers
Lecture d'un fichier dans un boucle
$ more programme #!/bin/sh while read line do echo >$line $ programme done < fichier >Bonjour >Salut $ more fichier Bonjour Salut

BY-NC-SA

91

La programmation multitche en shell


Panorama des commandes de gestion de processus
<cmd> & ps kill wait nice nohup at Excute une commande en arrire plan Affiche la liste des processus Envoie un signal Attend la fin des processus en arrire plan Diminue la priorit d'un processus Rend le processus insensible la dconnexion Lance un script en diffr

BY-NC-SA

92

La programmation multitche en shell


La programmation parallle
#!/bin/sh cal who ls -lR / & find / -print & wait date date ls who find cal

BY-NC-SA

93

La programmation multitche en shell


La gestion de signaux
#!/bin/bash trap "echo Tu ne me tueras pas comme ca" INT trap "echo Argh, tu as trouv ; exit" TERM echo "Arriveras tu me tuer ?" while : do sleep 10 echo "Je suis encore la !" done

BY-NC-SA

94

La programmation multitche en shell


La gestion de signaux
1 2 15 9 23 25 HUP INT TERM KILL STOP CONT Dconnexion de l'utilisateur Interruption (^C) Demande d'arrt Tue le processus Suspend l'excution (^Z) Reprend l'excution

BY-NC-SA

95

La programmation multitche en shell Atelier 12

La programmation multitache A vous de jouer !

BY-NC-SA

96

Quelques commandes utiles


Rinterprtation d'une commande
A=toto B='$A' echo $B $A eval echo $B toto read val who|wc -l $val -bash: who|wc: command not found eval $val 2

BY-NC-SA

97

Quelques commandes utiles


La commande xargs
Gnre les arguments d'une commande depuis l'entre standard.

$ cat liste | xargs tar c $ xargs ls /home ^D lost+found stan

<=>

$ tar c `cat liste`

BY-NC-SA

98

Quelques commandes utiles


La commande tput
Gre l'adressage du curseur

tput clear tput cup 3 5 tput smso tput rev ...

Efface l'ecran Positionne le curseur la 3eme ligne, 5eme colonne Passe en caractre gras Reviens en mode non gras

BY-NC-SA

99

Atelier 14

Quelques commandes utiles

Des commandes simples et pratiques A vous de jouer !

BY-NC-SA

100

Le filtre sed
Principe de fonctionnement

sed 's/1/un/g' file 1 cheval 1 ne un cheval un ne

BY-NC-SA

101

Principe de fonctionnement
Substitution d'une occurence par ligne $ sed 's/1/un/' file Substitution de toutes les occurences d'une ligne $ sed 's/1/un/g' file Utilisation de plusieurs instructions sed -e 's/1/un/g' -e 's/a/A/g' file Fichier de commandes sed -f prog file s/1/un/g s/a/A/g

Le filtre sed

BY-NC-SA

102

Les commandes sed


Substitution d'une chane par une autre $ sed 's/root/adm/g' /etc/passwd Afficher les 3 premires lignes $ sed ''3q' /etc/passwd Supprimer les lignes qui contiennent une chane $ sed '/root/d' /etc/passwd Afficher les lignes 5 10 d'un fichier $ sed -n '5,10p' /etc/passwd

Le filtre sed

BY-NC-SA

103

Les commandes sed Les commandes sed


Liste des diffrents shells utiliss sed 's/.*://' /etc/passwd | sort | uniq Liste des utilisateurs ayant un mot de passe sed '/^[^:]*::/d' /etc/passwd Mettre le shell sh pour les utilisateurs de ksh,csh,rsh sed 's/\/[kcr]sh$/\/sh/' /etc/passwd

Le filtre sed

BY-NC-SA

104

Les sous-expressions
sed 's/chaine1/chaine2/' \(...\) \1 \(...\) \2

Le filtre sed

sed 's/\(.*\),.*,\(.*\)/\1:\2/' file un,deux,trois one,two,three un:trois one:three

BY-NC-SA

105

Atelier 15

Le filtre sed

Le filtre sed A vous de jouer !

BY-NC-SA

106

Le processeur de texte awk


Principes de fonctionnement
$ who | awk '{ print $1 }'

$ cat > programme { print $1 } ^D $ awk -f programme fichier

BY-NC-SA

107

Le processeur de texte awk


Structure d'un programme
# programme awk Section BEGIN BEGIN { Excute avant la lecture du fichier print Dbut } Section principale { print Utilisateur $1 } Suite de clauses excutes pour chaque ligne /tty/ { print vrai terminal } Section END END { Excute avant la lecture du fichier print Fin }

BY-NC-SA

108

Les critres

Le processeur de texte awk

Expression rgulire valide pour la ligne /sh/ { print $1 } Expression rgulire valide pour un champ $2 ~ /^$/ { print $1 } $2 !~ /^$/ { print $1 } Comparaison $2 == { print $1 } $3 > 1000 { print $1 }

BY-NC-SA

109

Le processeur de texte awk


Les variables prdfinies
$0 $1, $2, ... NF FS OFS NR FNR FILENAME Ligne courante Champs courant Nombre de champs courant Sparateur de champs en entre Sparateur en sortie Nombre de lignes lus (tout fichier confondu) Nombre de lignes lus (fichier courant) Nom du fichier courant

BY-NC-SA

110

Le processeur de texte awk


Les variables et les expressions
% ++ -+= == != ! Modulo Incrment Dcrment Ajout d'une valeur une variable Egalit Diffrence Ngation (8%3 => 2 (i++ => i=i+1) (i-- => i=i-1) (i+=5 => i=i+5) )

BY-NC-SA

111

Le processeur de texte awk


Les variables et les expressions
BEGIN { cpt = 0 } $2 == "tty1" { cpt++ } END { print cpt " lignes dont le 2eme champ est tty1" }

BY-NC-SA

112

Le processeur de texte awk


C'est aussi ...
La gestion des tableaux Des instructions (if, while, ...) Des fonctions (prdfinies et utilisateurs)

BY-NC-SA

113

Ateler 16

Le processeur de texte awk

Le filtre awk A vous de jouer !

BY-NC-SA

114

Le shell et l'administration
Commandes utile
test date logger ulimit Tester les attributs d'un fichier Cration de fichier de log Envoyer un message au syslog Limiter l'usage des ressources

BY-NC-SA

115

Le shell et l'administration
Screen
screen Ctrl-a d screen -R Ctrl-a c Ctrl-a Ctrl-a Ctrl-a A Ctrl-a " Nouvelle session Dtache la session R-attache une session Cration d'une nouvelle fentre Switch d'une fentre l'autre Nomme la fentre courante Liste toutes les fentres

BY-NC-SA

116

Variable PATH

Le shell et l'administration

Ajouter le rperoire /sbin son PATH : PATH="${PATH}":/sbin export PATH

BY-NC-SA

117

Merci de votre attention


LINAGORA 30 rue Saint Augustin - 75002 PARIS Tl. : 01 58 18 68 28 || Fax : 01 58 18 68 29
BY-NC-SA
118

Vous aimerez peut-être aussi