Gosto de usar ferramentas como history
, script
e asciinema
para registrar e revisar sessões xterm (ou seja, bash
/ sh
) por motivos típicos de administração geral e também, às vezes, para estudo/revisão abrangente; como ferramenta de aprendizagem.
Pensei em definir o padrão
$SHELL
como um caminho direto para essas ferramentas e/ou comandos, como:/bin/script transcript.log;
/bin/asciinema rec -w0.5 term_log.json;
Mas essas ferramentas normalmente dependem de um
$SHELL
conjunto padrão (ou seja/bin/bash
,/bin/sh
,/bin/zsh
, etc.).Além disso, sinto que redefinir variáveis do sistema (por exemplo
$SHELL
,$TERM
, etc.) ou tentar fazê-lo funcionar com arquivos de configuração (*.conf
) e ponto (~/.bashrc
/~/.bash_profile
) será repleto de todos os tipos de falhas e problemas potenciais.No entanto, toda vez que decido ou percebo que quero a transcrição de uma sessão, é depois do fato, ou já estarei na metade da parte interessante, ou algum cenário desse tipo.
Qual é a prática correta ou recomendada para configurar algo assim para simplesmente registrar tudo (de preferência stdin
( stdout
e stderr
quando aplicável), etc.) automaticamente?
Responder1
Algo assim no seu .bash_profile
ou .bashrc
pode funcionar para você:
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