Pipe todas as entradas e saídas do terminal para o arquivo [duplicado]

3

Eu não sei se isso é possível ou não, mas em uma tentativa de acompanhar muitas mudanças que estou prestes a fazer no meu sistema, eu quero rastrear todas as entradas que eu digito e todas as saídas de um terminal. trabalhando com um arquivo. Eu tenho andado por aí tentando fazer isso e aqui está o que eu tenho até agora:

bash > /tmp/output.txt

Isso tem algum sucesso quase. Eu testei isso com algo simples: sudo apt-get update && sudo apt-get upgrade que despejou a saída normal no arquivo, mas não o que eu digitei.

Além disso, eu gostaria de poder ver a saída, bem como transmitir para o meu arquivo de saída, apenas para facilitar a leitura. (Isso pode ser contornado com um segundo terminal rodando tail -f , mas seria bom tê-lo em um só lugar).

    
por Paul Nelson Baker 30.01.2014 / 01:43

4 respostas

5

Use o comando de script

Você provavelmente quer o comando / usr / bin / script . Cria um texto datilografado de sua sessão de terminal atual. Não funciona muito bem com aplicativos baseados em curses, mas funciona muito bem para criar um texto datilografado.

Por exemplo:

script ~/terminal_session.txt
echo foo
echo bar > /dev/stderr
exit

enviará tudo o que você vê na tela para o arquivo de texto nomeado.

    
por 30.01.2014 / 01:52
4

Para uma gravação precisa de uma sessão de texto, incluindo o tempo, sem bagunçar os aplicativos de tela inteira, você pode usar ttyrec .

Para aplicativos interativos em que o texto rola, você pode usar o comando script .

    
por 30.01.2014 / 01:58
2

Você está procurando por script :

DESCRIPTION
     script makes a typescript of everything printed on your terminal.  It is
     useful for students who need a hardcopy record of an interactive session
     as proof of an assignment, as the typescript file can be printed out
     later with lpr(1).

     If the argument file is given, script saves all dialogue in file.  If no
     file name is given, the typescript is saved in the file typescript.

Isso deve ser instalado por padrão na maioria dos sistemas Linux, pois faz parte do pacote util-linux . Para usá-lo, basta iniciar um shell assim:

script session.log

Agora, continue seu trabalho como sempre, ele deve ser completamente transparente para você. Quando estiver pronto, pressione Ctrl + D ou execute exit . Isso salvará tudo o que você fez em session.log .

    
por 30.01.2014 / 01:50
0

Eu não acho que você possa fazer exatamente o que está pedindo.

No entanto, se você quiser um registro do que você fez, o comando script provavelmente é o que você deseja. Ele registra todas as entradas digitadas e todas as saídas em um arquivo. É um arquivo de texto, geralmente chamado de "datilografado". Você vai encontrá-lo no diretório em que você iniciou script .

script faz parte do pacote util-linux no Arch linux.

    
por 30.01.2014 / 01:49

Tags