Un'introduzione al comando dmesg di Linux

Un'introduzione al comando dmesg di Linux
Ogni sistema operativo, incluso Linux, svolge alcune attività in silenzio senza avvisare l'utente. Sebbene l'utente non sia a conoscenza di queste attività, potrebbe essere necessario verificare queste attività per identificare i problemi del sistema operativo e i dispositivi collegati al sistema informatico.

Fortunatamente, per il sistema operativo Linux, tutte queste attività sono registrate nel buffer ad anello, a cui è possibile accedervi utilizzando il comando Diagnostic Messages (o DMESG). Il comando DMESG in Linux può essere utilizzato per visualizzare tutti i messaggi relativi agli eventi che si svolgono all'interno del sistema operativo. Questo articolo ti insegnerà come utilizzare questo utile comando in Linux.

Nota: per questo tutorial, abbiamo usato Linux Mint 20

Utilizzo del comando

Spiegheremo l'uso del comando dei messaggi diagnostici discutendo alcuni esempi.

Esempio n. 1: visualizzare tutti i messaggi diagnostici

Possiamo visualizzare tutti i tipi di messaggi diagnostici contemporaneamente eseguendo questi passaggi.

Innanzitutto, dobbiamo fare clic sull'icona di scelta rapida del terminale Linux Mint 20 per lanciarlo.

Puoi vedere il terminale appena lanciato nell'immagine qui sotto:

Ora eseguiremo semplicemente il seguente comando nel terminale:

L'esecuzione di questo comando visualizzerà un lungo elenco di messaggi diagnostici sul tuo terminale. Puoi scorrere verso il basso per vedere tutti i messaggi, come mostrato nell'immagine qui sotto:

Esempio n. 2: visualizzare i messaggi diagnostici pagina per pagina

Nell'esempio precedente, l'elenco dei messaggi diagnostici era molto lungo e poco pratico da leggere. Pertanto, potresti voler visualizzare questi messaggi pagina per pagina. che può essere fatto usando il comando meno in Linux. Nel comando mostrato di seguito, stiamo pilando l'output del comando dmesg al comando meno in modo che i messaggi diagnostici vengano visualizzati per pagina.

È possibile vedere l'output del comando dmesg modificato nell'immagine in basso.

Una volta letto la prima pagina, puoi premere la barra spaziale per passare alla pagina successiva e così via, fino a raggiungere l'ultima pagina, come indicato dalla parola chiave finale nella seguente immagine:

Esempio n. 3: visualizzare i messaggi diagnostici con un livello di gravità specifico

I livelli di gravità dei messaggi diagnostici variano a seconda dello scopo che servono. Ad esempio, alcuni messaggi trasmettono informazioni generali, mentre altri contengono avvertimenti. Puoi scegliere di visualizzare tutti i messaggi diagnostici di un livello di gravità specificato come segue:

Innanzitutto, esegui il comando dmesg -velvel = livello nel tuo terminale Linux Mint 20. Qui, devi sostituire il livello con un livello valido (E.G., err, avvertire, informazioni, avviso). Nel nostro esempio, poiché vogliamo visualizzare tutti i messaggi diagnostici del livello di errore, abbiamo sostituito il livello con ERR.

Questo comando restituirà tutti i messaggi diagnostici che hanno il livello di errore, come mostrato nella seguente immagine:

Esempio n. 4: visualizzare la versione Linux con comando dmesg

Quando abbiamo eseguito il comando dmesg senza altri parametri, l'output era troppo grande per visualizzare contemporaneamente. Insieme a tutte le altre informazioni, la versione del tuo sistema Linux è stata visualizzata anche in quell'output, ma era difficile individuare. Se desideri vedere la tua versione Linux con il comando DMESG, puoi eseguire il seguente comando nel tuo terminale:

L'esecuzione di questo comando visualizzerà la versione Linux sul tuo terminale come mostrato nell'immagine seguente:

