Comment avoir un historique de commands séparé pour différentes sessions pour le même user?

Je suis confronté à ce problème sur certains servers Unix. Lorsque j'ouvre une session différente pour le même user, l'historique des commands est partagé par toute la session. Cela crée des problèmes si par erreur, j'appuie sur Ctrl-P ou up arrow et appuyez simplement sur Entrée. À une occasion, je rm -rf * par exécuter rm -rf * heureusement j'étais dans le directory où je n'ai pas les permissions pour supprimer des files.

Comment avoir un historique de commands séparé pour différentes sessions pour le même user? La plupart du time j'utilise des shells ksh et tcsh.

Depuis le ksh faq :

Q1. Comment get des files d'historique distincts pour le shell?

A1. ksh utilise un file d'historique partagé pour tous les shells qui utilisent le même nom de file d'historique. Cela signifie que les commands inputs dans une window seront vues par des shells dans d'autres windows. Pour get des windows séparées, la variable HISTFILE doit avoir le nom différent avant la création de la première command d'historique.

Vous pouvez append HISTFILE=~/.hist$$ à votre HISTFILE=~/.hist$$ . Cela devrait générer un file unique par session.

Vous allez vous refind avec un grand nombre de .hist* donc je vous suggère de les retirer de time en time.

Je suppose que vous parlez de sessions simultanées; séparer les sessions qui se suivent n'est pas très utile: vous ne pourrez plus jamais utiliser son historique car toutes les sessions seraient uniques. Si tel était le cas, vous seriez probablement mieux de simplement désactiver l'historique des commands.

Si nous parlons de séparer session simultanée, je vous recommand d'utiliser Bash. Je suis sûr que je ne reçois pas l'historique des commands de deux sessions simultanées mélangées. Bash écrit uniquement l'historique dans .bash_history à la déconnection, donc l'historique des commands ne sera pas mélangé avant la déconnection. À condition que l'utilisation de Bash soit acceptable, cela résoudrait-il votre problème?

Je vais append quelque chose à la réponse de Gert.

Gert's

Vous pouvez append HISTFILE = ~ / .hist $$ à votre file .profile. Cela devrait générer un file unique par session.

Mien

Vous pouvez supprimer ces files automatiquement en ajoutant ce qui suit.

trap 'rm ${HISTFILE}' exit

Vous pourriez utiliser l' écran . J'ai également fait une variable qui a été définie par mon profil konsole et a donné à chacune des sessions un file d'histoire différent , seulement des façons dont je peux penser.