Terminal * salida * historial?

19

Hago un uso extensivo de las funciones para navegar a través del historial de comandos en mi terminal; Me pregunto si también hay alguna forma de navegar por el historial de salida de comandos. (además de mantener un tamaño de hists grande y apoyarse en la tecla pgup)

No puedo simplemente "volver a ejecutar el comando", ya que en mi situación particular cambia la fuente de los comandos; Con frecuencia necesito mirar hacia atrás en la salida de un cambio anterior.

Hacks de bienvenida.

¡Gracias!

Editar 2010:

Le he dado el crédito a 'tee'; entre todos los métodos para registrar su sesión en otro lugar, es el más ampliamente aplicable (es decir, es parte de gnu coreutils y no requiere un shell o utilidad específica para funcionar). Realmente no era lo que estaba buscando, pero me doy cuenta de que tal cosa realmente no existe.

La aproximación más cercana que se me ocurre es usar algo como screen(byobu / tmux) que registra en el archivo y escribir (y keybind) un comando personalizado para paginar / buscar a través de ese archivo de registro (piense en la lesspaginación por solicitud en lugar de la pantalla). Gracias a todos.

Editar 2012:

La respuesta de @Dustin Kirkland es claramente la mejor, al menos en general; el búfer de desplazamiento hacia atrás del terminal es la forma menos intrusiva de navegar por el historial de salida de comandos. Byobu parece tener un gran número predeterminado de líneas de historial guardadas (10K; tmux tiene 2K, pantalla GNU 100), y permite búsquedas de expresiones regulares (un aspecto superficial indica que la pantalla GNU no tiene búsqueda de desplazamiento hacia atrás, y tmux solo tiene búsqueda de texto sin formato).

mikewaters
fuente

Respuestas:

4

Mencionas usar byobu ...

Esa es ciertamente una forma de hacerlo. Byobu almacena 10K líneas de historial de retroceso por ventana o por división (panel).

Puede ingresar el desplazamiento hacia atrás fácilmente presionando Alt- PageUp, Alt- PageDowno F7. Una vez que esté en modo de desplazamiento hacia atrás, puede buscar hacia adelante y hacia atrás usando comandos similares a vi. Use /regexpara buscar hacia adelante y ?regexpara buscar hacia atrás.

Dustin Kirkland
fuente
¿Dónde se almacena el historial de retroceso y hay alguna forma de hacerlo persistir entre sesiones? Es decir: Abra la terminal con Byobu, ejecute algunos comandos, llame exit, cierre la terminal, abra una nueva terminal con Byobu y aún tenga la sesión anterior.
Darrel Holt
11

Puede usar teepara enviar su salida de comando a un archivo y al terminal al mismo tiempo.

Carl Norum
fuente
8

Puede usar scriptpara registrar su sesión de terminal en un archivo. Si siempre desea que esto suceda, agregue un scriptcomando adecuado a su .login.

$ man script

Paul R
fuente
5

utilizar screen -L

después de salir de la sesión de shell ( exitcomando), obtiene un archivo de registro en el mismo directorio que inicióscreen

entonces puede ver la salida con moreoless -R

wieczorek1990
fuente
5

screen se puede configurar para registrar la salida.

Una forma de iniciarlo, dentro de una screensesión en ejecución , es presionar Ctrl- a, luego :, luego ingresar 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.
Pausado hasta nuevo aviso.
fuente
@SQB: he ampliado mi respuesta.
Pausado hasta nuevo aviso.
3

bash mantiene el historial de lo que hiciste, pero no el resultado de los comandos. Potencialmente podría ser enorme y con frecuencia no es útil.

Arrendajo
fuente