web-dev-qa-db-fra.com

Terminal * Sortie * Historique?

Je fais une utilisation intensive des fonctions pour naviguer dans l'historique de la commande de mon terminal; Je me demande s'il y a un moyen de naviguer aussi bien l'historique de la sortie de commande? (En plus de garder un grand hâlant et appuyé sur la touche PGUP)

Je ne peux pas simplement "remettre la commande", comme dans ma situation particulière, la source des commandes change; J'ai fréquemment besoin de regarder en arrière à la sortie d'un changement précédent.

HACKS Bienvenue.

Merci!

EDIT 2010:

J'ai donné le "tee" le crédit; Parmi toutes les méthodes pour enregistrer votre session ailleurs, c'est le plus largement applicable (c'est-à-dire que cela fait partie de GNU Coreutils et ne nécessite pas de coquille ou d'utilité spécifique à travailler). Ce n'était pas vraiment ce que je cherchais, mais je réalise qu'une telle chose n'existe pas vraiment.

L'approximation la plus proche que je puisse penser est d'utiliser quelque chose comme screen (BYOBU/TMUX) qui se connecte à fichier et écrire (et keybind) une commande personnalisée sur la page/la recherche via ce logfile (penser less Paging par Invite plutôt que sur l'écran). Merci tout le monde.

EDIT 2012:

La réponse de Dustin Kirkland est clairement meilleure, du moins généralement; Le tampon de défilement du terminal est un moyen moins intrusif pour naviguer sur l'historique de la sortie de commande. BYOBU semble avoir un grand nombre de lignes d'historique sauvegardé (10k; tmux a 2k, GNU écran 100) et permet des recherches de regex (un look casseur indique que GNU L'écran n'a pas de recherche de défilement et TMUX n'a ​​que la recherche en clair).

21
mikewaters

Vous pouvez utiliser tee Pour envoyer votre sortie de commande dans un fichier et sur le terminal en même temps.

11
Carl Norum

Vous pouvez utiliser script pour enregistrer votre session de terminal dans un fichier. Si vous voulez toujours que cela se produise, ajoutez une commande script appropriée à votre .login.

$ man script

8
Paul R

screen peut être réglé sur la sortie du journal.

Une façon de commencer, dans une session screen, est d'appuyer sur Ctrl-a, ensuite :, puis entrez log.

De man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

bash garde l'histoire de ce que vous avez fait, mais pas la sortie des commandes. Cela pourrait potentiellement être énorme et souvent n'est pas utile.

3
Jay