Bash est un shell, soit un interpréteur de ligne de commande : il permet de "discuter" avec l'ordinateur, en 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 shebang #!/bin/bash, votre système utilisera donc Bash pour interpréter les commandes.
Bash n'est pas totalement compatible avec ZSH, un shell plus orienté pour l'interactivité avec l'utilisateur.
L'IFS est le ou les caractères qui servent de séparateur. Voici un bout de code pour comprendre par l'exemple :
phrase="plusieurs mots... sur une ligne ?" function afficher_phrase(){ for chaine in `echo "$phrase"`; do echo $chaine done } afficher_phrase IFS=' ' echo "Séparateur interne à bash changé" afficher_phrase
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 ?
Ouvrez le fichier ~/.inputrc (ou créer-le s'il n'existe pas) et ajoutez-y :
"\e[A": history-search-backward "\e[B": history-search-forward
Ouvrez le fichier ~/.bashrc et ajoutez-y :
shopt -s histappend PROMPT_COMMAND='history -a'
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.
Le fichier ~/.bashrc 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 PS11).
Avec gedit vous pouvez presser Ctrl+F pour rechercher dans le fichier.
Remplacer la première occurrence ou toutes occurrences par cela :
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
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.
Le fichier ~/.bash_aliases permet de séparer le script .bashrc des alias.
Vous pouvez y définir des variables qui seront chargées à chaque lancement de terminal.
~/.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
Pour rechercher plus rapidement, utilisez 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.
Comme indiqué dans le fichier ~/.profile, celui-ci n'est lu que si ~/.bash_profile ou ~/.bash_login n'existe pas.
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 variable d'environnement $PATH.