Pipe todo input y salida de terminal a file

No sé si esto es posible o no, pero en un bash de hacer un seguimiento de los muchos cambios que voy a hacer en mi sistema, quiero rastrear todas las inputs que escribo y todas las salidas de un terminal con el que estoy trabajando. un file. He estado tratando de hacer esto y esto es lo que tengo hasta ahora:

bash > /tmp/output.txt

Esto tiene casi un éxito. Probé esto con algo simple: sudo apt-get update && sudo apt-get upgrade que descargó el resultado normal al file, pero no lo que escribí.

Además, me gustaría poder ver el resultado y transmitirlo a mi file de salida, solo para facilitar la lectura. (Esto se puede solucionar con un segundo terminal ejecutando tail -f , pero sería bueno tenerlo en un solo lugar).

Usa el command Script

Probablemente desee el command / usr / bin / script . Crea un text typescript de su session de terminal actual. No funcionará muy bien con las aplicaciones basadas en curses, pero funciona muy bien para crear un text typescript.

Por ejemplo:

 script ~/terminal_session.txt echo foo echo bar > /dev/stderr exit 

enviará todo lo que ve en la pantalla al file de text nombrado.

Para una grabación precisa de una session de text, incluido el time, sin estropear las aplicaciones de pantalla completa, puede usar ttyrec .

Para aplicaciones interactivas donde se desplaza el text, puede usar el command de script .

Está buscando script :

 DESCRIPTION script makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1). If the argument file is given, script saves all dialogue in file. If no file name is given, the typescript is saved in the file typescript. 

Esto debe instalarse de forma pnetworkingeterminada en la mayoría de los sistemas Linux ya que es parte del package util-linux . Para usarlo, simplemente comienza tu caparazón de esta manera:

 script session.log 

Ahora, siga con su negocio como de costumbre, debería ser completamente transparente para usted. Cuando hayas terminado, presiona Ctrl + D o ejecuta exit . Eso saveá todo lo que hizo en session.log .

No creo que puedas hacer exactamente lo que estás pidiendo.

Sin embargo, si desea un logging de lo que ha hecho, el command de script es probablemente lo que desea. Registra todas las inputs ingresadas y todos los resultados en un file. Es un file de text, generalmente llamado "typescript". Lo encontrará en el directory en el que inició el script .

script es parte del package util-linux en Arch Linux.