Como posso executar um comando e copiar sua saída?

Respostas:

10

Espero que você tenha acesso a uma área de trabalho gráfica. É com isso que trata a primeira parte desta resposta. Caso contrário, pule as três primeiras etapas e leia a parte inferior da resposta.

Etapa 1: carregar um terminal ...

O primeiro passo é abrir um terminal. Existem várias opções de terminal diferentes por aí, mas a maioria dos usuários do Ubuntu terá gnome-terminal, os usuários do KDE tendem a ter konsolee os usuários do XFCE deveriam ter xfce4-terminal.

Depois de identificar qual comando você deseja executar, é apenas um caso de executá-lo.

  • Pressione Ctrl+ Alt+ T.
  • Os usuários do Unity e do Gnome Shell podem procurar o Terminal.
  • Os usuários do KDE podem encontrar o Konsole em Aplicativos → Sistema.
  • Todas as áreas de trabalho podem pressionar Alt+ F2e digitar o nome binário do terminal (como acima) manualmente.

Etapa 2: Executando seu Comando

Esta é a parte simples. Você deve observar algo como o seguinte:

insira a descrição da imagem aqui

Você pode digitar o comando ou copiá-lo (selecione o texto, clique com o botão direito do mouse em "Copiar" e clique com o botão direito do mouse no terminal "Colar"). Copiar e colar é recomendado para comandos longos. Queremos evitar erros na transcrição!

Quando você digitar ou colar o comando nesta janela, pressione Return. A saída agora deve aparecer na tela como abaixo:

insira a descrição da imagem aqui

Etapa 3: Copiando o conteúdo

A cópia é semelhante à maioria dos outros aplicativos, além da maioria dos consoles saber apenas copiar "blocos". Para copiar, basta usar o mouse para arrastar a saída até que ela fique destacada, da seguinte forma:

insira a descrição da imagem aqui

Clique com o botão direito do mouse no terminal (para ir para o menu Editar) e selecione "Copiar". Depois, você pode voltar ao seu navegador ou editor e colar. Foram realizadas.

Etapa 3.5: Alternativa para cópia:

Vendo que você está pegando o jeito da linha de comando agora, também pode usar um comando chamado xclippara inserir diretamente as coisas na área de transferência do X. Isso funcionará apenas se uma GUI estiver em execução.

lspci -nnk | grep VGA -A1 | xclip -selection clip

Nota: você pode omitir, -selection clipmas os dados estarão na área de transferência do meio do clique - sim, existem duas áreas de transferência ... Uma história para outro dia, talvez :)


Adendo: Extraindo dados da linha de comando sem Copiar e Colar

Se você precisar obter a saída de um computador que, por exemplo, as configurações de exibição estejam tão danificadas que você não possa entrar em uma área de trabalho utilizável, precisamos encontrar outro método para extrair a saída. Você poderia fazer isso manualmente, mas com frequência (no caso de logs) isso é impraticável.

No mínimo, precisamos entrar em um terminal que você pode fazer pressionando: Control+ Alt+ F1.

Pode ser necessário fazer login.

A partir daqui, podemos executar nosso comando, mas a saída será exibida apenas no visor. Agora temos duas opções:

Eu tenho uma conexão com a internet

Se você tiver acesso à Internet, poderá simplesmente "canalizar" a saída para um comando chamado pastebinit. Isso carrega o conteúdo para http://paste.ubuntu.com e retorna uma URL curta e fácil de transcrever, que você pode acessar de outro computador ou apenas fornecer às pessoas.

pastebinit não está instalado por padrão, portanto, a primeira coisa que executamos é:

sudo apt-get install pastebinit

Em seguida, executamos nosso comando, seguido por | pastebinit:

lspci -nnk | grep VGA -A1 | pastebinit

E você verá algo como o seguinte (embora obviamente não esteja em uma janela):

insira a descrição da imagem aqui

Anote o URL e você poderá compartilhá-lo com quem quiser.

Não tenho conexão com a internet

Isso é mais problemático, mas não insuperável. Vamos precisar de alguma forma de armazenamento externo. Um pendrive é um exemplo popular. Conecte-o. Em uma configuração não gráfica, as unidades USB não são montadas automaticamente. Como eu disse, problemático.

Execute lsblke você verá algo parecido com isto:

NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                 8:16   0 111,8G  0 disk  
├─sda1              8:17   0   100M  0 part  /boot
├─sda2              8:18   0     1G  0 part  /
├─sda3              8:19   0    20G  0 part  /usr
├─sda4              8:20   0     1K  0 part  
├─sda5              8:21   0  58,7G  0 part  
└─sda6              8:22   0    32G  0 part  [SWAP]
sdb                 8:96   1  14,5G  0 disk  
└─sdb1              8:97   1  14,4G  0 part
sr0                11:0    1   4,4G  0 rom   
sr1                11:1    1  1024M  0 rom   

No meu caso, o novo disco conectado é o segundo (sdb) e ele possui uma partição (sdb1). Precisamos montar isso para que possamos escrever para ele. Simplesmente:

sudo mount -o umask=0000 /dev/sdb1 /mnt

Em seguida, podemos canalizar nossos comandos para novos arquivos no disco externo:

lspci -nnk | grep VGA -A1 > /mnt/lspci
cat /var/log/Xorg.0.log >/mnt/xorg.log

Isso criará dois novos arquivos na unidade externa. Você também pode copiar as coisas para ele cp. Quando terminar, você deseja desmontar a unidade:

cd /  # just in case you cd'd into /mnt
sudo umount /mnt

Em seguida, você pode desconectar sua unidade e levá-la para outro computador e carregar as informações conforme solicitado.

Oli
fonte
2
Finalmente, algumas boas notícias para hoje. Eu não sabia pastebinit. Ele deve ser adicionado ao Ubuntu por padrão.
Radu Rădeanu
@ RaduRădeanu concordou. Uma ferramenta muito útil quando tudo (exceto a internet) está quebrado.
Oli
Que tal xclip -iaceitar stdincomo entrada para colocar na sua área de transferência?
precisa saber é o seguinte
@gertvdijk Essa é certamente uma opção com a qual eu brinquei, mas não acho que seja mais fácil (já que é mais para escrever) para um usuário iniciante do que apenas selecionar e copiar normalmente. Vou adicioná-lo como uma opção.
Oli