existe uma maneira de salvar o que é impresso na tela com a tela gnu?

9

Eu gosto de salvar tudo o que faço na linha de comando, por exemplo, quando atualizo algo e quero ler de volta como foi a atualização etc.

Geralmente, com o Mac OSX e o Terminal, você pode voltar o quanto quiser e salvar com o Cmd-S. Mas quando estou no SSH usando a tela gnu, não consigo voltar diretamente do terminal.

Como posso salvar em disco tudo o que acontece em uma sessão de tela? Talvez por padrão (toda sessão cria automaticamente um arquivo no disco ...)

obrigado!

luca
fonte

Respostas:

7

Há um recurso de registro screen. Inicie quando você começar a screenfazer screen -L(ou de dentro screen). Ou, também de dentro screen, você pode pressionar Ctrl- a : H.

Se você deseja fazer logon como padrão, adicione a seguinte linha ao seu ~/.screenrcarquivo:

deflog on

Você pode definir o nome do arquivo usando algo como:

logfile /tmp/screenlog.%n
Pausado até novo aviso.
fonte
1
Talvez não se deva armazená-lo em / tmp, pois geralmente ele é limpo na reinicialização (por exemplo, devido a falta de energia).
maxelost 26/01
@ maxelost: Isso é algo a considerar. Foi apenas um exemplo, no entanto. O objetivo era incluir um diretório absoluto, pois o comportamento padrão é criar o arquivo de log no diretório atual. Além disso, as screensessões (mesmo as desanexadas) não sobrevivem à reinicialização.
Pausado até novo aviso.
2

Opção 1: verifique o comando de script. "script man"

"O script cria um texto datilografado de tudo o que é impresso no seu terminal. É útil para os alunos que precisam de um registro impresso de uma sessão interativa como prova de uma tarefa, pois o arquivo datilografado pode ser impresso posteriormente com lpr"

Digite basicamente "script" (sem aspas) - faça seu trabalho e digite exit uma vez para finalizar a sessão.

Opção 2: use o modo "cópia impressa" da tela. 'Crtl-a' then 'h' Isso salvará a sessão atual em um arquivo.

Nota: O GNU Screen tem a capacidade de rolar. Use 'crtl-]' (colchete direito) para entrar no modo de cópia e, em seguida, 'ctrl-b' e 'ctrl-f' para mover pe uma página de cada vez.

Sirex
fonte
1

Você desejará usar a operação 'log', geralmente vinculada a Ctrl-a H. Isso abre um novo arquivo chamado screenlog. N onde N é o número da janela. Se o arquivo existir, a saída será anexada ao arquivo. Toda a saída nessa janela é registrada no log de tela. N até você desativar pressionando Ctrl-a Hnovamente. Você também pode obter essa funcionalidade com Ctrl-a :log. Você pode alterar o nome usando o logfile {filename}comando O arquivo é colocado no diretório em que a tela foi iniciada pela primeira vez, mas isso pode ser alterado com o comando logfile ou com chdir [{directory}].

Observe que isso não é o mesmo que cópia impressa ou buffer de rolagem. Essa é a mesma funcionalidade do programa script (1), mas vinculada a uma única janela e sem chamar um novo programa.

Se você deseja salvar todo o conteúdo do buffer de rolagem, use Ctrl-a ] g <space> G <space> Ctrl-a :writebuf Isso salva o buffer de rolagem no arquivo / tmp / screen-exchange. se você quiser salvar apenas uma parte, altere o 'g' e o 'G' para outras teclas de movimento.

Arcege
fonte