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
doc:programmation:shells:bash-les-differents-caracteres-speciaux [05/03/2023 21:24]
agp91 [Introduction]
doc:programmation:shells:bash-les-differents-caracteres-speciaux [01/04/2023 19:17] (Version actuelle)
agp91 [Consoles et terminaux]
Ligne 1: Ligne 1:
 ====== Bash : Vision d'​ensemble ====== ====== Bash : Vision d'​ensemble ======
  
-  * Objet : Vue d'​ensemble du shell Bash et présentation des différentes fonctionnalités.+  * Objet : Début de la série de wiki visant à maîtriser bash par les caractère.
   * Niveau requis : {{tag>​débutant avisé}}   * Niveau requis : {{tag>​débutant avisé}}
-  * Commentaires : FIXME +  * Commentaires : Bash, ligne de commande et scripts ​ 
-  * Suivi : +  * Suivi : {{tag>​en-chantier}}
     * Création par [[user>​Hypathie]] 20/03/2014     * Création par [[user>​Hypathie]] 20/03/2014
     * Testé par [[user>​Hypathie]] en Avril 2014     * Testé par [[user>​Hypathie]] en Avril 2014
Ligne 11: Ligne 11:
 **Nota :** Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !  **Nota :** Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 +<note important>​
 +Page en court de réécriture
 +</​note>​
 +
 +  * **Vision d'​ensemble** ;-) 
 +  * [[doc:​programmation:​shells:​la-page-man-bash-les-caracteres-speciaux|Détail et caractères]]
 +  * [[atelier:​chantier:​bash:​les-operateurs-sur-parametres|Les opérateurs de test sur paramètres]]
 +  * [[doc:​programmation:​shells:​la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs de test sur chaînes]]
 +  * [[atelier:​chantier:​bash:​les-operateurs-de-test-sur-fichiers|Les opérateurs de test sur fichiers]]
 +  * [[doc:​programmation:​shells:​page-man-bash-iii-les-operateurs-de-comparaison-numerique|Les opérateurs de comparaison numérique]]
 +  * [[doc:​programmation:​shells:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques|Les symboles dans les calculs]] ​
 +  * [[doc:​programmation:​shells:​page-man-bash-v-les-tableaux|Bash : les tableaux]] ​
 +  * [[doc:​programmation:​shells:​man-bash-vi-les-caracteres-de-transformation-de-parametres|Les caractères de transformation de parametres]]
 +  * [[doc:​programmation:​shells:​bash-vii-globs-etendus-regex|Bash : Variables, globs étendus, ERb, ERe]]
 ===== Introduction ===== ===== Introduction =====
  
Ligne 47: Ligne 61:
 Un **shell**, nommé aussi **interpréteur de commande**, est un logiciel en espace utilisateur qui permet d'​ordonner des actions au système d'​exploitation.\\ Un **shell**, nommé aussi **interpréteur de commande**, est un logiciel en espace utilisateur qui permet d'​ordonner des actions au système d'​exploitation.\\
  
-De **manière interactive**, le shell permet à l'​utilisateur de saisir, une ligne de commande au clavier, qui après interprétation,​ est exécutée.\\+De manière ​**interactif**, le shell permet à l'​utilisateur de saisir, une ligne de commande au clavier, qui après interprétation,​ est exécutée.\\
 Lorsque le shell exécute une commande, sans précision, ni action supplémentaire,​ le shell attend la fin de l'​exécution de la commande avant de redonner la main à l'​utilisateur. Lorsque le shell exécute une commande, sans précision, ni action supplémentaire,​ le shell attend la fin de l'​exécution de la commande avant de redonner la main à l'​utilisateur.
  
 Un shell est capable d'​exécuter par lot, un ensemble de commande. La main est alors rendu à l’utilisateur,​ après l'​exécution de la dernière commande du lot. Un lot de commande peut être écrit dans un fichier que nous nommons **script**. Un shell est capable d'​exécuter par lot, un ensemble de commande. La main est alors rendu à l’utilisateur,​ après l'​exécution de la dernière commande du lot. Un lot de commande peut être écrit dans un fichier que nous nommons **script**.
  
