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 16:25] Hypathie [A) Shell BASH] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [26/05/2014 06:39] Hypathie [B ) Méta-caractères et méta-caractères !] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Création par **Hypathie** 20/03/2014 | * Création par **Hypathie** 20/03/2014 | ||
* Testé par <Hypathie> le <Avril 2014> | * Testé par <Hypathie> le <Avril 2014> | ||
+ | * * Suivi : {{ à-placer}} | ||
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=87499#p87499| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=87499#p87499| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 27: | 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 41: | Ligne 42: | ||
**Qui dit shell, dit commandes, avant tout : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]]** :-) | **Qui dit shell, dit commandes, avant tout : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]]** :-) | ||
- | | + | |
+ | Il existe plusieurs shell, bien souvent par défaut, c'est le **Shell Bash** qui est utilisé. | ||
+ | |||
+ | **Pour savoir quel shell vous utilisez par défaut, tapez :** | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ echo $SHELL | ||
+ | /bin/bash | ||
+ | </code> | ||
+ | Pour connaître la version de votre Shell Bash, tapez : | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ bash --version | ||
+ | GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) | ||
+ | Copyright (C) 2007 Free Software Foundation, Inc. | ||
+ | </code> | ||
+ | |||
**Distinguons maintenant les commandes internes et les commandes externes au shell bash.** | **Distinguons maintenant les commandes internes et les commandes externes au shell bash.** | ||
Ligne 95: | Ligne 110: | ||
</note> | </note> | ||
- | =====B) Scripts et alias ===== | ||
- | ====1) les scripts ==== | + | =====B ) Méta-caractères et méta-caractères !===== |
- | + | ||
- | ====2) les alias ==== | + | |
- | =====C ) Méta-caractères et méta-caractères !===== | + | |
====1)Définition courante de méta-caractère et détail==== | ====1)Définition courante de méta-caractère et détail==== | ||
Ligne 143: | Ligne 154: | ||
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éta-caractè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 249: | 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é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**. |
- | ====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]] |