Pengenalan kepada arahan LSBLK

Pengenalan kepada arahan LSBLK

LSBLK adalah utiliti yang sangat bagus yang dipasang secara lalai pada praktikal semua pengagihan Linux: kita boleh menggunakannya untuk mendapatkan pelbagai maklumat mengenai semua peranti blok yang dilampirkan pada sistem. Dalam artikel ini kita akan melihat bagaimana ia berfungsi dan cara menggunakannya.

Dalam tutorial ini anda akan belajar:

  • Cara menggunakan utiliti LSBLK untuk mendapatkan maklumat mengenai peranti blok
  • Apakah maksud lajur yang dipaparkan dalam output utiliti lalai
  • Cara menentukan lajur yang akan dipaparkan dan memformat output sebagai json atau sebagai senarai
  • Cara memaparkan maklumat mengenai peranti tertentu.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian lsblk
Yang lain Tiada keperluan lain yang diperlukan
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Penggunaan asas lsblk

Dalam penggunaannya yang paling asas, apabila dipanggil tanpa sebarang pilihan atau hujah tertentu, utiliti LSBLK akan menghasilkan output seperti pokok termasuk semua peranti blok yang dilampirkan pada sistem pengendalian. Berikut adalah contoh:

Nama Maj: Min RM Saiz RO Jenis Mountpoint SDA 8: 0 0 232.9g 0 cakera ├─sda1 8: 1 0 1g 0 bahagian /boot └─sda2 8: 2 0 231.9G 0 Bahagian └─Luk-5794A0B4-7082-4769-B86B-BD27A544361A 253: 0 0 231.9g 0 crypt ├─fingolfin_vg-root_lv 253: 1 0 35g 0 lvm / ├─fingolfin_vg-swap_lv 253: 2 0 6g 0 lvm [swap] ├─fingolfin_vg-home_lv 253: 3 253: 4 0 170g 0 lvm /mnt /data sr0 11: 0 1 1024m 0 rom zram0 252: 0 0 2.8g 0 cakera [swap] 


Struktur seperti pokok sangat berguna untuk mengenal pasti peranti dan partisi mereka, ditambah pula dengan cara mereka berstruktur pada peranti. Dalam output di atas, contohnya kita dapat melihat bahawa dua partition di SDA Peranti: SDA1 dan SDA2.

Seperti yang dapat kita perhatikan, bekas adalah partition "standard": kita dapat mengenal pasti seperti itu kerana kita dapat melihat nilai yang sepadan dalam Jenis lajur, yang dalam kes ini adalah bahagian. Kita juga dapat melihat bahawa partition kini dipasang di /boot.

Yang terakhir, SDA2, juga merupakan partition standard, tetapi seperti yang kita dapat dengan mudah memahami dari graf, ia mempunyai beberapa peranti "kanak -kanak" atau "hamba". Yang pertama adalah Luks bekas yang dikenal pasti oleh LUKS-5794A0B4-7082-4769-B86B-BD27A544361A (Ini adalah nama pemetaan peranti). Menjadi sistem yang dipasang pada LVM pada persediaan LUKS, bekas luks itu sendiri ditandakan sebagai jumlah fizikal, dan mengandungi beberapa jumlah logik yang dipasang di pelbagai bahagian sistem.

Dalam lajur pertama output kita dapat melihat maklumat mengenai peranti Nama disediakan, itu agak mudah difahami. Sila ambil perhatian bahawa hanya nama peranti yang dipaparkan secara lalai, dan bukan jalan penuhnya: untuk dipaparkan, sebaliknya, kita harus menggunakan -p pilihan.

Lajur kedua dinamakan Maj: Min: itu adalah nombor yang digunakan oleh kernel untuk mengenal pasti peranti secara dalaman, nombor pertama yang menyatakan jenis peranti (8 Sebagai contoh, digunakan untuk cakera SCSI).

Lajur ketiga yang dipaparkan dalam output lalai lalai adalah Rm: dengan melihat lajur ini kita dapat melihat apakah peranti itu boleh ditanggalkan (nilai itu akan 1), atau tidak. Dalam output di atas, hanya satu peranti yang ditandakan sebagai boleh ditanggalkan, SR0, iaitu
pemacu optik.

Skop lajur keempat mudah dikenal pasti dengan namanya: Saiz. Di dalamnya saiz peranti yang sepadan dipaparkan.

Lajur kelima adalah Ro: lajur ini digunakan untuk menentukan sama ada peranti itu hanya dibaca atau tidak. Seperti Rm lajur, nilai dalam lajur digunakan sebagai boolean, jadi 1 bermaksud peranti hanya dibaca.

Lajur keenam output adalah Jenis: Seperti yang telah kita sebutkan tadi, lajur ini digunakan untuk mengenal pasti jenis peranti atau partition. Sebagai contoh, memerhatikan output arahan, kita dapat melihat bahawa Crypt Nilai digunakan untuk mengenal pasti bekas Luks sementara lvm digunakan untuk mengenal pasti peranti kelantangan logik, dan cakera digunakan untuk peranti blok mentah seperti SDA.

Lajur ketujuh dan terakhir adalah Mountpoint: Lajur ini memberikan maklumat mengenai titik gunung semasa setiap peranti partition/blok.

Mengumpulkan maklumat mengenai peranti tertentu

Seperti yang kita lihat di atas, jika kita memohon lsblk perintah tanpa sebarang hujah atau pilihan lain yang kami dapatkan maklumat mengenai peranti yang dilampirkan pada sistem. Bagaimana jika kita ingin mendapatkan maklumat mengenai peranti tertentu?

Yang harus kita lakukan ialah lulus peranti yang kita ingin mengumpulkan maklumat tentang sebagai argumen perintah lsblk. Contohnya, jika kita hanya mahu memeriksa SDA1 peranti, kami akan menjalankan:

$ lsblk /dev /sda1 

Perhatikan kami memberikan laluan penuh peranti, dan bukan hanya namanya. Output yang dihasilkan dari arahan di atas, seperti yang diharapkan, adalah yang berikut:

Nama Maj: Min Rm Saiz Ro Jenis Mount Sda1 8: 1 0 1g 0 Bahagian /Boot 

Menentukan lajur yang akan dipaparkan dalam output LSBLK

Kami sudah melihat apakah lajur yang disertakan secara lalai dalam output lsblk apabila ia dipanggil tanpa pilihan tertentu. Walau bagaimanapun, hanya satu subset kecil yang ada. Untuk menentukan maklumat yang kita mahu disertakan dalam output kita mesti menggunakan -o pilihan (pendek untuk --pengeluaran) dan menyediakan senarai lajur yang dipisahkan koma yang kami mahu disertakan. Sebagai contoh, untuk output untuk memasukkan hanya maklumat mengenai nama peranti dan jenis sistem fail, kita boleh menjalankan:

$ lsblk -o nama, fstype 


Perintah di atas akan mengembalikan output berikut:

NAME FSTYPE sda ├─sda1 ext2 └─sda2 crypto_LUKS └─luks-5794a0b4-7082-4769-b86b-bd27a544361a LVM2_member ├─fingolfin_vg-root_lv ext4 ├─fingolfin_vg-swap_lv swap ├─fingolfin_vg-home_lv ext4 └─fingolfin_vg-data_lv ext4 sr0 ZRAM0 

Untuk senarai lengkap lajur yang ada dan penjelasan mengenai maklumat yang mereka sediakan, kami boleh menggunakan utiliti LSBLK dengan --tolong pilihan:

Lajur Output yang Tersedia: Nama Peranti Nama Kname Laluan Peranti Kernel Dalaman Laluan Laluan ke Node Peranti Maj: Min Major: Nombor Peranti Kecil FSAVAIL Saiz FileSystem Saiz Tersedia Saiz FileSystem FSType Type FileSystem Type Fsused FileSystem Saiz Digunakan FSUSE% Filesystem Gunakan Peratusan Filesy Filesystem Versi Filesystemen Mountpoint di mana Peranti dipasang label label label uuid filesystem uuid ptuuid partition meja pengenalpastian jadual (biasanya uuid) pttype partition type parttype parttype parttype type code atau uuid parttypename partition type partlabel partlabel label partuuid partuid partflags parting party party party party party party party party party party party parting road rae-ahads rae-ahads bendera bendera rae-ahads raead -Only Device Device Device Hotplug Device atau Hotplug Device (USB, PCMCIA,…) Pengenalpastian peranti model Serial Serial Nombor Saiz Saiz saiz keadaan peranti pemilik peranti nama pengguna kumpulan nama kumpulan nama peranti nod keizinan penjajaran mengimbangi min-io minimum i/o saiz optimum i/o saiz optimum phy- SEC Saiz Sektor Fizikal Log-sec Saiz Sektor Logik ROTA Peranti Rotasi Jadual I/O Nama Penjadual RQ-SIZE SIZE Saiz Jenis Jenis Peranti Jenis Cakera ALN Penjajaran Offset Disc-Gran Discard Granularity Disc-Max Discard Max Bytes Disc-Zero Discard Zeroes Data wsame tulis maksimum maksimum yang sama dengan pengenal penyimpanan unik rand menambah rawak pkname nama induk dalaman alat peranti hctl host: saluran: sasaran: lun untuk scsi tran peranti pengangkutan jenis subsistem de-duppled rantaian subsistem rev rev revision vendor zon zon zon vendor dax dax peranti berkapasiti DAX 

Beberapa pilihan juga boleh digunakan, yang memahami satu set lajur yang telah ditetapkan: lsblk dengan -f (atau --fsPilihan, sebagai contoh, seperti memanggilnya dengan menentukan Ame,Fstype,Label,Uuid,Fsavail,Fsuse%,Mountpoint
lajur.

Mengubah format output

Dalam contoh sebelumnya, kita melihat bagaimana output lalai yang dihasilkan oleh penyerahan perintah LSBLK, adalah perwakilan seperti pokok peranti blok yang dilampirkan pada sistem, dan peranti anak atau hamba mereka. Namun, terdapat banyak pilihan yang boleh kita gunakan untuk mengubah suai bagaimana output dipaparkan.

Pertama sekali, kita boleh menggunakan -d pilihan (pendek untuk --nodep) untuk memaparkan hanya peranti induk. Berikut adalah hasil daripada menggunakan LSBLK dengan pilihan tersebut:

Nama Maj: Min RM Saiz RO Jenis Mountpoint SDA 8: 0 0 232.9g 0 cakera sr0 11: 0 1 1024m 0 rom zram0 252: 0 0 2.8g 0 cakera [swap] 

Pilihan lain yang sangat menarik, adalah -J, atau --json: dengan itu kita dapat memperoleh maklumat mengenai peranti blok dan hubungan mereka, di json Format:

$ lsblk -j "blockdevices": ["name": "sda", "maj: min": "8: 0", "rm": false, "saiz": "232.9g "," ro ": palsu," jenis ":" cakera "," mountpoint ": null," kanak -kanak ": [" name ":" sda1 "," maj: min ":" 8: 1 "," rm ": palsu," saiz ":" 1g "," ro ": palsu," jenis ":" bahagian "," mountpoint ":"/boot ", " name ":" sda2 "," maj: min min ":" 8: 2 "," rm ": palsu," saiz ":" 231.9g "," ro ": palsu," jenis ":" bahagian "," mountpoint ": null," anak-anak ": [" name ":" luks-5794a0b4-7082-4769-b86b-bd27a544361a "," Maj: min ":" 253: 0 "," rm ": palsu," saiz ":" 231.9g "," ro ": false," type ":" crypt "," mountpoint ": null," children ": [" name ":" fingolfin_vg-root_lv "," Maj: min ":" 253: 1 " , "rm": palsu, "saiz": "35g", "ro": false, "type": "lvm", "mountpoint": "/", "name": "fingolfin_vg-swap_lv", " Maj: min ":" 253: 2 "," rm ": false," saiz ":" 6g "," ro ": false," type ":" lvm "," mountpoint ":" [swap] ". "name": "fingolfin_vg-home_lv", "Maj: min": "253: 3", "rm": false, "saiz": "15g", "ro": false, "type": "lvm" , "mountpoint": "/home", "name": "fingolfin_vg-data_lv", "maj: min": "253: 4", "rm": false, "saiz": "170g", "ro "Palsu," jenis ":" lvm "," mountpoint ":"/mnt/data "]]], " name ":" sr0 "," maj: min ":" 11: 0 " , "rm": benar, "saiz": "1024m", "ro": false, "type": "rom", "mountpoint": null, "name": "zram0", "maj: min" : "252: 0", "rm": palsu, "saiz": "2.8g "," ro ": palsu," jenis ":" cakera "," mountpoint ":" [swap] "] 


Output jenis ini sangat berguna, antara perkara lain, kerana ia dapat dengan mudah dihuraikan dengan bahasa pengaturcaraan yang lebih lengkap seperti python.

Cara lain untuk menukar output yang dipaparkan ialah menggunakan -L atau --senarai pilihan, yang menghasilkan output dalam bentuk senarai. Walau bagaimanapun, apabila output ini dipilih, hubungan antara peranti ditinggalkan, kerana senarai, olehnya
Alam adalah "rata":

$ lsblk -l Nama MAJ: min RM Saiz RO Jenis Mountpoint SDA 8: 0 0 232.9g 0 cakera sda1 8: 1 0 1g 0 bahagian /boot sda2 8: 2 0 231.9g 0 bahagian sr0 11: 0 1 1024m 0 rom zram0 252: 0 0 2.8g 0 cakera [swap] LUKS-5794A0B4-7082-4769-B86B-BD27A544361A 253: 0 0 231.9g 0 Crypt fingolfin_vg-root_lv 253: 1 0 35g 0 lvm / fingolfin_vg-swap_lv 253: 2 0 6g 0 lvm [swap] fingolfin_vg-home_lv 253: 3 0 15g 0 lvm / fingolfin_vg MNT/DATA 

Untuk mengatur output dalam "pasangan", sebaliknya, kita boleh menggunakan -P atau --Pasangan pilihan:

$ lsblk -PPairs Name = "SDA" MAJ: MIN = "8: 0" RM = "0" SIZE = "232.9g "ro =" 0 "type =" disk "name =" sda2 "maj: min =" 8: 2 "rm =" 0 "size =" 231.9g "ro =" 0 "type =" part "name =" luks-5794a0b4-7082-4769-b86b-bd27a544361a "maj: min =" 253: 0 "rm =" 0 "size =" 231.9g "ro =" 0 "type =" crypt "name =" fingolfin_vg-root_lv "maj: min =" 253: 1 "rm =" 0 "size =" 35g "ro =" 0 "type =" lvm "mountpoint = "/" Name = "fingolfin_vg-data_lv" maj: min = "253: 4" rm = "0" size = "170g" ro = "0" type = "lvm" mountpoint = "/mnt/data" name = " fingolfin_vg-swap_lv "maj: min =" 253: 2 "rm =" 0 "size =" 6g "ro =" 0 "type =" lvm "mountpoint =" [swap] "name =" fingolfin_vg-home_lv "Maj: min = "253: 3" rm = "0" size = "15g" ro = "0" type = "lvm" mountpoint = "/home" name = "sda1" maj: min = "8: 1" rm = "0 "Saiz =" 1g "ro =" 0 "type =" part "mountpoint ="/boot "name =" sr0 "maj: min =" 11: 0 "rm =" 1 "size =" 1024m "ro =" 0 "Type =" rom "name =" zram0 "maj: min =" 252: 0 "rm =" 0 "size =" 2.8g "ro =" 0 "type =" disk "mountpoint =" [swap] " 

Satu lagi pilihan yang sangat penting yang berguna untuk digunakan terutamanya dalam skrip, adalah -n, yang pendek untuk --tidak ada kepala. Pilihan ini mengubah output supaya garis header, dan nama lajur ditinggalkan. Kes penggunaan konkrit akan menjadi yang berikut. Katakan bahawa dalam skrip kita ingin mendapatkan jenis sistem fail partition tertentu (katakanlah SDA1), dan "menyimpannya" dalam pembolehubah, kita boleh menulis:

$ fsys = "$ (lsblk --noheadings -o fstype /dev /sda1)" 

Kesimpulan

Dalam tutorial ini, kami belajar mengetahui arahan LSBLK dan bagaimana ia dapat digunakan untuk mendapatkan maklumat mengenai peranti blok yang dilampirkan pada sistem dan hubungan mereka. Kami mempelajari makna lajur lalai yang dipaparkan apabila utiliti dipanggil tanpa sebarang pilihan atau hujah, kami melihat bagaimana untuk mendapatkan maklumat mengenai peranti tertentu, dan pelbagai pilihan yang boleh kami gunakan untuk

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Bekerja Dengan API Rest WooCommerce dengan Python
  • Menguasai Gelung Skrip Bash
  • Manipulasi data besar untuk keseronokan dan keuntungan bahagian 3
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Cara memanipulasi jadual partition GPT dengan gdisk dan sgdisk ..
  • Gelung bersarang dalam skrip bash