La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le Korn Shell. 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande.

Présentations similaires


Présentation au sujet: "Le Korn Shell. 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande."— Transcription de la présentation:

1 Le Korn Shell

2 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande ls  Les alias  Les caractères spéciaux  Les noms de fichiers  La commande tail  La commande find  Les expressions régulières  La commande grep  La commande sed  La commande awk

3 3 Présentation  (petit) Historique Premier shell créé pour Unix par Steve Bourne (sh), de la société AT&T Bell Laboratories : le Bourne Shell. A partir du Bourne shell, David Korn a élaboré le Korn Shell, qui offre plus de fonctionnalités. La compatibilité avec le Bourne Shell reste établie. Création par Brian Fox du Bourne Again Shell, intégration du korn shell et du C shell sous licence GPL.

4 4 Présentation Les améliorations apportées par le Korn Shell :  rappel les commandes précédentes, avec possibilités d'édition avec vi ou emacs  possibilités de complétion automatique des pathnames, donc plus précisément des noms d'objets (fichiers ou directories)  disponibilité d'un mécanisme d‘historique  possibilité de définir des alias et des fonctions  disponibilité d'une arithmétique entière de base quelconque entre 2 et 36, relativement facile à utiliser  opérateur de chaînes et de sous-chaînes de caractères  possibilité de définir des variables simples ou indicées  disponibilité de toutes les structures conditionnelles et itératives traditionnelles (if, while, for, until, case)  possibilité de créer des menus (select)  fichiers d'environnement.profile et $ENV

5 5 Présentation  Objectifs Réaliser des petits programmes qui deviennent des outils. Mettre en place un environnement de travail personnalisé et utilitaire.  Rôles du Korn Shell Un interpréteur de commandes Un langage de programmation (nouvelles cmd) Un gestionnaire de processus Un environnement de travail configurable

6 6 Généralités  Les droits sur les fichiers  _ ___ ___ ___ utilisateur groupe Reste du monde Droits du groupe Droits utilisateur Type de fichier  Changement des droits sur un fichier : chmod  Définition des droits à la création du fichier : umask

7 7 Généralités  Environnement : ordre d’exécution des fichiers lors d’une connexion d’utilisateur /etc/environment (à chaque login) /etc/profile (par le shell de connexion).profile (par le shell de connexion) ENV=nom_fichier, par convention.kshrc exécuté à chaque lancement explicite de Korn Shell

8 8 Généralités  Environnement : le fichier.profile  Il permet de personnaliser son environnement de travail, en définissant des variables et en exécutant des commandes spécifiques  On peut donc : Définir des variables d’environnement Définir la protection des fichiers par défaut Exécuter des commandes spécifiques Définir et initialiser son terminal

9 9 Les paramètres du shell  HOME le home directory ( répertoire de login )  PATH chemin de recherche pou l'exécution des commandes  CDPATH chemin de recherche pour la commande cd  MAIL chemin indiquant le répertoire du courrier  PS1 primary system prompt  PS2 secondary system prompt  IFS internal field separator  SHELL indique le shell de login

10 10 Les processus  Lancement séquentiel cmd1 cmd2 cmd3 cmd1; cmd2; cmd3  Lancement en parallèle cmd 1 & cmd 2 & cmd 3 &  Substitution de commande : `cmd`

11 11 L’édition des commandes  Il est possible d’historiser les commandes passées en interactif  Définir la variable VISUAL (export VISUAL=vi)  Appuyer sur “Echap” pour passer en mode édition de commande  le backslash “\” permet la complétion  Quelques commandes vi : k/j : historique en haut/bas h/l : déplacement gauche/droite i : insertion ^/$ : début/fin x : effacer un caractère

12 12 Les entrées sorties  < l'entrée standard est lu à partir d'un fichier  > La sortie standard est redirigée dans un fichier (RAZ du fichier)  >> La sortie standard est redirigée dans un fichier (concaténation du fichier)  2> les erreurs sont redirigées dans un fichier  2>&1 les erreurs sont redirigées dans le même fichier que la sortie standard

13 13 Les entrées sorties  Les Pipes cmd1 | cmd2 Équivaut à cmd1 > fichier cmd2 < fichier

