سریع ترمینال سریع در لپ تاپ لینوکس.
Fatmawati Achmad Zaenuri / Shutterstock

فرمان dmesg به شما امکان می دهد تا به دنیای پنهان فرآیندهای راه اندازی لینوکس نگاه کنید. دستگاه سخت افزاری و پیام های درایور را از بافر حلقه هسته خود با "دوست یاب خطا" بررسی و نظارت کنید.

نحوه عملکرد Ring Buffer لینوکس

در رایانه های لینوکس و یونیکس مانند ، بوت شدن و راه اندازی دو مرحله مجزا هستند دنباله ای از وقایع که هنگام روشن شدن رایانه اتفاق می افتد.

فرآیند های راه انداز (BIOS یا UEFI ، MBR و GRUB) ابتدای سیستم را به جایی می رسانند که هسته در آن بارگذاری شود. حافظه و متصل به ramdisk اولیه (اولیه یا آغازگر) ، و systemd آغاز می شود.

فرآیندهای راه اندازی سپس باتوم را برداشت و اولیه سازی سیستم عامل را انجام داد. در مراحل اولیه ابتدایی ، ورود Daemons مانند syslogd یا rsyslogd هنوز راه اندازی نشده است. برای جلوگیری از از بین رفتن پیام های خطای قابل توجه و هشدارها از این مرحله از آغاز ، هسته حاوی بافر حلقه ای است که از آن به عنوان فروشگاه پیام استفاده می کند.

یک بافر حلقه یک فضای حافظه برای پیام ها است. در طراحی ساده و از اندازه ثابت است. با پر شدن ، پیامهای جدیدتر قدیمی ترین پیام ها را بازنویسی می کنند. از نظر مفهومی می توان آن را به عنوان "بافر مدور" تصور کرد.

بافر حلقه هسته اطلاعاتی مانند پیام های اولیه سازی درایور دستگاه ، پیام های سخت افزاری و پیام های ماژول های هسته را ذخیره می کند. از آنجا که این پیامهای راه اندازی سطح پایین را در خود جای داده است ، بافر حلقه مکان مناسبی برای شروع تحقیقات در مورد خطاهای سخت افزاری یا سایر موارد راه اندازی است.

اما دست خالی نروید. dmesg را با خود ببرید.

فرمان dmesg

فرمان dmesg به شما امکان می دهد پیام هایی را که در بافر حلقه ذخیره شده اند مرور کنید. به طور پیش فرض ، شما باید از sudo برای استفاده از dmesg استفاده کنید.

 sudo dmesg 

 sudo dmesg در یک پنجره ترمینال

همه پیام های موجود در بافر حلقه در پنجره ترمینال نمایش داده می شود.

 خروجی از sudo dmesg در یک پنجره ترمینال

این یک آبشار بود. بدیهی است ، آنچه ما باید انجام دهیم این است که از طریق کمتر لوله گذاری کنیم:

 sudo dmesg | کمتر 

 sudo dmesg | کمتر در یک پنجره ترمینال

اکنون می توانیم پیامهایی را جستجو کنیم که به دنبال موارد مورد علاقه هستند.

 dmesg با کمتر در پنجره ترمینال

می توانید از تابع جستجو استفاده کنید در کمتر برای یافتن و برجسته کردن موارد و اصطلاحاتی که به آنها علاقه مند هستید ، عمل جستجو را با فشار دادن کلید برش رو به جلو "/" در کمتر کمتر کنید.

: نحوه استفاده از فرمان کمتر در لینوکس

حذف نیاز به سودو

اگر می خواهید از استفاده از sudo هربار استفاده کنید ] dmesg ، می توانید از این دستور استفاده کنید. اما ، توجه داشته باشید: این امکان را برای هرکسی فراهم می کند که با یک حساب کاربری از رایانه شما استفاده کند dmesg بدون نیاز به استفاده از sudo .

 sudo sysctl -w kernel.dmesg_restrict = 0 

 sudo sysctl -w kernel.dmesg_restrict = 0 در پنجره ترمینال

اجباری خروجی رنگ

