Il y a beaucoup de questions liées à celle-ci, mais elles commencent toutes par l'hypothèse (à droite) que la sortie n'est pas enregistrée.
Ma question est donc: où?
Nulle part: la sortie de Bash (et de tout autre shell que je connaisse) n'est pas enregistrée.
Étant donné que la sortie est affichée à l'écran, elle doit de toute façon être stockée quelque part.
C'est, mais probablement pas en texte brut et même pas sur le disque (bien que cela dépend vraiment de l'émulateur de terminal): très probablement, et au moins dans la plupart des cas, dans un segment de mémoire alloué par l'émulateur de terminal.
Cependant, pour sûr, il n'est pas enregistré dans un fichier, du moins pas par le shell, et je ne connais pas d'émulateurs de terminaux qui enregistrent la sortie dans un fichier par défaut.
En effet, cela ne signifie pas qu'il est impossible de consigner la sortie du terminal: je mentionnerai d'abord quelque chose que je pense que peu de gens connaissent, car je n'ai jamais vu personne le mentionner au moins ici sur Ask Ubuntu: Konsole permet de sauvegarder le faire défiler vers un fichier (il existe peut-être d'autres émulateurs de terminaux qui offrent une telle fonctionnalité, Konsole est juste le seul que je connaisse), bien que cela soit limité par la limite de taille de défilement de Konsole.
Cependant, cela n'est souvent pas vraiment utile, et vous voudrez probablement rechercher des solutions "appropriées" pour enregistrer la sortie d'une session entière dans un fichier ( comment puis-je enregistrer toutes les entrées et sorties dans une session de terminal? Et la réponse de Ron ).
Cela n'a rien à voir avec votre shell (
bash
), ce n'est pas une fonction de l'émulateur de terminal que vous utilisez. Il est stocké dans le "tampon de défilement" de votre terminal. Je n'ai pas pu trouver d'explications claires sur l'endroit exact où ces informations sont stockées, mais mon expérience personnelle m'a montré qu'elles sont stockées quelque part/tmp
.Comme le suggère la réponse à la question liée ci-dessus, il est très probablement stocké dans un fichier sans nom. Pour voir ce que je veux dire, ouvrez un nouveau fichier avec un éditeur de texte:
Écrivez une ligne de texte dans le fichier et enregistrez-le. Maintenant, alors que ce fichier est toujours ouvert, ouvrez un terminal et supprimez-le:
Étant donné que le fichier est toujours ouvert
gedit
, vous pouvez continuer à y écrire. Vous pouvez même y écrire plusieurs gigaoctets de données, malgré le fait que le fichier a été supprimé. En effet, la suppression d'un fichier supprime simplement le lien pointant vers son inode . Si son descripteur de fichier est maintenu ouvert par un autre programme, des données peuvent y être écrites, malgré le fait qu'il n'y a plus de lien (fichier) correspondant au descripteur de fichier sur le système de fichiers.Tout cela pour dire que l'historique de votre terminal est probablement enregistré à l'aide d'une astuce comme celle-ci, quelque part dans un fichier supprimé dans
/tmp
. Ce que vous voulez probablement, c'est simplement augmenter la taille du tampon de défilement de votre émulateur de terminal afin que vous puissiez simplement faire défiler vers le haut et le voir. Les détails sur la façon de procéder dépendent de l'émulateur de terminal que vous utilisez. La plupart ont un commutateur de ligne de commande qui vous permet de le faire et beaucoup ont également une manière graphique de le configurer. Par exemple, dansgnome-terminal
(la valeur par défaut sur Ubuntu), c'est Édition -> Préférences -> Profils --- cliquez sur votre profil -> Édition -> Défilement -> Limiter le retour à NNN:la source
script
comme décrit dans la réponse acceptée.La session du terminal est stockée dans un
.bash_history
fichier. Entrez ceci dans votre terminalecho $HISTFILE
, cela vous donnera le chemin du.bash_history
fichier.la source