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.
Và đây là cách trang hướng dẫn của công cụ giải thích 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 lệnh dmesg hoạt động.
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:
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:
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:
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.
Sau đây là một ví dụ về đầu ra:
Ở đâ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ụ.
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]
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.
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
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
Mã:
dmesg --level=err,warn
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
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
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ụ.