Ich verwende gerne Tools wie history
, script
, und asciinema
zum Aufzeichnen und Überprüfen von xterm-Sitzungen (d. h. bash
/ sh
) aus typischen, allgemeinen Verwaltungsgründen und manchmal auch zum umfassenden Studium/zur Wiederholung; als Lernwerkzeug.
Ich habe daran gedacht, den Standard
$SHELL
als direkten Pfad zu den genannten Tools und/oder Befehlen festzulegen, etwa:/bin/script transcript.log;
/bin/asciinema rec -w0.5 term_log.json;
Aber diese Tools sind normalerweise auf einen Standardsatz angewiesen
$SHELL
(d. h/bin/bash
. ,/bin/sh
,/bin/zsh
, usw.).Außerdem habe ich das Gefühl, dass die Neudefinition von Systemvariablen (z. B.
$SHELL
, , usw.) oder der Versuch, es mit Konfigurations- ( ) und Punktdateien ( / )$TERM
zum Laufen zu bringen, mit allen möglichen Lücken und potenziellen Problemen behaftet sein wird.*.conf
~/.bashrc
~/.bash_profile
Wenn ich mich jedoch dazu entscheide oder mir klar wird, dass ich eine Abschrift einer Sitzung haben möchte, geschieht dies im Nachhinein oder ich bin bereits mitten im interessanten Teil oder etwas Ähnliches.
Was ist die richtige oder beste Vorgehensweise, um so etwas einzurichten, dass einfach alles (vorzugsweise stdin
( stdout
und stderr
wenn zutreffend) usw.) automatisch protokolliert wird?
Antwort1
So etwas in Ihrer .bash_profile
oder .bashrc
könnte für Sie funktionieren:
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