Commandes manquantes de l’historique du terminal OS X

Je sais que je suis entré dans une commande l’autre jour, mais maintenant je ne peux pas le trouver en utilisant l’ history ou .bash_history. Des idées pourquoi cela se produit? Je soupçonne que cela a à voir avec l’utilisation de plusieurs tabs dans mon terminal OS X, et d’une manière ou d’une autre, l’historique ne se répète pas entre les tabs, mais je ne le sais pas.

A partir de OS X El Capitan 10.11, Bash est configuré par défaut pour enregistrer des historiques de commandes distincts pour chaque terminal, afin de pouvoir les restaurer séparément pour Resume.

Chaque historique individuel est également ajouté à l’historique global dans ~ / .bash_history à la sortie du shell. Si vous quittez Terminal et que vous le rouvrez, avec ou sans Resume activé, vous devriez constater que les commandes de chaque terminal sont dans ~ / .bash_history. Si l’option Reprendre est activée, chaque terminal restauré contiendra uniquement son historique restauré, mais lorsque vous créerez un nouveau terminal, il démarrera avec le dernier historique global.

Comme tous les historiques de commandes sont ajoutés au fichier global ~ / .bash_history, vous souhaiterez peut-être augmenter le nombre de commandes stockées en définissant la variable d’environnement HISTFILESIZE afin que les derniers historiques de terminaux ne HISTFILESIZE pas non plus bientôt. La valeur par défaut est 500. Le mien est défini sur 10 000. Je mets également HISTSIZE à 10 000 afin que je puisse naviguer dans l’historique complet (sinon, seules les 500 dernières seront lues dans le fichier historique).

Le script qui organise des historiques de commandes distincts se trouve dans /etc/bashrc_Apple_Terminal dans OS X El Capitan 10.11 et versions ultérieures. Il contient des commentaires détaillés décrivant le fonctionnement du mécanisme et comment le personnaliser ou le désactiver.

J’ai eu ce problème avec mon terminal. Il s’avère qu’il sauvegardait les fichiers nouvellement générés dans le dossier ~/.bash_sessions . Cela fait partie d’une nouvelle méthode de gestion des sessions bash introduite avec El Capitan décrite dans le fichier /etc/bashrc_Apple_Terminal . Ceci est confirmé par l’extérieur de echo $HISTFILE . Pour désactiver ce comportement, exécutez simplement touch ~/.bash_sessions_disable . Quittez ensuite l’application Terminal et redémarrez-la. Il devrait maintenant enregistrer l’historique correctement, comme cela peut être confirmé à nouveau via echo $HISTFILE . J’espère que ça aide!

cela m’arrive tout le temps. J’ouvre plusieurs fenêtres de commande et l’historique est enregistré dans l’ordre où elles sont fermées. Les commandes que vous recherchez peuvent avoir été écrasées par une autre fenêtre de commande.