Académique Documents
Professionnel Documents
Culture Documents
Formations
BY-NC-SA
Licence d'Utilisation Commerciale - Partage des Conditions Initiales l'Identique 2.0 Paternit - Pas
France
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
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
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 Formations
BY-NC-SA
Filires de formations
Dveloppement Web Linux embarqu
Administration et scurit
J2EE OpenSource
Bases de donnes
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
Sommaire jour 2
BY-NC-SA
Sommaire jour 3
BY-NC-SA
10
BY-NC-SA
11
Type de Shell : Shell Bourne C-Shell Korn Shell Bash (linux) Diffrents prompts : $ % #
BY-NC-SA
12
BY-NC-SA
13
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
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 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 ?
BY-NC-SA
21
Les redirections
Redirection de la sortie standard STDOUT crasement ajout
Utilisation du shell
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
BY-NC-SA
23
Les redirections
Utilisation du shell
> >>
cmd cmd
fichier fichier
<
fichier
cmd
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
BY-NC-SA
26
Utilisation du shell
Les redirections
Comment automatiser cela ?
BY-NC-SA
27
Utilisation du shell
Les redirections
Comment automatiser cela ? rponse ...
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
Applications :
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 ?
BY-NC-SA
36
Utilisation du shell
Le remplacement de commandes
Que font les commandes suivantes ? rponse ...
BY-NC-SA
37
Atelier 3
Utilisation du shell
BY-NC-SA
38
Le principe
Fichier texte contenant des commandes Excution squentielle En cas d'erreur, l'excution se poursuit Les bonnes pratiques:
BY-NC-SA
39
Exemple de scripts
BY-NC-SA
40
BY-NC-SA
41
La mise au point
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
BY-NC-SA
43
Atelier 4
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
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
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
BY-NC-SA
57
BY-NC-SA
58
BY-NC-SA
59
BY-NC-SA
60
BY-NC-SA
61
BY-NC-SA
62
La commande test
-z <chane> -n <chane> <chane> = <chane>
<chane> != <chane> vrai si chane diffrente Comparaison de deux nombres -eq = -ne -lt < -le <= -ge > -gt >=
BY-NC-SA
63
Le choix multiple
case $1 in 1) echo choix un ;; 2) echo choix deux ;; *) echo autre choix ;; esac
BY-NC-SA
64
BY-NC-SA
65
BY-NC-SA
66
BY-NC-SA
67
BY-NC-SA
68
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 :
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
Alias et fonctions
BY-NC-SA
74
Alias et fonctions
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
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
BY-NC-SA
80
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
BY-NC-SA
82
BY-NC-SA
83
Atelier 9
BY-NC-SA
84
BY-NC-SA
85
BY-NC-SA
86
Expressions de variables
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
BY-NC-SA
88
Atelier 10
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"
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
BY-NC-SA
92
BY-NC-SA
93
BY-NC-SA
94
BY-NC-SA
95
BY-NC-SA
96
BY-NC-SA
97
<=>
BY-NC-SA
98
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
BY-NC-SA
100
Le filtre sed
Principe de fonctionnement
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
Le filtre sed
BY-NC-SA
103
Le filtre sed
BY-NC-SA
104
Les sous-expressions
sed 's/chaine1/chaine2/' \(...\) \1 \(...\) \2
Le filtre sed
BY-NC-SA
105
Atelier 15
Le filtre sed
BY-NC-SA
106
BY-NC-SA
107
BY-NC-SA
108
Les critres
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
BY-NC-SA
110
BY-NC-SA
111
BY-NC-SA
112
BY-NC-SA
113
Ateler 16
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
BY-NC-SA
117