Inicia todas as sessões de terminal no script / usr / bin /

4

Eu gostaria de gastar algum espaço em disco gravando todas as entradas e saídas para minhas sessões de terminal; /usr/bin/script parece ser bastante bom nisso. Eu gostaria de fazer com que todas as novas sessões de shell (atualmente eu uso /bin/bash ) pudessem começar dentro de uma sessão script que registrasse em um arquivo com o nome de ~/.log/$(date --iso-8601=second).log

Eu tentei chamar script no final do meu arquivo .bashrc, mas lembro-o basicamente de travar e tornar impossível a abertura de um novo shell.

Alguma idéia sobre uma possível maneira de manter esse tipo de registro? Eu já tenho um "Histórico eterno do bash" mas saber as entradas nem sempre é suficiente para mim.

    
por ThorSummoner 14.12.2015 / 22:11

1 resposta

2

Eu não acho que colocá-lo na parte inferior do seu rcfile faria muito bem - todo o estado que você declarou anteriormente seria apagado quando script carregou um novo shell até ele tentar para carregar o rcfile e etc e etc para sempre. Acabei de fazer funcionar no meu terminal como:

$ x=;bash --rcfile /dev/fd/3 3<<\$x
    export S_LOG=~/".log/$(date --iso-8601=second).log"
    exec   script -aeqfc "bash   --rcfile /dev/fd/3 -i" "$S_LOG" \
3<<""
    alias success='echo it worked'
    PS1='script $ '
    exec 3<&-

$x
script $ success
it worked
script $ cat "$S_LOG"
Script started on Mon Dec 14 15:43:28 2015
script $ success
it worked
script $ cat "$S_LOG"
script $

E por isso acho que seria melhor localizá-lo na cabeça do seu ficheiro rc e, em seguida, exec uma nova shell para ler o resto após o ponto que você chama de novo shell.

    
por 15.12.2015 / 00:26