14 14 La commande ls  Permet de lister le contenu d’un répertoire  Syntaxe : ls [option]… [fichier]…  Quelques options utiles -a : affiche les fichiers cachés -l : affiche sous forme de liste -r : affiche en mode reverse -t : affiche par date de modification

15 15 Les alias  Les alias sont des raccourcis de commandes définies par le shell lui- même ou par l’utilisateur souvent dans le fichier.kshrc)  La commande alias donne la liste des alias du shell courant  Pour définir un alias : alias nom_de_l_alias='cmd'  Exemple : alias l='ls-al|more'

16 16 Les caractères spéciaux | le pipe & lancement en arrière plan || ou logique && et logique ; fin de commande › redirection d'une sortie ‹ redirection d'une entrée () groupage de commande dans un autre shell {} groupage de commande dans le même shell ` substitution de commande en bourne shell $() substitution de commande en korn shell \ inhibition

17 17 Les noms de fichiers  * n'importe quelle chaîne de caractères  ? n'importe quel caractère  [... ] n'importe quel caractère décrit entre les crochets  Exemple : Tous les fichiers se terminant par cpp :  $> ls *cpp

18 18 La commande tail  La commande tail permet d’afficher le contenu d’un fichier par la fin  On peut spécifier le nombre de ligne à afficher  On peut garder un fichier ouvert dont la fin est réactualisée (pratique pour les fichiers de log)

19 19 La commande tail  Syntaxe tail [options] fichier  Les options utiles -n : visualise les n dernières lignes du fichier -f : visualise, sans quitter, la fin du fichier, avec réactualisation si modification  Exercice : Écrire un alias permettant de lire en continu le fichier le plus récent d'un répertoire. (utilisation de tail, ls, | et ` ) alias mylog='tail -f `ls -tr /my_dir/ | tail -1`'

20 20 La commande find  Recherche de manière récursive les répertoires et fichiers dont le nom correspond à un motif donné.  Syntaxe : find nom_répertoire [...] -name "modèle_nom"  Exemple : find. -name "?????" Recherche à partir du répertoire courant les fichiers dont le nom a 5 caractères.  L’option –exec permet d’exécuter une commande sur les fichiers trouvés  Exemple : find. -name "core" -exec rm {}\; Efface récursivement les fichiers core

21 21 Les expressions régulières  Elles ne caractèrisent pas des noms de fichier mais des chaînes de caractères.  Couramment utilisées sous unix par les commandes vi, sed, awk, find…  La chaîne renvoyée par une expression régulière est toujours la plus grande pouvant être représentée par cette E.R  Pour échapper un caractère, utiliser “\”  Utilisation classique : remplacement de chaîne : s/RE/chaine_de_remplacement/

22 22 Les expressions régulières  Le point. Il représente n’importe quel caractère Exemple : chaîne de départ : azerty…p cmd de remplacement : s/…/---/ chaîne résultat : ---rty…p

23 23 Les expressions régulières  Les suites de caractères [ ] Définies entre crochets. Ils représentent une liste de caractères.  Exemple : [abc] Si la liste commence par ^ ça caractérise un caractère qui n’appartient pas à la liste définie entre crochets.  Exemple : [^a] Pour définir une suite entre 2 caractères, ils faut utiliser le caractère –  Exemple : [0-9]

24 24 Les expressions régulières  La multiplicité * : 0 à n fois le caractère précédent exemples : a* : 0 ou n fois le caractère a aa* : au moins une fois le caractère a.* : n’importe quelle chaîne de caractères  Début et fin de ligne Le caractère ^ détermine le début de la ligne Le caractètre $ indique la fin de ligne Exemples : ^a : ligne qui comment par a a$ : ligne qui se termine par a ^[a-z] : ligne qui commence par une minuscule  Attention : ne pas confondre [^] et ^[]

25 25 Les expressions régulières [abc] a, b ou c [a-z] une lettre minuscule [0-57] 0, 1, 2, 3, 4, 5 ou 7 [a-d5-8X] a, b, c, d, 5, 6, 7, 8 ou X [0-5-] 0, 1, 2, 3, 4, 5 ou – [^0-9] pas un chiffre [012^] 0, 1, 2 ou ^

