Cómo ver los metadatos de una imagen desde el terminal de Ubuntu con Imagemagick

En su día habíamos hablado sobre cómo eliminar los metadatos de una imagen en equipos con Linux, hoy vamos a ver cómo consultar esos metadatos.

Lo haremos con la herramienta Identify, que es parte del paquete de software ImageMagick presente en varios repositorios. En cualquier distribución derivada de Debian, como pueden ser Ubuntu o Mint, estará presente. Basta con abrir un terminal y teclear:

sudo apt-get install imagemagick

Ahora nos bastaría ejecutar el comando identify con la ruta de la imagen para ver sus datos:

identify nombredelaimagen.jpg

La saldría sería algo así:

¿Te parece poco detalle? Bueno, puedes sacar toda la información disponible usando el parámetro -verbose:

identify -verbose nombredelaimagen.jpg

En la captura que hice solo me entraban parte de los datos por estar en el portátil, para que te hagas una idea:

Encontrar y matar procesos zombie en Linux

No sólo hay zombies en la ficción, también pululan por tu sistema Linux. Tranquilo, la pantalla de tu portátil no se cerrará de golpe mordiéndote la mano y convirtiéndote en un extra de peli de Romero, se trata de un estado en el que pueden entrar algunos procesos secundarios, que aunque terminan se mantienen en la tabla de procesos hasta que termina el principal, ocupando algo de memoria. No son especialmente problemáticos ni consumen mucho, aunque si un programa deja varios procesos hijo por ahí sueltos puede ser un problema para la RAM.

¿Cómo puedo listar los procesos en estado zombie en mi equipo?

Es sencillo. Usando el comando ps podemos listar todos los procesos presentes en la tabla de procesos. Uno de los valores que tendremos en la salida de ps es el estado del proceso, que será Z para los procesos zombie. Por lo tanto, el siguiente comando listará todos los procesos zombie:

ps aux | grep 'Z'

¿Cómo eliminamos un proceso zombie?

En si no podemos matar un proceso zombie con el comando kill porque ya está muerto, la única opción sería hacerlo a través del proceso padre. Para eso necesitamos saber el pid del padre, por lo que haremos la búsqueda de procesos zombie de está forma:

ps ef | grep 'Z'

La tercera columna de la respuesta tendrá el id del proceso padre de nuestro proceso zombie. Para forzar la eliminación de estos procesos hijo zombificados usamos el siguiente comando:

kill -s SIGCHLD pid_del_proceso_padre

Usar cURL en Linux para bajar varios ficheros con un mismo comando.

Si hace unos meses veíamos cómo nos podemos servir de cURL en Linux para descargar un fichero desde una URL hoy vamos a expandir un poco esta entrada: ¿podemos descargar varios ficheros a la vez con el mismo comando? Pues sí.

La sintaxis es muy simple. Recordemos primero ¿Cómo descargamos un fichero con cURL?

curl -O http://dominio.com/fichero.tar.gz

Recordado esto ¿cómo descargamos varios? Pues muy simple, añadimos más url precedidas del parámetro -O tal que así:

curl -O http://dominio.com/fichero.tar.gz -O http://dominio.com/ficheroB.tar.gz -O http://dominio.com/ficheroC.tar.gz

Ejecutar apps de Android en Linux con Anbox

Aunque el núcleo de Android es Linux sus aplicaciones no son compatibles de forma nativa con una distribución de GNU/Linux. Para correr aplicaciones Android en un sistema Linux necesitamos un emulador al estilo de Wine (que nos permite correr aplicaciones de Windows).

Existen hoy por hoy varios proyectos de emuladores que nos permiten hacer esto en nuestros sistemas Linux pero ha sido Anbox el que me ha parecido más interesante ¿por qué? Porque Anbox se sirve del propio kernel de nuestra distribución para trabajar, sobre el que extiende una capa de compatibilidad. ¿Qué implica esto? Que al no tener que emular el kernel consume menos recursos que sus competidores. Nuestro hardware queda menos cargado con el.

Podemos instalarlo mediante paquetes snap o desde la tienda de apps o los repositorios de nuestra distro. Una vez instalado basta con instalar en nuestro equipo el .apk de la aplicación que queremos correr. Para facilitar esta instalación lo mejor es que instalemos también AndroidDebugBridge (ADB), una herramienta para desarrolladores Android:

