Pour avoir un peu d'intimité avec l'historique Bash

Originally published at: https://korben.info/dintimite-lhistorique-bash.html

Avoir un peu d’intimité pour faire ses propres expériences c’est toujours bien. C’est pourquoi il peut être utile de mieux comprendre comment fonctionne le fichier d’historique bash sous Linux et savoir y effacer les machins un peu honteux, voire les lignes de commandes entrées par erreur avec des mots de passe en clair (bouuuuh, c’est…

1 J'aime

Et si on ne veut pas qu’une commande soit dans l’historique, un petit coup sur la barre espace avant de rentrer sa commande

2 J'aimes

J’allais le dire, tu as été plus rapide :wink:

sur quel système ça fonctionne la coup de la barre d’espace ?
je viens d’essayer sur
CentOS 5,6,7
Debian lenny, jessie
macOS X
sans succès

voilà le bince que j’ai mis dans mon profil

export HISTTIMEFORMAT="%F %T - "

config

shopt -s histverify

helper

function h(){
history | grep --color – “${@}”
}

avoid duplicates…

export HISTCONTROL=ignoredups:erasedups

append history entries…

shopt -s histappend

function change_prompt_2() {
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$’\n’}history -a; history -c; history -r"
PS1=’[\e[1;48;5;31m] \u [\e[48;5;240m] \W [\e[0m] '
}

change_prompt_2

J’aime bien avoir plusieurs session (avec le même compte) et que ce ne soit pas la dernière qui se termine et qui écrase tout, donc a chaque commande je sauve et recharge l’historique, ainsi d’une session a l’autre je peux réutiliser les commandes précédentes

De toute façon je trouve cette fonction cassé ça ne correspond pas a la réalité sauf du temps ou on ouvrait une seule session en console point barre

J’aimerai pouvoir enregistrer l’historique et le ressortir par session, login utilisateur ou par date sans aucun écrasement possible

Le coup de l’espace ça marche si :
HISTCONTROL=ignorespace

La plupart du temps l’historique est sauvegardé dans le fichier .bash_history a la fin de la session bash, donc pour killer sa session sans enregistrer l’historique :
kill -9 $$

Normalement c’est l’option par défaut sur la plupart des systèmes : https://stackoverflow.com/questions/6475524/how-to-prevent-commands-to-show-up-in-bash-history/29188490#29188490

Il y a un foule d’options et raccourcis autour du “history”, je n’arrive pas à retrouver un post de blog qui était très impressionnant, mais voici un petit aperçu de ce qui est possible : https://www.thegeekstuff.com/2011/08/bash-history-expansion/

Désactiver l’historique du shell courant

HISTFILE=/dev/null