Console

bash : Personnaliser le shell avec oh-my-bash

Table des matières

oh-my-bash



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) $


Certains thèmes nécessitent les polices powerline. Installer si nécessaire le paquet contenant ces polices :
- Fedora, monde Red Hat (EPEL requis), Arch, OpenSuse : powerline-fonts
- Debian et dérivées : fonts-powerline

Si on se connecte en SSH sur une machine qui a Oh My Bash, il sera nécessaire d'installer les polices sur le client SSH, sous peine d'avoir des caractères mal affichés !


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

Cette page a été vue 882 fois