
Configurer et personnaliser Bash avec Oh-My-Bash
Si comme moi vous êtes un utilisateur de Bash, que vous y passez de nombreuses heures, vous aurez sans doute déjà senti le besoin de le personnaliser et de l’agrémenter de fonctionnalités. Et même si tout est faisable sans aide particulière, il faut bien avouer que la tâche peut se révéler fastidieuse.
Dans cet article nous verrons comment configurer et personnaliser Bash avec Oh-My-Bash, un framework communautaire de gestion de la configuration de Bash. Si vous avez déjà entendu parler de Oh-My-Zsh!, Oh-My-Bash est un dérivé de ce dernier mais adapté à Bash (Bourne Again SHell). Nous allons donc explorer cet outil qu’est Oh-My-Bash de son installation à sa personnalisation.
Installer Oh-My-Bash
Oh-My-Bash est un outil indépendant de la plateforme/distribution que vous utilisez. Le seul prérequis est d’utiliser Bash comme shell, ce qui est le cas par défaut sur l’écrasante majorité des distributions Linux de nos jours. Par conséquent, l’installation de Oh-My-Bash est strictement identique quelque soit le système que vous utilisez.
Prérequis
- Utiliser Bash comme shell
- Disposer de git
- Disposer de
curl
ouwget
Pour vérifier la disponibilité de ces utilitaires, utilisez la commande which
.
Si vous avez besoin d’installer git
, wget
ou curl
, référez-vous aux articles relatifs à dnf, apt, et pacman en fonction de votre distribution pour la procédure d’installation du package correspondant.
Installer à l’aide de « curl »
Si vous disposez de l’utilitaire curl
vous pouvez utiliser la méthode ci-dessous:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
Installer à l’aide de « wget »
Si vous préférez utiliser l’utilitaire wget
, voici comment procéder:
bash -c "$(wget https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh -O -)"
Après l’installation
Une fois l’installation terminée un shell Bash est lancé…

