как можно автоматически записывать каждый сеанс работы с терминалом?

как можно автоматически записывать каждый сеанс работы с терминалом?

Мне нравится использовать такие инструменты, как history, script, и asciinemaдля записи и просмотра сессий xterm (т. е. bash/ sh) для типичных общих административных целей, а также иногда для всестороннего изучения/повторения; в качестве инструмента обучения.

  • Я думал об установке по умолчанию $SHELLпрямого пути к указанным инструментам и/или командам, например:

    • /bin/script transcript.log;
    • /bin/asciinema rec -w0.5 term_log.json;
  • Однако эти инструменты обычно полагаются на наличие $SHELLнабора по умолчанию (т. е /bin/bash. , /bin/sh, /bin/zsh, и т. д.).

  • Кроме того, мне кажется, что переопределение системных переменных (например $SHELL, $TERMи т. д.) или попытка заставить их работать с файлами конфигурации ( *.conf) и точкой ( ~/.bashrc/ ~/.bash_profile) будет сопряжено со всевозможными дырами и потенциальными проблемами.

  • Однако каждый раз, когда я решаю или понимаю, что мне нужна стенограмма сеанса, это происходит уже после того, как он уже состоялся, или когда я уже прошел половину интересной части, или происходит что-то в этом роде.

Как правильно или лучше всего настроить что-то подобное, чтобы просто автоматически регистрировать все (предпочтительно stdin, stdoutstderrкогда это применимо) и т. д.)?

решение1

Что-то вроде этого в вашем .bash_profileили .bashrcможет подойти вам:

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

Связанный контент