به طور پیش فرض ، dmesg احتمالاً برای تولید خروجی رنگی تنظیم شده است. اگر این طور نیست ، می توانید با استفاده از گزینه -L (رنگ) ، dmesg را رنگی کنید تا -L (رنگ) را انتخاب کنید.

 sudo dmesg -L 

 sudo dmesg -L یک پنجره ترمینال

برای مجبور کردن dmesg همیشه به طور پیش فرض به صفحه نمایش رنگی ، از این دستور استفاده کنید:

 sudo dmesg - colour = همیشه 

 sudo dmesg - color = همیشه در پنجره ترمینال

Human Timestamps

به طور پیش فرض ، dmesg از زمان شروع هسته از نماد زمانی ثانیه و ثانیه استفاده می کند. برای این که در قالب انسانی دلخواه تری ارائه شود ، از گزینه -H (انسانی) استفاده کنید.

 sudo dmesg -H 

 sudo dmesg -H در یک پنجره ترمینال [19659006] این باعث می شود دو اتفاق رخ دهد.

 خروجی از sudo dmesg -H ina windows terminal

  • خروجی به طور خودکار در کمتر نمایش داده می شود.
  • تاریخ و زمان ، با وضوح دقیقه پیام هایی که در هر دقیقه رخ داده اند با شروع ثانیه و نانو ثانیه از همان دقیقه برچسب گذاری می شوند.

Timestamps Readable Human

اگر به دقت نانو ثانیه نیستید ، اما شما می خواهید زمان سنج هایی که خواندن آن آسان تر است ، از پیش فرض ها ، از گزینه -T (قابل خواندن انسان) استفاده کنید. (کمی گیج کننده است. -H گزینه "انسان" است ، -T گزینه "قابل خواندن انسان" است.)

 sudo dmesg -T 

 sudo dmesg -T در یک پنجره ترمینال

Timestamp ها به صورت تاریخ و زمان استاندارد ارائه می شوند ، اما وضوح آن به یک دقیقه کاهش می یابد.

 از sudo dmesg -T در یک پنجره ترمینال

هر اتفاقی که در عرض یک دقیقه افتاد ، همان موقع زمانی دارد. اگر آنچه شما را نگران کرده اید دنباله وقایع است ، این به اندازه کافی خوب است. همچنین ، توجه داشته باشید که در فوریت فرمان برگشت داده اید. این گزینه به طور خودکار کمتر را فراخوانی نمی کند.

تماشای رویدادهای زنده

برای دیدن پیام ها هنگام ورود به بافر حلقه هسته ، از استفاده کنید - دنبال کنید (منتظر پیام) گزینه. این جمله ممکن است کمی عجیب به نظر برسد. اگر از بافر حلقه برای ذخیره پیام از رویدادهای رخ داده در طول توالی راه اندازی استفاده می شود ، چگونه می توان پیام های زنده را به محض راه اندازی رایانه به بافر حلقه وارد کرد؟

هر چیزی که باعث تغییر سخت افزار متصل به شما می شود؟ رایانه باعث ارسال پیام به بافر حلقه هسته می شود. ماژول هسته را به روز کنید یا اضافه کنید ، و پیام های بافر زنگ در مورد آن تغییرات را مشاهده خواهید کرد. اگر یک درایو USB را وصل کنید یا یک دستگاه بلوتوث را به هم وصل یا قطع کنید ، در خروجی dmesg پیام مشاهده خواهید کرد. حتی سخت افزار مجازی باعث می شود پیام های جدید در بافر حلقه ظاهر شوند. یک ماشین مجازی را شلیک کنید و اطلاعات جدیدی را خواهید دید که وارد بافر حلقه شده اند.

 sudo dmesg - دنبال کنید 

 sudo dmesg - در یک پنجره ترمینال دنبال کنید

توجه داشته باشید که شما نیستید به خط فرمان بازگشت. هنگامی که پیام های جدید ظاهر می شوند ، آنها در پایین پنجره ترمینال توسط dmesg نمایش داده می شوند.

 خروجی از sudo dmesg - دنباله پنجره ترمینال

