Trong Linux, thiết bị khối là các tệp đặc biệt tham chiếu đến hoặc biểu diễn một thiết bị (có thể là bất kỳ thứ gì từ ổ cứng đến ổ USB). Vì vậy, tất nhiên, có các công cụ dòng lệnh giúp bạn thực hiện công việc liên quan đến thiết bị khối. Một tiện ích như vậy là lsblk.
Trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần đề cập rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Và đây là cách trang hướng dẫn của công cụ giải thích về lệnh này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lsblk hoạt động.
Sau đây là đầu ra mà lệnh này tạo ra trên hệ thống của tôi:
Cột đầu tiên liệt kê tên thiết bị, theo sau là số thiết bị chính và phụ tương ứng, thiết bị có thể tháo rời hay không (1 trong trường hợp có thể), kích thước của thiết bị, thiết bị có chỉ đọc hay không, loại thiết bị (đĩa, phân vùng, v.v.) và cuối cùng là điểm gắn kết của thiết bị (nếu có).
Ví dụ trong trường hợp của tôi, lệnh trên tạo ra kết quả sau:
Hàng 'loop 13' là phần bổ sung mới trong trường hợp này.
Sau đây là ví dụ về kết quả đầu ra:
Vì vậy, bạn có thể thấy cột 'Kích thước' hiện chứa các mục nhập tính bằng byte.
Ví dụ, đây là đầu ra mà lệnh đã đề cập ở trên tạo ra trên hệ thống của tôi:
Sau đây là một ví dụ về đầu ra:
Nếu bạn so sánh với đầu ra được tạo ra trong các trường hợp trước, bạn có thể thấy không có mục nhập phụ nào được tạo ra trong đầu ra trong trường hợp này.
Đây là một ví dụ về đầu ra:
Vì vậy, bạn có thể thấy đầu ra (xem mục sda) hiện chứa các ký tự ASCII ở định dạng cây.
Đây là kết quả đầu ra mà lệnh đã đề cập ở trên tạo ra trong trường hợp của tôi:
Ví dụ:
Lệnh đã đề cập ở trên tạo ra đầu ra sau:
Trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần đề cập rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Lệnh lsblk của Linux
Lệnh lsblk trong Linux liệt kê các thiết bị khối. Sau đây là cú pháp của lệnh:
Mã:
lsblk [tùy chọn] [thiết bị...]
Mã:
[B][/b] lsblk liệt kê thông tin về tất cả các thiết bị khối
khả dụng hoặc đã chỉ định. Lệnh lsblk đọc hệ thống tệp sysfs và udev db để
thu thập thông tin. Nếu udev db không khả dụng hoặc lsblk được xếp chồng mà không có hỗ trợ udev thì nó sẽ cố gắng đọc NHÃN, UUID và
kiểu hệ thống tệp từ thiết bị khối. Trong trường hợp này, cần có quyền root
.
Lệnh này in tất cả các thiết bị khối (trừ đĩa RAM) theo định dạng dạng cây
theo mặc định. Sử dụng lsblk --help để lấy danh sách tất cả các cột
khả dụng.
Đầu ra mặc định, cũng như đầu ra mặc định từ các tùy chọn như
--fs và --topology, có thể thay đổi. Vì vậy, bất cứ khi nào có thể,
bạn nên tránh sử dụng đầu ra mặc định trong các tập lệnh của mình. Luôn luôn xác định rõ ràng
các cột mong đợi bằng cách sử dụng --output columns-list trong các môi trường
nơi yêu cầu đầu ra ổn định.
Lưu ý rằng lsblk có thể được thực thi kịp thời khi udev chưa có tất cả
thông tin về các thiết bị được thêm hoặc sửa đổi gần đây. Trong trường hợp này
nên sử dụng udevadm settle trước lsblk để đồng bộ hóa
với udev
Câu hỏi 1. Làm thế nào để sử dụng lệnh lsblk?
Cách sử dụng cơ bản khá đơn giản - chỉ cần thực thi 'lsblk' mà không có bất kỳ tùy chọn nào.
Mã:
lsblk
Cột đầu tiên liệt kê tên thiết bị, theo sau là số thiết bị chính và phụ tương ứng, thiết bị có thể tháo rời hay không (1 trong trường hợp có thể), kích thước của thiết bị, thiết bị có chỉ đọc hay không, loại thiết bị (đĩa, phân vùng, v.v.) và cuối cùng là điểm gắn kết của thiết bị (nếu có).
Câu hỏi 2. Làm thế nào để lsblk hiển thị cả các thiết bị trống?
Theo mặc định, lệnh lsblk chỉ hiển thị các thiết bị không trống. Tuy nhiên, bạn có thể buộc công cụ hiển thị cả các thiết bị trống. Đối với điều này, hãy sử dụng tùy chọn dòng lệnh -a.
Mã:
lsblk -a
Hàng 'loop 13' là phần bổ sung mới trong trường hợp này.
Câu hỏi 3. Làm thế nào để lsblk in thông tin kích thước theo byte?
Theo mặc định, lsblk in thông tin kích thước theo dạng con người có thể đọc được. Mặc dù điều này tốt, nhưng có những lúc bạn có thể cần kích thước theo byte. Điểm hay là có tùy chọn (-b) thực hiện việc này.
Mã:
lsblk -b
Vì vậy, bạn có thể thấy cột 'Kích thước' hiện chứa các mục nhập tính bằng byte.
Câu 4. Làm thế nào để tạo mô hình vùng in lsblk cho từng thiết bị?
Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -z.
Mã:
lsblk -z
Mã:
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
Câu hỏi 5. Làm thế nào để lsblk bỏ qua các mục nhập cho slave?
Đối với điều này, bạn cần sử dụng tùy chọn dòng lệnh -d, tùy chọn này yêu cầu lsblk không in thông tin liên quan đến thiết bị giữ hoặc slave.
Mã:
lsblk -d
Mã:
TÊN MAJ:MIN RM KÍCH THƯỚC RO LOẠI ĐIỂM GẮN
loop0 7:0 0 3,3M 1 vòng /snap/gnome-system-monitor/36
loop1 7:1 0 86,6M 1 vòng /snap/core/4486
loop2 7:2 0 140M 1 vòng /snap/gnome-3-26-1604/59
loop3 7:3 0 21M 1 vòng /snap/gnome-logs/25
loop4 7:4 0 87M 1 vòng /snap/core/5145
loop5 7:5 0 1,6M 1 vòng /snap/gnome-calculator/154
loop6 7:6 0 2,3M 1 vòng /snap/gnome-calculator/180
loop7 7:7 0 14,5M 1 vòng lặp /snap/gnome-logs/37
loop8 7:8 0 3,7M 1 vòng lặp /snap/gnome-system-monitor/51
loop9 7:9 0 12,2M 1 vòng lặp /snap/gnome-characters/69
loop10 7:10 0 13M 1 vòng lặp /snap/gnome-characters/103
loop11 7:11 0 140,9M 1 vòng lặp /snap/gnome-3-26-1604/70
loop12 7:12 0 86,9M 1 vòng lặp /snap/core/4917
sda 8:0 0 931,5G 0 đĩa
sdb 8:16 1 14.7G 0 disk
Câu hỏi 6. Làm thế nào để lsblk sử dụng các ký tự ascii để định dạng cây?
Theo mặc định, loại định dạng cây mà lsblk sử dụng có thể không thân thiện với người dùng trong nhiều trường hợp. Ví dụ, sao chép-dán có thể gây ra sự cố định dạng. Vì vậy, nếu muốn, bạn có thể buộc công cụ sử dụng ký tự ASCII để định dạng cây, điều mà bạn có thể thực hiện bằng tùy chọn dòng lệnh -i.
Mã:
lsblk -i
Mã:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 3.3M 1 vòng lặp /snap/gnome-system-monitor/36
loop1 7:1 0 86.6M 1 vòng lặp /snap/core/4486
loop2 7:2 0 140M 1 vòng lặp /snap/gnome-3-26-1604/59
loop3 7:3 0 21M 1 vòng lặp /snap/gnome-logs/25
loop4 7:4 0 87M 1 vòng lặp /snap/core/5145
loop5 7:5 0 1,6M 1 vòng lặp /snap/gnome-calculator/154
loop6 7:6 0 2,3M 1 vòng lặp /snap/gnome-calculator/180
loop7 7:7 0 14,5M 1 vòng lặp /snap/gnome-logs/37
loop8 7:8 0 3,7M 1 vòng lặp /snap/gnome-system-monitor/51
loop9 7:9 0 12,2M 1 vòng lặp /snap/gnome-characters/69
loop10 7:10 0 13M 1 vòng lặp /snap/gnome-characters/103
loop11 7:11 0 140,9M 1 vòng lặp /snap/gnome-3-26-1604/70
loop12 7:12 0 86.9M 1 vòng lặp /snap/core/4917
sda 8:0 0 931.5G 0 đĩa
|-sda1 8:1 0 100M 0 phần
|-sda2 8:2 0 52.5G 0 phần
|-sda3 8:3 0 293G 0 phần
|-sda4 8:4 0 1K 0 phần
|-sda5 8:5 0 93.4G 0 phần
|-sda6 8:6 0 293G 0 phần
|-sda7 8:7 0 3.9G 0 phần
`-sda8 8:8 0 195,8G 0 phần /
sdb 8:16 1 14,7G 0 đĩa
|-sdb1 8:17 1 200M 0 phần
`-sdb2 8:18 1 14,5G 0 phần
Câu hỏi 7. Làm thế nào để lsblk hiển thị thông tin về chủ sở hữu, nhóm và chế độ của thiết bị?
Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -m.
Mã:
lsblk -m
Câu hỏi 8. Làm thế nào để lsblk output select columns?
Nếu muốn, bạn cũng có thể chỉ định lsblk output select columns, bạn có thể làm điều này bằng cách sử dụng tùy chọn dòng lệnh -o (yêu cầu bạn phải truyền một danh sách các cột được phân tách bằng dấu phẩy mà bạn muốn hiển thị).Ví dụ:
Mã:
lsblk -o NAME,SIZE