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. 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, le shell le plus orienté pour l'interactivité avec l'utilisateur.
Introduction / Utilisation
Voir l'utilisation des commandes et lignes de commandes que les shells comme bash peuvent interpréter
Utilisation avancée
Création de scripts shell
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.
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
Pour plus d'explication, voir IFS (Wikipédia) (fr)
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 ?
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'
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 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"1).
Avec gedit vous pouvez faire (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.
~/.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.
Plusieurs couleurs sont disponibles via l'utilisation de code couleurs : les choix de couleurs.
~/.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