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édentesRévision précédente
Prochaine révision
Révision précédente
bash [Le 15/09/2022, 20:25] – Correction des guillemets (détecté et corrigé via le bot wiki-corrector : https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-artbash [Le 29/12/2025, 13:28] (Version actuelle) – ancienne révision (Le 28/11/2025, 12:24) restaurée - voir recommandations krodelabestiole
Ligne 1: Ligne 1:
-{{tag>shell Focal Bionic BROUILLON}}+{{tag>shell Jammy}}
  
----- +====== Bash : Bourne-Again Shell ======
- +
-====== BASH : Bourne Again Shell ======+
  
-BASH est un [[shell]]. C'est le shell de base utilisé dans le [[terminal]], il est bien évidemment libre, sous licence GPL. +**[[wpfr>Bourne-Again_shell|Bash]]** est un //[[:shell]]//, soit un interpréteur de ligne de commande : il permet de "discuter" avec l'ordinateur, en [[:commande shell|ligne de commande]]. Sur Ubuntu c'est le //shell// utilisé par défaut dans le [[:terminal]]. Il est bien évidemment libre, sous licence GPL.\\ 
-La plupart des scripts que vous verrez sur la documentation comporte un [[wpfr>Shebang]]  **#!/bin/bash**, votre système utilisera donc BASH pour interpréter les commandes.+La plupart des scripts que vous verrez sur la documentation comporte un //[[wpfr>shebang]]// ''#!/bin/bash'', votre système utilisera donc **Bash** pour interpréter les commandes.
  
-BASH n'est pas totalement compatible avec [[ZSH]], le shell le plus orienté pour l'interactivité avec l'utilisateur.+**Bash** n'est pas totalement compatible avec **[[:ZSH]]**un shell plus orienté pour l'interactivité avec l'utilisateur.
  
 ===== Introduction / Utilisation ===== ===== Introduction / Utilisation =====
  
-Commencer par le [[tutoriel:script_shell|tutoriel d'introduction aux scripts shell]]+<note tip>Voir l'utilisation des [[:commande_shell|commandes et lignes de commandes]] que les //shells// comme **Bash** peuvent interpréter.</note>
  
 ===== Utilisation avancée ===== ===== Utilisation avancée =====
-==== Tutoriel par lien externe ====+ 
 +==== Création de scripts shell ==== 
 + 
 +  * Commencer par le [[:tutoriel:script_shell|tutoriel d'introduction aux scripts shell]] ou [[:projets:ecole:scripting:initiation_au_shell|Initiation au shell (cours fait par des Ubunteros)]]
   * [[https://abs.traduc.org/abs-fr/|Guide avancé d'écriture des scripts Bash]]   * [[https://abs.traduc.org/abs-fr/|Guide avancé d'écriture des scripts Bash]]
 +  
 ==== Séparateur de mot ==== ==== Séparateur de mot ====
  
-L'IFS est le ou les caractères qui servent de séparateur. Voici un bout de code pour comprendre par l'exemple.+L'IFS est le ou les caractères qui servent de séparateur. Voici un bout de code pour comprendre par l'exemple :
  
 <code bash> <code bash>
Ligne 38: Ligne 40:
 </code> </code>
  
-Plus d'explication [[http://www.linuxquestions.org/questions/programming-9/bash-command-separatorarguments-separator-602542/#post2971876|en anglais]].+<note>Pour plus d'explication, voir [[wpfr>Input_Field_Separators|IFS]] sur Wikipédia.</note>
  
 ==== Une meilleure gestion de l'historique ==== ==== Une meilleure gestion de l'historique ====
  
-Par défaut, toutes les commandes tapées dans un terminal sont enregistrées dans votre historique et vous pouvez les retrouver en appuyant sur les touches fléchées « haut » et « bas ». La façon dont vous parcourez l'historique peut être améliorée de façon à ce que si vous tapez un début de commande avant votre recherche, vous puissiez accéder uniquement aux entrées commençant par ce que vous venez de taper. Vous me suivez ?+Par défaut, toutes les commandes tapées dans un terminal sont enregistrées dans votre historique et vous pouvez les retrouver en appuyant sur les touches fléchées //haut// ''↑'' et //bas// ''↓''. La façon dont vous parcourez l'historique peut être améliorée de façon à ce que si vous tapez un début de commande avant votre recherche, vous puissiez accéder uniquement aux entrées commençant par ce que vous venez de taper. Vous me suivez ?
  
-[[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] ** ~/.inputrc ** (ou créer-le s'il n'existe pas) et ajoutez-y : +[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] ''~/.inputrc'' (ou créer-le s'il n'existe pas) et ajoutez-y : 
-<code>+<file>
 "\e[A": history-search-backward "\e[A": history-search-backward
-"\e[B": history-search-forward</code>+"\e[B": history-search-forward 
 +</file>
  
-[[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] ** ~/.bashrc ** et ajoutez-y : +[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] ''~/.bashrc'' et ajoutez-y : 
-<code>+<file>
 shopt -s histappend shopt -s histappend
-PROMPT_COMMAND='history -a'</code>+PROMPT_COMMAND='history -a' 
 +</file>
  
-=====Les fichiers de config BASH===== +==== Fonctionnalité "push-line", édition d'une deuxième ligne puis revenir à la première ==== 
-====~/.bashrc==== + 
-Ce fichier permet la configuration lors du lancement du programme bash.+La fonctionnalité ''push-line'' sert à éditer une deuxième ligne de code en effaçant la première que vous éditiez et en la gardant en mémoire pour pouvoir la restaurer après avoir exécuter la deuxième commande : ''Ctrl''+''U'' puis ''Ctrl''+''Y''
 + 
 +<note>Voir [[https://linuxfr.org/forums/programmation-shell/posts/recherche-d-une-fonctionnalite-zsh-bash#comment-1905228|Recherche d'une fonctionnalité zsh / bash]].</note> 
 + 
 +===== Les fichiers de configuration Bash ===== 
 + 
 +==== ~/.bashrc ==== 
 + 
 +Le fichier ''~/.bashrc'' permet la configuration lors du lancement du programme **Bash**.
  
 Il est possible de personnaliser le prompteur : Il est possible de personnaliser le prompteur :
-dans votre éditeur de texte préférer chercher "PS1"((sigle de prompt shell 1)).+dans votre éditeur de texte préférer chercher ''PS1''((sigle de prompt shell 1)).
  
-Avec [[gedit]] vous pouvez faire //(Ctrl + F)// pour rechercher dans le fichier. +Avec [[:gedit]] vous pouvez presser ''Ctrl''+''F'' pour rechercher dans le fichier. 
-remplacer la première occurrence ou toutes occurrences par cela: +Remplacer la première occurrence ou toutes occurrences par cela : 
-<code bash>PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '</code+<file>PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '</file
-En supprimant **\h** (nom d'hôte) il n'y a plus le nom de votre ordinateur. +En supprimant ''\h'' (nom d'hôte) il n'y a plus le nom de votre ordinateur. 
-En ajoutant **\n** (saut de ligne) avant le dollars le curseur ira sur une nouvelle ligne.+En ajoutant ''\n'' (saut de ligne) avant le dollar le curseur ira sur une nouvelle ligne.
  
 Il y a beaucoup plus de personnalisation possible mais ne nous étalons pas. Il y a beaucoup plus de personnalisation possible mais ne nous étalons pas.
  
-====~/.bash_aliases==== +==== ~/.bash_aliases ====
-Ce fichier permet de séparer le script ''.bashrc'' des [[alias]]. +
-Vous pouvez mettre des variables dedans qui seront chargées à chaque lancement de terminal.+
  
-petit tips, vous pouvez mettre de la couleur dans les pages du man plutôt que d'avoir du blanc. +Le fichier ''~/.bash_aliases'' permet de séparer le script ''.bashrc'' des [[:alias]].\\ 
-[[https://blog.shevarezo.fr/post/2018/01/25/comment-avoir-couleurs-pages-man-linux|ce site vous dit comment faire]].\\ Faites vous plaisir avec [[https://misc.flogisoft.com/bash/tip_colors_and_formatting|les choix de couleurs]].+Vous pouvez y définir des variables qui seront chargées à chaque lancement de terminal.
  
-====~/.bash_history==== +<note tip> 
-Hyper utile quand vous utilisez vos flèches pour rechercher une commande. +Vous pouvez par exemple mettre de la couleur dans les pages du man plutôt que d'avoir du blanc. 
-vous pouvez voir le fichier avec la commande+[[https://blog.shevarezo.fr/post/2018/01/25/comment-avoir-couleurs-pages-man-linux|ce site vous dit comment faire]].\\ Plusieurs couleurs sont disponibles via l'utilisation de code couleurs : [[https://misc.flogisoft.com/bash/tip_colors_and_formatting|les choix de couleurs]]. 
 +</note> 
 + 
 +==== ~/.bash_history ==== 
 + 
 +''~/.bash_history'' est le fichier consulté lorsqu'on utilise les flèches //haut// ''↑'' et //bas// ''↓'' pour rechercher une commande.\\ 
 +On peut afficher le contenu du fichier avec la commande
   history   history
  
-Pour rechercher bien plus rapidement utilisez (Ctrl+Rdans le terminal puis entrez la chaîne cherchée//Utilisez plusieurs fois (Ctrl + r) et non pas les flèches pour remonter les commandes qui match//.+Pour rechercher plus rapidementutilisez ''Ctrl''+''R'' dans le terminal puis entrez le texte recherché.\\ Utilisez plusieurs fois ''Ctrl''+''R'' et non pas les flèches pour retrouver les commandes qui correspondent.
  
-====~/.profile==== +==== ~/.profile ====
-Comme indiqué dans le fichier il n'est lu que si ''~/.bash_profile'' ou ''~/.bash_login'' n'existe pas. +
-il permet de prendre en compte de nouveau chemin pour la variable d'environnement PATH.+
  
-Par exemple si vous créez un programmeil vous suffira de le mettre dans un nouveau dossier nommé "bin" +Comme indiqué dans le fichier ''~/.profile'', celui-ci n'est lu que si ''~/.bash_profile'' ou ''~/.bash_login'' n'existe pas. 
-  mkdir ~/bin + 
-et d'y mettre vos programmes+Il est interprété à chaque connexion de l'utilisateur (au démarrage de la session)contrairement à ''[[#~/.bashrc]]'' qui est interprété à chaque lancement de **Bash** (à chaque ouverture d'un onglet du [[:terminal]] par ex.). 
 + 
 +Il permet entre autre de définir de nouveaux [[:chemins]] pour la [[:variables_d_environnement|variable d'environnement]] ''[[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]]''.
  
 ===== Voir aussi ===== ===== Voir aussi =====
-  * **(en)** [[https://www.gnu.org/software/bash/|site officiel de bash]] + 
-  * **(fr)** [[variables_d_environnement|Les variables d'environnement]] +  * **(//en//)** [[https://www.gnu.org/software/bash/|site officiel de Bash]] 
-  * **(fr)** [[tutoriel:script_shell|Introduction aux scripts shell]] +  * [[:variables_d_environnement|Les variables d'environnement]] 
-  * **(fr)** [[wpfr>Bourne-Again_shell]]+  * [[:tutoriel:script_shell|Introduction aux scripts shell]] 
 +  * [[wpfr>Bourne-Again_shell]] 
 ---- ----
  
-//Contributeur(s) : [[utilisateurs:Id2ndR]]//+//Contributeur(s) : [[:utilisateurs:Id2ndR]], [[:utilisateurs:Amiralgaby]]//