Registrando a saída do bash em um arquivo

5

Eu estou tentando construir o vlc, que é bastante complicado e dependente de ter os pacotes certos instalados, e continua engasgado com os erros. Para rastrear todos os meus passos, desejo mostrar o que estou fazendo em um arquivo de log enquanto interajo com um shell.

De acordo com a resposta útil para esta questão

Eu recebi um prompt elevado digitando o seguinte

(sudo bash) | tee -a vlc_attempt.log

Infelizmente, a saída não inclui o prompt de caminho, que desejo ver para informar a entrada além da saída.

Eu tentei stderr de piping stdout e vice-versa, os quais produzem resultados terríveis, mas não inserem nada no arquivo. A mesma coisa com a tentativa de canalizar o lxterminal para tee, ou iniciar o lxterminal com a opção --command = e, em seguida, o comando de exemplo acima entre aspas. Para onde ir a partir daqui?

    
por Rob F 04.07.2015 / 16:58

1 resposta

9

Use script(1) para registrar tudo enviado para o terminal:

$ script
Script started, file is typescript
$ # do your work
...
$ # then exit with ^D
$ exit
Script done, file is typescript

Mais tarde, você poderá ver a saída com less :

$ less -r typescript

Tenha em atenção que os registos conterão todos os caracteres de controlo enviados para o terminal, como, por exemplo, cores ANSI ou qualquer outro que a linha de comandos da shell lhe envie. Se você não quiser controlar os caracteres nos logs, simplifique seu PS1 antes de executar script ou use algo como stripansi(1) para limpar a saída.

    
por 04.07.2015 / 17:16