Comprobar la velocidad de conexión desde línea de comandos en Linux.

Hay múltiples webs que nos permiten ejecutar tests de velocidad, pero a veces estamos administrando un servidor sin entorno gráfico y resulta útil poder lanzar un comando que nos de el resultado. Con la siguiente línea puedes hacerlo sin tener que instalar nada:

curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -

Os dejo una captura del resultado desde casa de mis padres.

Teste de velocidad comandos

Linux: conocer el modelo de tarjeta gráfica y el driver mediante una consulta por línea de comandos

Ayer veíamos la forma de hacerlo en Windows, hoy vamos en Linux ¿Cómo sacamos por línea de comandos el modelo de tarjeta gráfica y el driver? Aquí hay varias opciones:

Tenemos un comando que nos saca todos los dispositivos del sistema con datos del fabricante:

lspci -nn

Esto nos deja una salida muy sucia, demasiados datos, pero podemos filtrar con grep:

lspci -k | grep -EA3 'VGA|3D|Display'

Otra opción es instalar Inxi , un software específico para chequeo de hardware,y ejecutarlo:

#instalamos
sudo apt install inxi
#ejecutamos
inxi -Gx

Entonces ¿para el driver?

#Para ver el del kernel
find /dev -group video
#Paraver el que está en uso
glxinfo | grep -i vendor

Crear una USB arrancable de Windows desde Linux con WoeUSB

Hoy tenía que reinstalar un Windows 7 (sí, está ya vejete but larga historia) en un portátil y, como siempre, el dueño del portátil no tenía el cd de instalación de Windows. Por suerte tenía yo una ISO a mano del Windows 7, pero ¿Cómo hago un USB arrancable desde mi equipo con Linux?
. Hace un par de años vimos cómo hacerlo con WinUSB, pero ahora ese proyecto ha sido reemplazado por WoeUSB.
Bueno, lo primero va a ser instalar WoeUSB:

$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt update
$ sudo apt install woeusb

Ok, una vez instalado tenemos dos opciones: trabajar desde el entorno gráfico o desde comandos.

Desde el entorno gráfico es bastante intuitivo, aunque hay un detalle puñetero que os comentaré al final. Os dejo una captura de pantalla con la interfaz donde podéis ver que basta con elegir la imagen .iso y el dispositivo USB y darle a instalar.

WOEUsb

Por línea de comandos la cosa tampoco es muy complicada:

#La sintaxis es
#sudo woeusb -d CarpetaDeLaIso/ficherowindows.iso /dispositivoUsb
sudo woeusb -d ./Documentos/Windows7_x64_SP1.iso /dev/sdb

comando instalación woeusb

La cosa puñetera que os comentaba arriba, y que me hizo romperme un poco la cabeza, es que al tener el USB formateado no me permitía instalarlo. No se si era por estar en fat32 o por qué, pero al final tuve que abrir el gParted y borrar las particiones para que WoeUSB se encargara de volver a crearlas e instalar.

Diferentes formas de contar el número de líneas de un fichero desde la consola de Linux.

Si queremos contar el número de líneas que tiene un fichero desde la consola de Linux tenemos, al menos, cuatro métodos para conseguirlo. Os pongo los ejemplos de código:

Usando los comandos cat y wc:

cat fichero | wc -l

Con grep le podemos decir que cuente todo el documento de esta forma:

grep -c '.*' file

La opción -n de sed junto al operador = también nos hace el servicio:

sed -n '$=' file

Y para terminar vamos a ver cómo hacerlo con awk:

awk 'END {print NR}' file

Instalar y ejecutar Windows 95 como aplicación en Ubuntu/Debian.

Ejecutar Windows 95 dentro de un sistema Linux no es algo tan novedoso, a fin de cuentas con máquinas virtuales de Virtual Box o QEmu ya era posible desde hace años. Pero ahora Felix Rieseberg ha convertido el popular sistema operativo de Microsoft en una aplicación basada en el framework Electron.

