Dmesg in Deep
สารบัญ:
เคอร์เนล Linux เป็นแกนหลักของระบบปฏิบัติการที่ควบคุมการเข้าถึงทรัพยากรของระบบเช่น CPU, อุปกรณ์ I / O, หน่วยความจำกายภาพและระบบไฟล์ เคอร์เนลเขียนข้อความต่าง ๆ ไปยังบัฟเฟอร์วงแหวนเคอร์เนลในระหว่างกระบวนการบูตและเมื่อระบบกำลังทำงาน ข้อความเหล่านี้รวมถึงข้อมูลต่าง ๆ เกี่ยวกับการทำงานของระบบ
บัฟเฟอร์วงแหวนเคอร์เนลเป็นส่วนหนึ่งของหน่วยความจำกายภาพที่เก็บข้อความบันทึกของเคอร์เนล มันมีขนาดคงที่ซึ่งหมายความว่าเมื่อบัฟเฟอร์เต็มเรคคอร์ดเก่าจะถูกเขียนทับ
ยูทิลิตีบรรทัดคำสั่ง
dmesg
ใช้เพื่อพิมพ์และควบคุมบัฟเฟอร์วงแหวนเคอร์เนลใน Linux และระบบปฏิบัติการแบบ Unix มันจะมีประโยชน์สำหรับการตรวจสอบข้อความบูตเคอร์เนลและแก้ไขข้อบกพร่องเกี่ยวกับฮาร์ดแวร์
ในบทช่วยสอนนี้เราจะกล่าวถึงพื้นฐานของคำสั่ง
dmesg
การใช้คำสั่ง
dmesg
ไวยากรณ์สำหรับคำสั่ง
dmesg
มีดังนี้:
dmesg
เมื่อเรียกใช้โดยไม่มีตัวเลือก
dmesg
เขียนข้อความทั้งหมดจากเคอร์เนลบัฟเฟอร์บัฟเฟอร์ไปยังเอาต์พุตมาตรฐาน:
dmesg
โดยค่าเริ่มต้นผู้ใช้ทุกคนสามารถเรียกใช้คำสั่ง
dmesg
อย่างไรก็ตามในบางระบบการเข้าถึง
dmesg
อาจถูก จำกัด สำหรับผู้ใช้ที่ไม่ใช่รูท ในสถานการณ์นี้เมื่อเรียกใช้
dmesg
คุณจะได้รับข้อความแสดงข้อผิดพลาดดังนี้:
dmesg: read kernel buffer failed: Operation not permitted
พารามิเตอร์เคอร์เนล
kernel.dmesg_restrict
ระบุว่าผู้ใช้ที่ไม่มีสิทธิพิเศษสามารถใช้
dmesg
เพื่อดูข้อความจากบัฟเฟอร์การบันทึกของเคอร์เนล หากต้องการลบข้อ จำกัด ให้ตั้งค่าเป็นศูนย์:
sudo sysctl -w kernel.dmesg_restrict=0
โดยปกติแล้วเอาต์พุตจะมีบรรทัดข้อมูลจำนวนมากดังนั้นสามารถดูได้เฉพาะส่วนสุดท้ายของเอาต์พุต หากต้องการดูทีละหน้าให้ไพพ์เอาต์พุตไปยังยูทิลีตีเพจเจอร์เช่น
less
หรือ
more
:
dmesg --color=always | less
--color=always
จะใช้เพื่อรักษาเอาท์พุทสี
dmesg | grep -i usb
dmesg
อ่านข้อความที่สร้างโดยเคอร์เนลจากไฟล์เสมือน
/proc/kmsg
ไฟล์นี้มีส่วนต่อประสานกับเคอร์เนลบัฟเฟอร์และสามารถเปิดได้โดยหนึ่งกระบวนการเท่านั้น หากกระบวนการ
syslog
ทำงานบนระบบของคุณและคุณพยายามอ่านไฟล์ด้วย
cat
หรือ
less
คำสั่งจะหยุดทำงาน
syslog
daemon ส่งข้อความเคอร์เนลไปที่
/var/log/dmesg
ดังนั้นคุณสามารถใช้ไฟล์บันทึกนั้น:
การสร้างเอาต์พุต
dmesg
คำสั่ง
dmesg
จัดเตรียมจำนวนของตัวเลือกที่ช่วยให้คุณจัดรูปแบบและกรองผลลัพธ์
หนึ่งในตัวเลือกที่ใช้มากที่สุดของ
dmesg
คือ
-H
(
-H
--human
) ซึ่งเปิดใช้งานเอาต์พุตที่มนุษย์อ่านได้ ตัวเลือกนี้ไพพ์เอาต์พุตคำสั่งลงในเพจเจอร์:
dmesg -H
หากต้องการพิมพ์การประทับเวลาที่มนุษย์อ่านได้ให้ใช้ตัวเลือก
-T
(
--ctime
):
dmesg -T
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
รูปแบบการประทับเวลายังสามารถตั้งค่าได้โดยใช้
--time-format
dmesg --time-format=delta
คุณสามารถรวมสองตัวเลือกหรือมากกว่า:
dmesg -H -T
ในการดูเอาต์พุตของคำสั่ง
dmesg
แบบเรียลไทม์ให้ใช้ตัวเลือก
-w
(
--follow
):
การกรองเอาท์พุท
dmesg
คุณสามารถ จำกัด เอาต์พุต
dmesg
ให้กับสิ่งอำนวยความสะดวกและระดับที่กำหนด
สิ่งอำนวยความสะดวกแสดงถึงกระบวนการที่สร้างข้อความ
dmesg
รองรับสิ่งอำนวยความสะดวกสำหรับบันทึกต่อไปนี้:
-
kern
-user
ข้อความเคอร์เนล -mail
ระดับผู้ใช้mail
- ระบบเมลdaemon
- system daemonsauth
- ข้อความความปลอดภัย / การอนุญาตsyslog
- ข้อความ syslogd ภายในlpr
-news
ระบบย่อยเครื่องพิมพ์บรรทัด - ระบบย่อยnews
เครือข่าย
-f
(
--facility
) ตัวเลือกช่วยให้คุณสามารถ จำกัด การส่งออกไปยังสิ่งอำนวยความสะดวกที่เฉพาะเจาะจง ตัวเลือกยอมรับสิ่งอำนวยความสะดวกที่คั่นด้วยเครื่องหมายจุลภาคอย่างน้อยหนึ่งรายการ
ตัวอย่างเช่นเพื่อแสดงเฉพาะข้อความเคอร์เนลและระบบ daemons ที่คุณจะใช้:
dmesg -f kern, daemon
แต่ละข้อความบันทึกจะเชื่อมโยงกับระดับบันทึกที่แสดงความสำคัญของข้อความ
dmesg
รองรับระดับการบันทึกต่อไปนี้:
-
emerg
- ระบบไม่สามารถใช้การalert
- ต้องดำเนินการทันทีcrit
- เงื่อนไขที่สำคัญerr
- เงื่อนไขข้อผิดพลาดwarn
- แจ้งเตือนเงื่อนไขการnotice
warn
- ข้อมูลเงื่อนไขปกติ แต่สำคัญ - การdebug
ข้อมูล - ข้อความระดับการดีบัก
The
-l
(
--level
) ตัวเลือก จำกัด การส่งออกไปยังระดับที่กำหนด ตัวเลือกนี้ยอมรับระดับหนึ่งหรือมากกว่าที่คั่นด้วยเครื่องหมายจุลภาค
คำสั่งต่อไปนี้แสดงเฉพาะข้อผิดพลาดและข้อความสำคัญ:
การล้างวงแหวนบัฟเฟอร์
ตัวเลือก
-C
(-
--clear
) ช่วยให้คุณสามารถล้างบัฟเฟอร์แหวน:
sudo dmesg -C
เฉพาะผู้ใช้ root หรือผู้ใช้ที่มีสิทธิ์ sudo เท่านั้นที่สามารถล้างบัฟเฟอร์ได้
หากต้องการพิมพ์เนื้อหาบัฟเฟอร์ก่อนการล้างให้ใช้ตัวเลือก
-c
(
--read-clear
):
sudo dmesg -c
ข้อสรุป
คำสั่ง
dmesg
อนุญาตให้คุณดูและควบคุมบัฟเฟอร์ของเคอร์เนลริง มันจะมีประโยชน์มากเมื่อแก้ไขปัญหาเคอร์เนลหรือฮาร์ดแวร์
พิมพ์
man dmesg
ใน terminal ของคุณสำหรับข้อมูลเกี่ยวกับตัวเลือก
dmesg
มีอยู่ทั้งหมด
คำสั่ง linux พื้นฐาน

การรู้วิธีใช้บรรทัดคำสั่งจะมีประโยชน์มาก ในบทความนี้เราจะดำเนินการตามคำสั่ง Linux ที่ใช้บ่อยที่สุดที่ผู้ดูแลระบบ Linux ใช้เป็นประจำทุกวัน
คำสั่ง Chmod ใน linux (การอนุญาตไฟล์)

ใน Linux การเข้าถึงไฟล์นั้นได้รับการจัดการผ่านการอนุญาตไฟล์คุณสมบัติและความเป็นเจ้าของ บทช่วยสอนนี้ครอบคลุมถึงวิธีการใช้คำสั่ง chmod เพื่อเปลี่ยนสิทธิ์การเข้าถึงของไฟล์และไดเรกทอรี
คำสั่ง Chgrp ใน linux (เปลี่ยนกลุ่ม)

ใน Linux แต่ละไฟล์จะเชื่อมโยงกับเจ้าของและกลุ่มและมีสิทธิ์ที่กำหนดว่าผู้ใช้คนใดสามารถอ่านเขียนหรือดำเนินการไฟล์ คำสั่ง chgrpc เปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์ที่กำหนด