AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 705141
Accepted
ChennyStar
ChennyStar
Asked: 2022-06-07 04:22:06 +0800 CST2022-06-07 04:22:06 +0800 CST 2022-06-07 04:22:06 +0800 CST

Como copiar/colar entre um console e uma sessão X?

  • 772

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?

tty x11
  • 4 4 respostas
  • 1295 Views

4 respostas

  • Voted
  1. Best Answer
    MC68020
    2022-06-07T04:44:14+08:002022-06-07T04:44:14+08:00

    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 vcslhe dará possíveis soluções alternativas:

    Note that the output does not contain newline characters, so some
    processing may be required, like in
     
    fold -w 81 /dev/vcs3 | lpr
     
    or (horrors)
     
    setterm -dump 3 -file /proc/self/fd/1
    
    • 17
  2. B.Kaatz
    2022-06-07T17:27:39+08:002022-06-07T17:27:39+08:00

    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:

    ~ $ screen -L -S TestTerm
    

    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:

    ~ $ screen -ls
    There is a screen on: 
        10296.TestTerm  (Detached)
    1 Socket in /tmp/screen/S-ChennyStar.
    

    Agora, você tem o PID e o nome da sua sessão de tela , então reconecte-o ao seu xterm:

    ~ $ screen -d -r 10296.TestTerm
    

    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.

    • 7
  3. user253751
    2022-06-08T00:38:40+08:002022-06-08T00:38:40+08:00

    Você pode usar o xselpara definir a área de transferência em X, e você pode definir a DISPLAYvariá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, se DISPLAYestiver definido.

    some command | DISPLAY=:0 xsel -ib
    

    depois cole.

    • 7
  4. sudodus
    2022-06-07T05:47:06+08:002022-06-07T05:47:06+08:00

    Uma boa alternativa é instalar bsdutilse usarscript

    sudo apt install bsdutils
    

    e corra

    $ script
    Script started, file is typescript
    $ type commands
    get output
    ...
    $ exit
    

    Depois, você pode ler os comandos e a saída de outro local, por exemplo, uma janela de terminal, less -Rpara cuidar da formatação ANSI, mas também funciona cat.

    $ less -R typescript
    
    • 6

relate perguntas

  • Arch Linux: executando o VirtualBox (VM) sem um gerenciador de janelas

  • erro de falta de dois pontos xrdb

  • Tornar as coisas maiores sem alterar a resolução? [AMIGO]

  • O encaminhamento SSH X11 funciona apenas ao usar

  • Por que o utilitário ssh é considerado um pty?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve