Existe-t-il un moyen de vérifier uniquement l'historique de la session en cours?

10

Je voulais savoir s'il existe une commande ou toute autre manière dont je peux vérifier l'historique de mes commandes uniquement dans la session en cours.

Andrew
la source

Réponses:

12

La fonction historyintégrée bashpermet de spécifier les noms de fichiers lorsqu'ils sont utilisés avec des -anrwindicateurs, et la -adescription des indicateurs à partir des help historyétats:

ajouter des lignes d'historique de cette session au fichier historique

Par conséquent, nous pouvons faire:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Pour mémoire, -w(l'historique d'écriture dans le fichier d'opion) écrit tout l' historique dans le fichier spécifié, donc -a(ajouter) ici est le choix préféré.


Il existe d'autres moyens manuels. En particulier, kshn'a pas de -adrapeau bash, mais ce qui est ksh et mkshest HISTFILEune variable d'environnement (et l' basha aussi, car il bashinclut de nombreuses kshfonctionnalités); par ailleurs, cette variable par défaut n'est pas définie (au moins mkshsur Ubuntu ne l'a pas définie). Ainsi, pour sortir la session en cours dans un autre fichier, nous appelons la HISTFILEcommande prepended to qui, dans la syntaxe du shell, signifie exécuter la commande avec la variable d'environnement supplémentaire que vous spécifiez. Ainsi:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

Ce que vous pouvez également voir à partir de cela, c'est que kshet ses shells associés affichent l'historique avec des caractères spéciaux, au lieu de texte brut comme ce qui se bashpasse. Donc, vous voudrez peut-être ouvrir ce fichier avec ksh.

En ce qui concerne le shell POSIX /bin/shsur Ubuntu , qui est Debian Almquist Shell ou Dash, il existe un système fcintégré . Cependant, sur Ubuntu , le tableau de bord est compilé sans lib-edit , ce qui est un choix délibéré des développeurs Ubuntu pour des raisons de performances, fcet les autres modes qui nécessitent une modification de ligne ne fonctionnent pas dès le départ (sauf recompilation dashet installation lib-edit).


Les méthodes neutres du shell seraient d' enregistrer votre session avec les outils existants ou d' écrire votre propre fonction pour enregistrer par commande.

Sergiy Kolodyazhnyy
la source