V Linuxu jsou bloková zařízení speciální soubory, které odkazují nebo představují zařízení (což může být cokoliv od pevného disku po USB disk). Samozřejmě existují nástroje příkazového řádku, které vám pomohou s prací související s blokovými zařízeními. Jednou takovou utilitou je lsblk .
V tomto tutoriálu probereme tento příkaz pomocí několika snadno srozumitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny zde uvedené příklady byly testovány na počítači Ubuntu 18.04 LTS.
Příkaz Linux lsblk
Příkaz lsblk v Linuxu uvádí bloková zařízení. Následuje jeho syntaxe:
lsblk [options] [device...]
A zde je návod, jak to vysvětluje manuálová stránka nástroje:
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
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak lsblk funguje.
O1. Jak používat příkaz lsblk?
Základní použití je poměrně jednoduché – stačí spustit 'lsblk' bez jakékoli možnosti.
lsblk
Následuje výstup, který tento příkaz vytvořil v mém systému:
V prvním sloupci jsou uvedeny názvy zařízení, za nimi následují odpovídající hlavní a vedlejší čísla zařízení, zda je zařízení vyměnitelné (1 v případě, že je), velikost zařízení, zda je zařízení pouze pro čtení, typ zařízení (disk , oddíl atd.) a nakonec bod připojení zařízení (pokud je k dispozici).
Q2. Jak zajistit, aby lsblk zobrazoval i prázdná zařízení?
Příkaz lsblk standardně zobrazuje pouze neprázdná zařízení. Můžete však vynutit, aby nástroj zobrazoval i prázdná zařízení. K tomu použijte volbu -a příkazového řádku.
lsblk -a
Například v mém případě výše uvedený příkaz vytvořil následující výstup:
Řádek „smyčka 13“ je v tomto případě novým přírůstkem.
Q3. Jak zajistit, aby lsblk tiskl informace o velikosti v bajtech?
Ve výchozím nastavení lsblk tiskne informace o velikosti ve formě čitelné pro člověka. I když je to dobré, jsou chvíle, kdy můžete potřebovat velikost v bajtech. Co je dobré, je, že existuje možnost (-b), která to dělá.
lsblk -b
Následuje příklad výstupu:
Takže můžete vidět, že sloupec 'Velikost' nyní obsahuje položky v bajtech.
4. Jak vytvořit model tiskové zóny lsblk pro každé zařízení?
To můžete provést pomocí volby příkazového řádku -z.
lsblk -z
Zde je například výstup výše uvedeného příkazu vytvořeného v mém systému:
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
O5. Jak přimět lsblk přeskočit položky pro otroky?
K tomu musíte použít volbu -d příkazového řádku, která říká lsblk, aby netiskl informace související s držáky nebo podřízenými zařízeními.
lsblk -d
Zde je příklad výstupu:
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
Pokud porovnáte s výstupem vytvořeným v předchozích případech, můžete vidět, že v tomto případě nejsou na výstupu vytvářeny žádné podřízené položky.
O6. Jak přimět lsblk používat znaky ASCII pro formátování stromu?
Ve výchozím nastavení nemusí být typ stromového formátování, který lsblk používá, v mnoha případech uživatelsky přívětivý. Například kopírování a vkládání může způsobit problémy s formátováním. Takže pokud chcete, můžete nástroj donutit, aby používal znaky ASCII pro formátování stromu, což můžete udělat pomocí volby příkazového řádku -i.
lsblk -i
Zde je příklad výstupu:
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
Takže můžete vidět, že výstup (viz položky sda) nyní obsahuje znaky ASCII ve stromovém formátování.
O7. Jak zajistit, aby lsblk zobrazoval informace o vlastníkovi zařízení, skupině a režimu?
Toho lze dosáhnout pomocí volby příkazového řádku -m.
lsblk -m
Zde je výstup výše uvedeného příkazu vytvořeného v mém případě:
O8. Jak zajistit, aby výstup lsblk vybral sloupce?
Pokud chcete, můžete také nasměrovat lsblk na výstup pouze vybraných sloupců, což můžete udělat pomocí volby příkazového řádku -o (která vyžaduje, abyste předali čárkami oddělený seznam sloupců, které chcete zobrazit).
Například:
lsblk -o NAME,SIZE
Výše uvedený příkaz vytvořil následující výstup:
Závěr
Pokud vaše práce v Linuxu zahrnuje přístup k informacím souvisejícím s blokovými zařízeními, pak je pro vás lsblk příkazem, který musíte znát. Zde v tomto tutoriálu jsme probrali několik možností příkazového řádku, které tento nástroj nabízí. Chcete-li se o lsblk dozvědět více, přejděte na jeho manuálovou stránku.