jueves, 11 de abril de 2019

Averiguar los nombres de las interfaces de red en Ubuntu

En esta entrada se va a ver cómo averiguar el nombre de las tarjetas de red instaladas en un equipo con Ubuntu 18.04 (aunque también es aplicable a versiones anteriores).
Veamos un caso práctico: se tiene una máquina virtual con Ubuntu Server 18.04. Esta máquina tiene una tarjeta de red asociada. Se puede ver de la siguiente forma:
$ sudo ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.139  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe3b:740  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3b:07:40  txqueuelen 1000  (Ethernet)
        RX packets 151358  bytes 228391106 (228.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12188  bytes 1009977 (1.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 228  bytes 17347 (17.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 228  bytes 17347 (17.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
O de esta otra:

lunes, 8 de abril de 2019

Significado de primera línea de ls -l

El comando ls suele ejecutarse habitualmente seguido de la opción -l (entre otras). A parte de ver por pantalla la información que esperamos, siempre aparece una primera línea con el siguiente aspecto:
$ ls -l
total 12
-rw-r--r-- 1 root root 12287 abr  8 20:45 a
Aunque se suele pasar por alto esta primera línea, conviene saber qué significa toda información que nos muestre el sistema, y más en un comando tan usado como es ls -l.
La explicación que se encuentra en la documentación oficial del comando es la siguiente:

jueves, 4 de abril de 2019

Variables bash #3

En una entrada anterior, Variables bash #2, se vio cómo utilizar los parámetros que se pasan a un script en bash. En esta ocasión se va a mostrar una variable de bash llamada LINENO.
La variable $LINENO contiene el número de línea que se está ejecutando en cada momento en un script bash. Por tanto, si tenemos el siguiente código:
#!/usr/bin/env bash

echo "Primera linea"
echo $LINENO
echo "Segunda linea"
y se ejecuta, obtendremos el siguiente resultado:
$ ./prueba.sh
Primera linea
4
Segunda linea
Hay que destacar que se consideran las líneas vacías (en blanco) en la contabilidad de la línea en ejecución. En el caso mostrado, echo $LINENO está efectivamente en la línea número 4.
El uso de esta variable es útil para acotar errores en la ejecución de un script. Se pueden cambiar las líneas del tipo echo “Pasa por aquí” por un echo $LINENO. Además, se puede combinar con la activación de numeración de líneas en Vim para depurar de forma más rápida nuestro script.