GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del comando Linux md5sum per principianti (5 esempi)

Quando si scaricano file, in particolare si installano file da siti Web, è bene verificare che il download sia valido. Un sito Web visualizzerà spesso un valore hash per ogni file per assicurarsi che il download sia completato correttamente. Questo articolo discuterà lo strumento md5sum che puoi utilizzare per convalidare il download. Altre tre utilità, sha1sum, sha256sum e sha512sum, funzionano allo stesso modo di md5sum.

Comando Linux md5sum

Il comando md5sum stampa un checksum di 32 caratteri (128 bit) del file specificato, utilizzando l'algoritmo MD5. Di seguito è riportata la sintassi dei comandi di questo strumento da riga di comando:

md5sum [OPTION]... [FILE]...

Ed ecco come lo spiega la pagina man di md5sum:

Print or check MD5 (128-bit) checksums.

I seguenti esempi in stile domande e risposte ti daranno un'idea ancora migliore dell'utilizzo di base di md5sum.

Nota:utilizzeremo tre file denominati file1.txt, file2.txt e file3.txt come i file di input nei nostri esempi. Il testo in ogni file è elencato di seguito.

file1.txt:

hi
hello
how are you
thanks.

file2.txt:

hi
hello to you
I am fine
Your welcome!

file3.txt:

hallo
Guten Tag
Wie geht es dir
Danke.

Q1. Come visualizzare il valore hash?

Utilizzare il comando senza alcuna opzione per visualizzare il valore hash e il nome del file.

md5sum file1.txt

Ecco l'output prodotto da questo comando sul nostro sistema:

[Documents]$ md5sum file1.txt
1ff38cc592c4c5d0c8e3ca38be8f1eb1  file1.txt
[Documents]$

L'output può anche essere visualizzato in un formato in stile BSD utilizzando l'opzione --tag.

md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt
MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1
[Documents]$

Q2. Come convalidare più file?

Il comando md5sum può convalidare più file contemporaneamente. Aggiungeremo file2.txt e file3.txt per dimostrare le capacità.

Se scrivi gli hash in un file, puoi utilizzare quel file per verificare se uno qualsiasi dei file è stato modificato. Qui scriviamo gli hash dei file negli hash dei file, quindi li utilizziamo per verificare che nessuno dei file sia cambiato.

md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: OK
[Documents]$ 

Ora cambieremo file3.txt, aggiungendo un singolo punto esclamativo alla fine del file ed eseguiremo nuovamente il comando.

echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$ 

Puoi vedere che file3.txt è cambiato.

T3. Come visualizzare solo i file modificati?

Se hai molti file da controllare, potresti voler visualizzare solo i file che sono stati modificati. Utilizzando l'opzione "--quiet", md5sum elencherà solo i file che sono stati modificati.

md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$

Q4. Come rilevare le modifiche in uno script?

Potresti voler usare md5sum in uno script. Utilizzando l'opzione "--status", md5sum non stamperà alcun output. Il codice di stato restituisce invece 0 se non ci sono modifiche e 1 se i file non corrispondono. Il seguente script hashes.sh restituirà un 1 nel codice di stato perché i file sono stati modificati. Il file di script è di seguito:

sh hashes.sh
hashes.sh:
#!/bin/bash
md5sum --status --check hashes
Result=$?
echo "File check status is: $Result"
exit $Result

[Documents]$ sh hashes.sh
File check status is: 1
[[email protected] Documents]$ 

Q5. Come identificare i valori hash non validi?

md5sum può farti sapere se hai hash non validi quando confronti i file. Per avvisarti se alcuni valori hash non sono corretti, puoi usare l'opzione --warn. Per quest'ultimo esempio useremo sed per inserire un carattere extra all'inizio della terza riga. Questo cambierà il valore hash negli hash del file, rendendolo non valido.

sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes

Questo mostra che la terza riga ha un hash non valido.

[Documents]$ sed -i '3s/.*/a&/' hashes
[Documents]$ md5sum --warn --check hashes
file1.txt: OK
file2.txt: OK
md5sum: hashes: 3: improperly formatted MD5 checksum line
md5sum: WARNING: 1 line is improperly formatted
[Documents]$

Conclusione

md5sum è un semplice comando che può convalidare rapidamente uno o più file per determinare se qualcuno di essi è cambiato rispetto al file originale. Per ulteriori informazioni su md5sum, vedere la sua pagina man.


Linux
  1. Spiegazione del comando di incollaggio Linux per principianti (5 esempi)

  2. Spiegazione del comando Linux wc per principianti (6 esempi)

  3. Spiegazione del comando di Linux unexpand per principianti (con esempi)

  4. Tutorial sui comandi zip di Linux per principianti (5 esempi)

  5. Spiegazione del comando objdump di Linux per principianti (7 esempi)

Tutorial sui comandi Linux md5sum per principianti (5 esempi)

Spiegazione del comando di taglio Linux per principianti (con esempi)

Spiegazione del comando di timeout di Linux per i principianti (con esempi)

Spiegazione del comando Linux dd per principianti (8 esempi)

Spiegazione del comando Linux mv per principianti (8 esempi)

Spiegazione del comando host Linux per principianti (8 esempi)