# Instalar ADB en Ubuntu y familia
$ sudo apt install android-tools-adb

# Instalar ADB en Fedora
$ sudo dnf install android-tools

Virtual Box: Compartir una carpeta de un anfitrión Windows en una máquina con Ubuntu.

El primer paso para este tutorial nos remite a una entrada antigua: hay que instalar las Guest Additions de Virtual Box para comenzar. Es un paso indispensable, pues sin las Guest Additions no va a funcionar.

Ok, ya tenemos nuestro sistema operativo Ubuntu (o familia) instalado en una máquina virtual de Virtual Box y con las Guest Additions instaladas. Ahora tenemos que irnos a Configuración, allí a Carpetas Compartidas y allí elegimos la carpeta a compartir y le asignamos un nombre (para el ejemplo le he puesto vbox).

Tras esto nos vamos a nuestro Ubuntu y abrimos un terminal de línea de comandos. Lo primero que haremos será crear un punto de montaje para nuestra carpeta. En el ejemplo le llamaremos “carpeta“:

sudo mkdir /media/carpeta

Y lo siguiente es ejecutar el montaje de la carpeta. En mi caso la carpeta en Windows se llama vbox y el punto de montaje carpeta, en el vuestro poned los que correspondan:

sudo mount -t vboxsf vbox /media/carpeta

Si queréis que la carpeta se monte siempre al arrancar el sistema el truco es editar el fichero /etc/init.d/rc.local y añadir a él la línea que usamos para montar la carpeta.

Utilizar el comando expr para hacer operaciones

El comando expr del terminal de Linux nos permite evaluar una expresión y pintar su resultado. De esta forma podemos usarlo para ejecutar operaciones aritméticas o de comparación.

$ expr 15 + 3
$ expr 15 % 3
$ expr 15 \* 3
$ expr 15 – 3
$ expr 15 / 3

En el ejemplo de arriba puedes ver los ejemplos para suma, operación de módulo, multiplicación (ese caso requiere usar el carácter \ para escapar el asterisco que usamos como símbolo de multiplicación), resta y división.

¿Limitaciones? Pues que solo nos permite operar con números enteros: únicamente acepta enteros como parámetros y tan solo devuelve enteros como resultado

Otra cosa que nos permite expr es ejecutar operaciones de comparación:

$ expr 15 = 3
$ expr 15 != 5
$ expr 15 \> 3
$ expr 15 \< 3
$ expr 15 \<= 3

Devolverá 1 en caso de que la comparación sea verdadera y 0 en el caso contrario. De nuevo el carácter \ será necesario para escapar los caracteres de mayor y menor en las comparaciones.

No solo podemos usarlo desde el terminal para operar, expr también puede resultar de utilidad invocado dentro de alguno de nuestros scripts.

Activar Windows Subsystem for Linux en Windows 10 e instalar una distribución de Linux

Ya en su día hablamos aquí sobre cómo activar el bash de Ubuntu en Windows10. Vamos a actualizar y ampliar un poco esto viendo cómo activar el Windows Subsystem for Linux en Windows y cómo instalar después una distribución de Linux:

El primer paso es activar en nuestro Windows 10 la característica del subsistema para Linux. Para eso tenemos que abrir el PowerShell y ejecutar el siguiente comando:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Tras esto toca reiniciar para completar la activacion. Una vez realizado tenemos dos opciones para instalar nuestra distribución. La primera y más cómoda, para las versiones más actualizadas de Windows 10, es hacerlo directamente desde el Windows Store, la tienda de aplicaciones de Microsoft. Están disponibles Ubuntu, OpenSuse, KaliLinux, Debian y la versión Enterprise de Suse para servidores.

La otra opción es descargar e instalar manualmente. Podéis buscar el paquete appx y descargarlo desde el navegador o podéis serviros de cURL para hacerlo desde el PowerShell con el siguiente comando:

curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804

En el ejemplo descargaríamos la versión 18.04 de Ubuntu. Tendrías que cambiar la version por la que corresponda.

