Sous Linux, chaque commande que vous tapez est enregistrée dans le fichier d’historique. La commande historique vous permet de visualiser et de réutiliser ces commandes sans avoir à les retaper. Vous pouvez naviguer dans la liste de l’historique à l’aide de la commande Haut et En bas . Cependant, il peut arriver que vous souhaitiez supprimer certaines commandes de l’historique ou désactiver définitivement la fonction de sauvegarde de l’historique.
Heureusement, Linux vous permet de contrôler les fonctions d’enregistrement des commandes, telles que la désactivation temporaire ou permanente, la suppression de l’ensemble de l’historique ou l’empêchement de certaines commandes d’être enregistrées dans la liste de l’historique. Voyons comment procéder.
Supprimer tout l’historique des commandes sous Linux
Pour effacer tout l’historique des commandes sous Linux depuis le début, utilisez la commande history avec l’option -c option :
history -c
Cette option efface tout l’historique des commandes que vous avez précédemment exécutées.
Effacer des commandes spécifiques de l’historique
Parfois, au lieu de supprimer l’ensemble de l’historique, vous pouvez vouloir supprimer des commandes spécifiques. Dans ce cas, vous devez déterminer le numéro associé à cette commande particulière dans la liste de l’historique. Vous pouvez le faire en tapant simplement :
history
Vous pouvez également diriger la sortie de l’historique vers grep afin de trouver plus facilement les informations souhaitées :
history | grep ifconfig
Une fois que vous avez trouvé le numéro de la commande, vous pouvez la supprimer en utilisant la commande history avec l’option -d suivie du numéro de la commande :
history -d <command_number>
Exécuter une commande sans l’inclure dans l’historique
Pour exécuter une commande sans qu’elle soit enregistrée dans l’historique, il suffit d’ajouter un élément Espace avant la commande. Cependant, pour que cette fonctionnalité fonctionne, vous devez définir le paramètre HISTCONTROL variable d’environnement pour ignorespace à l’aide de la commande suivante :
export HISTCONTROL=ignorespace
Cette modification ne persiste pas après un redémarrage. Pour la rendre permanente, ajoutez-la à votre .bashrc à l’aide de la commande suivante :
echo 'HISTCONTROL=ignorespace' >> ~/.bashrc
En activant cette fonctionnalité, Bash n’enregistrera pas les commandes commençant par un espace dans le fichier historique.
Par exemple, la commande suivante ne sera pas enregistrée par le shell :
[space] echo 'hello, this is the first line'
Si vous exécutez la même commande sans espace, Bash l’enregistrera dans l’historique :
echo 'hello, this is the first line'
De même, vous pouvez laisser Bash supprimer les commandes consécutives dupliquées de l’historique avec :
echo 'HISTCONTROL=ignoredups' >> ~/.bashrc
Cette fonction permet de ne stocker les doublons consécutifs qu’une seule fois dans la liste de l’historique.
Comment activer/désactiver l’historique des commandes sous Linux
Bien que la méthode précédente permette d’empêcher l’interpréteur de commandes d’enregistrer les commandes dans l’historique, elle peut s’avérer peu pratique lorsqu’il s’agit d’un grand nombre de commandes.
Insérer un espace avant chaque commande peut devenir monotone et fastidieux. Dans ce cas, vous pouvez désactiver temporairement l’historique de l’interpréteur de commandes en exécutant la commande suivante :
set +o history
Pour le réactiver, utilisez la commande suivante :
set -o history
Pour désactiver définitivement l’historique des commandes Linux, utilisez la commande suivante :
echo 'set +o history' >> ~/.bashrc
Ignorer l’enregistrement de certaines commandes dans l’historique
Il se peut que vous souhaitiez exclure certaines commandes qui encombrent la liste de l’historique et la rendent difficile à parcourir. Parmi les exemples les plus courants, citons pwd, ls, man, cat et la commande cd, qui peut être répétitive et superflue.
Utilisation de la commande HISTIGNORE vous pouvez contrôler quelles commandes ne doivent pas être ajoutées à la liste d’historique. Par exemple, pour exclure certaines commandes telles que history, pwd et cat de l’enregistrement dans la liste d’historique, séparez-les à l’aide de deux points et placez-les entre guillemets doubles comme suit :
export HISTIGNORE="history:pwd:cat"
Pour rendre la modification permanente, ajoutez la commande à la liste d’historique. .bashrc fichier utilisant :
echo 'HISTIGNORE="history:pwd:cat"' >> .bashrc
Contrôler l’historique des commandes Bash sous Linux
Linux offre un contrôle étendu sur la gestion de l’historique de la ligne de commande, permettant aux utilisateurs de spécifier les commandes à sauvegarder dans l’historique, de supprimer des commandes spécifiques de l’historique, d’activer ou de désactiver temporairement l’historique ou même de supprimer tout l’historique.
Cela permet non seulement de protéger la vie privée de l’utilisateur, mais aussi d’éviter que des commandes non pertinentes ou répétitives n’encombrent l’historique de Bash.
Un moyen encore plus efficace d’accéder à l’historique de la ligne de commande est d’utiliser McFly, un remplacement de la recherche inversée par défaut sous Linux, alimenté par un réseau neuronal.