Tutorial del comando lsblk de Linux para principiantes (8 ejemplos)

En Linux, los dispositivos de bloque son archivos especiales que hacen referencia o representan un dispositivo (que puede ser cualquier cosa, desde un disco duro hasta una unidad USB). Así que, naturalmente, hay herramientas de línea de comandos que te ayudan con tu trabajo relacionado con los dispositivos de bloque. Una de esas utilidades es lsblk.

En este tutorial, hablaremos de este comando utilizando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados aquí han sido probados en una máquina Ubuntu 18.04 LTS.

Comando lsblk de Linux

El comando lsblk en Linux enumera los dispositivos de bloque. A continuación se muestra su sintaxis:

lsblk [options] [device...]

Y así es como lo explica la página man de la herramienta:

       lsblk  lists  information  about  all  available or the specified block
       devices.  The lsblk command reads the sysfs filesystem and udev  db  to
       gather  information.  If  the udev db is not available or lsblk is com?
       piled without udev support than it tries  to  read  LABELs,  UUIDs  and
       filesystem  types  from the block device. In this case root permissions
       are necessary.

       The command prints all block devices (except RAM disks) in a  tree-like
       format  by  default.   Use  lsblk --help to get a list of all available
       columns.

       The default output, as well as the default  output  from  options  like
       --fs  and  --topology, is subject to change.  So whenever possible, you
       should avoid using default outputs in your scripts.  Always  explicitly
       define  expected columns by using --output columns-list in environments
       where a stable output is required.

       Note that lsblk might be executed in time when udev does not  have  all
       information  about recently added or modified devices yet. In this case
       it is recommended to use udevadm settle  before  lsblk  to  synchronize
       with udev

A continuación hay algunos ejemplos de estilo Q&A que deberían darte una mejor idea de cómo funciona lsblk.

Q1. ¿Cómo se utiliza el comando lsblk?

El uso básico es bastante sencillo: basta con ejecutar «lsblk» sin ninguna opción.

lsblk

A continuación se muestra la salida que produjo este comando en mi sistema:

Cómo utilizar el comando lsblk

La primera columna enumera los nombres de los dispositivos, seguidos de los correspondientes números de dispositivo mayor y menor, si el dispositivo es o no extraíble (1 en caso de que lo sea), el tamaño del dispositivo, si el dispositivo es o no de sólo lectura, el tipo de dispositivo (disco, partición, etc.) y, por último, el punto de montaje del dispositivo (si está disponible).

Q2. ¿Cómo hacer que lsblk muestre también los dispositivos vacíos?

Por defecto, el comando lsblk sólo muestra los dispositivos no vacíos. Sin embargo, puedes obligar a la herramienta a mostrar también los dispositivos vacíos. Para ello, utiliza la opción de línea de comandos -a.

lsblk -a

Por ejemplo, en mi caso, el comando anterior produjo la siguiente salida:

Cómo hacer que lsblk muestre también dispositivos vacíos

La fila «bucle 13» es la nueva adición en este caso.

Q3. ¿Cómo hacer que lsblk imprima la información del tamaño en bytes?

Por defecto, lsblk imprime la información del tamaño en forma legible para el ser humano. Aunque esto es bueno, hay veces que puedes necesitar el tamaño en bytes. Lo bueno es que hay una opción (-b) que hace esto.

lsblk -b

A continuación se muestra un ejemplo de salida:

Cómo hacer que lsblk imprima la información del tamaño en bytes

Así puedes ver que la columna «Tamaño» contiene ahora entradas en bytes.

Q4. ¿Cómo hacer que lsblk imprima el modelo de zona de cada dispositivo?

Puedes hacerlo utilizando la opción de línea de comandos -z.

lsblk -z

Por ejemplo, aquí está la salida que produjo el comando mencionado en mi sistema:

NAME   ZONED
loop0  none
loop1  none
loop2  none
loop3  none
loop4  none
loop5  none
loop6  none
loop7  none
loop8  none
loop9  none
loop10 none
loop11 none
loop12 none
sda    none
??sda1 none
??sda2 none
??sda3 none
??sda4 none
??sda5 none
??sda6 none
??sda7 none
??sda8 none
sdb    none
??sdb1 none
??sdb2 none

Q5. ¿Cómo hacer que lsblk omita las entradas de los esclavos?

Para ello, debes utilizar la opción de línea de comandos -d, que indica a lsblk que no imprima la información relacionada con los dispositivos titulares o esclavos.

lsblk -d

