GNU/Linux >> Tutoriels Linux >  >> Linux

Histoire mutilée ?

En mode graphique, lorsqu'un utilisateur a plusieurs terminaux ouverts, comment les terminaux réécrivent-ils le fichier d'historique de cet utilisateur ? la raison pour laquelle je demande est qu'il est tout à fait possible que dans chacun des terminaux l'utilisateur finisse par exécuter différentes commandes. Alors, le fichier historique finit-il par enregistrer les commandes de tous les terminaux ou seulement du premier ouvert ? Ou existe-t-il un autre type de système utilisé pour remédier à cette situation ?

Réponse acceptée :

Cela dépend entièrement de la façon dont le shell choisit de le gérer

bash par défaut, écrasera le fichier d'historique avec l'historique local de chaque shell à sa sortie, de sorte que le dernier shell à quitter l'emporte. Le histappend l'option l'ajoutera à l'historique principal à la place (shopt -s histappend ).

zsh fait la même chose par défaut, et a quelques options pour y faire face :

  • appendhistory - L'historique de chaque shell est ajouté au fichier d'historique principal à la sortie du shell
  • incappendhistory — Le fichier d'historique principal est mis à jour chaque fois qu'une ligne est exécutée dans n'importe quel shell, au lieu d'attendre que ce shell se termine
  • sharehistory — Comme incappendhistory , mais extrait également les modifications du fichier d'historique principal dans tous les shells en cours d'exécution, vous pouvez donc exécuter une commande dans un shell, puis appuyer sur Haut dans un autre shell et le voir

Linux
  1. Comment exécuter une commande dans Shell sans l'enregistrer dans l'historique ? [Astuces Linux]

  2. La substitution d'historique échoue lorsqu'elle est implémentée dans le script shell ?

  3. Suspendre temporairement Bash_history sur un shell donné ?

  4. Comment faire en sorte que la saisie anticipée s'applique à la recherche dans l'historique de Bash (ctrl-r) ?

  5. Commande d'historique Linux

Naviguez rapidement dans l'historique des répertoires dans Fish Shell

Activer l'horodatage pour la commande d'historique dans la coquille de poisson

Interface de commandes

Utilisation de la fonctionnalité d'historique sur Bash Shell sur le serveur Ubuntu 16.04 LTS

Qu'est-ce qu'un fichier .sh ?

Historique BASH tronqué à 500 lignes à chaque connexion