Linux核心是作業(yè)系統(tǒng)的核心,它控制對系統(tǒng)資源(例如:CPU、I/O裝置、實(shí)體記憶體和檔案系統(tǒng))的存取。在引導(dǎo)過程中以及系統(tǒng)運(yùn)行時,核心會將各種訊息寫入核心環(huán)形緩衝區(qū)。這些訊息包括有關(guān)係統(tǒng)操作的各種資訊。
內(nèi)核環(huán)形緩衝區(qū)是實(shí)體記憶體的一部分,用於保存內(nèi)核的日誌訊息。它具有固定的大小,這意味著一旦緩衝區(qū)已滿,較舊的日誌記錄將被覆蓋。
dmesg命令列實(shí)用程式用於在Linux和其他類似Unix的作業(yè)系統(tǒng)中列印和控制核心環(huán)形緩衝區(qū)。對於檢查內(nèi)核啟動訊息和調(diào)試與硬體相關(guān)的問題很有用。
在本教學(xué)中,我們將介紹dmesg指令的基礎(chǔ)。
使用dmesg 指令
dmesg指令的語法如下:
dmesg [OPTIONS] 在不帶任何選項(xiàng)的情況下調(diào)用時,dmesg將所有消息從內(nèi)核環(huán)形緩沖區(qū)寫入標(biāo)準(zhǔn)輸出:
$ dmesg
預(yù)設(shè)情況下,所有使用者都可以執(zhí)行dmesg命令。但是,在某些系統(tǒng)上,非 root 使用者可能會限制對dmesg的存取。在這種情況下,呼叫 dmesg 時您將收到以下錯誤訊息:
dmesg: readkernel buffer failed: Operation not permitted
核心參數(shù)kernel.dmesg_restrict指定非特權(quán)使用者是否可以使用dmesg來檢視來自核心日誌緩衝區(qū)的消息。要刪除限制,請將其設(shè)為零:
$ sudo sysctl -w kernel.dmesg_restrict=0
通常,輸出包含許多資訊行,因此只能看到輸出的最後一部分。要一次查看一頁,請將輸出通過管道傳送到分頁實(shí)用程序,例如less或more:
#$ dmesg --color=always | less
其中的--color=always參數(shù)用於保留彩色輸出。
如果要過濾緩衝區(qū)訊息,可能使用grep。例如,若要僅查看與 USB 相關(guān)的訊息,請鍵入:
$ dmesg | grep -i usb
dmesg 從/proc/kmsg虛擬文件中讀取內(nèi)核生成的消息。該文件提供了到內(nèi)核環(huán)形緩沖區(qū)的接口,并且只能由一個進(jìn)程打開。如果系統(tǒng)上正在運(yùn)行syslog進(jìn)程,并且你嘗試使用cat或less命令讀取文件,則命令將掛起。
syslog守護(hù)程序?qū)?nèi)核消息轉(zhuǎn)儲到/var/log/dmesg,因此你也可以使用該日志文件:
$ cat /var/log/dmesg
格式化 dmesg 輸出。
dmesg命令提供了許多選項(xiàng),可幫助你格式化和過濾輸出。
dmesg中最常用的選項(xiàng)之一是-H(--human),它將輸出更容易讀的結(jié)果。
$ dmesg -H
要打印人類可讀的時間戳,請使用-T(--ctime選項(xiàng)):
$ dmesg -T [Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
時間戳格式也可以使用--time-format
$ dmesg --time-format=delta
你也可以組合兩個或多個選項(xiàng):
$ dmesg -H -T
要即時觀看dmesg指令的輸出,請使用-w(--follow)選項(xiàng):
$ dmesg --follow
過濾dmesg 輸出。
你可以將dmesg輸出限制為給定的設(shè)施和等級。 dmesg支援以下類型:
kern-核心訊息 user-使用者層級訊息 mail-郵件系統(tǒng) daemon-系統(tǒng)守護(hù)程式 auth-安全性/授權(quán)訊息 syslog-內(nèi)部syslogd 訊息 lpr-行式印表機(jī)子系統(tǒng) news-網(wǎng)路新聞子系統(tǒng) -f( --facility - )選項(xiàng)可讓你將輸出限制為特定的設(shè)備,該選項(xiàng)接受一個或多個逗號分隔的功能。
例如,要只顯示核心和系統(tǒng)守護(hù)程式訊息,可以使用:
$ dmesg -f kern,daemon
每個日誌訊息都與一個顯示訊息重要性的日誌等級相關(guān)聯(lián),dmesg支援以下日誌等級:
emerg-系統(tǒng)無法使用 alert-必須立即採取措施 crit-緊急情況 err-錯誤條件 warn-警告條件 notice-正常但重要的條件 info-資訊性 debug-偵錯級訊息
-l( --level <list>)
選項(xiàng)允許你將輸出限制為定義的級別,該選項(xiàng)接受一個或多個逗號分隔的級別。以下命令僅顯示錯誤和嚴(yán)重訊息:
$ dmesg -l err,crit
清除環(huán)形緩衝區(qū)
-C(--clear )選項(xiàng)可讓您清除環(huán)形緩衝區(qū):
$ sudo dmesg -C
只有root或具有sudo特權(quán)的使用者才能清除緩衝區(qū)。
要在清除之前列印緩衝區(qū)內(nèi)容,請使用-c(--read-clear)選項(xiàng):
$ sudo dmesg -c
如果要在清除檔案之前將目前dmesg日誌儲存到檔案中,你可以將輸出重定向到檔案:
#$ dmesg > dmesg_messages
結(jié)論
dmesg指令允許你檢視和控制核心環(huán)形緩衝區(qū)。對核心或硬體問題進(jìn)行故障排除時,它非常有用。
在終端機(jī)中輸入man dmesg,你可以取得所有可用dmesg選項(xiàng)的資訊。
以上是你真的會調(diào)試 Linux 核心故障嗎,看完這篇後你會茅塞頓開的!的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

在CentOS上集成Postman應(yīng)用可以通過多種方法來實(shí)現(xiàn),以下是詳細(xì)的步驟和建議:通過下載安裝包安裝Postman下載Postman的Linux版本安裝包:訪問Postman官方網(wǎng)站,選擇適用於Linux的版本進(jìn)行下載。解壓安裝包:使用以下命令將安裝包解壓到指定目錄,例如/opt:sudotar-xzfpostman-linux-x64-xx.xx.xx.tar.gz-C/opt請注意將“postman-linux-x64-xx.xx.xx.tar.gz”替換為您實(shí)際下載的文件名。創(chuàng)建符號

Java與其他編程語言的主要區(qū)別在於其“一次編寫,到處運(yùn)行”的跨平臺特性。 1.Java的語法接近C ,但去掉了容易出錯的指針操作,適合大型企業(yè)應(yīng)用。 2.與Python相比,Java在性能和大規(guī)模數(shù)據(jù)處理上更具優(yōu)勢。 Java的跨平臺優(yōu)勢源於Java虛擬機(jī)(JVM),它能在不同平臺上運(yùn)行相同的字節(jié)碼,簡化開發(fā)和部署,但需注意避免使用平臺特定API以保持跨平臺性。

【常見目錄說明】目錄/bin存放二進(jìn)制可執(zhí)行文件(ls,cat,mkdir等),常用命令一般都在這裡。 /etc存放系統(tǒng)管理和配置文件/home存放所有用戶文件的根目錄,是用戶主目錄的基點(diǎn),比如用戶user的主目錄就是/home/user,可以用~user表示/usr用於存放系統(tǒng)應(yīng)用程序,比較重要的目錄/usr/local?本地系統(tǒng)管理員軟件安裝目錄(安裝系統(tǒng)級的應(yīng)用)。這是最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個目錄。 /usr/x11r6?存放x?window的目錄/usr/bin?眾多

在VSCode中手動安裝插件包的步驟是:1.下載插件的.vsix文件;2.打開VSCode並按Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)調(diào)出命令面板;3.輸入並選擇Extensions:InstallfromVSIX...,然後選擇.vsix文件並安裝。手動安裝插件提供了一種靈活的安裝方式,特別是在網(wǎng)絡(luò)受限或插件市場不可用時,但需要注意文件安全和可能的依賴問題。

