Qual é a maneira mais rápida de copiar/colar entre um console não gráfico (<Ctrl><Alt><F...>) e uma sessão X?
Agora mesmo :
- Eu seleciono o texto com o mouse no console (instalei o gpm)
- Então eu colo o texto dentro de um arquivo temporário
- E finalmente eu mudo para a sessão x, abro o arquivo temporário e copio/cole seu conteúdo
Há uma maneira mais fácil de fazer isso ? As seleções primárias do console não-X e da sessão X podem ser mescladas? Idealmente, eu gostaria de selecionar o texto no console, alternar para a sessão X e colá-lo (clique com o botão do meio). Isso pode ser feito?
A "melhor" maneira de alcançar esse tipo de coisa é quase provavelmente baseada em opiniões.
A maneira que eu prefiro usa o backlog do terminal nativo.
Sabendo que o backlog de tty[N] pode ser acessado via /dev/vcs[N], eu simplesmente disparo
cat /dev/vcs[N]
do meu Xterm e faço o que eu quiser com o resultado exibido.Obviamente, se o usuário do Xterm for diferente do proprietário do tty que você deseja despejar, talvez seja necessário usar o sudo.
BTW, como sabiamente relatado nos comentários, você pode ficar irritado com a formatação devido à ausência de feeds de linha.
man vcs
lhe dará possíveis soluções alternativas:Outra coisa que você pode fazer é usar a tela . Ele cria um terminal virtual que pode ser desanexado de qualquer tty/pty e reanexado a outro terminal.
Então, para o seu caso de uso, seria iniciar a sessão de tela no console:
E, para esclarecer, " -L " ativa o log, que cria um arquivo de log no diretório de onde você iniciou a tela , e " -S " dá à sessão de tela um nome que pode ajudá-lo a discernir qual sessão é qual quando você lista todas as telas sessões com " -ls ".
Agora, se você tiver que executar o aplicativo a partir do console, execute o aplicativo e, enquanto estiver em execução, pressione "(Ctrl+A)+(Ctrl+D)" para desanexar da sessão de tela . Em seguida, entre na área de trabalho, abra um terminal e execute:
Agora, você tem o PID e o nome da sua sessão de tela , então reconecte-o ao seu xterm:
E, para esclarecer, " -d " diz à tela para desconectar a sessão se ela ainda estiver conectada em outro lugar, e " -r " diz à tela para reconectar a sessão ao seu terminal atual.
Dependendo da quantidade de saída que você deseja copiar, a saída pode ter saído do buffer do terminal inicial quando você reconecta. No entanto, se for tanta saída, o arquivo de log também conterá toda a saída para você.
Espero que ajude.
Você pode usar o
xsel
para definir a área de transferência em X, e você pode definir aDISPLAY
variável para dizer a qual X se conectar. Contanto que você esteja usando a mesma conta de usuário, os programas iniciados a partir de um terminal não devem ter problemas para se conectar ao X, seDISPLAY
estiver definido.depois cole.
Uma boa alternativa é instalar
bsdutils
e usarscript
e corra
Depois, você pode ler os comandos e a saída de outro local, por exemplo, uma janela de terminal,
less -R
para cuidar da formatação ANSI, mas também funcionacat
.