Notez que c’est une instance de Bash lancée depuis le shell dans lequel nous avons lancé l’installation. En entrant exit
, nous retournons au shell précédent.
Recharger le configuration de Bash
Si à tout moment nous avons besoin de recharger la configurations de Bash, que ce soit parce que nous avons personnalisé quelque chose ou modifié un paramètre nous devons réinterpréter le fichier ~/.bashrc, c’est toujours plus simple et plus rapide que de fermer la session et d’en ouvrir une nouvelle.
source ~/.bashrc
Désinstaller Oh-My-Bash
Dans le cas ou nous voudrions désinstaller Oh-My-Bash il suffit d’invoquer la commande suivante:
uninstall_oh_my_bash
Ce que Oh-My-Bash apporte de base
Outre l’apparence la personnalisation du prompt, Oh-My-Bash apporte de base une série de petites améliorations de l’environnement:
- Une collection d’alias (la liste des alias disponibles s’obtient avec la commande
alias
). - Des plugins ajoutant de nouvelles fonctionnalités.
- Des fonctionnalités d’autocomplétions pour
git
,ssh
etc. - L’intégration des états de dépôts
git
sans le prompt. - Une gestion de thèmes d’affichage.
- etc.
Personnaliser Oh-My-Bash
Point important, nous pouvons paramétrer Oh-My-Bash pour qu’il configure Bash pour nous. Pour ce faire il nous suffit d’éditer notre fichier ~/.bashrc
.
N’oubliez pas de recharger .bashrc
après chaque modification en lançant source ~/.bashrc
.
Changer le thème de Bash
Oh-My-Bash est fourni avec quelques dizaines de thèmes qui gèrent l’apparence du prompt et des couleurs de notre Bash. Par défaut le thème utilisé est font
. Mais nous pouvons choisir celui qui nous convient le mieux.
La liste des thèmes disponible est accessible à cette adresse: https://github.com/ohmybash/oh-my-bash/wiki/Themes
Pour choisir le thème qui nous plait, il suffit de modifier la ligne suivante dans .bashrc
:
OSH_THEME="font"
Notez que plusieurs thèmes requièrent des jeux de polices d’écriture spécifiques de type « powerline », ces polices doivent donc être installées le cas échéant sans quoi l’affichage des caractères spéciaux du prompt et de l’environnement sera erroné.
Notez également que si vous voulez que Bash s’affiche correctement à travers une connexion ssh
avec ces mêmes polices, vous devrez les installer sur la machine depuis laquelle vous vous connectez et utiliser une police compatible dans votre terminal.
Installer les polices de caractères « powerline »
Installation des polices « powerline » sous Ubuntu 22.04 / Debian 12
sudo apt install fonts-powerline
Installation des polices « powerline » sous Arch Linux
sudo pacman -S powerline-fonts
Installation des polices « powerline » sous Rocky Linux, Red Hat, Fedora, …
Si vous utilisez déjà les dépôts EPEL vous pouvez ignorer la première ligne.
sudo dnf install epel-release
sudo dnf install powerline-fonts
Installation des polices « powerline » depuis le dépôt.
Si votre distribution ne dispose pas d’un package spécifique, vous pouvez utiliser la méthode suivante:
# Aller dans sont répertoire personnel
cd ~
# Créer un répertoire pour les sources
mkdir sources
# Aller dans le répertoire sources
cd sources
# Cloner le dépôt
git clone https://github.com/powerline/fonts.git --depth=1
# Entrer dans le dossier du dépôt local
cd fonts
# Lancer l'installation des polices
./install.sh
# Supprimer le dépôt local
cd ..
rm -rf fonts
Activer les plugins
La liste des plugins activable est disponible à cette adresse: https://github.com/ohmybash/oh-my-bash/tree/master/plugins.
Pour activer les plugins que nous voulons utiliser, nous devons de nouveau intervenir dans le fichier .bashrc
.
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
bashmarks
sudo
)
J’ai ici par exemple ajouté le plugin « sudo » qui permet de relancer la commande précédente via sudo
en appuyant deux fois de suite sur « ESC ».
Activer les jeux d’alias
Comme pour les plugins, Oh-My-Bash fourni une série de packages d’alias que nous pouvons charger avec le reste. Par défait seul le package d’alias « general » est activé.
La liste des packages d’alias se trouve sur cette page: https://github.com/ohmybash/oh-my-bash/tree/master/aliases.
Pour en activer il faut à nouveau passer par .bashrc
.
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/
# Example format: aliases=(vagrant composer git-avh)
# Add wisely, as too many aliases slow down shell startup.
aliases=(
general
)
Activer les modules de complétion
Oh-my-bash fourni également des outils d’aides à la complétion sous forme de modules. La liste des modules de complétion disponibles se trouve sur cette page: https://github.com/ohmybash/oh-my-bash/tree/master/completions.
Nous pouvons charger des modules de complétion en ajoutant leur nom dans le fichier .bashrc
, comme pour les autres fonctionnalités.
# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*)
# Custom completions may be added to ~/.oh-my-bash/custom/completions/
# Example format: completions=(ssh git bundler gem pip pip3)
# Add wisely, as too many completions slow down shell startup.
completions=(
git
composer
ssh
)
Mettre les mains dans le cambouis
Si comme moi vous avez envie d’aller un peu plus loin et par exemple modifier un thème existant, ajouter des listes d’alias ou encore développer un module de complétion, il y a une chose principale à savoir: tout ce que vous ajoutez ne doit pas interférer avec les fichiers originaux de Oh-My-Bash sous peine de tout perdre en cas de mise à jour.
Pour ce faire, il y a un dossier prévu pour y incorporer nos ajouts: ~/.oh-my-bash/custom/
.
- Ajoutez vos propres thèmes dans
~/oh-my-bash/custom/themes/
- Ajoutez vos alias dans
~/oh-my-bash/custom/aliases/
- Ajoutez vos modules de completion dans
~/oh-my-bash/custom/completions/
Par exemple, personnellement le thème par défaut, font, me convient très bien sauf que je préfèrerais ne pas avoir l’heure indiquée en début de prompt. Plutôt que de modifier le thème en lui même, je vais simplement en créer nouveau sur base de celui qui est fourni.
Modification d’un thème existant
Voici comment je procède pour créer un thème personnalisé que je nommerai « justsudoit » sur base de « font » qui est fourni.
# Copie du thème sous unautre nom dans ~/.oh-my-bash/custom/themes/
cp -r ~/.oh-my-bash/themes/font ~/.oh-my-bash/custom/themes/justsudoit
# Renommer le fichier du thème pour qu'il corresponde au nom du dossier
mv ~/.oh-my-bash/custom/themes/justsudoit/{font.theme.sh,justsudoit.theme.sh}
A partir de là je peux modifier le contenu du fichier justsudoit.theme.sh
. Je ne vais ici que modifier la ligne qui génère le prompt et en supprimer l’affichage de l’heure.
PS1="$(clock_prompt)$python_venv${hostname} ${_omb_prompt_bold_teal}\W $(scm_prompt_char_info)${ret_status}→ ${_omb_prompt_normal}"
PS1="$python_venv${hostname} ${_omb_prompt_bold_teal}\W $(scm_prompt_char_info)${ret_status}→ ${_omb_prompt_normal}"
Il ne me reste plus qu’à définir le thème dans .bashrc
et le recharger.
OSH_THEME="justsudoit"
source ~/.bashrc
Et voici le résultat:

Conclusion
Avec un minimum de travail nous pouvons nous créer un environnement Bash plus agréable et qui correspond à nos besoins. Outre l’aspect cosmétique, Oh-My-Bash apporte une foule de fonctionnalités qui améliorent notre productivité, pour peu que nous nous donnions la peine de les découvrir.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.