在PyCharm中設(shè)置解釋器的位置可以通過以下步驟實(shí)現(xiàn):1.打開PyCharm,點(diǎn)擊“File”菜單,選擇“Settings”或“Preferences”。 2.找到並點(diǎn)擊“Project:[你的項(xiàng)目名]”,然後選擇“PythonInterpreter”。 3.點(diǎn)擊“AddInterpreter”,選擇“SystemInterpreter”,瀏覽到Python安裝目錄,選中Python可執(zhí)行文件,點(diǎn)擊“OK”。設(shè)置解釋器時需注意路徑正確性、版本兼容性和虛擬環(huán)境的使用,以確保項(xiàng)目順利運(yùn)行。

了解Nginx的配置文件路徑和初始設(shè)置非常重要,因?yàn)樗莾?yōu)化和管理Web服務(wù)器的第一步。 1)配置文件路徑通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找並測試語法。 2)初始設(shè)置包括全局設(shè)置(如user、worker_processes)和HTTP設(shè)置(如include、log_format),這些設(shè)置允許根據(jù)需求進(jìn)行定制和擴(kuò)展,錯誤配置可能導(dǎo)致性能問題和安全漏洞。

MySQL的安裝和配置可以通過以下步驟完成:1.從官方網(wǎng)站下載適合操作系統(tǒng)的安裝包。 2.運(yùn)行安裝程序,選擇“開發(fā)者默認(rèn)”選項(xiàng)並設(shè)置root用戶密碼。 3.安裝後配置環(huán)境變量,確保MySQL的bin目錄在PATH中。 4.創(chuàng)建用戶時遵循最小權(quán)限原則並設(shè)置強(qiáng)密碼。 5.優(yōu)化性能時調(diào)整innodb_buffer_pool_size和max_connections參數(shù)。 6.定期備份數(shù)據(jù)庫並優(yōu)化查詢語句以提高性能。

Informix和MySQL均為廣受青睞的關(guān)係型數(shù)據(jù)庫管理系統(tǒng),它們在Linux環(huán)境下均表現(xiàn)優(yōu)異並得到廣泛應(yīng)用。以下是對兩者在Linux平臺上的對比分析:安裝與配置Informix:在Linux上部署Informix需要下載對應(yīng)的安裝文件,隨後依據(jù)官方文檔指引完成安裝及配置流程。 MySQL:MySQL的安裝過程較為簡便,可通過系統(tǒng)的包管理工具(例如apt或yum)輕鬆實(shí)現(xiàn)安裝,並且網(wǎng)絡(luò)上有大量的教程和社區(qū)支持可供參考。性能表現(xiàn)Informix:Informix以卓越的性能和
