Ubuntu: Extraer un archivo con un nombre demasiado largo de un fichero .zip

Me he pillado en Bandcamp los discos de la banda salmantina El Altar del Holocausto y me disponía a descargar los archivos en mi equipo para meterlos en un reproductor mp3. Pero cuando lo intento el gestor de archivos me da un mensaje de error genérico. Compruebo y veo que no me ha extraído dos canciones, curiosamente las dos con el nombre más largo. Así que, llámame loco, empiezo a suponer que igual tiene que ver con la longitud del nombre. Intento renombrar el archivo antes de descomprimir, pero no me va. Solución: extraer los archivos que no salen por medio de la línea de comandos y ponerles un nombre más corto.

¿Cómo fue la cosa? Pues usando un patrón para buscar los nombres de archivo que no se extraían junto al comando unzip logré que salieran luego con un nombre de archivo definido por mi:

unzip -c archivo.zip "*patrónABuscar*" > nombreCorto.mp3

Ojo al introducir el patrón a buscar, recordad que se diferencian las mayúsculas de las minúsculas.

Cómo activar el bash de Ubuntu en Windows 10

Sí, has leído bien. En la actualización del primer aniversario de Windows 10 se incluye un programa llamado Bash-for-Windows, y sigue el supuesto enamoramiento de Nadella con Linux (que a este paso el siguiente Windows será un Linux con .NET preinstalado, cosas veredes Sancho). Este Bash-for-Windows, co-desarrollado junto a Canonical y basado en Ubuntu, permite correr de forma nativa algunas aplicaciones de Linux en Windows: no se trata de una máquina virtual, ni de un contenedor ni de una distribución de Linux completa, sino una aplicación que permite correr aplicaciones de Linux accediendo al sistema de ficheros de Windows. Ojo, sólo en Windows 10 de 64 bits, los usuarios de 32 bits ya no recibirán esta mejora.

Lo primero es activar el Modo Desarrollador, te vas a Configuración -> Actualizaciones y Seguridad -> Para Desarrolladores -> Modo Desarrollador. Puedes ver cómo hacerlo en este enlace si no lo ves claro con esa ruta.

Tras eso, y ya sea desde Panel de Control o desde el lanzador del Menú de Inicio, os vais a Activar o desactivar las características de Windows y allí buscais la opción de Windows Subsystem for Linux. La marcáis, dejáis que descargue todo lo necesario y que se reinicie el equipo.

WSL-Activando

Tras el reinicio abrimos la consola de comandos (cmd) en modo administrador y ejecutamos el comando bash. Una vez ejecutado por primera vez se pondrá a descargar todos los componentes necesario para instalar Bash on Ubutu on Windows.

Ejecutando Bash en Windows 10

Una vez instalado ¿qué podemos hacer con esta consola? Bueno, pues usarla para probar la funcionalidad básica de lenguajes de programación como Perl, Node/JS o Python, usar los comandos de la consola de Ubuntu como grep o awk, usar programas de línea de comandos como SSH, Emacs o Git… en fin, tendrás mucha de la funcionalidad de la consola Bash de Ubuntu en tu Windows 10.

 

Ubuntu: Recuperar contraseña wifi ya almacenada

Tienes un equipo con Ubuntu, estás conectado a una red de la que no recuerdas cual es la contraseña y tienes que decírsela a alguien ¿puedes ver la contraseña wifi almacenada? Sí, es muy fácil:

Si haces click sobre el icono de la wifi se despliega un menú donde tienes la opción de Editar las conexiones. Marcado esa opción te vas a la sección de Inalámbricas, seleccionas la wifi que quieres ver, pulsas Editar, allí te vas a Seguridad Inalámbrica y te mostrará la contraseña oculta, en principio, tras unos asteriscos. Pero si seleccionas la opción de Mostrar Contraseña la verás en texto plano.

Te adjunto una captura de los menús que hay que abrir, aunque en ElementaryOS, con la clave de una de mis wifis viejas.

Ver contraseña en ElementaryOS

Crear un Raid1 con mdadm en Linux

Si ya vimos como instalar mdadm y cómo hacer un Raid0 para conseguir mayor velocidad, vamos ahora con otro de los arrays de discos más básicos: RAID1 o Mirroring. Lo de mirroring ya te dará una idea sobre cómo funciona la cosa: consiste en tener una copia exacta de los datos en dos discos. Esto implica que lo mejor para este caso es tener dos discos duros del mismo tamaño.

