Поиск по сайту:

Учебное пособие по команде Linux lsblk для начинающих (8 примеров)


На этой странице

  1. Команда Linux lsblk
  2. Q1. Как использовать команду lsblk?
  3. Вопрос 2. Как заставить lsblk отображать и пустые устройства?
  4. Вопрос 3. Как заставить lsblk печатать информацию о размере в байтах?
  5. Q4. Как сделать модель зоны печати lsblk для каждого устройства?
  6. В5. Как заставить lsblk пропускать записи для рабов?
  7. Q6. Как заставить lsblk использовать символы ascii для форматирования дерева?
  8. Q7. Как заставить lsblk отображать информацию о владельце, группе и режиме устройства?
  9. Q8. Как заставить lsblk выводить выбранные столбцы?
  10. Заключение

В Linux блочные устройства — это специальные файлы, которые ссылаются на устройство или представляют его (это может быть что угодно, от жесткого диска до USB-накопителя). Поэтому, естественно, существуют инструменты командной строки, которые помогут вам в работе, связанной с блочными устройствами. Раз такой утилитой является lsblk.

В этом уроке мы обсудим эту команду на нескольких простых для понимания примерах. Но прежде чем мы это сделаем, стоит упомянуть, что все упомянутые здесь примеры были протестированы на компьютере с Ubuntu 18.04 LTS.

Команда Linux lsblk

Команда lsblk в Linux выводит список блочных устройств. Ниже приведен его синтаксис:

lsblk [options] [device...]

И вот как это объясняет справочная страница инструментов:

       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

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам лучшее представление о том, как работает lsblk.

Q1. Как использовать команду lsblk?

Основное использование довольно простое — просто выполните lsblk без каких-либо опций.

lsblk

Ниже приведен вывод, который эта команда произвела в моей системе:

В первом столбце перечислены имена устройств, за которыми следуют соответствующие старшие и второстепенные номера устройств, независимо от того, является ли устройство съемным (1 в этом случае), размер устройства, доступно ли устройство только для чтения, тип устройства (диск , раздел и т. д.) и, наконец, точку монтирования устройства (если она доступна).

Q2. Как заставить lsblk отображать и пустые устройства?

По умолчанию команда lsblk отображает только непустые устройства. Однако вы также можете заставить инструмент отображать пустые устройства. Для этого используйте параметр командной строки -a.

lsblk -a

Например, в моем случае приведенная выше команда выдала следующий вывод:

Новым прибавлением в данном случае является петля 13 ряда.

Q3. Как заставить lsblk печатать информацию о размере в байтах?

По умолчанию lsblk выводит информацию о размере в удобочитаемой форме. Хотя это хорошо, бывают случаи, когда вам может понадобиться размер в байтах. Что хорошо, так это то, что есть опция (-b), которая делает это.

lsblk -b

Ниже приведен пример вывода:

Итак, вы можете видеть, что столбец Размер теперь содержит записи в байтах.

Q4. Как сделать модель зоны печати lsblk для каждого устройства?

Это можно сделать с помощью параметра командной строки -z.

lsblk -z

Например, вот вывод вышеупомянутой команды в моей системе:

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. Как заставить lsblk пропускать записи для рабов?

Для этого вам нужно использовать параметр командной строки -d, который указывает lsblk не печатать информацию, связанную с устройствами-держателями или ведомыми устройствами.

lsblk -d

Вот пример вывода:

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

Если вы сравните вывод, созданный в предыдущих случаях, вы увидите, что в этом случае в выводе не создаются ведомые записи.

Q6. Как заставить lsblk использовать символы ascii для форматирования дерева?

По умолчанию тип форматирования дерева, который использует lsblk, во многих случаях может быть неудобным для пользователя. Например, копирование и вставка могут вызвать проблемы с форматированием. Поэтому, если вы хотите, вы можете заставить инструмент использовать символы ascii для форматирования дерева, что вы можете сделать с помощью параметра командной строки -i.

lsblk -i

Вот пример вывода:

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

Таким образом, вы можете видеть, что вывод (см. записи sda) теперь содержит символы ASCII в формате дерева.

Q7. Как заставить lsblk отображать информацию о владельце, группе и режиме устройства?

Этого можно добиться с помощью параметра командной строки -m.

lsblk -m

Вот вывод, который произвела вышеупомянутая команда в моем случае:

Q8. Как заставить lsblk выводить выбранные столбцы?

Если вы хотите, вы также можете указать lsblk для вывода только выбранных столбцов, что вы можете сделать с помощью параметра командной строки -o (который требует, чтобы вы передали разделенный запятыми список столбцов, которые вы хотите отобразить).

Например:

lsblk -o NAME,SIZE

Вышеупомянутая команда выдала следующий вывод:

Заключение

Если ваша работа в Linux связана с доступом к информации, связанной с блочными устройствами, то lsblk — это обязательная команда для вас. Здесь, в этом руководстве, мы обсудили несколько вариантов командной строки, предлагаемых этим инструментом. Чтобы узнать больше о lsblk, перейдите на его справочную страницу.