Shell /bin/bash et options de configuration shopt
Objectif
Configurer son environnement shell de manière a être efficace, confortable et prédictible.
La configuration par défaut n’est pas toujours la meilleure. De plus, celle-ci évolue avec la version considérée de /bin/bash. C’est pourquoi, mieux vaux tenter de maîtriser sa configuration afin de la rendre reproductible et performante.
Sachez cependant, que la configuration SHELL reste un domaine d’expert. Les préconisations et recommandations fournies ici, doivent être adaptées à vos cas d’usages et à leur spécificités.
Configuration par défaut
La version /bin/bash utilisée est
La configuration par défaut de est
Configuration préférentielle proposée
Options qu’il est conseillé d’activer
Les options à activer sont positionnées par la commande shopt -s option-name.
option shopt | objet | raisons |
---|---|---|
cdspell | correction frappe en mode interactif | corrige automatiquement les erreurs de frappe sur la command cd |
dirspell | correction frappe en mode interactif | corrige automatiquement les petites erreurs de frappes sur les noms de répertoires |
direxpand | expansion des répertoires | autorise la saisie interactive des noms de répertoire |
checkjobs | gestion des jobs | informe moi des jobs et de leur status avant de terminer le shell |
checkwinsize | gestion du fenêtrage | retaille automatiquement les fenêtres |
cmdhist | gestion de l'historique | sauve les entrées multiligne en une seule entrée dans l'historique des commandes |
expand_alias | gestion de alias | active l'expansion dans la gestion des alias |
extglob | gestion de la completion des noms de fichiers | active la gestion de la completion |
extquote | gestion des substitutions de variables | active la substitution dans les variables |
histappend | gestion de l'historique | ajoute au même fichier |
histreedit | gestion de l'historique | permet la modification des commandes erronées de l'historique avant leur réutilisation |
histverify | gestion de l'historique | permet la modification des commandes de l'historique avant leur réutilisation |
hostcomplete | gestion de la complétion sur les noms de hosts | active la complétion des hostnames |
interactive_comments | gestion des commentaires en shell interactif | active la possibilité de gérer des commentaires interactivement. Très utile pour créer des procédures et avoir des suggestions |
prompt_vars | gestion des variables dans le prompt | je préfère que le shell expande les variables et les calculs dans le prompt |
shift_verbose | gestion des erreurs sur le nomrbe d'arguments | informe moi des erreurs si j'excède le nombre réel d'arguments |
source_path | recherche fichier à sourcer | recherche le fichier à sourcer dans la variable PATH |
Options laissées à votre libre arbitre
Votre choix d’activation ou de désactivation est libre. Comprenez cependant les implications de vos choix.
option shopt | objet | raisons |
---|---|---|
checkhash | hash table de recherche des commandes | peut augmenter la performance de votre shell |
dotglob | gestion de la completion des noms de fichiers | considérer les fichiers cachés ou non? |
execfail | gestion des erreurs d'exécution | sortie forcée ou conditionnée? |
extdebug | gestion du debug | à vous de voir, domaine complexe |
fail_glob | gestion de la completion des noms de fichiers | génération erreur explicite si aucun matching |
force_fignore | gestion de la completion des noms de fichiers | liste des extensions à ignorer |
globstar | gestion de la completion des noms de fichiers | activation de la gestion étendue ou non |
gnu_errfmt | formattage des messages d'erreur | format GNU ou non |
huponexist | gestion de signaux sur sortie shell | envoi du signal SIGHUP à tous les processus actifs du shell interactif |
lithist | gestion de l'historique | choix du terminateur de commande, newline ou point virgule, pour les commandes multi-lignes dans l'historique |
mailwarn | gestion du courriel | information sur arrivée de courriel |
no_empty_cmd_completion | gestion des erreurs | autoriser ou non la complétion vide? |
progcomp | usage des facilités de programmation | à vous de choisir la manière dont le shell interprète vos commandes |
nullglob | extension des patterns de recherche de fichiers | à vous de choisir, la gestion de chaîne nulle ou égale à un pattern |
lastpipe | extension des pipes | préférablement off cependant |
Options qu’il est conseillé de désactiver
Les options à désactiver sont positionnées par la commande shopt -u option-name.
option shopt | objet | raisons |
---|---|---|
autocd | gestion changement de répertoire | le changement de répertoire requière explicitement l'usage de la commande cd |
cdable_vars | gestion changement de répertoire | le changement de répertoire en usage de variable SHELL expose explicitement l'usage de la variable par la syntaxe $ |
compat* | gestion des modes de compatibilités inter version /bin/bash | je préfère le comportement standard du shell dans sa version |
nocaseglob | gestion de la casse dans le matching | conserver le matching ne confondant pas majuscules et minuscules |
nocasematch | gestion de la casse dans le matching | conserver le matching ne confondant pas majuscules et minuscules |