Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:bash-les-differents-caracteres-speciaux [25/05/2014 17:14] Hypathie [C ) Méta-caractères et méta-caractères !] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [26/05/2014 07:03] Hypathie [B ) Métacaractères et méta-caractères !] |
||
---|---|---|---|
Ligne 28: | Ligne 28: | ||
8) chap VIII : [[atelier:chantier:bash-vii-globs-etendus-regex|Bash : globs étendus et regex]] | 8) chap VIII : [[atelier:chantier:bash-vii-globs-etendus-regex|Bash : globs étendus et regex]] | ||
- | **Enfin, les liens en gras renvoient aux pages du wiki qui sont relatifs au shell, terminal, chemin relatif et absolu, scripts, alias, etc.** | + | **Enfin, les liens en gras renvoient aux pages du wiki qui sont relatifs au shell, terminal, chemin relatif et absolu, scripts, alias, etc.**\\ |
**Dans cette introduction :**\\ | **Dans cette introduction :**\\ | ||
* A) définitions de shell bash et liens internes spécifiques au sujets évoqués ;\\ | * A) définitions de shell bash et liens internes spécifiques au sujets évoqués ;\\ | ||
- | * B) définitions de termes associés au shell et liens internes spécifiques au sujets évoqués\\ | + | * B) explication sur l’ambiguïté du terme méta-caractère.\\ |
- | * C) explication sur l’ambiguïté du terme méta-caractère. | + | * C) définitions de termes associés au shell et liens internes spécifiques au sujets évoqués\\ |
**Yep ! C'est parti !** 8-) | **Yep ! C'est parti !** 8-) | ||
Ligne 110: | Ligne 110: | ||
</note> | </note> | ||
- | =====B) Scripts et alias ===== | ||
- | ====1) les scripts ==== | + | =====B ) Métacaractères et méta-caractères !===== |
- | Un **script** est la rédaction dans un fichier texte d'un ensemble de //commandes// et d'expressions régulières (caractères utilisés symboliquement) orientant les instructions données aux commandes.\\ | + | |
- | * **Pour une initiation au script : [[atelier:chantier:debuter-avec-les-scripts-shell-bash]]** | + | ====1)Définition courante de métacaractère et détail==== |
- | * **sur "if", "les boucles", etc. : [[doc:programmation:shell:avancee|Fonctionnalités avancées du Shell]]** | + | * **Un métacaractère (en anglais, wild card ou joker) est un caractère qui représente un ou plusieurs autres caractères qui eux sont interprétés littéralement.** |
- | * **considérations avancées : [[doc:programmation:shell:scripts|Rédaction de scripts Shell]]** | + | |
- | * ** Pour les DÉBUTANTS AVISÉS francophile : [[http://abs.traduc.org/abs-fr/pt01.html]]** | + | |
- | * **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :[[http://mywiki.wooledge.org/BashFAQ]]** | + | |
- | + | ||
- | * **À voir aussi : scripts debian-facile :** | + | |
- | *[[:doc:programmation:python:boutonfermer|[pygtk] Comment faire un notebook avec bouton "fermer"]] | + | |
- | *[[:doc:programmation:bash:alias|[bash] Réalisation d'un script contenant des Alias]] | + | |
- | *[[:doc:programmation:bash:file-dir-exist|[bash] Déterminer si un fichier ou répertoire existe]] | + | |
- | *[[:doc:programmation:bash:synoshareexist|[bash] Déterminer si un partage existe sur un disque réseau de type Synology]] | + | |
- | *[[:doc:programmation:bash:read:parcourir-fichier-texte|[bash] Lire un fichier texte ligne par ligne]] | + | |
- | *[[:doc:systeme:apt:debsect|[bash] Section d'un paquet debian]] | + | |
- | *[[:doc:programmation:bash:tp-debsources|[bash] Dépôt d'un paquet debian]] | + | |
- | *[[:doc:programmation:bash:png2jpg|[bash] Convertir dans plusieurs sous-répertoires des images .png en .jpg]] | + | |
- | + | ||
- | ====2) les alias ==== | + | |
- | * **L'essentiel est là : [[doc:programmation:bash:alias|Maîtriser les alias bash]]** | + | |
- | + | ||
- | * **alias et script :** | + | |
- | Lorsque vous tapez plusieurs lignes de commande différentes et répétitives à la suite, il est intéressant de les rédiger toutes ensembles dans un seul texte (un //script//) afin de les appeler d'un coup à l'aide d'un mot clé nommé : [[:doc:programmation:bash:alias|un alias]]. | + | |
- | + | ||
- | **Pour voir où et comment réaliser un tel script : [[:doc:programmation:bash:alias|Réalisation d'un Script contenant des Alias]]** | + | |
- | + | ||
- | + | ||
- | =====C ) Méta-caractères et méta-caractères !===== | + | |
- | + | ||
- | ====1)Définition courante de méta-caractère et détail==== | + | |
- | * **Un méta-caractère (en anglais, wild card ou joker) est un caractère qui représente un ou plusieurs autres caractères qui eux sont interprétés littéralement.** | + | |
Certains caractères spéciaux sont appelés "méta-caractères" ; soit parce qu'ils servent à effectuer des recherches sur les mots ; soient parce qu'ils servent dans les expressions rationnelles; soit encore parce qu'ils représentent symboliquement quelque chose, un fichier, la valeur d'une variable ; finalement parce que ces caractères représentes symboliquement quelque chose; | Certains caractères spéciaux sont appelés "méta-caractères" ; soit parce qu'ils servent à effectuer des recherches sur les mots ; soient parce qu'ils servent dans les expressions rationnelles; soit encore parce qu'ils représentent symboliquement quelque chose, un fichier, la valeur d'une variable ; finalement parce que ces caractères représentes symboliquement quelque chose; | ||
Ligne 166: | Ligne 137: | ||
**Pour simplifier, on peut appeler les caractères génériques et expressions génériques, des globs en référence à la commande glob ou à l'option extglob de la commande shopt.\\ | **Pour simplifier, on peut appeler les caractères génériques et expressions génériques, des globs en référence à la commande glob ou à l'option extglob de la commande shopt.\\ | ||
Voir : man bash ligne 1914,sq. et man glob** | Voir : man bash ligne 1914,sq. et man glob** | ||
+ | |||
+ | **En définitive, dans la suite j'emploierai le terme "métacaractère" comme synonyme de globs simples et bracket.** | ||
</note> | </note> | ||
Ligne 183: | Ligne 156: | ||
C'est le sujet chap. 7 : [[atelier:chantier:man-bash-vi-les-caracteres-de-transformation-de-parametres|Bash : les caractères de transformation de parametres]] | C'est le sujet chap. 7 : [[atelier:chantier:man-bash-vi-les-caracteres-de-transformation-de-parametres|Bash : les caractères de transformation de parametres]] | ||
- | ====2) "Méta-caractères" désignation particulière du man bash pour "opérateurs de contrôle et de redirection"==== | + | ====2) "Globs simples" ou "métacaractères", utilisation avancée==== |
+ | |||
+ | **Détails et exercices sur : [[doc:programmation:shell:les-metacaracteres|métacaractères, ou globs, ou encore patterns]]** | ||
+ | |||
+ | |||
+ | ===Comment associer le point et l'étoile ?=== | ||
+ | |||
+ | On sait que ls -a permet de lister tous les fichiers, le retour est alors un peu trop copieux \\ | ||
+ | |||
+ | De même ls -a* est très prolixe.\\ | ||
+ | |||
+ | On peut alors faire : | ||
+ | <code user> | ||
+ | ls -d .* | ||
+ | </code> | ||
+ | => On obtiendra alors tous les fichiers cachés. | ||
+ | |||
+ | Pour affiner la recherche on faire pour n'avoir que ceux dont le nom commence par un c : | ||
+ | |||
+ | <code user> | ||
+ | ls -d .c* | ||
+ | </code> | ||
+ | Retour : | ||
+ | <code> | ||
+ | .cache .config | ||
+ | </code> | ||
+ | |||
+ | * **Rappel :**\\ | ||
+ | -**L'étoile correspond à n'importe quelle chaîne.**\\ | ||
+ | -**Si l'on fait *.txt on représente tous les fichiers se terminant par ".txt".**\\ | ||
+ | **C'est là qu'il y a un petit piège ! m( **\\ | ||
+ | |||
+ | **.* représente un point (.) mais aussi deux points (..)** | ||
+ | |||
+ | <code user> | ||
+ | ls .* # et son équivalent : ls .?* | ||
+ | </code> | ||
+ | => va afficher du répertoire courant (.) : tous les fichiers cachés (normaux) et tous les fichiers cachés de type-répertoire avec les noms des fichiers cachés contenus dans ces répertoires ;\\ | ||
+ | mais aussi du répertoire parent (..) : tous les fichiers cachés normaux et les fichiers cachés de type-répertoire, avec les noms des fichiers cachés contenus dans ces répertoires ! | ||
+ | |||
+ | * Contournement : | ||
+ | <code user> | ||
+ | ls .[!.]* | ||
+ | </code> | ||
+ | => liste du répertoire courant : tous les fichiers cachés normaux et les fichiers cachés de type-répertoire, avec les fichiers cachés de ces répertoires. | ||
+ | <code user> | ||
+ | ls -d .[!.]* # et son équivalent : ls -d .??* | ||
+ | </code> | ||
+ | => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !) | ||
+ | |||
+ | ====3) "Méta-caractères" désignation particulière du man bash pour "opérateurs de contrôle et de redirection"==== | ||
===Définition particulière :=== | ===Définition particulière :=== | ||
<code> | <code> | ||
Ligne 287: | Ligne 310: | ||
- | * **Enfin, ne sont pas désignés de méta-caractères:**\\ | + | * **Enfin, ne sont pas désignés de méta-caractères :**\\ |
Tous les caractères spéciaux, c'est-à-dire les symboles auxquels le shell est sensible. Il s'agit de tous ceux qui ne servent pas à séparer les mots ou les commandes.\\ | Tous les caractères spéciaux, c'est-à-dire les symboles auxquels le shell est sensible. Il s'agit de tous ceux qui ne servent pas à séparer les mots ou les commandes.\\ | ||
- | Comme nous le verrons dans la suite de ce wiki-synthèse, il s'agit des **caractères qui inhibent** la reconnaissance des caractères spéciaux ou des "méta-caractères" ; **des mots réservés** (et qui appartiennent souvent à la syntaxe des commandes composées) ; des **caractères qui transforment un caractère simple en caractère spécial** (par exemple, le tiret devant une lettre, fait reconnaître cette lettre comme une option !) et enfin des caractères qui **représentent différentes sortes de fichiers**, les **variables d'environnement prédéfinies** et les **paramètres prédéfinis**. | + | Comme nous le verrons dans cette série de wiki, il s'agit des **caractères qui inhibent** la reconnaissance des caractères spéciaux et des métacaractères ("glob" ou "patterns" et "bracket expression" ; **des mots réservés** (et qui appartiennent souvent à la syntaxe des commandes composées) ; des **caractères qui transforment un caractère simple en caractère spécial** (par exemple, le tiret devant une lettre, fait reconnaître cette lettre comme une option !) et enfin des caractères qui **représentent différentes sortes de fichiers**, les **variables d'environnement prédéfinies** et les **paramètres prédéfinis**. |
- | ====3) "Globs simples" ou "méta-caractères", utilisation avancée==== | + | =====C) Scripts et Alias ===== |
- | **Détails et exercices sur : [[doc:programmation:shell:les-metacaracteres|métacaractères, ou globs, ou encore patterns]]** | + | ====1) les scripts ==== |
- | | + | Un **script** est la rédaction dans un fichier texte d'un ensemble de //commandes// et d'expressions régulières (caractères utilisés symboliquement) orientant les instructions données aux commandes.\\ |
- | ===Comment associer le point et l'étoile ?=== | + | * **Pour une initiation au script : [[atelier:chantier:debuter-avec-les-scripts-shell-bash]]** |
+ | * **sur "if", "les boucles", etc. : [[doc:programmation:shell:avancee|Fonctionnalités avancées du Shell]]** | ||
+ | * **considérations avancées : [[doc:programmation:shell:scripts|Rédaction de scripts Shell]]** | ||
+ | * ** Pour les DÉBUTANTS AVISÉS francophile : [[http://abs.traduc.org/abs-fr/pt01.html]]** | ||
+ | * **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :[[http://mywiki.wooledge.org/BashFAQ]]** | ||
- | On sait que ls -a permet de lister tous les fichiers, le retour est alors un peu trop copieux \\ | + | * **À voir aussi : scripts debian-facile :** |
+ | *[[:doc:programmation:python:boutonfermer|[pygtk] Comment faire un notebook avec bouton "fermer"]] | ||
+ | *[[:doc:programmation:bash:alias|[bash] Réalisation d'un script contenant des Alias]] | ||
+ | *[[:doc:programmation:bash:file-dir-exist|[bash] Déterminer si un fichier ou répertoire existe]] | ||
+ | *[[:doc:programmation:bash:synoshareexist|[bash] Déterminer si un partage existe sur un disque réseau de type Synology]] | ||
+ | *[[:doc:programmation:bash:read:parcourir-fichier-texte|[bash] Lire un fichier texte ligne par ligne]] | ||
+ | *[[:doc:systeme:apt:debsect|[bash] Section d'un paquet debian]] | ||
+ | *[[:doc:programmation:bash:tp-debsources|[bash] Dépôt d'un paquet debian]] | ||
+ | *[[:doc:programmation:bash:png2jpg|[bash] Convertir dans plusieurs sous-répertoires des images .png en .jpg]] | ||
- | De même ls -a* est très prolixe.\\ | + | ====2) les alias ==== |
+ | * **L'essentiel est là : [[doc:programmation:bash:alias|Maîtriser les alias bash]]** | ||
- | On peut alors faire : | + | * **alias et script :** |
- | <code user> | + | Lorsque vous tapez plusieurs lignes de commande différentes et répétitives à la suite, il est intéressant de les rédiger toutes ensembles dans un seul texte (un //script//) afin de les appeler d'un coup à l'aide d'un mot clé nommé : [[:doc:programmation:bash:alias|un alias]]. |
- | ls -d .* | + | |
- | </code> | + | |
- | => On obtiendra alors tous les fichiers cachés. | + | |
- | Pour affiner la recherche on faire pour n'avoir que ceux dont le nom commence par un c : | + | **Pour voir où et comment réaliser un tel script : [[:doc:programmation:bash:alias|Réalisation d'un Script contenant des Alias]]** |
- | <code user> | + | ===== la suite c'est ICI : ===== |
- | ls -d .c* | + | [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]] |
- | </code> | + | |
- | Retour : | + | |
- | <code> | + | |
- | .cache .config | + | |
- | </code> | + | |
- | * **Rappel :**\\ | ||
- | -**L'étoile correspond à n'importe quelle chaîne.**\\ | ||
- | -**Si l'on fait *.txt on représente tous les fichiers se terminant par ".txt".**\\ | ||
- | **C'est là qu'il y a un petit piège ! m( **\\ | ||
- | |||
- | **.* représente un point (.) mais aussi deux points (..)** | ||
- | |||
- | <code user> | ||
- | ls .* # et son équivalent : ls .?* | ||
- | </code> | ||
- | => va afficher du répertoire courant (.) : tous les fichiers cachés (normaux) et tous les fichiers cachés de type-répertoire avec les noms des fichiers cachés contenus dans ces répertoires ;\\ | ||
- | mais aussi du répertoire parent (..) : tous les fichiers cachés normaux et les fichiers cachés de type-répertoire, avec les noms des fichiers cachés contenus dans ces répertoires ! | ||
- | |||
- | * Contournement : | ||
- | <code user> | ||
- | ls .[!.]* | ||
- | </code> | ||
- | => liste du répertoire courant : tous les fichiers cachés normaux et les fichiers cachés de type-répertoire, avec les fichiers cachés de ces répertoires. | ||
- | <code user> | ||
- | ls -d .[!.]* # et son équivalent : ls -d .??* | ||
- | </code> | ||
- | => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !) | ||
- | |||
- | === la suite c'est ICI=== | ||
- | [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]] |