Introduction aux Systèmes et aux Réseaux Cours 2 : Language de commandes, Scripts Shell D après un cours de Julien Forget (Univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 - FST
Plan 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 2 / 99
Plan Langages de commandes Objectif : Apprendre à se servir efficacement d un terminal de commandes (Shell) : Utilisation de la ligne de commande ; Commandes classiques ; Scripts. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 3 / 99
L interpréteur de commandes 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 4 / 99
L interpréteur de commandes Rôle de l interpréteur de commandes Interface (textuelle) entre l utilisateur et le système : Exécution de programmes et de commandes ; Contrôle de l environnement ; Redirection des entrées/sorties ; Gestion de variables ; Traitement des caractères spéciaux ; Fournit un langage de programmation (script shell). Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 5 / 99
L interpréteur de commandes Choix d un interpréteur de commandes Bourne Shell et dérivés (UNIX) : sh : bourne shell (shell original) bash : bourne again shell ksh : korn shell zsh : Z shell C Shell et dérivés (UNIX) : csh : C shell, développé par Berkeley tcsh : C shell amélioré Microsoft : DOS : command.com ; Windows : cmd.exe. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 6 / 99
L interpréteur de commandes Format d une commande Format général d une commande (UNIX) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 7 / 99
L interpréteur de commandes Format d une commande Format général d une commande (DOS) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 8 / 99
L interpréteur de commandes Quelques exemples avant de passer à la suite laure@meert : ~ / Documents/1314 work / enseignement / SystemeCCI$ Cours p l a n _ i n d i c a t i f. t x t ProgSyst SystJF TP l s laure@meert : ~ / Documents/1314 work / enseignement / SystemeCCI$ echo coucou coucou laure@meert : ~ / Documents/1314 work / enseignement / SystemeCCI$ cd TP laure@meert : ~ / Documents/1314 work / enseignement / SystemeCCI / TP$. pdf h i e r a r c h i e. pdf tp1. pdf tp2. pdf tp3 4. pdf l s Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 9 / 99
L interpréteur de commandes Les caractères spéciaux Les jokers ou wildcards :? 1 caractère quelconque (UNIX & DOS) * 0, un ou plusieurs caractères (UNIX & DOS) [ ] caractère parmi un ensemble (UNIX) [ ] caractère en dehors d un ensemble (UNIX) désigne le répertoire home de l utilisateur Gestion des jokers : UNIX : expansion avant l exécution (le processus fils du shell reçoit une commande préalablement traitée par le shell) ; DOS : utilisation par la commande (c est le programme lui-même qui remplace le joker ou non). Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 10 / 99
L interpréteur de commandes Les caractères spéciaux : exemple jokers laure@meert : ~ / $ l s / usr / bin / z / usr / bin / zdump / usr / bin / z i p c l o a k / usr / bin / z i p s p l i t / usr / bin / z e i t g e i s t daemon / usr / bin / zipgrep / usr / bin / zsoelim / usr / bin / z e n i t y / usr / bin / z i p i n f o / usr / bin / zxpdf / usr / bin / z i p / usr / bin / zipnote laure@meert : ~ / $ l s / usr / bin / z [ a g ] / usr / bin / zdump / usr / bin / z e i t g e i s t daemon / usr / bin / z e n i t y laure@meert : ~ / $ l s / usr / bin / z [ ^ a g ] / usr / bin / z i p / usr / bin / zipgrep / usr / bin / zipnote / usr / bin / zsoelim / usr / bin / z i p c l o a k / usr / bin / z i p i n f o / usr / bin / z i p s p l i t / usr / bin / zxpdf Exo : Qu affiche la commande suivante? laure@meert : ~ / tmp$ l s / usr / bin / z [ a g ]??? [ a z ] Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 11 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 12 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Création/renommage de fichier/répertoire Renommer un fichier UNIX : mv <fich1> <fich2> DOS : rename <fich1> <fich2> Création de répertoire(s) UNIX : mkdir [-p] <rep>[/<rep>] -p : crée les répertoires parents si besoin DOS : mkdir <rep>[\ <rep>] Renommer un répertoire UNIX : mv <rep1> <rep2> DOS : move <rep1> <rep2> Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 13 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Déplacement de fichiers UNIX : mv [-fiu] <fic1>... <fic2> -u (update) : seulement si le fichier source est plus récent que la destination DOS : move [/Y/-Y] <fic1>... <fic2> /Y : supprime la demande de confirmation /-Y : impose la confirmation Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 14 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Diverses commandes sur les fichiers Destruction de répertoires UNIX : rmdir [-if] -r <rep1>... <repn> UNIX : rm -rf <rep1>... <repn> DOS : del [/s/p] <rep1>... <repn> /s : dans tous les répertoires /p : confirmation Copie de plusieurs fichiers vers 1 repertoire UNIX : cp [-if] <fich1>... <fichn> <rep> DOS : copy <fich> <rep> Copie récursive de répertoire UNIX : cp [-if] -r <rep1>... <repn> <rep> DOS : xcopy [/p] /e <rep1> <rep2> /e : copie répertoire et sous répertoires Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 15 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Suppression de fichier UNIX : rm [-if] <fich1>... <fichn> -i : confirmation avant destruction -f : force la destruction des fichiers sans autorisation d écriture -R : récursif DOS : del <fich> [/p] /p : confirmation avant destruction Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 16 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Suppression de fichier : exemple UNIX : rm [-if] <fich1>... <fichn> laure@meert : ~ / tmp$ l s a i l t o t a l 16 3548989 drwxrwxr x 2 l a u r e l a u r e 4096 Aug 19 15:17. 3545532 drwxrwxr x 4 l a u r e l a u r e 4096 Aug 19 15:15.. 3549043 rw rw r 1 l a u r e l a u r e 7 Aug 19 15:16 add. t x t 3549044 rw rw r 1 l a u r e l a u r e 172 Aug 19 15:17 atagada. t x t laure@meert : ~ / tmp$ rm i add. t x t rm : remove r e g u l a r f i l e add. t x t? n laure@meert : ~ / tmp$ rm i f add. t x t laure@meert : ~ / tmp$ l s atagada. t x t laure@meert : ~ / tmp$ Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 17 / 99
L interpréteur de commandes Commandes pour l arborescence de fichier Déplacement / suppression de rep : exemple laure@meert : ~ / tmp2$ mkdir d i r e s s a i laure@meert : ~ / tmp2$ mkdir d i r e s s a i mkdir : cannot create d i r e c t o r y d i r e s s a i : F i l e e x i s t s laure@meert : ~ / tmp2$ l s a f i l e. t x t d i r e s s a i laure@meert : ~ / tmp2$ l s l t o t a l 8 rw rw r 1 l a u r e l a u r e 7 août 20 09:34 a f i l e. t x t drwxrwxr x 2 l a u r e l a u r e 4096 août 20 09:34 d i r e s s a i laure@meert : ~ / tmp2$ l s d i r e s s a i laure@meert : ~ / tmp2$ mv a f i l e. t x t d i r e s s a i laure@meert : ~ / tmp2$ l s d i r e s s a i a f i l e. t x t laure@meert : ~ / tmp2$ rmdir d i r e s s a i rmdir : f a i l e d to remove d i r e s s a i : D i r e c t o r y not empty laure@meert : ~ / tmp2$ rm r f d i r e s s a i laure@meert : ~ / tmp2$ l s Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 18 / 99
L interpréteur de commandes Notions sur les I/O 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 19 / 99
L interpréteur de commandes Notions sur les I/O Flux d entrée/sortie Sous UNIX un processus est créé avec 3 flux ( canal de communication) : Entrée standard (stdin, flux numéro 0) : lecture des données d entrée. Utilisé par exemple par scanf ; Sortie standard (stdout, flux numéro 1) : écriture des données de sortie. Utilisé par exemple par printf ; Sortie erreur (stderr, flux numéro 2) : écriture des données d erreur. Utilisé par exemple par perror. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 20 / 99
L interpréteur de commandes Notions sur les I/O Flux d entrée/sortie - exemples Démos : stdout avec la commande ls stdin/stdout avec la commande cat stderr avec la commande ls (avec un répertoire inexistant) laure@meert : ~ / tmp$ l s / bin / x Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 21 / 99
L interpréteur de commandes Notions sur les I/O Redirection des entrées/sorties Il est possible de changer la destination des flux d entrée/sortie : sh csh effet < < redirige stdin > > redirige stdout 2 > _ redirige stderr >> >> ajoute stdin (en fin de fichier) 2 >> 2 >> ajoute stderr (en fin de fichier) > & > & redirige stdout et stderr 2 > &1 redirige stderr sur stdout NB : Tout ceci fonctionne aussi sous DOS, à l exception de la redirection > &. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 22 / 99
L interpréteur de commandes Notions sur les I/O Redirection : exemple laure@meert : ~ / tmp$ l s / bin / y > bin_ycommands laure@meert : ~ / tmp$ cat bin_ycommands / bin / ypdomainname laure@meert : ~ / tmp$ l s / bin / x > bin_xcommands l s : cannot access / bin / x : No such f i l e or d i r e c t o r y laure@meert : ~ / tmp$ l s / bin / x 2> bin_xcommands laure@meert : ~ / tmp$ cat bin_xcommands l s : cannot access / bin / x : No such f i l e or d i r e c t o r y laure@meert : ~ / tmp$ l s / bin / k >> bin_ycommands laure@meert : ~ / tmp$ cat bin_ycommands / bin / ypdomainname / bin / kbd_mode / bin / k e y c t l / bin / k i l l Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 23 / 99
L interpréteur de commandes Vers les scripts 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 24 / 99
L interpréteur de commandes Vers les scripts Séquence de commandes Séquence simple, le ;. Ex : laure@meert : ~ / tmp$ echo "Commandes en k : " ; l s / bin / k Commandes en k : / bin / kbd_mode / bin / k e y c t l / bin / k i l l Séquence avec redirection, le (pipe). La sortie d une commande est redirigée vers l entrée de la suivante. Ex 1 : laure@meert : ~ / tmp$ l s / bin / k wc l 3 Possible d enchaîner plusieurs séquences : ls -la /usr/bin sort more 1. wc -l compte le nombre de lignes d un texte Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 25 / 99
L interpréteur de commandes Vers les scripts Les variables des Shells Affectation : UNIX (Bourne Shell) : <var>=<valeur> UNIX (C Shell) : set <var>=<valeur> DOS : set <var>=<valeur> Désigner la valeur d une variable : UNIX : ${<var>} ou $<var> DOS : %<var>% Affecter une variable d environnement : UNIX (Bourne Shell) : export <var>=<valeur> UNIX (C Shell) : setenv <var>=<valeur> DOS : set <var>=<valeur> Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 26 / 99
L interpréteur de commandes Vers les scripts Les variables des Shells Quelques variables d environnement UNIX HOME répertoire racine de l utilisateur SHELL nom du shell utilisé par l utilisateur PATH répertoire des commandes UID, USER identité de l utilisateur MANPATH chemin pour trouver les pages du manuel PS1, PS2 invites utilisées par le shell... DOS COMSPEC chemin d accès à l interpréteur de commandes PATH chemin de recherche des commandes PROMPT invite Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 27 / 99
L interpréteur de commandes Vers les scripts Démos laure@meert : ~ / tmp$ a=3 ; echo $a 3 laure@meert : ~ / tmp$ echo $USER l a u r e (export sera vu en tp) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 28 / 99
L interpréteur de commandes Vers les scripts La variable PATH UNIX : Exécution d une commande : recherche dans les répertoires spécifiés par la variable PATH. Si commande trouvée, alors exécution ; Si la commande n est pas dans un répertoire du PATH, alors on doit spécifier le chemin où elle se trouve. Ex : /chemin/commande ou./commande DOS : Recherche d abord dans le répertoire courant (.), puis dans les répertoires spécifiés par PATH ; Si la commande n est pas dans un répertoire du PATH, alors on doit spécifier le chemin où elle se trouve. Ex : \chemin\commande ou.\commande Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 29 / 99
L interpréteur de commandes Vers les scripts Démo PATH laure@meert : ~ / $ echo $PATH / home / l a u r e / bin : / usr / l o c a l / sbin : / usr / l o c a l / bin : / usr / sbin : / usr / bin : / sbin : / bin : / usr / games : / home / l a u r e / bin : / usr / l o c a l / java / jdk1. 7. 0 _09 / bin : / home / l a u r e / bin (sans les saut de ligne) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 30 / 99
L interpréteur de commandes Vers les scripts Autres fonctionnalités notoires du shell Complétion : Appuyer sur (tabulation) pendant la saisie d une commande ; Appuyer deux fois si plusieurs complétions possibles. Historique : remonter, redescendre dans l historique ; Chercher une commande dans l historique : Ctrl + R <chaine> : une commande contenant <chaine> ; A nouveau Ctrl + R : cherche la commande précédente ; Entrée : exécute la commande sélectionnée ; Ctrl + G : interrompt la recherche. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 31 / 99
Commandes utiles 1 L interpréteur de commandes 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 32 / 99
Commandes utiles Manuel d une commande UNIX : man [section] <commande> Section 1 : commandes utilisateur Section 2 : appels système Section 3 : fonctions diverses Section 4 : format de fichiers Section 5 : divers UNIX : man -k <mot>. Donne la description courte des commandes liées à <mot> ; Le man décrit (entre autre) : La manière d appeler la commande (Synopsis) ; Le rôle de la commande et toutes ses options. DOS : <commande> /? Vous ne connaissez pas une commande? Vous ne connaissez pas une option? Utilisez le man!! Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 33 / 99
Commandes utiles touch touch [-option] [-r référence -t date] fichier touch modifie la date d accès et la date de modification d un fichier ; les fichiers n existant pas sont créés, leur contenu est vide souvent utilisé pour créer des fichiers vides. laure@meert :~ $ l s a l touch_essai l s : cannot access touch_essai : No such f i l e or d i r e c t o r y laure@meert : ~ $ touch touch_ essai laure@meert :~ $ l s l a touch_essai rw rw r 1 l a u r e l a u r e 0 Aug 19 14:53 touch_essai Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 34 / 99
Commandes utiles Renommer un ensemble de fichiers DOS : rename *.<exten1> <*.exten2> Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 35 / 99
Commandes utiles Renommer un ensemble de fichiers UNIX : mv [-if] *.<exten1> <*.exten2>??? laure@meert : ~ / tmp$ l s. jpg unalias_csh. jpg unalias_sh. jpg uniq. jpg unite_disque. jpg laure@meert : ~ / tmp$ mv. jpg. png mv: t a r g e t. png i s not a d i r e c t o r y Voir ce qui a été dit à propos de l expansion des caractères génériques Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 36 / 99
Commandes utiles Le retour des fichiers 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 37 / 99
Commandes utiles Le retour des fichiers Saisie d un fichier au clavier UNIX : cat > <fich> <texte frappé au clavier> Ctrl + D DOS : copy con: <fich> <texte frappé au clavier> Ctrl + Z Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 38 / 99
Commandes utiles Le retour des fichiers Affichage Afficher le contenu d un fichier cat <fich> (UNIX) type <fich> (DOS) ; Afficher page par page : more <fich> (UNIX) ; Afficher le contenu de plusieurs fichiers : UNIX : cat <fich1>... <fichn> DOS : type <fich1>... <fichn> Afficher un texte : echo <chaine> Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 39 / 99
Commandes utiles Le retour des fichiers Manipulation de nom de fichier basename permet d éliminer le chemin d accès et le suffixe d un nom de fichier basename <chemin> [ chaîne ] dirname permet d éliminer le dernier composant délimité par un slash du nom_de_fichier dirname <chemin> laure@meert : ~ / tmp$ basename s t d i o. h / usr / i n c l u d e / s t d i o. h laure@meert : ~ / tmp$ basename / usr / i n c l u d e / s t d i o. h. h s t d i o laure@meert : ~ / tmp$ dirname / usr / i n c l u d e / usr / i n c l u d e / s t d i o. h Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 40 / 99
Commandes utiles Autres 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 41 / 99
Commandes utiles Autres ssh (remote login) ssh [-l username] host login sur un ordinateur hôte (distant) de manière sécurisée laure@meert :~ $ ssh e u l e r. l o c a l The a u t h e n t i c i t y of host e u l e r. l o c a l ( 1 9 2. 1 6 8. 1. 4 3 ) can t be e s t a b l i s h e d. RSA key f i n g e r p r i n t i s df : 5 4 : 0 6 : 5 5 : f2 : 8 6 : 4 8 : ef : ac : 3 4 : 2 6 : 7 2 : 6 9 : 8 7 : 6 5 : 8 5. Are you sure you want to continue connecting ( yes / no )? yes Warning : Permanently added e u l e r. l o c a l, 1 9 2. 1 6 8. 1. 4 3 (RSA) to the l i s t of known hosts. laure@euler. l o c a l s password : laure@euler :~ $ e x i t logo ut Connection to e u l e r. l o c a l closed. laure@meert :~ $ ssh e u l e r. l o c a l laure@euler. l o c a l s password : Welcome to Ubuntu 12. 04. 2 LTS [... ] Last l o g i n : Tue Aug 20 09:42:26 2013 from meert. l o c a l laure@euler :~ $ Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 42 / 99
Commandes utiles Autres at at (UNIX) at [-option] [-f fichier] HEURE Lance les commandes indiquées à une heure précise ; Les fichiers /etc/at.allow et /etc/at.deny définissent les utilisateurs ayant le droit d invoquer at ; Si aucun de ces deux fichiers n existe, seul le super-utilisateur a le droit d appeler at. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 43 / 99
Commandes utiles Autres at at (WinNT) at [\\nom_ordinateur][[id][/delete[/yes]]] at [\\nom_ordinateur] heure [/every:date[,...] /next:date[,...]] "commande" la commande at programme l exécution de commandes et de programmes sur un ordinateur à une date et une heure précise. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 44 / 99
Commandes utiles Les filtres 1 L interpréteur de commandes Commandes pour l arborescence de fichier Notions sur les I/O Vers les scripts 2 Quelques commandes utiles Le retour des fichiers Autres Les filtres 3 Fichiers de commandes (scripts) Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 45 / 99
Commandes utiles Les filtres Principe Lecture d une entrée (texte) ; Filtrage (ex : supprimer des lignes, supprimer des colonnes, remplacer des mots, etc.) ; Production d une sortie (texte) ; Souvent utilisés en série à l aide du. Très utile pour automatiser des traitements textuels répétitifs. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 46 / 99
Commandes utiles Les filtres tail tail [-n number] [filename...] donne les dernières lignes d un fichier laure@meert : ~ / t a i l n 5 / var / log / cups / access_log 192.168.1.43 [ 2 0 / Aug/2013:12:48:51 +0200] "POST / p r i n t e r s / SamsungNoireLyon HTTP/ 1. 1 " 200 278 Validate Job successful ok 192.168.1.43 [ 2 0 / Aug/2013:12:48:51 +0200] "POST / p r i n t e r s / SamsungNoireLyon HTTP/ 1. 1 " 200 278 Create Job successful ok 192.168.1.43 [ 2 0 / Aug/2013:12:48:51 +0200] "POST / p r i n t e r s / SamsungNoireLyon HTTP/ 1. 1 " 200 593519 Send Document successful ok l o c a l h o s t [ 2 0 / Aug/2013:14:08:35 +0200] "POST / p r i n t e r s / SamsungNoireLyon HTTP/ 1. 1 " 200 320 Create Job successful ok l o c a l h o s t [ 2 0 / Aug/2013:14:08:35 +0200] "POST / p r i n t e r s / SamsungNoireLyon HTTP/ 1. 1 " 200 296 Send Document successful ok Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 47 / 99
Commandes utiles Les filtres head head [-number -n number] [filename...] donne les n premières lignes du fichier. Par défaut, n = 10 laure@meert :~ $ head n 3 / etc / passwd r o o t : x : 0 : 0 : r o o t : / r o o t : / bin / bash daemon : x : 1 : 1 : daemon : / usr / sbin : / bin / sh bin : x : 2 : 2 : bin : / bin : / bin / sh Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 48 / 99
Commandes utiles Les filtres wc wc [options] [<fichier>...] Compte le nombre de lignes, de mots et de caractères des fichiers. Voir les options -w,-l,-c laure@meert :~ $ wc / etc / passwd 36 51 1675 / etc / passwd laure@meert :~ $ wc l / etc / pass 36 / etc / passwd 37 / etc / passwd 73 t o t a l Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 49 / 99
Commandes utiles Les filtres cut cut -f<liste> [-d<caractère>] Permet de découper les lignes d un fichier en champs et d extraire des champs particuliers. laure@meert :~ $ cat colonnes. t x t Du : t e x t e : en : colonnes Et : sur : deux : l i g n e s laure@meert :~ $ cut f2,3 d : colonnes. t x t t e x t e : en sur : deux Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 50 / 99
Commandes utiles Les filtres grep ou egrep egrep [options] <expression> [<fichier>] Permet de sélectionner des lignes de fichier contenant un texte ou motif (cf expressions régulières) donné ; egrep permet d utiliser des expressions régulières plus détaillés (egrep "none aborted") Quelques options (voir man pour d autres options) : -i pas de différence entre majuscule et minuscule -c compte le nombre de lignes -v inverse le résultat Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 51 / 99
Commandes utiles Les filtres Quelques exemples laure@meert : ~ $ egrep bash / etc / passwd r o o t : x : 0 : 0 : r o o t : / r o o t : / bin / bash l a u r e : x :1000:1000: laure,,, : / home / l a u r e : / bin / bash stephane : x :1001:1001: Stephane Gonnord,,, : / home / stephane : / bin / bash laure@meert : ~ $ egrep c bash / etc / passwd 3 laure@meert : ~ $ egrep c BASH / etc / passwd 0 laure@meert : ~ $ egrep c i BASH / etc / passwd 3 laure@meert :~ $ egrep c i v BASH / etc / passwd 33 laure@meert :~ $ wc l / etc / passwd 36 / etc / passwd Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 52 / 99
Commandes utiles Les filtres Quelques exemples - 2 laure@meert :~ $ egrep " ba sa " / etc / passwd r o o t : x : 0 : 0 : r o o t : / r o o t : / bin / ba sh backup : x : 3 4 : 3 4 : backup : / var / backups : / bin / sh messagebus : x : 1 0 2 : 1 0 5 : : / var / run / dbus : / bin / f a l s e l a u r e : x :1000:1000: laure,,, : / home / l a u r e : / bin / bash saned : x : 1 1 3 : 1 2 2 : : / home / saned : / bin / f a l s e stephane : x :1001:1001: Stephane Gonnord,,, : / home / stephane : / bin / bash debian spamd : x : 1 1 5 : 1 2 4 : : / var / l i b / spamassassin : / bin / sh Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 53 / 99
Commandes utiles Les filtres findstr (sous DOS) findstr [option] [chaîne] [NomFichier[...]] permet de sélectionner des lignes de fichier contenant un motif Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 54 / 99
Commandes utiles Les filtres tr tr [option] set1 [set2] transpose ou supprime des caractères laure@meert :~ $ a=" essai " laure@meert : ~ $ echo " $a : tagada " essai : tagada laure@meert : ~ $ echo " $a : tagada " t r a z A Z ESSAI : TAGADA laure@meert :~ $ echo " $a : tagada " t r [ : lower : ] [ : upper : ] ESSAI : TAGADA laure@meert : ~ $ echo " $a : blu " t r s " " essai : blu Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 55 / 99
Commandes utiles Les filtres sort sort [options] [fichier] sort trie les lignes d un fichier texte principales options : -n numérique -r reverse -t séparateur -k champ laure@meert :~ $ cat / etc / passwd s o r t t : k 3 nr head n 5 nobody : x :65534:65534: nobody : / nonexistent : / bin / sh stephane : x :1001:1001: Stephane Gonnord,,, : / home / stephane : / bin / bash l a u r e : x :1000:1000: laure,,, : / home / l a u r e : / bin / bash spampd : x : 1 1 6 : 1 2 5 : : / nonexistent : / bin / f a l s e debian spamd : x : 1 1 5 : 1 2 4 : : / var / l i b / spamassassin : / bin / sh Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 56 / 99
Commandes utiles Les filtres find find [chemin] [expression...] rechercher des fichiers dans une hiérarchie de répertoires ++ autres options laure@meert :~ $ f i n d / etc / type d group r o o t p r i n t 2> / dev / n u l l t a i l n 5 / etc / network / i f post down. d / etc / network / i f down. d / etc / rc6. d / etc / ssh / etc / sudoers. d laure@meert :~ $ f i n d. mtime 0 type f. /. procmail / log. / i r c l o g s / freenode /# l a u t r e. net. log. /. lbdb / m_inmail. l i s t. /. lbdb / m_inmail. l i s t. d i r t y. /. spamassassin / bayes_toks. /. spamassassin / bayes_seen. / MailLaure /. mbox / cur /1376994860.30985_0. meert : 2,S Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 57 / 99
Commandes utiles Les filtres find (suite) find [chemin] [expression...] [commande] rechercher des fichiers dans une hiérarchie de répertoires et exécuter la commande. Attention à l espace avant dans l exemple suivant laure@meert : ~ / f i n d. type f mtime 0 exec l s l a { } \ ; more rw 1 l a u r e l a u r e 331776 août 20 12:34. /. spamassassin / bayes_toks rw 1 l a u r e l a u r e 24576 août 20 12:34. /. spamassassin / bayes_seen [... ] Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 58 / 99
Commandes utiles Les filtres join join [options] fichier1 fichier2 affiche sur la sortie standard une ligne pour chaque paire de lignes d entrée, l une provenant de fichier1 et l autre de fichier2, qui disposent de champs de fusion identiques. laure@meert :~ $ sudo cat / etc / shadow grep sy sys : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : sync : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : syslog : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : laure@meert :~ $ cat / etc / passwd grep sy sys : x : 3 : 3 : sys : / dev : / bin / sh sync : x :4:65534: sync : / bin : / bin / sync syslog : x : 1 0 1 : 1 0 3 : : / home / syslog : / bin / f a l s e laure@meert :~ $ j o i n j 1 t : / etc / passwd / etc / shadow grep sy sys : x : 3 : 3 : sys : / dev : / bin / sh : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : sync : x :4:65534: sync : / bin : / bin / sync : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : syslog : x : 1 0 1 : 1 0 3 : : / home / syslog : / bin / f a l s e : : 1 5 8 1 8 : 0 : 9 9 9 9 9 : 7 : : : Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 59 / 99
Commandes utiles Les filtres Expressions régulières (regexp) Permet de désigner des ensembles de chaînes de caractères sous la forme de motifs généraux ; Utilisées par de nombreuses commandes UNIX (en particulier les filtres, ex : egrep et sed) ; NB : les jokers sont une forme de regexp traitées directement par le Shell. D autres commandes traitent directement leurs regexp (filtres par exemple). Les syntaxes varient. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 60 / 99
Commandes utiles Les filtres Expressions régulières Exemples :. caractérise n importe quel caractère [ ] un des caractères entre crochets ou si le premier caractère est ˆ, alors caractérise ceux qui ne correspondent pas avec ceux entre crochet [abc] a, b ou c [a-z] une lettre minuscule [a-d5-8w-z] a, b, c, d, 5, 6, 7, 8, w, x, y, z [ˆ0-9] pas un chiffre [ˆa-zA-Z] pas une lettre ˆ début de ligne $ fin de ligne, [ab$] ligne finissant par ab Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 61 / 99
Commandes utiles Les filtres Expressions régulières Exemples : * signifie de 0 à n fois le caractère qui précède a* aa* 0 à n fois a au moins un a.* n importe quelle chaîne de caractères (y compris la chaîne vide) ˆ[0-9][0-9]*$ ligne qui ne contient que des chiffres \( \) isoler des sous-chaînes. On peut les réutiliser grâce à \1 \2 Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 62 / 99
Commandes utiles Les filtres Filtre-éditeur sed Commande très puissante (presque un mini-langage de script) ; A la fois un filtre et un éditeur ; Utilisation courante : Recevoir, en entrée chaque ligne d un fichier ; Lui faire subir des modifications ; L envoyer sur la sortie standard. Laure Gonnord (CCI/Univ Lyon1) SystCCI Cours 2 : commandes/scripts 2013 63 / 99