Como extrair texto do shell atual?

2

Quando eu quero fazer perguntas sobre a plataforma Linux, eu sempre precisarei fornecer a captura de tela do shell atual. Mas tirando instantâneos, carregando, vinculando custos muito, existe algum comando para extrair texto diretamente do shell atual?

    
por Jichao 03.11.2009 / 02:53

2 respostas

1

Você pode usar o comando script .

Extraído do manual:

The script utility makes a typescript of everything printed on your terminal.
It is useful for students who need a hardcopy record of an inter- active 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.

If the argument command is given, script will run the specified command with an optional argument vector instead of an interactive shell.

Exemplo (informação no arquivo typescript):

Script started on Mon Nov  2 21:13:17 2009
bash-3.2$ pwd
/Users/ricbax
bash-3.2$ ps
  PID TTY           TIME CMD
  395 ttys000    0:00.02 -bash
  425 ttys000    0:00.00 script
  426 ttys001    0:00.01 /bin/bash -i
bash-3.2$ exit
exit

Script done on Mon Nov  2 21:13:44 2009
    
por 03.11.2009 / 03:24
2

screen pode fazer isso. Conecte-se a uma instância screen , execute seus comandos shell e obtenha uma "cópia impressa" do terminal atual com o comando hardcopy screen (digite Ctrl-A e, em seguida, pressione "h"). A saída geralmente é salva em seu diretório pessoal em ~/hardcopy.1 , ~/hardcopy.2 , etc.

Se você precisar de mais do que está na tela atual, use % de buffer de rolagem de screen .

  • Acesse (entre no "modo de cópia") pressionando Ctrl-A e depois Esc.
  • Role para cima / para baixo com Ctrl-U / Ctrl-D ou as teclas de seta ou o movimento no estilo vim (j / k / l / h).
  • Saia do "modo de cópia" pressionando Esc.

Usando o "modo de cópia", você pode selecionar um bloco de texto e obter uma cópia impressa assim:

  1. Entre no "modo de cópia" (pressione Ctrl-A e depois Esc).
  2. Vá até o início do texto que você deseja copiar.
  3. Pressione ESPAÇO. Isso marca o começo.
  4. Vá até o final do texto que você deseja copiar.
  5. Pressione ESPAÇO novamente. Isso preenche o buffer de cópia e sai do "modo de cópia".
  6. Grave o buffer de cópia no arquivo (pressione Ctrl-A e, em seguida, > ). O buffer de cópia é gravado em /tmp/screen-exchange .
  7. Copie /tmp/screen-exchange para qualquer arquivo que você goste:

    cp /tmp/screen-exchange ~/my.terminal.printout.txt

A saída do seu terminal agora está em ~/my.terminal.printout.txt .

    
por 03.11.2009 / 03:24

Tags