Comment pouvons-nous conserver ou maintenir la même histoire sur plusieurs terminaux?
La même question, mais pour bash shell, a été discutée dans le lien ci-dessous
Conserver l'historique de bash dans plusieurs fenêtres de terminal
laissez-moi savoir les paramètres correspondants pour le shell tcsh?
command-history
tcsh
user1228191
la source
la source
history
, voirman tcsh
. La recherchehistory -S
devrait vous faire passer à la partie la plus pertinente.Réponses:
Ces variables définissent l'historique pour qu'il se fusionne au lieu de l'écraser et ne sauvegarde pas les doublons:
la sauce secrète est cette ligne:
qui enregistrera et fusionnera votre historique avant d'imprimer l'invite - c'est-à-dire après chaque commande que vous tapez.
tout ce qui précède doit être ajouté à votre fichier .tcshrc .
la source
alias precmd 'history -S; history -M'
rien ne s'est produit lorsque j'ai écrit une commande. Y a-t-il autre chose à faire?.history
fichier (ou lahistfile
valeur de la variable shell, si définie) qui est écrit sur le disque. Sans leprecmd
jeu d'alias,ls -l .history
affichera le.history
fichier comme intact. Avecprecmd
défini comme ci-dessus,ls -l .history
affichera l'horodatage et la taille mis à jour, tels qu'ils sont écrits avec chaque commande.En plus de la réponse d'Idan , je veux ajouter que cela
alias precmd 'history -S; history -M'
peut potentiellement gâcher le fichier historique, car il enregistre également le signal SIGINT et EOF (Ctrl + C et Ctrl + D).Une meilleure façon serait de sauvegarder et de fusionner l'historique actuel du shell après avoir exécuté une commande.
Vous pouvez y parvenir à l'aide de cette configuration ci-dessous, car le tcsh ne reconnaît pas SIGINT ou EOF comme une commande valide.
la source