26 26 Les expressions régulières  Exercice : définir l’expression régulière permettant la caractérisation d’une ligne qui ne contient que des chiffres et non vide. /^[0-9][0-9]*$/ Début de ligne Un chiffre Un autre chiffre 0 ou n fois Fin de ligne

27 27 La commande grep  GREP = General Regular Expression Parser, soit analyseur général d'expression régulière  Cette commande recherche dans des fichiers ou l’entrée standard les lignes qui correspondent à l’expression régulière.  Syntaxe grep [options] expreg [fichiers]  Exemples : grep "korn" fichier cat /etc/passwd | grep "user"

28 28 La commande grep  Quelques options utiles -c donne seulement le nombre de lignes trouvées obéissant au critère -l donne seulement le nom des fichiers où le critère a été trouvé -v donne les lignes où le critère n'a pas été trouvé -i ne pas tenir compte de la casse -n pour n'afficher que les numéros des lignes trouvées -w pour imposer que le motif corresponde à un mot entier d'une ligne

29 29 La commande sed  La commande sed permet d’éditer du texte de manière non-intéractive.  Elle permet d’exécuter un certain nombre de commandes sur du texte en entrée standard ou dans un fichier.  Il n’y a pas d’altération du texte d’origine, les modifications sont affichées sur la sortie standard.

30 30 La commande sed  Syntaxe sed [-n] [-e commande] [-f fichier de commandes] [fichier] -n écrit seulement les lignes spécifiées (par l'option /p) sur la sortie standard -e permet de spécifier les commandes à appliquer sur le fichier. Cette option est utile lorsque vous appliquez plusieurs commandes. Afin d'eviter que le shell interprette certains caracteres, il faut mieux encadrer la commande avec des ' ou des ". -f lecture des commandes à partir d'un fichier.

31 31 La commande sed  Fonctionnement Pour chaque ligne du fichier d’entrée, la commande est exécutée. La ligne, modifiée ou non, est affichée sur la sortie standard.  Syntaxe d’une commande “liste_des_adresses commande” Avec la liste_des_adresses : rienToutes les lignes NumLa ligne num (dernière ligne : $) Num1,Num2Les lignes entre num1 et num2

32 32 La commande sed  La substitution (commande s ) Syntaxe num1,num2s/RE/remplacement/flags Entre les lignes num1 et num2 : remplace les chaînes caractérisées par l’expression régulière RE par la chaîne de remplacement Flags :  g : toutes les occurences sur une même ligne  p : affiche la ligne traîtée (pratique avec –n)  w fichier : écrit la sortie dans le fichier spécifié Exemple : sed "s/[Cc]omputer/COMPUTER/g" fichier

33 33 La commande sed  Les tampons Ils permettent d’isoler des sous-chaînes afin de pouvoir les réutiliser. Isoler une chaîne : \( \) Réutiliser une chaîne : \1, \2, … Il est possible d’isoler des sous-chaînes récursivement  Exercice : que fait cette commande ? "s/\([0-9][0-9]*\)/**\1**/" Elle encadre les chiffres/nombres trouvés sur une ligne par les caractères ** Computer=599 euros -> Computer=**599** euros

34 34 La commande sed  La suppression (commande d ) Efface les lignes (au niveau de la sortie, le fichier d'origine n'est pas modifié) Exemple : sed "1,10d" fichier : sortie du fichier à partir de la onzième ligne

35 35 La commande sed  Autres commandes a,i : permettent d’insérer du texte dans le résultat q : quitte = : écrit les numéros de ligne  Exercice : Afficher le résultat numérique contenu dans cette chaîne sous la forme "resultat = xxx"  chaîne de départ : edtf fta 158k frd sed -e 's/[^0-9]*\([0-9][0-9]*\).*/resultat=\1/'

36 36 La commande awk (overview)  La commande awk permet d’effectuer un certain nombre d’action sur un fichier.  La syntaxe s’inspire du C.  Un programme awk est une suite de commandes de la forme : motif {action} Le motif permet de déterminer sur quel enregistrement doit s’effectuer l’action  Exemple : awk 'length($0)>75 {print}' fichier Imprime les lignes de plus de 75 caractères


Télécharger ppt "Le Korn Shell. 2 Contenu  Présentation  Généralités  Les paramètes du shell  Les processus  l’édition des commandes  Les entrées sorties  La commande."

Présentations similaires


Annonces Google