حتی در حال نصب CD- دیسک ROM به عنوان تغییر در نظر گرفته می شود ، زیرا شما محتویات دیسک CD-ROM را بر روی درخت پوشه پیوند زده اید.

 dmesg پیام های بافر حلقه به دلیل نصب دیسک CD-ROM 19659006] برای خروج از فید در زمان واقعی ، کلید Ctrl + C را بزنید.

بازیابی ده پیام اخیر

برای بازیابی ده پیام آخر بافر زنگ هسته از دستور tail استفاده کنید. البته ، می توانید هر تعداد پیام را بازیابی کنید. ده فقط نمونه ماست.

 sudo dmesg | آخرین -10 

 sudo dmesg | آخرین -10 در یک پنجره ترمینال

ده پیام آخر بازیابی و در پنجره ترمینال فهرست می شوند.

 خروجی از sudo dmsesg | tail -10 در یک پنجره ترمینال

در جستجوی شرایط خاص

لوله خروجی را از dmesg از طریق grep برای جستجوی رشته ها یا الگوهای خاص لوله کنید. در اینجا ما از گزینه -i (نادیده گرفتن مورد) استفاده می کنیم تا پرونده تطبیق رشته ها بی توجه باشد. نتایج ما شامل "USB" و "USB" و هر ترکیب دیگری از حروف بزرگ و بزرگ خواهد بود.

 sudo dmesg | grep -i usb 

 sudo dmesg | grep -i usb در پنجره ترمینال

نتایج جستجوی برجسته در حروف بزرگ و کوچک است.

 نتایج جستجو نشان می دهد که نتایج بزرگ و کوچک در یک پنجره ترمینال

ما می توانیم جدا شویم. پیامهایی که شامل منابع مربوط به اولین هارد دیسک SCSI روی سیستم sda می شوند. (در واقع ، sda امروزه نیز برای اولین هارد SATA و درایوهای USB نیز استفاده می شود.)

 sudo dmesg | grep -i sda 

 sudo dmesg | grep -i sda در یک پنجره ترمینال

کلیه پیام هایی که ذکر می کند sda بازیابی می شوند و در پنجره ترمینال فهرست می شوند.

 out of sudo dmesg | grep -i sda در یک پنجره ترمینال

برای تهیه grep به جستجوی چندین اصطلاح در یک بار ، از گزینه -E (گسترش بیان منظم) استفاده کنید. شما باید عبارات جستجو را در داخل یک رشته نقل قول شده با محدود کننده های لوله "|" بین اصطلاحات جستجو ارائه دهید:

 sudo dmesg | grep -E "حافظه | tty | dma" 

 sudo dmesg | grep -E "حافظه | tty | dma" پنجره ترمینال اینا

هر پیامی که هر یک از اصطلاحات جستجو را ذکر کند ، در پنجره ترمینال ذکر شده است.

 خروجی از sudo dmesg | grep -E "حافظه | tty | dma" پنجره ترمینال اینا

با استفاده از سطح ورود به سیستم

هر پیام وارد شده به بافر حلقه هسته دارای یک سطح متصل به آن است. سطح بیانگر اهمیت اطلاعات در پیام است. سطوح عبارتند از:

  • ظهور : سیستم غیرقابل استفاده است.
  • هشدار : باید سریعاً اقدام شود.
  • krit : شرایط بحرانی.
  • err : شرایط خطا.
  • هشدار : شرایط اخطار.
  • توجه : شرایط عادی اما قابل توجه.
  • اطلاعات
  • اشکال زدایی اشکال زدایی : پیام های سطح اشکال زدایی.

می توانیم dmesg را استخراج کنیم که با استفاده از -l گزینه (سطح) و عبور از نام سطح به عنوان یک پارامتر خط فرمان. برای دیدن فقط پیامهای سطح "اطلاعاتی" ، از این دستور استفاده کنید:

 sudo dmesg -l info 

 sudo dmesg -l اطلاعات در یک پنجره ترمینال

همه پیام هایی که ذکر شده پیام های اطلاع رسانی هستند. آنها حاوی خطا یا هشدارها ، فقط اعلانهای مفید نیستند.

 خروجی از اطلاعات sudo dmesg -l در یک پنجره ترمینال

دو یا چند سطح ورود به سیستم را در یک دستور ترکیب کنید تا پیام های چند را بازیابی کنید. سطح ورود به سیستم:

 اشکال زدایی sudo dmesg -l ، توجه به اشکال زدایی sudo dmesg -l ، توجه در پنجره ترمینال " width="646" height="57" src="/pagespeed_static/1.JiBnMqyl6S.gif" onload="pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);" onerror="this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);"/> 

خروجی از dmesg ترکیبی از پیام های هر یک است سطح ورود به سیستم:

 خروجی از sudo dmesg -l اشکال زدایی ، اخطار در یک پنجره ترمینال

دسته بندی های تسهیلات

پیام های dmesg دسته بندی می شوند به نام "امکانات" . "لیست امکانات عبارتند از:

  • kern : پیام های هسته.
  • کاربر : پیام های سطح کاربر.
  • mail : سیستم نامه. [19659043] Daemon : Daemons System.
  • auth : پیام های امنیتی / مجوز.
  • syslog : in پیامهای سه گانه syslogd.
  • lpr : زیر سیستم چاپگر خط.
  • اخبار : زیر سیستم شبکه خبر.

می توانیم از dmesg بخواهیم تا آن را فیلتر کند. برای نمایش پیام فقط در یک تسهیلات خاص. برای این کار ، باید از گزینه -f (تأسیسات) استفاده کنیم:

 sudo dmesg -f daemon 

 sudo dmesg -f daemon در یک پنجره ترمینال

dmesg لیست تمام پیام های مربوط به Daemons در پنجره ترمینال را نشان می دهد.

 از sudo dmesg -f daemon در یک پنجره ترمینال

همانطور که با سطوح انجام دادیم ، می توانیم بپرسیم. dmesg برای لیست کردن پیام های بیش از یک تسهیلات به طور همزمان:

 sudo dmesg -f syslog، daemon 

 sudo dmesg -f syslog، daemon in a windows terminal

the خروجی ترکیبی از پیام های ورود به سیستم sylog و daemon است.

 خروجی از sudo dmesg -f syslog ، Daemon در یک پنجره ترمینال

Combination Facility and Level

-x [19459010[(رمزگشایی)گزینه[ dmesg امکانات و سطح را به عنوان پیشوندهای قابل خواندن توسط انسان برای هر خط نشان می دهد.

 sudo dmesg -x 

 sudo dmesg -x در یک پنجره ترمینال

امکانات و سطح در ابتدای هر خط قابل مشاهده است:

 خروجی از sudo dmesg -x در یک پنجره ترمینال

اولین بخش برجسته یک پیام از تأسیسات "هسته" با سطح "توجه". بخش دوم برجسته یك پیام از تأسیسات "هسته" با سطح "اطلاعات" است.

عالی است ، اما چرا؟

به طور خلاصه ، تقصیر.

اگر مشکلی ندارید که با یک قطعه سخت افزار به رسمیت شناخته نشده یا به درستی رفتار نکرده اید ، dmesg ممکن است چراغ روشنایی را برای این مسئله به وجود آورد. [196591336] از dmesg استفاده کنید پیامها را از بالاترین سطح بررسی کنید و از طریق هر سطح پایین ، به دنبال هر گونه خطا یا هشدارهای مربوط به مورد سخت افزار باشید ، یا ممکن است اثری از این مسئله باشد.

  • از dmesg استفاده کنید. برای جستجوی هرگونه ذکر از امکانات مناسب برای دیدن اینکه آیا آنها حاوی اطلاعات مفید هستند
  • لوله dmesg از طریق grep و به دنبال رشته ها یا شناسه های مرتبط یا شناسه مانند تولید کننده محصول یا شماره های مدل.
  • لوله dmesg را از طریق grep و به دنبال [عمومی] اصطلاحات عمومی مانند "gpu" یا "ذخیره سازی" ، یا اصطلاحاتی مانند "عدم موفقیت" ، "شکست" یا "ناتوان" بگردید.
  • از گزینه استفاده کنید - گزینه را دنبال کنید و پیام های dmesg را در زمان واقعی مشاهده کنید.
  • شکار مبارک.

    </p>
<pre>نحوه استفاده از دستور dmesg در لینوکس<br />