Ma screen
session actuelle comporte 12 fenêtres ouvertes. Cela fonctionne depuis des semaines ... Je sais que j'ai exécuté une convert
commande ImageMagick dans l' une de ces 12 fenêtres d'écran la semaine dernière ... Existe-t-il un moyen de rechercher facilement dans l'historique Bash des 12 instances, sans les fermer ni exécuter history | grep convert
dans les 12 écrans?
11
setopt share_history
en/etc/zsh/zshrc
si ce problème ne devrait jamais arriver à moi: PRéponses:
Vous pouvez exécuter
history -a; history -c
dans toutes les fenêtres pour enregistrer l'historique. Et puishistory -r
pour le rafraîchir.Pour le résoudre de manière plus permanente, ajoutez ceci à votre
.bashrc
:la source
Cela semble difficile. Voici quelques méthodes qui peuvent vous convenir.
Si vous avez installé des outils de comptabilité des processus (sous Linux, recherchez un package appelé
acct
) et l'autorisation de les utiliser, vous pouvez savoir quand et éventuellement sur quel terminal vous avez exécutéconvert
:Si cela n'est pas disponible ou n'est pas concluant, vous pouvez exécuter une
history
commande dans chaque instance de bash pour rechercher desconvert
commandes. Cela trouvera également les commandes qui se trouvaient dans le fichier historique au démarrage de bash.$(seq 0 11)
itère sur les numéros de vos fenêtres d'écran. Assurez-vous d'ignorer les fenêtres qui n'exécutent pas actuellement bash mais un autre processus qui interpréterait l'entrée différemment.screen -p $w stuff …
envoie la chaîne suivante en entrée à la fenêtre spécifiée. Vous avez besoin de la nouvelle ligne à la fin de la chaîne./tmp/convert.history
contiendra une liste de lignes comme3 convert foo.jpg
, si vous avez exécutéconvert foo.jpg
dans la fenêtre 3.la source
history | grep convert
dans toutes les fenêtres. Je suis déçu, je voulais accepter une autre excellente réponse de Gilles!tcsh vous permet de partager l'historique entre les sessions grâce à l'utilisation de l'alias périodique.
Dans votre fichier .cshrc (ou .tcshrc):
Cela exécutera automatiquement la commande d'historique toutes les 60 minutes. Cela permettra d'enregistrer l'historique dans un fichier d'historique commun dans votre répertoire personnel. Pour mettre à jour l'historique plus souvent, réduisez le nombre de périodes ou exécutez simplement la commande "périodique" pour actualiser manuellement
la source
Bash n'écrit l'historique qu'à sa sortie, ce qui rend au mieux cette problématique. J'ai entendu dire que zsh peut partager l'historique entre les sessions actives.
la source