Para este ejemplo vamos a suponer que tenemos dos discos: sda1 y sdb1.

El primer paso es editar el archivo /etc/mdadm.conf y añadir los parámetros DEVICE y ARRAY correspondientes:

DEVICE /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1

Una vez configurado el archivo nos toca ejecutar el comando mdadm para crear el array de discos y que se inicie:

mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1

Tras eso nos pedirá permiso para continuar creando el array, así que basta con contestar yes para terminar.

Recuerda que este tipo de array ralentiza la velocidad de escritura en disco al tener que duplicar el trabajo.

Crear un RAID 0 en Linux mediante mdadm

El otro día hablamos sobre la existencia de mdadm y cómo instalarlo en nuestra distribución Linux. Hoy vamos a ver cómo usarlo para crear un RAID 0.

En fin, os vais a las instrucciones del otro día para instalar mdadm, y cuando lo tengáis instalado comprobáis en /proc/mdstat que no haya ningún array creado (no debería). Para este ejemplo vamos a suponer que tenemos cuatro discos duros: sda1,sdb1,sdc1,sdd1.

El primer paso es editar el archivo /etc/mdadm.conf y añadir los parámetros DEVICE y ARRAY correspondientes:

DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

Una vez configurado el archivo nos toca ejecutar el comando mdadm para crear el array de discos y que se inicie:

mdadm -C /dev/md0 --level=raid0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Tras eso nos pedirá permiso para continuar creando el array, así que basta con contestar yes para terminar.

Una vez creado el array de discos podemos consultarlo con el comando mdadm –detail /dev/md0 desde el que podremos ver todos los datos del nuestro RAID.

Linux: Instalar mdadm

Multiple Device Administrator, en resumen mdadm, es una solución de software que reúne un conjunto de herramientas para gestionar en una distribución Linux el uso de varios discos duros. Nos permite tener una solución de bajo costo si queremos crear un array de discos, un RAID, sin recurrir a hardware específico para esto. Nos permite utilizar configuraciones RAID 0, RAID 1, RAID4, RAID5, RAID6 y RAID1+0. También nos da la opción de crear arrays de discos «no raid» como una configuracion linear (concatenar unidades de disco para crear una unidad virtual más grande), multipath (en caso de que un disco falle permite el uso de otro, para alta disponibilidad) o container (un contenedor para crear varios dispositivos RAID).

En algunas distribuciones Linux, generalmente las destinadas a servidores como Fedora, CentOS o Red Hat Entrepise Linux, es habitual que mdadm venga preinstalado. En otras distribuciones generalmente podréis descargarlo desde los repositorios:

#En Ubuntu/Debian
apt-get install mdadm

#Red Hat y otras
#distribuciones que usan
#el gestor yum
yum -y install mdadm

#gentoo y otras
#distros con emerge
emerge mdadm

Más adelante hablaremos sobre configuraciones RAID en Linux.

Linux: el comando free

Free, as in freedom. O sea, de libre, no de gratis (tema que ha dado siempre para mucho debate y aclaración en el Software Libre). Pues sí, la consola de Linux tiene un comando que se llama free, y que nos muestra cuánta memoria libre nos queda.

El comando free nos muestra tres líneas, seis columnas y admite varios parámetros. Aquí te pego una captura con un ejemplo y luego vamos explicando:

ejemplo comando free

La línea 1 nos muestra la memoria RAM: en la primera columna la cantidad total del equipo, en la segunda la que está en uso, la tercera la que está libre, la cuarta es un valor en desuso que antaños sería la memoria compartida, la quinta nos muestra la memoria que está siendo usada por el buffer de los programas (es decir, datos que se guardan temporalmente durante la ejecución de un programa para verlos una sola vez) y la sexta lo que hay en la caché de los programas (son datos que los programas dejan cargados para revisarlos regularmente y acelerar su ejecución).

La línea 2 nos muestra un ajuste de cuánta memoria hay en uso y cuánta disponible si no tenemos en cuenta ni el buffer ni la caché.

La línea 3 nos muestra la SWAP, el espacio de disco duro que hemos definido como memoria de intercambio, y sólo nos da tres columnas: total, utilizada y libre.

