Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parChantal Castel Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.