Linux lsblk Befehl für Anfänger (8 Beispiele)
Unter Linux sind Blockgeräte spezielle Dateien, die sich auf ein Gerät beziehen oder es repräsentieren (was von einer Festplatte bis zu einem USB-Laufwerk alles sein kann). Daher gibt es natürlich Befehlszeilen-Tools, die Ihnen bei der Arbeit mit Blockgeräten helfen. Sobald ein solches Dienstprogramm lsblk ist.
In diesem Tutorial werden wir diesen Befehl anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle hier genannten Beispiele auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.
Linux lsblk Befehl
Der Befehl lsblk unter Linux listet Blockgeräte auf. Folgendes ist seine Syntax:
lsblk [options] [device...]
Und so erklärt es die Man Page des Tools:
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
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie lsblk funktioniert.
Q1. Wie verwendet man den Befehl lsblk?
Die grundlegende Verwendung ist ziemlich einfach – führen Sie einfach’lsblk‘ ohne jede Option aus.
lsblk
Es folgt die Ausgabe dieses Befehls auf meinem System:
Die erste Spalte listet die Gerätenamen auf, gefolgt von den entsprechenden Haupt- und Nebengerätenummern, unabhängig davon, ob das Gerät entfernbar ist (1, falls vorhanden), die Größe des Geräts, ob das Gerät nur lesbar ist oder nicht, den Gerätetyp (Festplatte, Partition usw.) und schließlich den Mount-Punkt des Geräts (falls vorhanden).
Q2. Wie kann man erreichen, dass lsblk auch leere Geräte anzeigt?
Standardmäßig zeigt der Befehl lsblk nur nicht leere Geräte an. Sie können das Tool jedoch auch zwingen, leere Geräte anzuzeigen. Verwenden Sie dazu die Kommandozeilenoption -a.
lsblk -a
Zum Beispiel in meinem Fall hat der obige Befehl die folgende Ausgabe erzeugt:
Die Zeile’loop 13′ ist in diesem Fall der neue Zusatz.
Q3. Wie kann man lsblk Druckgrößeninformationen in Bytes erstellen?
Standardmäßig druckt lsblk Größeninformationen in menschenlesbarer Form. Während dieses gute, gibt es Zeiten, in denen Sie Größe in Bytes benötigen können. Was gut ist, ist, dass es eine Option (-b) gibt, die dies tut.
lsblk -b
Es folgt eine exemplarische Ausgabe:
So sehen Sie, dass die Spalte’Größe‘ nun Einträge in Bytes enthält.
Q4. Wie kann man lsblk Druckzonenmodell für jedes Gerät erstellen?
Dies kannst du mit der Kommandozeilenoption -z tun.
lsblk -z
Zum Beispiel, hier ist die Ausgabe des oben genannten Befehls, der auf meinem System erzeugt wurde:
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. Wie kann man lsblk Skip-Einträge für Slaves machen?
Dazu müssen Sie die Befehlszeilenoption -d verwenden, die lsblk anweist, keine Informationen über Haltergeräte oder Slaves zu drucken.
lsblk -d
Hier ist eine exemplarische Ausgabe:
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
Wenn Sie mit den in früheren Fällen produzierten Ausgaben vergleichen, sehen Sie, dass in diesem Fall keine Slave-Einträge in der Ausgabe erzeugt werden.
Q6. Wie kann man lsblk dazu bringen, ASCII-Zeichen für die Baumformatierung zu verwenden?
Standardmäßig ist die Art der Baumformatierung, die lsblk verwendet, in vielen Fällen nicht benutzerfreundlich. Beispielsweise kann das Einfügen von Kopien zu Formatierungsproblemen führen. Wenn Sie also möchten, können Sie das Tool zwingen, ASCII-Zeichen für die Baumformatierung zu verwenden, was Sie mit der Befehlszeilenoption -i tun können.
lsblk -i
Hier ist eine exemplarische Ausgabe:
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
So können Sie sehen, dass die Ausgabe (siehe sda-Einträge) nun ASCII-Zeichen in Baumformatierung enthält.
Q7. Wie kann man lsblk dazu bringen, Informationen über Gerätebesitzer, Gruppe und Modus anzuzeigen?
Dies kann mit der Kommandozeilenoption -m erreicht werden.
lsblk -m
Hier ist die Ausgabe des oben genannten Befehls, der in meinem Fall erzeugt wurde:
Q8. Wie kann man lsblk output dazu bringen, Spalten auszuwählen?
Wenn Sie möchten, können Sie lsblk auch anweisen, nur ausgewählte Spalten auszugeben, was Sie mit der Befehlszeilenoption -o tun können (was erfordert, dass Sie eine kommagetrennte Liste von Spalten übergeben, die Sie anzeigen möchten).
Zum Beispiel:
lsblk -o NAME,SIZE
Der vorgenannte Befehl erzeugte die folgende Ausgabe:
Fazit
Wenn Ihre Linux-Arbeit den Zugriff auf Informationen über Blockgeräte beinhaltet, dann ist lsblk ein Muss für Sie. Hier, in diesem Tutorial, haben wir einige Befehlszeilenoptionen besprochen, die dieses Tool bietet. Um mehr über lsblk zu erfahren, gehen Sie zu seiner Man Page.