Me gusta usar herramientas como history
, script
y asciinema
grabar y revisar sesiones xterm (es decir, bash
/ sh
) por razones típicas de administración general y también, a veces, para un estudio/revisión integral; como herramienta de aprendizaje.
Pensé en establecer el valor predeterminado
$SHELL
como una ruta directa a dichas herramientas y/o comandos, como:/bin/script transcript.log;
/bin/asciinema rec -w0.5 term_log.json;
Pero estas herramientas normalmente dependen de tener un
$SHELL
conjunto predeterminado (es decir/bin/bash
,/bin/sh
,/bin/zsh
, etc.).Además, siento que redefinir las variables del sistema (es decir
$SHELL
,$TERM
, etc.) o tratar de hacerlo funcionar con archivos de configuración (*.conf
) y punto (~/.bashrc
/~/.bash_profile
) estará plagado de todo tipo de agujeros y problemas potenciales.Sin embargo, cada vez que decido o me doy cuenta de que quiero una transcripción de una sesión, es después del hecho, o ya estaré a la mitad de la parte interesante, o algún escenario similar.
¿Cuál es la práctica correcta o recomendada para configurar algo como esto para simplemente registrar todo (preferiblemente stdin
, stdout
(y stderr
cuando corresponda), etc.) automáticamente?
Respuesta1
Algo como esto en tu .bash_profile
o .bashrc
podría funcionar para ti:
if test -t 0 -a -t 1 -a -z "$SCRIPTING"
then
export SCRIPTING="$HOME/.script.$(date +%Y%m%d_%H%M%S).$$)"
exec script "$SCRIPTING"
fi