Comment partager l'historique entre les onglets du terminal?

23

Je me retrouve généralement à utiliser deux ou trois onglets dans mon Terminal sous OS X.

Un inconvénient mineur est que, par défaut, les onglets ne partagent pas leur historique de commandes. Ainsi, la recherche d'une commande précédente que j'ai exécutée sur un autre onglet en tapant history | grep thingIamlooking forne la trouve pas.

Existe-t-il un moyen de forcer les onglets Terminal à partager l'historique, ou existe-t-il une autre commande " history_of_all_tabs "?

Joe
la source

Réponses:

29

Je ne pense pas qu'il existe un moyen de partager l'historique entre les onglets du terminal uniquement, mais voici quelque chose qui pourrait vous aider.

L'historique n'est pas quelque chose qui est géré par votre terminal mais par votre shell (bash, tcsh, zsh, etc.)

Voici quelques options qui vous aideront à configurer un historique partagé entre toutes les fenêtres de terminal (les instances de shell).

Cela devrait être placé quelque part dans votre .bashrcfichier.

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Lifely
la source
1
+.5 pour une bonne réponse, +.5 pour une bonne grammaire;)
Matt
La solution de @ Lifely ne fonctionne pas pour moi à El Capitan. Du tout. Même la longueur maximale du fichier historique. Existe-t-il une nouvelle solution depuis 2012? (J'aurais commenté ci-dessus, mais je n'ai pas le représentant)
JP Duffy
1
Cela fonctionne pour moi (ajouté dans .bash_profile) dans El Capitan avec l'ajout d'export SHELL_SESSION_HISTORY = 0 dans mon .bash_profile et en cours d'exécution: touchez ~ / .bash_sessions_disable
Andy
fonctionne très bien sur Ubuntu 18.04 pour bash
anon58192932