El propio autor en su página de Github recomienda una virtualización para correr aplicaciones en lugar de su versión, que ha sido creada más con fines educativos que comerciales.

Para instalar el programa los comandos serían los siguientes:

#Descargamos el fichero
curl -O https://github.com/felixrieseberg/windows95/releases/download/v1.2.0/windows95-linux_1.2.0_amd64.deb
#desempaquetamos
sudo dpkg -i windows95-linux_1.2.0_amd64.deb
#Por si las dependencias
sudo apt install -f

Windows as an app

Una curiosidad que alegrará durante un rato a los nostálgicos que sufrimos este sistema operativo que se colgaba cada dos por tres pero que, a su vez, fue el primer Windows que tenía la barra de tareas y el botón de Inicio, convirtiéndose en modelo a imitar por muchos entornos gráficos posteriores.

Usar cURL en Linux para descargar un fichero.

Recordaréis que hace tiempo ya hablamos aquí sobre cURL, un proyecto creado por el sueco Daniel Stenberg a mediados de los 90 para crear un bot de IRC que calculaba el cambio de importes entre dólares y coronas.

La mayoría de distribuciones de Linux nos ofrecen un comando cURL con muchas utiliades, hoy vamos a ver cómo descargar un fichero desde un servidor: Para ello nos serviremos de las opciones -O u -o.

La primera guardará el fichero en el directorio en el que estemos posicionados con el mismo nombre que tiene en la localización remota, mientras que el segundo nos permitirá especificar el nombre y la ruta del fichero:

#Sin Cambiar nombre
curl -O http://dominio.com/fichero.tar.gz
#Cambiando nombre
curl -o nuevonombre.tar.gz http://dominio.com/fichero.tar.gz

Instalar Adobe Brackets en Ubuntu/Debian

No hace mucho hablábamos de Visual Studio Code y hoy vamos a ver otro editor: Adobe Brackets.

Adobe Brackets es un editor de texto para desarrollo web, creado por Adobe Systems. Se ha liberado bajo licencia MIT y el código puede ser revisado y descargado en GitHub.

Adobe Brackets

Cuenta con funciones interesantes como la posibilidad de editar ficheros en remoto, atajos de teclado para abrir el editor de CSS cuando seleccionamos una clase o id en el código, un selector de color o la posibilidad de vista previa en vivo.

Para descargarlo basta con acceder al sitio de descargas desde Github desde el que nos podemos descargar el paquete .deb (existen también empaquetado en formato .msi para usuarios de Windows o en .dmg para usuarios de MacOS X, el editor es multiplataforma). Una vez bajado podemos instalarlo mediante el gestor de paquetes o desde línea de comandos tal que así:

#Ejemplo para la versión 1.13 de 64 bits
#Si cambia la versión hay que cambiar el comando
sudo dpkg -i Brackets.Release.1.13.64-bit.deb

En caso de problemas con las dependencias bastaría con ejecutar:

sudo apt -f install

Browsh: un navegador web para Linux en modo texto desde la línea de comandos.

Con la idea de recuperar la esencia de los navegadores que usaban la interfaz de línea de comandos ha nacido Browsh. Se trata de un navegador web que funciona desde la línea de comandos, pero que abre una instancia de Firefox para poder poder mostrar páginas web en HTML5 con CSS3, JavaScript, vídeos, fotos y contenidos que tiran de WebGL. Se ha publicado bajo licencia GPLv3 y está disponible para varias plataformas: GNU/Linux, FreeBSD, OSX y Windows.

browsh the modern text-based browser

Los requisitos para instalar Browsh son tener una versión actual de Firefox (superior a la 57) y un cliente de terminal que soporte color real. Cumpliendo ambos solo tienes que descargar desde este enlace el instalador. Para Linux tienes paquetes .deb o .rpm dependiendo de tu distro.