Esempio n. 5: visualizzare i messaggi diagnostici con i timestamp

Un evento si verifica su un sistema operativo in un determinato momento. Per le attività di registrazione e controllo, è importante esaminare i timestamp degli eventi che si svolgono all'interno del sistema operativo in modo da poter capire quando si è verificato un problema. Per visualizzare i timestamp dei messaggi diagnostici, è possibile eseguire il comando di seguito nel tuo terminale:

L'output nell'immagine seguente mostra i timestamp esatti, inclusi il giorno, la data e l'ora, prima di ogni messaggio diagnostico.

Esempio #6: visualizzare i messaggi diagnostici relativi a un dispositivo specifico

I messaggi diagnostici visualizzati eseguendo il comando DMESG da soli non sono specifici per nessun dispositivo; Invece, i messaggi relativi a tutti i dispositivi vengono visualizzati contemporaneamente. Tuttavia, potresti voler visualizzare i messaggi diagnostici per un determinato dispositivo per determinare i problemi relativi a tale dispositivo.

Il comando dmesg ti consente di farlo eseguendo il comando dmesg | grep -i "dispositivo". Qui, devi sostituire il dispositivo con il nome del dispositivo i cui messaggi diagnostici si desidera visualizzare. Nel nostro caso, vogliamo controllare i messaggi diagnostici del mouse. Pertanto, abbiamo sostituito il dispositivo con il mouse.

Quando eseguirai questo comando, tutti i messaggi diagnostici relativi al mouse verranno visualizzati sul terminale, come mostrato nella seguente immagine. È possibile visualizzare i messaggi diagnostici di qualsiasi dispositivo I/O allo stesso modo.

Esempio #7: visualizzare i messaggi diagnostici con i loro livelli di gravità

Abbiamo visto i messaggi diagnostici di un particolare livello di gravità nell'esempio n. 3. Tuttavia, se vogliamo visualizzare tutti i messaggi diagnostici con i loro livelli di gravità, allora possiamo eseguire il comando dmesg -x. Il flag -x può essere utilizzato con il comando dmesg per visualizzare i messaggi diagnostici con i loro livelli di gravità.

Dall'output puoi vedere che il livello di gravità di un messaggio diagnostico appare all'inizio del messaggio.

Esempio #8: Cancellezione della cronologia dei messaggi diagnostici

Migliaia di eventi si svolgono nel sistema operativo che rende il tuo sistema operativo e questi eventi generano un lungo elenco di messaggi diagnostici, come mostrato nell'esempio n. 1. Tuttavia, il sistema Linux fornisce anche un modo per cancellare questo registro.

Per cancellare la cronologia dei messaggi diagnostici, è possibile eseguire il comando sudo dmesg -c. Per cancellare la cronologia dei messaggi diagnostici, che è importante per scopi di controllo, è necessario eseguire il comando DMESG con i privilegi sudo. Altrimenti, non ti sarà permesso di eseguire questa operazione. Inoltre, il flag -c, abbinato al comando dmesg, è responsabile della cancellazione del registro DMESG.

Una volta eseguito questo comando, nulla verrà visualizzato sul tuo terminale. Pertanto, per verificare che la cronologia dei messaggi diagnostici sia stata cancellata, eseguiremo di nuovo il comando DMESG. Questa volta, il comando DMESG non restituirà alcun messaggio diagnostico sul tuo terminale perché la cronologia è stata cancellata.

Conclusione

Questo tutorial introduce i messaggi diagnostici generati dal sistema operativo Linux e mostra come visualizzare i timestamp degli eventi che si sono verificati sul sistema operativo, come registrare tutti gli eventi di un livello di gravità specificato e come visualizzare i messaggi diagnostici correlati a un dispositivo specifico. Variazioni più avanzate del comando DMESG condivise in questo articolo possono essere prodotte per ottenere risultati diversi.