web-dev-qa-db-fra.com

L'historique des commandes semble manquer les 75 premières lignes

Il y a quelques années, j'ai mis à jour la distribution automatique du 14.04 au 16.04. Pour la première fois de ma vie, j'ai pu continuer à utiliser l'ordinateur après la mise à jour automatique de la distribution. Comme d'habitude, les référentiels de logiciels sont tous immenses, donc les mises à jour du système ne fonctionnent pas correctement, mais je me suis habitué.

Je vais faire une installation propre de 18.04, cependant. Afin de pouvoir configurer mon système plus facilement après l'installation, j'ai exporté l'historique de mes commandes dans un fichier texte.

$ history > /.../20180915_Command_history.txt

Magnifiquement, le fichier texte résultant contient des numéros de ligne. Un peu mystérieusement, le numéro de première ligne est 76. Après avoir examiné les premières lignes, il semble qu'il y ait probablement eu des commandes précédentes.

  1. Les numéros de ligne commencent-ils à 76 pour une raison quelconque?
  2. Sinon, y a-t-il un moyen de voir les lignes 1 à 75?
5
el_gallo_azul

Tout d'abord, si vous avez besoin d'une sauvegarde de votre historique de ligne de commande, copiez simplement ce fichier:

~/.bash_history

N'oubliez pas que vous devez fermer tous vos terminaux ou exécuter history -a pour ajouter toutes les commandes de ces sessions d'historique au fichier d'historique.


Sinon, y a-t-il un moyen de voir les lignes 1 à 75?

Toutes les commandes enregistrées dans votre historique sont disponibles dans le fichier ~/.bash_history. Pour les voir toutes ouvrir un terminal et exécuter:

cat ~/.bash_history

Pour obtenir une sortie similaire à la commande historyavec numérotation exécutée:

cat -n ~/.bash_history

Les numéros de ligne commencent-ils à 76 pour une raison quelconque?

Exécutez cette commande:

grep "^HIST" .bashrc

Vous devez obtenir une sortie similaire à:

HISTSIZE=1000
HISTFILESIZE=2000

Comme je l'ai déjà dit, ~/.bash_history conserve l'historique de la ligne de commande.

  • Le HISTFILESIZEindique le nombre de commandes que ~/.bash_history doit suivre, car le mien est 2000.

  • Et HISTSIZEest le nombre de commandes dont la commande history(en fait, le shell intégré) fait le suivi.

Lorsque vous ouvrez un terminal et exécutez historyname__, il sélectionne le dernier HISTSIZEnombre de commandes de ~/.bash_history et vous le montre.

Si vous exécutez de nouvelles commandes, les plus anciennes de la session seront supprimées et les nouvelles ajoutées à la fin de la liste pour que le nombre de commandes corresponde à HISTSIZEname__.

J'imagine qu'en posant la question, vous aviez 74 plus de commandes que HISTSIZEdans votre .bash_history et c'est la raison pour laquelle elle commence à 75.


De man bash:

  • HISTSIZEname__

    Le nombre de commandes à retenir dans l'historique des commandes.

  • HISTFILESIZEname__

    Le nombre maximum de lignes contenues dans le fichier d'historique.

12
Ravexina