Passei as últimas duas horas executando um dd
comando (ou imagine qualquer cenário "difícil de refazer") a partir de um CD ao vivo sem uma GUI; tudo o que tenho é o meu confiável CTRL+ALT+F#
terminal Bash com "várias janelas" ( ).
Infelizmente, durante o comando dd
lançamos várias mensagens de erro desagradáveis e um pouco mais de informações que eu gostaria de manter. Tenho uma unidade USB conectada na qual posso gravar dados, mas como faço para salvar a saída anterior como um arquivo de texto depois que o comando já foi executado?
Se esse fosse um emulador de terminal dentro de uma interface gráfica agradável, eu simplesmente teria usado o mouse para selecionar o texto, copiá-lo e colá-lo em um documento. E se eu soubesse que o comando teria produzido erros, eu o teria encaminhado para um arquivo, mas, infelizmente, a saída adicional foi uma surpresa.
Como salvar a saída de texto do meu comando anterior em um arquivo sem executar novamente o comando? Isso é possível?
dd if=/dev/sda of=/backups/sda.img > result.txt
. Nesse caso, o problema é que eu já executei odd
comando . A todo custo, desejo evitar executar o comando novamente, o que em algumas situações é impossível.service start gpm
). Varra uma região enquanto mantém pressionado o botão esquerdo do mouse. Digitecat > outputfile
e clique no botão direito do mouse para colar a região que você acabou de selecionar.Respostas:
Um kernel Linux deve armazenar um registro na tela para seus vts no
/dev/vcsa*[ttynum]
dispositivo correspondente .É por isso que o seguinte funciona:
... que imprime ...
O
/dev/vcsa[ttynum]
dispositivo correspondente armazenará uma versão codificada do texto formatado na tela, enquanto o arquivo/dev/vcs[ttynum]
será um despejo simples. Osvcsa[ttynum]
dispositivos codificarão um par de bytes que descrevem cada caractere na tela e seus atributos, bem como uma sequência no início de cada página lógica que indica as linhas e colunas das linhas referenciadas .Como @kasperd aponta, eu errei antes ao assumir que o
\a
BEL estava codificado entre todos os caracteres, quando na verdade: a combinação de cores padrão coincide com o caractere de campainha.Para seus propósitos, usar o
/dev/vcs[ttynum]
provavelmente é mais fácil. Aqui está umal
olhada nas diferenças:... imprime ...
...e...
... imprime ...
fonte
vcsa
não coloca o mesmo caractere entre todos os caracteres. Ele fornece pares de bytes informando qual caractere está na tela e qual cor ele possui. A combinação de cores padrão coincide com o caractere da campainha.Vá para (/ efetue login) em outro terminal e execute
sudo screendump N > screenoutput.txt
, ondeN
está o número do terminal que você deseja.Sem atraso, eu temo. Se esses consoles virtuais mantêm um, eu nunca o vi. Mas você recebe tudo o que pode ver nesse terminal.
fonte
/dev/vcsa*[1-9]*
- (que é o que eu acho que as permissões de superusuário são) . Os consoles linux também suportaram uma lista de pendências para a maioria das séries 3. *, eu acho. Não tenho certeza de como alguém pode pegá-lo (ao contrário de usar os/dev/vcsa*[1-9]*
dispositivos), mas talvez haja uma maneira./dev/vcs$i
e/dev/vcsa$i
. Dá um resultado legível embora. ;-)screendump
não chega, mesmo que eu permaneça no mesmo console.