-Un shell, peut de **manière ​non-interactif** exécuter un script. Lorsque toutes les commandes contenues dans le script sont exécutées,​ le shell se termine, sans donner la main à l'​utilisateur.+Un shell, peut de manière ​**non-interactif** exécuter un script. Lorsque toutes les commandes contenues dans le script sont exécutées,​ le shell se termine, sans donner la main à l'​utilisateur.
  
 <​note>​ <​note>​
Ligne 62: Ligne 76:
 Que le shell soit exécuté de manière interactif ou pas, il permet : Que le shell soit exécuté de manière interactif ou pas, il permet :
  
-  * D’accéder aux systèmes ​de fichiers. ((Bonne maxime à retenir : Tout est fichier.)) +  * D’accéder aux **système ​de fichier**. ((Bonne maxime à retenir : **Tout est fichier**.)) 
-  * De fournir un environnement de travail, constitué de donnéesMémorisées, sous la forme d'un couple nom/valeur, nommé variable. L'​ensemble de ces variables sont nommées **variables de l'​interpréteur**. S'​ajoutent les paramètres positionnels ​(ou variable spéciales ​en csh) et autres ​paramètres spéciaux+  * De fournir un environnement de travail, constitué de donnéeMémorisée, sous la forme d'un couple nom/valeur, nommé variable. L'​ensemble de ces variables sont nommées **variables de l'​interpréteur**. S'​ajoutent les __paramètres positionnels__ ​(ou __variables spéciales__ ​en csh) et autres ​__paramètres spéciaux__
-  * De fournir un environnement,​ nommé **environnement**,​ constitué d'une sélection de variable, parmi __les variables ​de l'​interpréteur__. ​**L'​environnement** est un composant de __l'environnent ​d'​exécution__ ​qui est fourni aux __processus fils__ créés par le shell+  * De fournir un environnement,​ nommé **environnement**,​ constitué d'une sélection de variable, parmi les __variables ​de l'​interpréteur__. L'**environnement** est un composant de l'__environnent ​d'​exécution__. 
-  * De fournir un **environnement d'​exécution**,​ transmis aux __processus fils__ qui sont créés par le shell. +  * De fournir un **environnement d'​exécution**, ​qui rassemble les informations nommées __données d'un processus__,​ indispensables au fonctionnement des processus. L'​**environnement d’exécution** est transmis aux **processus fils**((Un **processus fils** est un processus créer par un autre processus, alors nommé **processus parent**.)) ​créés par le shell. 
-  * D'​exécuter des programmes dans des environnements,​ que nous nommons **processus**. Chaque ​programmes disposant ​de son propre **processus**. +  * D'​exécuter des programmes dans des environnements,​ que nous nommons **processus**. Chaque ​programme dispose ​de son propre **processus**. Le shell, ne peut créer que des **processus fils**, nommés aussi **sous-shell** (**subshell**)
-  * De suspendre, reprendre ou terminé ​(tué) l'​exécution d'un processus en lui envoyant un signal. +  * De **suspendre****reprendre** ou **terminer** ​(tuer) l'​exécution d'un processus en lui **envoyant un signal**
-  * De rediriger ​les **entrés/sorties standards** ​vers la console ​ou des fichiers. +  * De **rediriger** ​
-  * De connecter les sorties ​d'un processus avec l'entrée ​d'un autre processus. ​Tant que le premier processus n'​envoie rien vers ses sorties standards, l'​exécution du second processus est suspendu+    * L'​**entrée standard** depuis le clavier, la __sortie standard__ ou un fichier. 
-  * De passer un processus en arrière plan, ou de le remettre au premier plan.+    * Les **sorties standards**((Par défaut, les sorties standards sont deux : la **sortie standard** et la **sortie d'​erreur standard**.)) vers l'​écran ​ou des fichiers. 
 +  * De réaliser une **canalisation** (**pipeline**) entre deux processus. Les __sorties standards__ ​d'un processus ​sont connectées ​avec l'__entrée standard__ ​d'un autre processus. ​Quand le premier processus n'​envoie rien vers ses __sorties standards__, l'​exécution du second processus est suspendu.
   * De remplacer le programme exécuté dans un processus par un autre programme. ​   * De remplacer le programme exécuté dans un processus par un autre programme. ​
-  * De récupéré ​l'​état final d'une commande, nommé **code de retour**. +  ​* La **gestion des tâches**, en passant un processus en **arrière plan**, ou de le remettre au **premier plan**. 
-  * De réaliser ​des lots de commande.+  ​* De récupérer ​l'​état final d'une commande, nommé **code de retour**. 
 +  * De regrouper ​des commandes, nommé **lot de commande** ou **suite de commande**.
  
-Certains shells sont dit restreint. Ils restreignent pour des raisons de sécurité, certaines fonctionnalités. ​+Certains shells sont dit restreint. Ils restreignent pour des raisons de sécurité ​et d'​optimisation, certaines fonctionnalités. ​
  
 Exécuté de manière interactif, un shell offre des fonctionnalités supplémentaires : Exécuté de manière interactif, un shell offre des fonctionnalités supplémentaires :
Ligne 83: Ligne 99:
   * De redonner la main à l'​utilisateur,​ après l’exécution au premier plan, d'une commande ou d'un lot de commande.   * De redonner la main à l'​utilisateur,​ après l’exécution au premier plan, d'une commande ou d'un lot de commande.
   * Il offre un environnement de travail à l'​utilisateur :   * Il offre un environnement de travail à l'​utilisateur :
-    * Un prompt ou invite est affichée ​lorsque le shell rend la main à l'​utilisateur.+    * Un **prompt** (ou inviteest affiché ​lorsque le shell rend la main à l'​utilisateur.
     * Un outil d'​édition qui permet de naviguer dans la ligne en court de saisie.     * Un outil d'​édition qui permet de naviguer dans la ligne en court de saisie.
     * Certains shells dispose :     * Certains shells dispose :
-      * D'un historique des commandes déjà exécutées, pouvant ​être rappelé ​sur la ligne en court de saisie. +      * D'​un ​**historique** des commandes déjà exécutées. Ainsi une commande déjà utilisée peut-être rappelée ​sur la ligne en court de saisie. 
-      * D'une complétion des commandes, afin de faciliter la saisie des commandes.+      * D'​une ​**complétion** des commandes, afin de faciliter la saisie des commandes.
  
 Il existe de nombreux shells qui ont été développés au fil du temps.\\ Il existe de nombreux shells qui ont été développés au fil du temps.\\
-Bash est l'un des shells disponibles le plus rependu, installé par défaut sur de nombreux ​système ​dont Debian GNU/​Linux.\\+**Bash** est l'un des shells disponiblesle plus rependu, installé par défaut sur de nombreux ​systèmes, ​dont Debian GNU/​Linux.\\
 Le Bourn-again shell (bash) est une implémentation libre du Bourn shell (l'un des premiers shell UNIX).\\ Le Bourn-again shell (bash) est une implémentation libre du Bourn shell (l'un des premiers shell UNIX).\\
-Il a été développé ​pour la free software fondation, pour le projet GNU. afin d'​avoir ​une shell libre pour les UNIX libre.\\+Il a été développé ​par la **free software fondation**, pour le projet ​**GNU**. afin d'​avoir ​un shell libre pour les UNIX libre.
  
 __**Voir aussi :**__ __**Voir aussi :**__
  
 +  * [[https://​www.gnu.org/​savannah-checkouts/​gnu/​bash/​manual/​bash.html#​What-is-a-shell_003f|(gnu)(en) Bash Reference Manual : What is a shell ?]]
   * Historique des shells Unix et GNU/Linux   * Historique des shells Unix et GNU/Linux
     * [[https://​fr.wikipedia.org/​wiki/​Shell_Unix#​Historique_des_shells_Unix|(fr.wikipedia) Shell Unix : Historique des shell Unix]]     * [[https://​fr.wikipedia.org/​wiki/​Shell_Unix#​Historique_des_shells_Unix|(fr.wikipedia) Shell Unix : Historique des shell Unix]]
Ligne 101: Ligne 118:
   * Liste des shells   * Liste des shells
     * [[https://​fr.wikipedia.org/​wiki/​Shell_Unix#​Shells|(fr.wikipedia) Shell Unix : shell]]     * [[https://​fr.wikipedia.org/​wiki/​Shell_Unix#​Shells|(fr.wikipedia) Shell Unix : shell]]
-    * [[https://​packages.debian.org/​stable/​shells|(packages.debian)Paquets logiciels dans « bullseye », Sous-section shells]]+    * [[https://​packages.debian.org/​stable/​shells/|(packages.debian)Paquets logiciels dans « bullseye », Sous-section shells]]
  
 ===== Consoles et terminaux ===== ===== Consoles et terminaux =====
Ligne 110: Ligne 127:
  
   * **La console** qui désigne, les interfaces que nous obtenons par la combinaison des touche ''​Ctrl''​+''​Alt''​+''​F...''​   * **La console** qui désigne, les interfaces que nous obtenons par la combinaison des touche ''​Ctrl''​+''​Alt''​+''​F...''​
-  * **Le terminal** pour désigner, dans un environnent graphique, la fenêtre où nous obtenons une interface en mode.+  * **Le terminal** pour désigner, dans un environnent graphique, la fenêtre où nous obtenons une interface en mode texte.
  
 <​note>​ <​note>​
-Cela est simple et précis. ​Dans un premier temps... ​Mais lorsque nous souhaitons aller plus loin, c'est finalement réducteur et porte à confusion.\\+Cela est simple et précis.\\ 
 +Mais lorsque nous souhaitons aller plus loin, c'est finalement réducteur et porte à confusion.\\
 \\ \\
-Pour retrouver les définitions,​ voir : [[|Terminaux et consoles, ​définitions]].+Pour retrouver les définitions,​ voir : [[atelier:​chantier:​terminaux-et-consoles-explications|Terminaux et consoles, ​explications]].
 </​note>​ </​note>​
  
-Sur un système non graphique, nous disposons uniquement d'​interface ​console. Sur un système Debian GNU/Linux moderne, 6 consoles sont proposées.\\ +---- 
-Elles sont accessibles par l'​usage des touches ''​Ctrl''​+''​Alt''​+''​F1''​ à ''​F6''​.\\ + 
-Leur usage est sanctionné par la saisi au clavier d'**un login** (couple nom de  l'​utilisateur + mot de passe).\\ +__**Sur un système non graphique**__, nous disposons uniquement d'​interface ​en mode texte. 
-Lors de la saisie du mot de passe, aucun caractère n'est affiché. Cela est normal, ainsi personne ne peut lire le mot de passe durant sa saisie. + 
-Lorsque que le système est démarré, nous nous trouvons sur la première console. Elle est affichée à l'​écran. Notre login est demandé.+Sur un système Debian GNU/Linux moderne, 6 consoles sont disponibles. 
 + 
 +Elles sont accessibles par l'​usage des touches ''​Ctrl''​+''​Alt''​+''​F1''​ à ''​F6''​. 
 + 
 +Leur usage est sanctionné par la saisi au clavier d'**un login** (couple nom de  l'​utilisateur + mot de passe).
  
 <​code>​ <​code>​
Ligne 130: Ligne 152:
 </​code>​ </​code>​
  
-Sur un système graphique, lorsque qu'il est démarré, ​nous nous trouvons directement sur une 7em console (pour les système Debian GNU/Linux moderne).\\ +<​note>​ 
-Un login graphique nommé **gestionnaire de session graphique** ou **gestionnaire d'​affichage** (**X display manager**) est affiché.\\+Lors de la saisie du mot de passe, aucun caractère n'est affiché.\\ 
 +-> Ainsi personne ne peut lire le mot de passe durant sa saisie. 
 +</​note>​ 
 + 
 +---- 
 + 
 +__**Sur un système graphique**__, lorsque qu'il est démarré,\\ 
 +Nous nous trouvons directement sur une 7em console (pour les système Debian GNU/Linux moderne). 
 + 
 +Un login graphique nommé **gestionnaire de session graphique** ou **gestionnaire d'​affichage** (**X display manager**) est affiché. 
 Pour continuer, nous devons renseigner notre nom d'​utilisateur,​ puis notre mot de passe.\\ Pour continuer, nous devons renseigner notre nom d'​utilisateur,​ puis notre mot de passe.\\
-Une fois connecté, le bureau est affiché à l'​écran.\\ +Une fois connecté, le bureau est affiché à l'​écran.
-Pour disposer d'une interface en mode texte (et accéder à un shell interactif),​ nous devons exécuter une application nommée un **terminal graphique** ou **émulateur de terminal**, plus communément **terminal**.\\ +
-Le shell est directement disponible, aucun login n'est demandé. Par défaut, nous sommes connectés avec notre nom d'​utilisateur.\\ +
-Nous pouvons, quand nous le souhaitons, changer d’utilisateur avec la commande **su //user//**. Le mot de passe de l'​utilisateur (**//​user//​**) nous est alors demandé.\\ +
-Quand nous naviguons entre les différentes consoles, pour revenir sur l'​interface graphique, la combinaison ''​Ctrl''​+''​Alt''​+''​F7''​ doit être utilisée.+
  
-<​note>​Sur le wiki de Debian, nous pouvons lire :\\ +Pour disposer d'une interface en mode texte (et accéder à un shell interactif), nous devons exécuter une application nommée un **terminal fenêtre** ou **émulateur de terminal pour X**, plus communément **terminal**. 
-\\ + 
-[[https://​wiki.debian.org/​Console]] +Le shell est directement disponible, aucun login n'est demandéPar défaut, nous sommes connectés avec notre nom d'​utilisateur
-<file>"​Console"​ is also commonly used to designate terminal emulators (which emulate behavior of the console)or generally any kind of command line interface.</file> +<note> 
-Traduction : +Nous pouvonsquand nous le souhaitons, changer d’utilisateur avec la commande **su**. 
-<file>"​Console"​ est également couramment utilisé pour désigner ​les émulateurs de terminaux (qui émulent le comportement de la console)ou généralement tout type d'​interface ​de ligne de commande.</​file>​ +</note
-\\ +<note> 
-Ainsi un shell exécuté dans une console ​ou un terminal, peut être nommé console.+Quand nous naviguons entre les différentes consolespour revenir sur l'​interface ​graphique,\\ 
 +La combinaison ''​Ctrl''​+''​Alt''​+''​F7''​ (ou la commande **chvt 7**) doit être utilisée.
 </​note>​ </​note>​
 +
 +----
  
 __**Voir aussi** :__ __**Voir aussi** :__
Ligne 155: Ligne 186:
  
 ===== Shell BASH ===== ===== Shell BASH =====
- 
-Le //shell// (« coquille » en anglais) est également appelé //​interpréteur de commandes//​. 
- 
->​C'​est une couche logicielle qui fournit une l'​interface utilisateur à 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. 
- 
-<note tip>Le shell bash est l'un des shell utilisé sous gnu/linux. 
-Pour un historique et la liste des shell les plus utilisés, voir :  
-  * http://​fr.wikipedia.org/​wiki/​Shell_Unix#​Historique_des_shell_Unix 
-  * [[doc:​programmation:​shell:​shell#​introduction|le shell pour tous:​introduction]] 
- 
-Quand on installe Debian Stable, le shell utilisateur par défaut est le shell Bash((alors que l'​interpréteur de commande par défaut pour les applications est dash)). 
-</​note>​ 
- 
  
 ==== Connaître votre shell utilisateur ==== ==== Connaître votre shell utilisateur ====
doc/programmation/shells/bash-les-differents-caracteres-speciaux.1678047872.txt.gz · Dernière modification: 05/03/2023 21:24 par agp91

Pied de page des forums

Propulsé par FluxBB