logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:23]
Hypathie [A) Shell BASH]
doc:programmation:shells:bash-les-differents-caracteres-speciaux [26/05/2014 07:23]
Hypathie [C) Scripts et Alias]
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 ;\\
-(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.\\ 
-  * B) 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-)
  
-=====A) Shell BASH =====+=====A ) Shell BASH =====
 **Le shell (« coquille » en anglais) est une couche logicielle qui fournit l'​interface utilisateur d'un système d'​exploitation. Il correspond à la couche la plus externe de ce dernier. ​ Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'​utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell.**\\ **Le shell (« coquille » en anglais) est une couche logicielle qui fournit l'​interface utilisateur d'un système d'​exploitation. Il correspond à la couche la plus externe de ce dernier. ​ Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'​utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell.**\\
  
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 74: Ligne 89:
 </​note>​ </​note>​
  
-====2)Les commandes externes : ====+====2) Les commandes externes : ====
 Une commande externe est une commande dont le code se trouve dans un fichier ordinaire. Le shell crée un processus pour exécuter une commande externe. Parmi les commandes externes que l'on trouve dans un système, il y a les commandes unix (ex. ls, mkdir, vi, sleep) et les fichiers shell (scripts shell). Une commande externe est une commande dont le code se trouve dans un fichier ordinaire. Le shell crée un processus pour exécuter une commande externe. Parmi les commandes externes que l'on trouve dans un système, il y a les commandes unix (ex. ls, mkdir, vi, sleep) et les fichiers shell (scripts shell).
 La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH.  La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH. 
Ligne 95: Ligne 110:
 </​note>​ </​note>​
  
-=====B) Scripts et alias ===== 
  
-====1) les scripts ==== +=====B ) Métacaractères ​et méta-caractères !=====
- +
-====2) les alias ==== +
-=====B) ​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étacaractè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.**+  * **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.**
  
 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 126: 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 143: 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 176: Ligne 239:
  
 **À l'​usage,​ on regroupe ces "​méta-caractères",​ sous l'​appellation de "mots réservés"​. Il y a deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection** **À l'​usage,​ on regroupe ces "​méta-caractères",​ sous l'​appellation de "mots réservés"​. Il y a deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection**
-===Les opérateurs de contrôle :===+ 
 +====4) Les opérateurs de contrôle :====
    
 <​code>​ <​code>​
Ligne 182: Ligne 246:
 </​code>​ </​code>​
 <note tip> <note tip>
-Précisons !\\  +__**Précisons !**__\\  
-À strictement parler, seulement :\\ +__**Premièrement pour le pipe, à strictement parler, ​servent ​seulement ​à enchaîner les commandes**:__\\ 
  
 <​code>​ ||    && ​   ;    <​retour-chariot>​ </​code>​ <​code>​ ||    && ​   ;    <​retour-chariot>​ </​code>​
-servent à enchaîner les commandes.\\+\\
    
  Le signe | ne fait pas référence ici au pipe qui sert dans les tubes. C'est un " OU " logique qui apparaît dans deux cas :\\   Le signe | ne fait pas référence ici au pipe qui sert dans les tubes. C'est un " OU " logique qui apparaît dans deux cas :\\ 
Ligne 207: Ligne 271:
 Par exemple : <​code>​ls ~/​Test/​!(*jpg|*bmp)</​code>​ Par exemple : <​code>​ls ~/​Test/​!(*jpg|*bmp)</​code>​
  
-On retrouve la paire de parenthèse dans le contexte de la commande "​function"​.+__**Deuxièmement,​ on retrouve la paire de parenthèse dans le contexte de la commande "​function"​.**__
 <​code>​ <​code>​
 name (){ name (){
Ligne 223: Ligne 287:
 **À voir : [[doc:​programmation:​shell:​shell#​enchainer-plusieurs-commandes]]** **À voir : [[doc:​programmation:​shell:​shell#​enchainer-plusieurs-commandes]]**
  
-===Les opérateurs de redirection :===+====5) Les opérateurs de redirection :====
  
 <​code>​ <​code>​
Ligne 247: Ligne 311:
  
  
-  * **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 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 ​symboliques** qui représentent différentes sortes de fichiers, ​ou les **variables d'​environnement prédéfinies** ​ou encore ​les **paramètres prédéfinis**. ​ 
 +=====C) Scripts et Alias =====
  
-====3"Globs simples"​ ou "​méta-caractères",​ utilisation avancée====+====1les 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.\\ ​
  
-**Détails et exercices ​sur : [[doc:​programmation:​shell:​les-metacaracteres|métacaractères,​ ou globs, ou encore patterns]]** +  * **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]]** ​
  
-===Comment ​associer le point et l'étoile ?===+  * **À 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]]
  
-On sait que ls -a permet de lister tous les fichiers, le retour ​est alors un peu trop copieux \\ +====2) ​les alias ==== 
 +  * **L'​essentiel ​est là : [[doc:​programmation:​bash:​alias|Maîtriser les alias bash]]**
  
-De même ls -aest très prolixe.\\ ​+  * **alias et script : [[:​doc:​programmation:​bash:​alias|Réalisation d'un Script contenant des Alias]]**
  
-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 : +===== la suite c'est ICI ===== 
- +[[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux|Bash ​Détail et caractères]]
-<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 !)  
- 
-=== la suite c'est ICI=== 
-[[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]] 
doc/programmation/shells/bash-les-differents-caracteres-speciaux.txt · Dernière modification: 01/04/2023 19:17 par agp91

Pied de page des forums

Propulsé par FluxBB