1. Ignorer certaines commandes dans l’historique
echo 'HISTIGNORE="&:[ ]*:[ls]:*:exit:pwd:clear:history"' >> ~/.bashrc
Amélioration :
- Utilise ~/.bashrc au lieu de ~/.profile (plus adapté pour les variables Bash interactives).
- Ajoute [ ]* pour ignorer aussi les commandes commençant par des espaces (redondant avec ignorespace, mais explicite).
- Guillemets simples pour éviter les problèmes d’échappement.
- Le signe « & » permet d’éviter d’enregistrer deux commandes successives identiques.
Résultat : ne sauvegarde jamais ls, ps aux, exit, pwd, clear, history, ni les doublons consécutifs (&).
2. Ignorer les commandes commençant par espace + supprimer tous les doublons
echo 'HISTCONTROL=ignorespace:ignoredups:erasedups' >> ~/.bashrc
Explication et amélioration :
- ignorespace : commande précédée d’un espace ne sera pas enregistrée.
- ignoredups : ignore les doublons consécutifs.
- erasedups : supprime tous les doublons dans l’historique (même non consécutifs) pour un historique ultra-propre.
Les trois combinés sont parfaits pour un historique clair et confidentiel.
3. Afficher la date et l’heure avec history:
echo 'HISTTIMEFORMAT="[%a %d %b %Y %T] "' >> ~/.bashrc
1001 [mar 16 déc 2025 14:32:10] ls -la
1002 [mar 16 déc 2025 14:35:22] sudo apt update
Très lisible : jour de la semaine, date, mois, année, heure complète.
4. Augmenter fortement la taille de l’historique:
echo 'HISTSIZE=100000' >> ~/.bashrc echo 'HISTFILESIZE=100000' >> ~/.bashrc
Recommandation raisonnable :
- 500 000 est énorme (fichier ~/.bash_history de plusieurs Mo).
- 100 000 est déjà excellent pour un usage intensif (plusieurs années de commandes).
- Si tu veux vraiment tout garder : 500000 reste acceptable sur un disque moderne.
Bonus très utile, forcer la synchronisation immédiate de l’historique (pour ne rien perdre en cas de crash ou plusieurs sessions) :
echo 'shopt -s histappend' >> ~/.bashrc echo 'PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"' >> ~/.bashrc
- histappend : ajoute à la fin du fichier au lieu d’écraser.
- PROMPT_COMMAND : écrit immédiatement chaque commande dans le fichier et recharge l’historique partagé entre toutes les sessions.
Ajoute ce bloc unique pour tout faire d’un coup :
vi ~/.bashrc
# Historique Bash amélioré
HISTCONTROL=ignorespace:ignoredups:erasedups
HISTIGNORE="&:[ ]*:[ls]:*:exit:pwd:clear:history"
HISTTIMEFORMAT="[%a %d %b %Y %T] "
HISTSIZE=100000
HISTFILESIZE=100000
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Appliquer immédiatement:
source ~/.bashrc