¿Cómo puedo ejecutar un comando y copiar su salida?

Respuestas:

10

Esperemos que tenga acceso a un escritorio gráfico. De eso trata la primera parte de esta respuesta. Si no lo hace, omita los primeros tres pasos y lea la parte inferior de la respuesta.

Paso 1: Cargue un terminal ...

El primer paso es abrir una terminal. Hay una multitud de diferentes opciones de terminal, pero la mayoría de los usuarios de Ubuntu tendrán gnome-terminal, los usuarios de KDE tienden a tener konsole, y los usuarios de XFCE deberían tener xfce4-terminal.

Una vez que haya identificado qué comando desea ejecutar, solo se trata de ejecutarlo.

  • Presione Ctrl+ Alt+ T.
  • Los usuarios de Unity y Gnome Shell pueden buscar Terminal.
  • Los usuarios de KDE pueden encontrar Konsole en Aplicaciones → Sistema.
  • Todos los escritorios pueden presionar Alt+ F2y escribir el nombre binario del terminal (como se indica arriba) manualmente.

Paso 2: ejecuta tu comando

Este es el bit simple. Deberías mirar algo como lo siguiente:

ingrese la descripción de la imagen aquí

Puede escribir el comando, o puede copiarlo (seleccione el texto, haga clic derecho, "Copiar", luego haga clic derecho en el terminal, "Pegar"). Copiar y pegar se recomienda para comandos largos. ¡Queremos evitar errores en la transcripción!

Cuando haya escrito o pegado el comando en esta ventana, presione Return. La salida ahora debería aparecer en la pantalla como se muestra a continuación:

ingrese la descripción de la imagen aquí

Paso 3: copiando el contenido

La copia es similar a la mayoría de las otras aplicaciones, aparte de que la mayoría de las consolas solo saben cómo copiar "bloques". Para copiar, simplemente use su mouse para arrastrar alrededor de la salida hasta que esté resaltada, así:

ingrese la descripción de la imagen aquí

Haga clic derecho en el terminal (para ir al menú Editar) y seleccione "Copiar". Luego puede volver a su navegador o editor y pegar. Ya hemos terminado

Paso 3.5: Alternativa para copiar:

Al ver que ahora está colgando la línea de comando, también puede usar un comando llamado xclippara insertar directamente cosas en el portapapeles de X. Esto solo funcionará si se está ejecutando una GUI.

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

Nota: puede omitir -selection clippero los datos estarán en su portapapeles de clic medio: sí, hay dos portapapeles ... Una historia para otro día, tal vez :)


Anexo: Extracción de datos de línea de comando sin copiar y pegar

Si necesita obtener la salida de una computadora que, por ejemplo, la configuración de la pantalla está tan rota que no puede acceder a un escritorio utilizable, tenemos que encontrar otro método para extraer la salida. Puede hacerlo a mano, pero a menudo (en el caso de los registros) esto no es práctico.

Como mínimo, necesitamos ingresar a una terminal que puede hacer presionando: Control+ Alt+ F1.

Es posible que deba iniciar sesión.

Desde aquí podemos ejecutar nuestro comando, pero la salida solo se mostrará en la pantalla. Ahora tenemos dos opciones:

Tengo una conexion a internet

Si tiene acceso a Internet, simplemente puede "canalizar" la salida en un comando llamado pastebinit. Esto carga el contenido en http://paste.ubuntu.com y devuelve una URL corta y fácil de transcribir a la que puede acceder desde otra computadora o simplemente darla a la gente.

pastebinit no está instalado de manera predeterminada, por lo que lo primero que ejecutamos es:

sudo apt-get install pastebinit

Luego ejecutamos nuestro comando, seguido de | pastebinit:

lspci -nnk | grep VGA -A1 | pastebinit

Y verá algo como lo siguiente (aunque obviamente no en una ventana):

ingrese la descripción de la imagen aquí

Escriba la URL y podrá compartirla con quien quiera.

No tengo conexion a internet

Esto es más problemático pero no insuperable. Necesitaremos alguna forma de almacenamiento externo. Una memoria USB es un ejemplo popular. Conéctelo. En una configuración no gráfica, las unidades USB no se montan automáticamente. Como dije, problemático.

Corre lsblky deberías ver algo como esto:

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   

En mi caso, el nuevo disco que he conectado es el segundo (sdb) y tiene una partición (sdb1). Necesitamos montar esto para poder escribirle. Simplemente:

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

Luego podemos canalizar nuestros comandos en nuevos archivos en el disco externo:

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

Eso creará dos nuevos archivos en la unidad externa. También puedes copiar cosas con él cp. Cuando haya terminado, desea desmontar la unidad:

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

Luego, puede desconectar su unidad y llevarla a otra computadora y cargar la información según lo solicitado.

Oli
fuente
2
Finalmente algunas buenas noticias para hoy. No lo sabía pastebinit. Debería agregarse a Ubuntu por defecto.
Radu Rădeanu
@ RaduRădeanu De acuerdo. Una herramienta muy útil cuando todo (aparte de internet) está roto.
Oli
¿Qué tal xclip -icuál acepta stdincomo entrada para poner en su portapapeles?
gertvdijk
@gertvdijk Esa es ciertamente una opción con la que jugué pero no creo que sea más fácil (dado que es más para escribir) para un usuario novato que simplemente seleccionar y copiar normalmente. Lo agregaré como una opción.
Oli