En la imagen del ejemplo puedes ver que usé free junto al parámetro -m, de esa forma muestra los datos en megas. Si en lugar de -m usáramos -k lo mostraría en kilobytes, con -g en gigabytes y con -b en bytes. Según la precisión necesitada será más recomendable una u otra unidad.

Si no consideras necesaria la segunda fila puedes poner el parámetro -o, que provocará que esta no se incluya, mostrando sólo la memoría física y la SWAP.

Si quieres ver una línea adicional con la suma de la memoria física y la SWAP puedes conseguirlo con el parámetro -t.

Con el parámetro -s la consulta se recargará cada pocos segundos, para permitirnos mantener monitorizado el estado de la memoria.

El comando por defecto hará los redondeos de la memoria en base a potencias de 1024, si quieres que lo haga en base a 1000 tendrás que usar el parámetro –si. Si tienes 8 gigas y sacas la consulta con -g es probable que te salgan 7 por este redondeo, con –si te aparecerían los 8.

Linux AIO: Varias distros en una sola imagen

Más de una vez habrás pensado, seguro, en que sería cómodo llevar varias distribuciones de Linux en un mismo pen, por lo que pueda pasar al ir a realizar una instalación o mantenimiento. Hay muchas formas de hacerlo, pero el proyecto Linux AIO nos ofrece una serie de isos que recopilan varias distribuciones de una misma familia.

Entre las múltiples opciones para descargar nos encontramos con Debian, Mint, Fedora, LMDE, Ubuntu y varias distribuciones menos conocidas como pueden ser Triskel o Point Linux.

Linux AIOPodéis descargar estas distros por vía Torrent o descarga directa, aunque al estar en Sourceforge el tamaño máximo de descarga limitado a 5 gigas os pasará, con algunas familias, que tendréis que bajaros dos archivos. Yo recomiendo usar el torrent siempre que sea posible. Luego creáis un USB arrancable, podéis seguir las instrucciones de la web del proeyecto, y finalmente hacéis que vuestro equipo arranque desde el USB. Debería verse una pantalla así al iniciar (en el ejemplo vemos la pantalla para la familia Ubuntu 16.04):

Linux AIO

Desde ahí podéis elegir qué distro arrancar, ya sea para probarla como LiveCD o para instalarla.

Linux AIO no es el único proyecto de instalador múltiple de Linux, pero sí uno de los más completos e interesantes, que lleva activo desde 2014. Merece que le echéis un vistazo.

Instalar decompilador de Java en Ubuntu: JD-GUI

¿Necesitas un software que te permita decompilar una clase Java en tu Ubuntu? Pues hoy os hablo de JD-Project, un proyecto OpenSource que nos permitirá destripar esos ficheros en nuestro equipo. Si queréis pegarle un ojo al código ahí tenéis la página de GitHub.

En la web oficial del proyecto podemos ver que nos ofrecen varios «sabores»: JD-GUI, como aplicación independiente, JD-Eclipse como plugin para el popular entorno de desarrollo y JD-IntelliJ para el IDE IntelliJ. Yo para hacer la prueba me descargué JD-GUI, que luce tal como en las fotos:

JD-GUI Windows
Así luce JD-GUI en Windows
JD-GUI xubutu
Y este es el JD-GUI en un Xubuntu 16-04 LTS

En mi caso descargué el paquete .deb para derivados de Debian y no tuve más que hacer doble click para instalar. Eso sí, la primera llegó en la frente: ejecuto y falla. ¿por qué? Pues básicamente porque no tenía Java instalado en el equipo de la prueba… un despistillo por usar un equipo recién instalado. Instalo Oracle Java 8… y por algún motivo la instalación del mismo se carga el JD-GUI. Así que otra vez a instalar el .deb de JD-GUI. Pero tras todo esto el programa ya ha funcionado como la seda. Así que ya podéis disfrutar de esta cómoda herramienta.

Añadir repositorio ppa en Linux

Estos días estoy sin tiempo para escribir, pero vamos con una entrada cortita y práctica para Linux: ¿cómo añado un repositorio ppa a apt? Yo el otro día tuve que hacerlo en un equipo de 32 bits para descargar una versión modificada de Chromium.

Según Genbeta existe una forma de hacerlo sin consola, pero yo voy a centrarme en la forma clásica. La sintaxis sería tal que así:

sudo add-apt-repository ppa:<nombre_ppa>

El ejemplo que da la documentación oficial de Ubuntu sería el siguiente

sudo add-apt-repository ppa:gnome-desktop