GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo guardar la salida del comando de Linux en una imagen o un archivo de texto

¿Alguna vez ha estado en una situación en la que deseaba enviar el resultado de un comando de Linux a su colega o amigo para obtener ayuda? Este simple truco de Linux definitivamente te será útil. Puede guardar la salida de un comando de Linux en una imagen o un archivo. Todo lo que necesita tener es solo ImageMagick . Esto puede ser útil cuando necesite enviar el resultado a una persona de soporte técnico o a un colega.

Guardar la salida del comando de Linux en una imagen

Primero instale la herramienta ImageMagick. Está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.

Por ejemplo, para instalar ImageMagick en Arch Linux y sus derivados, ejecute:

$ sudo pacman -S imagemagick

En Debian, Ubuntu y otros sistemas basados ​​en DEB, puede instalarlo como se muestra a continuación.

$ sudo apt-get install imagemagick

En Fedora:

$ sudo dnf install ImageMagick

En CentOS:

$ sudo yum install ImageMagick

En openSUSE:

$ sudo zypper install ImageMagick

Ahora, para guardar una salida de cualquier comando de Linux en un archivo de imagen, simplemente ejecute el siguiente comando:

$ ip a | convert label:@- myipaddress.png

El comando anterior guardará la salida del comando ifconfig en una imagen y la guardará en el directorio de trabajo actual. Analicemos el comando anterior y veamos qué hace cada opción.

  • ip a mostrará la dirección IP de su sistema Linux.
  • convertir El comando guardará la salida en una imagen.
  • etiqueta:@- myipaddress.png guardará la salida del comando en la imagen llamada myipaddress.png .

Aquí está el resultado del comando anterior en mi sistema de escritorio Ubuntu 18.04.

Aquí hay otro. Guardé mi salida del kernel de Linux en una imagen.

$ uname -a | convert label:@- mylinuxkernel.png

Salida de muestra:

Lo que hemos visto arriba es que hemos guardado la salida del comando en un archivo de imagen. También podemos guardar la salida en un archivo de imagen existente. Para hacer esto, ejecute:

$ convert -font -misc-fixed-*-*-*-*-*-*-*-*-*-*-*-* -fill black -draw "text 270,260 \" `lsb_release -a` \"" image.png systemdetails.png

Este comando imprimirá la salida de "lsb_release -a" comando a una imagen llamada image.png y lo guarda con un nuevo nombre "systemdetails.png" .

Aquí está el resultado del comando anterior:

Bastante fácil, ¿no? Puede guardar el resultado de cualquier comando en un archivo de imagen y enviarlo a cualquier persona que pueda ayudarlo a reparar su sistema.

Resolución de problemas

En las distribuciones recientes de Ubuntu Linux, ciertas operaciones de conversión están restringidas por razones de seguridad. Si probó los comandos anteriores en el sistema operativo Ubuntu, es posible que se encuentre con el siguiente mensaje de error:

convert-im6.q16: not authorized `@-' @ error/property.c/InterpretImageProperties/3516.
convert-im6.q16: no images defined `myipaddress.png' @ error/convert.c/ConvertImageCommand/3258.

En ese caso, debe editar policy.xml archivo de configuración y cambie la política.

$ sudo nano /etc/ImageMagick-6/policy.xml

Busque la siguiente línea:

<policy domain="path" rights="none" pattern="@*" />

Comente o elimine la siguiente línea:

[...]
<!--  <policy domain="path" rights="none" pattern="@*"/> -->
[...]

Guarde y cierre el archivo. Ahora puede guardar los comandos en el archivo de imagen.

Guardar la salida del comando de Linux en un archivo de texto

Sabemos cómo guardar la salida de un comando en una imagen. También podemos guardar la salida de un comando de Linux en un archivo.

Por ejemplo, para guardar la "ip addr" salida del comando a un archivo llamado myipaddress.txt , ejecuta:

$ ip addr > myipaddress.txt

Para verificarlo, vea el archivo de texto usando sus visores de texto favoritos. O podemos hacerlo usando el comando "gato" como se muestra a continuación.

$ cat myipaddress.txt

El siguiente comando guardará mi pacman.log en un archivo llamado mylogs.txt .

$ tail -f /var/log/pacman.log  > mylogs.txt

Y podemos guardar fácilmente los detalles de IP usando el comando:

$ ip a > mynetworkdetails.txt

Es posible que desee escribir la salida de un comando en varios archivos. Aquí está cómo hacerlo.

$ uname -a | tee file1 file2

El comando anterior escribirá la salida de "uname -a" comando a archivo1 y archivo2 . Si los archivos aún no existen, los creará.

De forma predeterminada, sobrescribirá el contenido de file1 y file2. Si desea agregar la salida a los contenidos existentes, use -a marca como a continuación.

$ ip a | tee -a file1 file2

Este comando no sobrescribirá el contenido existente de archivo1 y archivo2. En su lugar, simplemente agregará la salida del comando ifconfig a file1 y file2. En otras palabras, estos dos archivos ahora tienen los resultados de los comandos "uname -a" e "ip a".


Linux
  1. Cómo asignar la salida de un comando de Linux a una variable

  2. ¿Cómo agregar la salida a un archivo?

  3. ¿Cómo capturar la salida de un comando superior en un archivo en Linux?

  4. ¿Cómo guardar la salida de este comando awk en un archivo?

  5. Cómo editar un archivo de texto en mi terminal

Cómo guardar la salida del comando en un archivo usando la terminal de Linux

Cómo bloquear un archivo de texto en Linux usando el comando flock

Cómo imprimir líneas duplicadas en un archivo de texto en Linux

Cómo mezclar líneas en un archivo en Linux

Cómo usar el comando lsof en Linux

Cómo usar el comando shred de Linux