Hướng dẫn sử dụng lệnh dmesg của Linux dành cho người mới bắt đầu (5 ví dụ)

theanh

Administrator
Nhân viên
Bạn có biết hạt nhân Linux tải một số trình điều khiển thiết bị khi hệ thống khởi động không? Trên thực tế, khi hệ thống của bạn hoạt động và bạn kết nối một thiết bị phần cứng, thì trình điều khiển thiết bị tương ứng cũng được tải. Tất nhiên, hạt nhân cũng thực hiện nhiều việc khác. Còn nếu bạn muốn biết thông tin liên quan đến các hoạt động của hạt nhân này thì sao?

Vâng, có một lệnh - được gọi là dmesg - mà bạn có thể sử dụng nếu bạn muốn truy cập các tin nhắn được in bởi hạt nhân. Trong hướng dẫn này, chúng ta sẽ hiểu cách công cụ dmesg hoạt động bằng một số ví dụ dễ hiểu.

Lệnh dmesg của Linux​

Lệnh dmesg cho phép bạn in hoặc kiểm soát bộ đệm vòng nhân. Sau đây là cú pháp của lệnh:
Mã:
dmesg [tùy chọn]
Và đây là cách trang hướng dẫn của công cụ giải thích lệnh này:
Mã:
dmesg được sử dụng để kiểm tra hoặc kiểm soát bộ đệm vòng nhân. Hành động mặc định là hiển thị tất cả 
thông báo từ bộ đệm vòng nhân.
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 lệnh dmesg hoạt động.

Câu hỏi 1. Làm thế nào để sử dụng lệnh dmesg?​

Bạn có thể bắt đầu sử dụng lệnh dmesg mà không cần bất kỳ tùy chọn dòng lệnh nào.
Mã:
dmesg
Ví dụ, đây là một phần nhỏ đầu ra mà lệnh tạo ra trong trường hợp của tôi:


Câu hỏi 2. Làm thế nào để giới hạn đầu ra chỉ thành lỗi và cảnh báo?​

Nếu bạn chạy dmesg trên hệ thống của mình, bạn sẽ thấy nó xuất ra rất nhiều thông tin. Tùy thuộc vào những gì bạn đang tìm kiếm, bạn có thể muốn lọc hoặc giới hạn đầu ra. Về phần mình, dmesg cung cấp cho bạn khả năng này thông qua 'mức độ'. Sau đây là danh sách đầy đủ các cấp độ (cùng với giải thích của chúng):
Mã:
emerg - hệ thống không sử dụng được
 cảnh báo - phải hành động ngay lập tức
 crit - tình trạng nguy kịch
 err - tình trạng lỗi
 cảnh báo - tình trạng cảnh báo
 thông báo - tình trạng bình thường nhưng đáng kể
 thông tin - thông tin
 gỡ lỗi - thông báo cấp độ gỡ lỗi
Vì vậy, ví dụ, nếu bạn muốn giới hạn đầu ra chỉ là lỗi và cảnh báo, bạn có thể thực hiện theo cách sau:
Mã:
dmesg --level=err,warn
Trong trường hợp của tôi, đây là một phần đầu ra mà lệnh trên tạo ra:


Câu hỏi 3. Làm thế nào để dmesg tạo ra dấu thời gian trong đầu ra?​

Đôi khi, bạn có thể muốn liên kết dấu thời gian với các thông báo mà dmesg tạo ra. Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -T, tùy chọn này tạo ra các dấu thời gian có thể đọc được bằng con người.
Mã:
dmesg -T
Sau đây là một ví dụ về đầu ra:



Vì vậy, bạn có thể thấy một dấu thời gian được thêm vào trước mỗi thông báo.

Câu hỏi 4. Làm thế nào để dmesg hiển thị thông tin cụ thể cho một thiết bị?​

Giả sử bạn muốn dmesg chỉ hiển thị thông tin liên quan đến giao diện eth0. Sau đây là cách bạn có thể thực hiện:
Mã:
dmesg | grep -i eth0
Sau đây là một ví dụ về đầu ra:


Câu hỏi 5. Làm thế nào để dmesg chỉ hiển thị các thông báo không gian người dùng?​

Nếu bạn muốn giới hạn đầu ra của dmesg chỉ ở các thông báo không gian người dùng, hãy sử dụng tùy chọn dòng lệnh -u.
Mã:
dmesg -u

Kết luận​

Đồng ý, dmesg không phải là loại lệnh bạn cần dùng hàng ngày. Nhưng đây là công cụ để sử dụng khi ai đó (người mà bạn đã yêu cầu trợ giúp về một chủ đề nào đó) yêu cầu bạn cung cấp các thông báo hạt nhân. Tôi chủ yếu thấy trường hợp này trên các diễn đàn người dùng trực tuyến, nơi người dùng có kinh nghiệm yêu cầu đầu ra hạt nhân.

Ở đây, trong hướng dẫn này, chúng tôi đã thảo luận về lệnh dmesg theo quan điểm của người mới bắt đầu (chỉ để giúp bạn bắt đầu). Sau khi bạn thực hành xong tất cả những gì chúng tôi đã thảo luận ở đây, hãy đến trang hướng dẫn của công cụ.
 
Back
Bên trên