bash : Personnaliser le shell avec oh-my-bash
Table des matières
Lorsqu'on utilise le shell bash, le prompt est basique et unicolore (sur une RHEL9 : [user@machine ~]#). Parfois, certaines distributions Linux vont le personnaliser pour nous.
Bien qu'il me soit suffisant, certains souhaitent personnaliser leur prompt, ajoutant de la couleur, et des fonctionalités supplémentaires.
Parmis des projets clé en main offrant une personnalisation rapide, il y a "Oh My Bash" qui est largement inspiré de Oh My Zsh qui, lui, fonctionne pour le shell zsh.
Il va apporter une multitude de fonctionnalités et de personnalisations en mettant à dispo :
- des thèmes pour personnaliser l'apparence du prompt
- des plugins ajoutant de nouvelles fonctionnalités
- des fonctions d'autocomplétion améliorées
- des collections d'alias prédéfinis pour simplifier l'utilisation des commandes courantes
Dans cet article, nous allons voir ensemble comment l'installer et le personnaliser sur notre système.
L'installation ne nécessite pas d'être super-utilisateur. Lorsque l'outil sera installé il sera installé dans le dossier personnel de l'utilisateur qui a lancé la commande. Si on veut l'avoir pour root et pour un utilisateur du système, on l'installera sur chaque compte, et la personnalisation sera à faire pour chaque utilisateur.
Peu importe la distribution Linux utilisée, ou le système (Mac, WSL), il suffit d'avoir bash.
Il est juste nécessaire d'avoir git d'installé !
Se connecter en tant qu'utilisateur qui devra utiliser Oh My Bash et exécuter :
Une fois la commande exécutée, notre précédent fichier .bashrc est sauvegardé, et un nouveau est généré. Il sera nécessaire de recopier ses alias si on en avait :
Pour recharger bash, après chaque modif de config, on utilisera :
On peut aussi se déconnecter et se reconnecter ou relancer un bash.
Si on se rend dans le dossier .oh-my-bash, on voit déjà des infos git (car c'est un dépôt git cloné) :
Oh My Bash permet de personnaliser plusieurs éléments qu'on va voir ici.
Les personnalisations se font en éditant le fichier .bashrc :
On pensera bien à recharger ce fichier pour visualiser les modifs :
Oh My Bash propose plusieurs thèmes. C'est probablement le truc qui intéressera le plus d'entre vous.
Pour basculer de thèmes en thèmes, on va définir la variable suivante dans le fichier ~/.bashrc :
Par défaut, le thème est "font".
Pour obtenir la liste des thèmes disponibles :
Pour changer vers vscode par exemple, on remplace
Après rechargement du .bashrc, on passe de :
à :
Oh My Bash propose plusieurs plugins.
Pour activer/désactiver des plugins, on va définir le tableau suivant dans le fichier ~/.bashrc :
Pour obtenir la liste des plugins disponibles :
Pour ajouter le plugin sudo, on modifira ainsi :
Après rechargement du .bashrc, on peut utiliser ce plugin.
Note : Le plugin sudo permet, en appelant 2 fois echap de rappeller la commande précédente, préfixée de sudo.
Oh My Bash propose l'amélioration de l'autocomplétion de plusieurs commandes.
Pour activer/désactiver des autocomplétions , on va définir le tableau suivant dans le fichier ~/.bashrc :
Pour obtenir la liste des complétions disponibles :
Pour ajouter le plugin virtualbox, on modifira ainsi :
Bien que les alias soient plutôt personnels, Oh My Bash propose de nombreux jeux d'alias.
Pour activer/désactiver ces alias , on va définir le tableau suivant dans le fichier ~/.bashrc :
Pour obtenir la liste des complétions disponibles :
Pour ajouter les alias prédéfinis pour nos gestionnaires de paquets, on modifira ainsi :
On pourra utiliser dnfi pour faire un sudo dnf install !
Si on veut aller plus loin, en créant son propre thème, son propre jeu d'alias, ou ses plugins, il ne faut surtout pas créer de fichiers dans les dossiers par défaut de Oh My Bash. Lors de la mise à jour de celui-ci, nos personnalisations peuvent interférer ou être écrasées.
Pour cela, il y a un dossier prévu pour y incorporer nos ajouts: ~/.oh-my-bash/custom. Il y a des sous-dossiers :
- pour créer nos propres thèmes, on les metta dans ~/.oh-my-bash/custom/themes/
- pour créer nos propres alias, on les metta dans ~/.oh-my-bash/custom/aliases/
- pour créer nos propres modules de complétion, on les metta dans ~/.oh-my-bash/custom/completions/
Pour modifier un thème, on pourra donc le copier sous un nom différent dans ~/oh-my-bash/custom/themes/ et le modifier à notre guise.
Ainsi nos modifs seront préservées en cas de mise à jour de Oh My Bash !
Il est possible de mettre à jour Oh My Bash, mais les opérations sont manuelles.
Pour cela :
Si on ne souhaite plus utiliser Oh My Bash, une commande nous est mis à disposition pour désinstaller :
Introduction
Lorsqu'on utilise le shell bash, le prompt est basique et unicolore (sur une RHEL9 : [user@machine ~]#). Parfois, certaines distributions Linux vont le personnaliser pour nous.
Bien qu'il me soit suffisant, certains souhaitent personnaliser leur prompt, ajoutant de la couleur, et des fonctionalités supplémentaires.
Parmis des projets clé en main offrant une personnalisation rapide, il y a "Oh My Bash" qui est largement inspiré de Oh My Zsh qui, lui, fonctionne pour le shell zsh.
Il va apporter une multitude de fonctionnalités et de personnalisations en mettant à dispo :
- des thèmes pour personnaliser l'apparence du prompt
- des plugins ajoutant de nouvelles fonctionnalités
- des fonctions d'autocomplétion améliorées
- des collections d'alias prédéfinis pour simplifier l'utilisation des commandes courantes
Dans cet article, nous allons voir ensemble comment l'installer et le personnaliser sur notre système.
Prérequis
L'installation ne nécessite pas d'être super-utilisateur. Lorsque l'outil sera installé il sera installé dans le dossier personnel de l'utilisateur qui a lancé la commande. Si on veut l'avoir pour root et pour un utilisateur du système, on l'installera sur chaque compte, et la personnalisation sera à faire pour chaque utilisateur.
Peu importe la distribution Linux utilisée, ou le système (Mac, WSL), il suffit d'avoir bash.
Il est juste nécessaire d'avoir git d'installé !
Installation
Se connecter en tant qu'utilisateur qui devra utiliser Oh My Bash et exécuter :
Code BASH :
curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh | bash
Une fois la commande exécutée, notre précédent fichier .bashrc est sauvegardé, et un nouveau est généré. Il sera nécessaire de recopier ses alias si on en avait :
Code :
Looking for an existing bash config...
Found ~/.bashrc. Backing up to /home/adrien/.bashrc.omb-backup-20241015151304
$ mv /home/linuxtricks/.bashrc /home/adrien/.bashrc.omb-backup-20241015151304
Copying the Oh-My-Bash template file to ~/.bashrc
$ mv -f /home/adrien/.bashrc.omb-temp /home/adrien/.bashrc
__ __ __
____ / /_ ____ ___ __ __ / /_ ____ ______/ /_
/ __ \/ __ \ / __ `__ \/ / / / / __ \/ __ `/ ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_/ / /_/ (__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /_.___/\__,_/____/_/ /_/
/____/ .... is now installed!
Please look over the ~/.bashrc file to select a theme, plugins, completions, aliases, and options
To keep up on the latest news and updates, follow us on GitHub: https://github.com/ohmybash/oh-my-bash
Pour recharger bash, après chaque modif de config, on utilisera :
Code BASH :
source ~/.bashrc
On peut aussi se déconnecter et se reconnecter ou relancer un bash.
Si on se rend dans le dossier .oh-my-bash, on voit déjà des infos git (car c'est un dépôt git cloné) :
Code BASH :
03:25:05 adrien@TESTBASH .oh-my-bash ±|master|→
Personnalisation
Oh My Bash permet de personnaliser plusieurs éléments qu'on va voir ici.
Les personnalisations se font en éditant le fichier .bashrc :
Code BASH :
vi ~/.bashrc
On pensera bien à recharger ce fichier pour visualiser les modifs :
Code BASH :
source ~/.bashrc
Modifier le thème
Oh My Bash propose plusieurs thèmes. C'est probablement le truc qui intéressera le plus d'entre vous.
Pour basculer de thèmes en thèmes, on va définir la variable suivante dans le fichier ~/.bashrc :
Code BASH :
OSH_THEME="font"
Par défaut, le thème est "font".
Pour obtenir la liste des thèmes disponibles :
Code BASH :
ls ~/.oh-my-bash/themes/
Pour changer vers vscode par exemple, on remplace
Code BASH :
OSH_THEME="vscode"
Après rechargement du .bashrc, on passe de :
Code :
03:25:05 adrien@TESTBASH .oh-my-bash ±|master|→
à :
Code :
adrien ➜ ~/.oh-my-bash (master) $
Gérer les plugins
Oh My Bash propose plusieurs plugins.
Pour activer/désactiver des plugins, on va définir le tableau suivant dans le fichier ~/.bashrc :
Code BASH :
plugins=( git bashmarks )
Pour obtenir la liste des plugins disponibles :
Code BASH :
ls ~/.oh-my-bash/plugins/
Pour ajouter le plugin sudo, on modifira ainsi :
Code BASH :
plugins=( git bashmarks sudo )
Après rechargement du .bashrc, on peut utiliser ce plugin.
Note : Le plugin sudo permet, en appelant 2 fois echap de rappeller la commande précédente, préfixée de sudo.
Autocomplétion
Oh My Bash propose l'amélioration de l'autocomplétion de plusieurs commandes.
Pour activer/désactiver des autocomplétions , on va définir le tableau suivant dans le fichier ~/.bashrc :
Code BASH :
completions=( git composer ssh )
Pour obtenir la liste des complétions disponibles :
Code BASH :
ls ~/.oh-my-bash/completions/
Pour ajouter le plugin virtualbox, on modifira ainsi :
Code BASH :
completions=( git composer ssh virtualbox )
Alias
Bien que les alias soient plutôt personnels, Oh My Bash propose de nombreux jeux d'alias.
Pour activer/désactiver ces alias , on va définir le tableau suivant dans le fichier ~/.bashrc :
Code BASH :
aliases=( general )
Pour obtenir la liste des complétions disponibles :
Code BASH :
ls ~/.oh-my-bash/alias/
Pour ajouter les alias prédéfinis pour nos gestionnaires de paquets, on modifira ainsi :
Code BASH :
aliases=( general package-manager )
On pourra utiliser dnfi pour faire un sudo dnf install !
Ajouter des personnalisations perso
Si on veut aller plus loin, en créant son propre thème, son propre jeu d'alias, ou ses plugins, il ne faut surtout pas créer de fichiers dans les dossiers par défaut de Oh My Bash. Lors de la mise à jour de celui-ci, nos personnalisations peuvent interférer ou être écrasées.
Pour cela, il y a un dossier prévu pour y incorporer nos ajouts: ~/.oh-my-bash/custom. Il y a des sous-dossiers :
- pour créer nos propres thèmes, on les metta dans ~/.oh-my-bash/custom/themes/
- pour créer nos propres alias, on les metta dans ~/.oh-my-bash/custom/aliases/
- pour créer nos propres modules de complétion, on les metta dans ~/.oh-my-bash/custom/completions/
Pour modifier un thème, on pourra donc le copier sous un nom différent dans ~/oh-my-bash/custom/themes/ et le modifier à notre guise.
Ainsi nos modifs seront préservées en cas de mise à jour de Oh My Bash !
Mettre à jour Oh My Bash
Il est possible de mettre à jour Oh My Bash, mais les opérations sont manuelles.
Pour cela :
Code BASH :
cd ~/.oh-my-bash/ git pull
Désinstaller
Si on ne souhaite plus utiliser Oh My Bash, une commande nous est mis à disposition pour désinstaller :
Code BASH :
uninstall_oh_my_bash