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
bash [Le 20/08/2013, 08:11]
mydjey ancienne révision restaurée...
bash [Le 04/08/2023, 15:46] (Version actuelle)
Amiralgaby [Création de scripts shell] ajout d'un lien interne vers le cours d'initiation au shell
Ligne 1: Ligne 1:
-{{tag>​shell BROUILLON}}+{{tag>​shell ​Focal Bionic ​BROUILLON}}
  
 ---- ----
Ligne 5: Ligne 5:
 ====== BASH : Bourne Again Shell ====== ====== BASH : Bourne Again Shell ======
  
-BASH est un [[shell]].+BASH est un [[shell]]. C'est le shell de base utilisé 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. 
 + 
 +BASH n'est pas totalement compatible avec [[ZSH]], le shell le plus orienté pour l'​interactivité avec l'​utilisateur.
  
 ===== Introduction / Utilisation ===== ===== Introduction / Utilisation =====
  
-Commencer par le [[tutoriel:​script_shell|tutoriel d'​introduction aux scripts shell]]+//Voir l'​utilisation des [[commande_shell|commandes et lignes de commandes]] que les shells comme **bash** peuvent interpréter//​
  
 ===== Utilisation avancée ===== ===== Utilisation avancée =====
 +==== 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]] 
 +  ​
 ==== 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>​+<​code ​bash>
 phrase="​plusieurs mots... phrase="​plusieurs mots...
 sur une ligne ?" sur une ligne ?"
Ligne 34: Ligne 40:
 </​code>​ </​code>​
  
-Plus d'​explication [[http://​www.linuxquestions.org/​questions/​programming-9/​bash-command-separatorarguments-separator-602542/#​post2971876|en anglais]].+//Pour plus d'​explication, voir [[wpfr>​Input_Field_Separators|IFS (Wikipédia)]]// **(fr)**
  
 ==== Une meilleure gestion de l'​historique ==== ==== Une meilleure gestion de l'​historique ====
Ligne 40: Ligne 46:
 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 ** et  +[[:​tutoriel:​comment_modifier_un_fichier|ouvrez le fichier]] ** ~/.inputrc ** (ou créer-le s'il n'​existe pas) et ajoutez-y : 
-ajoutez-y : +<​code>​
- <​code>​+
 "​\e[A":​ history-search-backward "​\e[A":​ history-search-backward
 "​\e[B":​ history-search-forward</​code>​ "​\e[B":​ history-search-forward</​code>​
  
-[[:​tutoriel:​comment_modifier_un_fichier|ouvrez le fichier]] ** ~/.bashrc ** et +[[:​tutoriel:​comment_modifier_un_fichier|ouvrez le fichier]] ** ~/.bashrc ** et ajoutez-y : 
-ajoutez-y : +<​code>​
- <​code>​+
 shopt -s histappend shopt -s histappend
 PROMPT_COMMAND='​history -a'</​code>​ PROMPT_COMMAND='​history -a'</​code>​
 +
 +==== Fonctionnalité "​push-line",​ édition d'une deuxième ligne puis revenir à la première ====
 +
 +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.
 +
 +//Voir [[https://​linuxfr.org/​forums/​programmation-shell/​posts/​recherche-d-une-fonctionnalite-zsh-bash#​comment-1905228|Recherche d'une fonctionnalité zsh / bash]] réponse ''​Ctrl+u''​ puis ''​Ctrl+y''//​
 +
 +=====Les fichiers de configuration BASH=====
 +====~/​.bashrc====
 +Ce fichier permet la configuration lors du lancement du programme bash.
 +
 +Il est possible de personnaliser le prompteur :
 +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.
 +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>​
 +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 dollar le curseur ira sur une nouvelle ligne.
 +
 +Il y a beaucoup plus de personnalisation possible mais ne nous étalons pas.
 +
 +====~/​.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.
 +<note tip>
 +Vous pouvez mettre de la couleur dans les pages du man plutôt que d'​avoir du blanc.
 +[[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====
 +Hyper utile quand vous utilisez vos flèches pour rechercher une commande.
 +vous pouvez voir le fichier avec la commande
 +  history
 +
 +Pour rechercher bien plus rapidement utilisez (Ctrl+R) dans 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//.
 +
 +====~/​.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 programme, il vous suffira de le mettre dans un nouveau dossier nommé "​bin"​ :
 +  mkdir ~/bin
 +et d'y mettre vos programmes
 +
 +===== Voir aussi =====
 +  * **(en)** [[https://​www.gnu.org/​software/​bash/​|site officiel de bash]]
 +  * **(fr)** [[variables_d_environnement|Les variables d'​environnement]]
 +  * **(fr)** [[tutoriel:​script_shell|Introduction aux scripts shell]]
 +  * **(fr)** [[wpfr>​Bourne-Again_shell]]
  
 ---- ----
  
-//​Contributeur(s) : [[utilisateurs:​Id2ndR]]//​+//​Contributeur(s) : [[utilisateurs:​Id2ndR]], [[:​utilisateurs:​Amiralgaby|Amiralgaby]]//
  • bash.1376979109.txt.gz
  • Dernière modification: Le 20/08/2013, 08:11
  • par mydjey