Una vez descargado tendríamos que desempaquetar e instalar. Desde PowerShell sería así, poniendo las rutas y el nombre de fichero que corresponda:

Expand-Archive ~/Ubuntu.appx ~/Ubuntu

Una vez abierto buscamos el archivo .exe de nuestra distribución, en este caso sería Ubuntu.exe y lo ejecutamos.

Por comodidad se recomienda añadir ese fichero ejecutable al path de Windows, de esta forma podrás invocarlo desde cualquier parte sin tener que escribir toda la ruta.

Un último apunte importante: la distribución de Linux debe estar almacenada en el mismo disco duro donde está instalado el sistema operativo. En caso contrario mostrará un error en la ejecución.

Probando Bat en Ubuntu: una versión “vitaminada” de Cat

Hoy vamos a hablar de Bat, un clon “vitaminado” del comando Cat de Linux.

¿Por qué usar Bat teniendo ya Cat?

Pues porque, como ya he dicho arriba, se trata de un clon “vitaminado¿Qué quiere decir esto? Que aunque funciona igual presenta una serie de añadidos que lo hacen más atractivo o funcional:

  • Tiene resaltado de sintaxis para varios lenguajes de programación.
  • Puedes elegir varios temas de colores para dicho resaltado.
  • Incluye integración con Git para ver los cambios en el fichero.
  • Hace el paginado de forma automática.
  • Permite añadir nuevos temas y sintaxis para otros lenguajes no incluidos.

Aquí puedes ver una captura de cómo va lo del resaltado de sintaxis:

Bat sintaxis

Y aquí podéis ver parte de la lista de temas disponibles:

Listado de temas

Para elegir el lenguaje de programación que queremos resaltar basta con invocar el comando seguido de la opción -l y el nombre del lenguaje:

bat -l Python ejemploPython.py

También tenemos la opción de elegir que en lugar de mostrarnos todo el fichero nos muestre solo un rango de líneas:

bat –line-range 5:53 bin/scripts/isaiah/stryper.sh

¿Cómo instalo Bat?

El código está disponible en GitHub, así que tienes la opción de descargarlo desde la página del proyecto. También puedes ejecutar el comando wget desde la consola en Ubuntu:

wget https://github.com/sharkdp/bat/releases/download/v0.8.0/bat_0.8.0_amd64.deb

sudo dpkg -i bat_0.8.0_amd64.deb

O descargarlo desde los repositorios oficiales en Arch-Linux.

sudo pacman -S bat

Comando cmatrix: haciendo un poco el tonto en Linux.

Vamos con una de esas tonterías que a veces publico sobre Linux, que no son muy prácticas pero sí divertidas, como cuando hicimos que la consola nos insultara. Vamos a ver cómo convertir nuestro terminal en la consola de la popular película The Matrix.

Empezamos por instalar cmatrix desde nuestra consola de comandos tal que así:

sudo apt-get update
sudo apt-get install cmatrix

Una vez instalado solo tenemos que invocar el comando cmatrix en la consola para conseguir este bonito efecto:

ejecución cmatrix


ClipIt: Gestor de portapapeles para Ubuntu

¿Qué es ClipIt?

ClipIt es un gestor de portapapeles para Ubuntu, desarrollado en C e implementado con GTK+. Como gestor avanzado de portapapeles, ClipIt nos permite almacenar varios textos en memoria para pegar más adelante.

¿Cómo lo instalo?

ClipIt puede ser instalado desde el centro de software de Ubuntu o utilizando la siguiente instrucción desde la consola de comandos:

sudo apt-get install clipit

¿Cómo lo utilizo?

Una vez instalado solo tienes que ejecutarlo y verás como aparece un indicador en la barra de notificaciones de tu sistema operativo como este:

Icono clipit
Se trata del icono en rojo.

Conforme vayas copiando distintas cosas al portapapeles estas se irán guardando en tu historial, y podrás acceder a ellas después ya sea mediante el atajo de teclado ctrl+alt+h o pulsando encima del icono de ClipIt antes descrito.

Además, ClipIt ofrece varias opciones de configuración como modificar o crear los atajos de teclado, definir el número de entradas que queremos que memorice, configurar que no almacene contraseñas… las puedes encontrar todas en el menú de configuración:

preferencias clipit