Eu tenho alguns comandos e caminhos de arquivo bastante longos que copiei para a área de transferência e preciso executar em um TTY, no entanto, os caminhos de arquivo são muito longos para redigitar e gostaria de colá-los depois do $
(eu posso digitar novamente os comandos antes). eles então), existe uma maneira de fazer isso?
Então, eu gostaria de executar um comando e colocá-lo na próxima linha, começando com $
o texto copiado para a área de transferência da seguinte maneira:
$ specialCommandToPasteText
$ pastedText
Estou executando o Ubuntu GNOME 16.04 com o GNOME 3.20.
gpm
para fornecer suporte ao mouse no VT, conforme sugerido em sua própria resposta a uma pergunta anterior ?Respostas:
É simples, mas você precisa de uma ferramenta adicional.
Instale o pacote
xsel
que fornece um comando fácil para acessar a área de transferência:Descubra qual
$DISPLAY
sua área de trabalho está usando. Normalmente deveria ser:0
, mas você pode verificá-lo executando este comando em um emulador de terminal na área de trabalho da GUI:Assumirei que a saída é
:0
, substitua-a pela sua saída real nos seguintes comandos, se for diferente.Copie o comando que você deseja executar no TTY, por exemplo, usando Ctrl+ C.
Mude para o TTY que deseja usar, por exemplo, para TTY1 usando Ctrl+ Alt+ F1.
Faça o login digitando seu nome de usuário e senha.
Digite o comando completo que deseja executar, mas substitua a parte que deseja inserir na área de transferência
$(DISPLAY=:0 xsel -ob)
.Por exemplo, se você copiou uma grande lista de pacotes para instalar, você pode digitar isso no TTY:
O snippet da área de transferência não precisa necessariamente estar no final do seu comando, mas pode aparecer em qualquer lugar.
Para simplificar ainda mais, vamos mudar isso ainda um pouco complicado
DISPLAY=:0 xsel -ob
para um script. Vou dar o nomePASTE
(porquepaste
já está em uso), mas você também pode chamá-lo de maneira diferente.Para criar o arquivo de script em um local em que todos os usuários possam executá-lo sem precisar especificar o caminho completo (eu recomendo
/usr/local/bin
isso) e torná-lo executável, basta executar esses dois comandos:Agora você pode simplesmente incorporar
$(PASTE)
seus comandos em um TTY para inserir o conteúdo da área de transferência da área de trabalho.fonte
DISPLAY=:0 xsel -ob
como alias do Bash ou pequeno script em qualquer lugar (vamos chamá-loPASTE
) e usar apenas um formulário abreviado como o$(PASTE)
conteúdo da área de transferência em seus comandos.Pessoalmente, eu apenas uso arquivos de texto:
No seu ambiente de área de trabalho, abra um terminal e
Solte para o tty e
fonte
some-command '
shift + insert (para colar).'
Retorna. A colagem entre aspas simples ou duplas impede que novas linhas no texto colado executem o comando antes que eu possa editá-lo para corrigir quaisquer problemas. IDK o que você ganha para colocar o texto em um arquivo. O Bash possui teclas de edição de linha muito poderosas, como a tecla Ctrl esquerda ou Ctrl direita para mover pelas palavras. alt-backspace para excluir palavras anteriores. Alt-d para excluir as palavras de encaminhamento, etc. etc.Outra solução possível não listada acima envolve o uso
vim
, colagem e execução:!unix_command
no modo de comando:vim
, vá para o modo de comando Esc, digite o prompt:fonte