GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxlsblkコマンドチュートリアル(8例)

Linuxでは、ブロックデバイスは、デバイス(ハードドライブからUSBドライブまで)を参照または表す特別なファイルです。当然のことながら、ブロックデバイス関連の作業を支援するコマンドラインツールがあります。そのようなユーティリティがlsblkになると、 。

このチュートリアルでは、わかりやすい例を使用してこのコマンドについて説明します。ただし、その前に、ここで説明するすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。

Linuxlsblkコマンド

Linuxのlsblkコマンドは、ブロックデバイスを一覧表示します。その構文は次のとおりです。

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がどのように機能するかについてのより良いアイデアを提供するQ&Aスタイルの例です。

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の詳細については、manページにアクセスしてください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)