Si te decides por los binarios estáticos recuerda que tendrás que darles permisos para que sean ejecutables: chmod a+x browsh_1.4.12_linux_amd64. Eso te permitirá ejecutar después el cliente TTY de Browsh: ./browsh_1.4.12_linux_amd64.

Está disponible también una imagen para Docker que incluye también una versión actualizada de Firefox, por lo que todo lo necesario para la ejecución ya está autocontenido en el paquete. Puedes ejecutar el cliente TTY con: docker run -it –rm browsh/browsh

Si no quieres instalarlo pero sí probarlo puedes utilizar el siguiente comando para acceder a una demo mediante ssh:

ssh brow.sh

Puedes revisar el código fuente de Browsh en la página de Github del proyecto y puedes también echarle un ojo a este vídeo-tutorial que he visto en youtube con el proceso de instalación:

fping: Una herramienta de ping “vitaminado” para Linux.

Todos conocemos ping, una utilidad diagnóstica que comprueba el estado de la comunicación del host local con uno o varios equipos remotos de una red IP por medio del envío de paquetes ICMP de solicitud (ICMP Echo Request) y de respuesta (ICMP Echo Reply). Hoy vamos a ver cómo funciona fping, un programa que nos permite ampliar las posibilidades que tiene el ping standar de Linux.

Para instalarlo, en un sistema de la familia Ubuntu/Debian, basta con teclear lo siguiente:

sudo apt-get install fping

¿Qué cosillas nos aporta fping? Veamos:

  • Lanzar un ping a varias IP a la vez: Basta con pasar como parámetro las direcciones IP separadas por un espacio y fping lanzará un ping a cada uno y nos responderá con el estado de cada IP.
  • Lanzar un ping a un rango de IP: Similar a lo anterior, pero en lugar de definir manualmente una lista de IP le damos dos valores para que compruebe todo entre ellos. Para hacerlo la sintaxis es fping -s -g y las dos direcciones IP separadas por un espacio. fping a rango
  • Lanzar un ping a toda la red: También podemos definir una máscara de red para que fping envíe ping a todos los equipos de la misma. En este caso la sintaxis fping -g seguido de la red que queremos revisar (en mi caso sería fping -g 192.168.1.0/24) dará una vuelta a vuestra red mandando pings a todas las direcciones.
    fping a toda la red
  • Carga direcciones desde un fichero: Supongamos que tenemos un fichero que se llama ListaIP.txt, pues con fping podemos cargar esa lista y recorrerla. Bastaría con hacer un fping < ListaIP.txt
  • Redirigir la salida a un fichero: Esto realmente no es una característica de fping sino que es algo general de Linux. Ya sabes que añadiendo el carácter > seguido de un nombre la salida de un comando se guarda en ese fichero. Por ejemplo fping -g -r 1 192.168.1.0/24 > red.txt crearía un fichero con ese nombre con el resultado de ese comando.

En este enlace puedes ver la documentación para exprimir a fondo todas las opciones de fping.

Distintas formas de invertir una cadena de texto en Linux.

Vamos a hablar un poco más sobre programar scripts en Linux y veamos cómo podemos invertir una cadena con distintos métodos:

Empezamos con lo más sencillo, usar la función rev:

echo holiii | rev

Usando el comando sed dos veces, junto con tac, también podemos hacerlo:

echo holiii | sed 's/./&\n/g' | tac | sed -e :a -e 'N;s/\n//g;ta'

Ya os podéis imaginar que si podemos hacerlo con sed es que también podemos hacerlo con awk, en este caso con la función substr() y un bucle for con el que recorreremos la cadena de fin a principio pintando cada letra:

echo holiii | awk '{ for(i=length;i!=0;i--)x=x substr($0,i,1);}END{print x}'

Y no podría faltar el tradicional script de shell. El principio es el mismo que con awk: recorrer la cadena del final hacia el inicio pintando cada elemento

#!/bin/bash
a="holiii"
len=`echo ${#a}`
while [ $len -ne 0 ]
do
        b=$b`echo $a | cut -c $len`
        ((len--))
done
echo $b