Aquí tienes un ejemplo de salida:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   3.3M  1 loop /snap/gnome-system-monitor/36
loop1    7:1    0  86.6M  1 loop /snap/core/4486
loop2    7:2    0   140M  1 loop /snap/gnome-3-26-1604/59
loop3    7:3    0    21M  1 loop /snap/gnome-logs/25
loop4    7:4    0    87M  1 loop /snap/core/5145
loop5    7:5    0   1.6M  1 loop /snap/gnome-calculator/154
loop6    7:6    0   2.3M  1 loop /snap/gnome-calculator/180
loop7    7:7    0  14.5M  1 loop /snap/gnome-logs/37
loop8    7:8    0   3.7M  1 loop /snap/gnome-system-monitor/51
loop9    7:9    0  12.2M  1 loop /snap/gnome-characters/69
loop10   7:10   0    13M  1 loop /snap/gnome-characters/103
loop11   7:11   0 140.9M  1 loop /snap/gnome-3-26-1604/70
loop12   7:12   0  86.9M  1 loop /snap/core/4917
sda      8:0    0 931.5G  0 disk
sdb      8:16   1  14.7G  0 disk

Si lo comparas con la salida producida en los casos anteriores, puedes ver que en este caso no se producen entradas de esclavos en la salida.

Q6. ¿Cómo hacer que lsblk utilice caracteres ascii para el formato de árbol?

Por defecto, el tipo de formato de árbol que utiliza lsblk puede no ser fácil de usar en muchos casos. Por ejemplo, copiar y pegar puede causar problemas de formato. Así que, si quieres, puedes forzar a la herramienta a utilizar caracteres ascii para el formato del árbol, algo que puedes hacer utilizando la opción de línea de comandos -i.

lsblk -i

Aquí tienes un ejemplo de salida:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   3.3M  1 loop /snap/gnome-system-monitor/36
loop1    7:1    0  86.6M  1 loop /snap/core/4486
loop2    7:2    0   140M  1 loop /snap/gnome-3-26-1604/59
loop3    7:3    0    21M  1 loop /snap/gnome-logs/25
loop4    7:4    0    87M  1 loop /snap/core/5145
loop5    7:5    0   1.6M  1 loop /snap/gnome-calculator/154
loop6    7:6    0   2.3M  1 loop /snap/gnome-calculator/180
loop7    7:7    0  14.5M  1 loop /snap/gnome-logs/37
loop8    7:8    0   3.7M  1 loop /snap/gnome-system-monitor/51
loop9    7:9    0  12.2M  1 loop /snap/gnome-characters/69
loop10   7:10   0    13M  1 loop /snap/gnome-characters/103
loop11   7:11   0 140.9M  1 loop /snap/gnome-3-26-1604/70
loop12   7:12   0  86.9M  1 loop /snap/core/4917
sda      8:0    0 931.5G  0 disk
|-sda1   8:1    0   100M  0 part
|-sda2   8:2    0  52.5G  0 part
|-sda3   8:3    0   293G  0 part
|-sda4   8:4    0     1K  0 part
|-sda5   8:5    0  93.4G  0 part
|-sda6   8:6    0   293G  0 part
|-sda7   8:7    0   3.9G  0 part
`-sda8   8:8    0 195.8G  0 part /
sdb      8:16   1  14.7G  0 disk
|-sdb1   8:17   1   200M  0 part
`-sdb2   8:18   1  14.5G  0 part

Así puedes ver que la salida (ver entradas sda) contiene ahora caracteres ASCII en el formato de árbol.

Q7. ¿Cómo hacer que lsblk muestre información sobre el propietario, el grupo y el modo del dispositivo?

Esto se puede conseguir utilizando la opción de línea de comandos -m.

lsblk -m

Aquí está la salida que produjo el comando mencionado en mi caso:

Cómo hacer que lsblk muestre información sobre el propietario, el grupo y el modo del dispositivo

Q8. ¿Cómo hacer que lsblk muestre columnas seleccionadas?

Si quieres, también puedes hacer que lsblk muestre sólo las columnas seleccionadas, algo que puedes hacer utilizando la opción de línea de comandos -o (que requiere que pases una lista de columnas separadas por comas que quieras mostrar).

Por ejemplo:

lsblk -o NAME,SIZE

El comando mencionado anteriormente produjo la siguiente salida:

Cómo hacer que la salida de lsblk seleccione columnas

Conclusión

Si tu trabajo en Linux implica acceder a información relacionada con dispositivos de bloque, entonces lsblk es un comando que debes conocer. En este tutorial hemos hablado de varias opciones de línea de comandos que ofrece esta herramienta. Para saber más sobre lsblk, dirígete a su página man.

También te podría gustar...