Linux md5sum Befehl erklärt für Anfänger (5 Beispiele)

Beim Herunterladen von Dateien, insbesondere von Installationsdateien von Websites, ist es ratsam, zu überprüfen, ob der Download gültig ist. Eine Website zeigt oft einen Hash-Wert für jede Datei an, so dass Sie sicherstellen können, dass der Download korrekt abgeschlossen ist. In diesem Artikel werden wir das md5sum-Tool besprechen, mit dem Sie den Download validieren können. Zwei weitere Dienstprogramme, sha256sum und sha512sum, funktionieren genauso wie md5sum. Die befehle in diesem Tutorial wurden auf Ubuntu 22.04 getestet, sie funktionieren aber gleichermaßen auf jeder aktuellen Linux Distribution.

Linux md5sum Befehl

Der Befehl md5sum druckt eine 32-stellige (128-Bit) Prüfsumme der angegebenen Datei unter Verwendung des MD5-Algorithmus. Es folgt die Befehlssyntax dieses Befehlszeilen-Tools:

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

Und so erklärt es die Manualseite von md5sum:

Print or check MD5 (128-bit) checksums.

Die folgenden Beispiele im Q&A-Stil geben Ihnen einen noch besseren Einblick in die grundlegende Verwendung von md5sum.

Hinweis: Wir werden drei Dateien mit den Namen file1.txt, file2.txt und file3.txt als Eingabedateien in unseren Beispielen verwenden. Der Text in jeder Datei ist unten aufgeführt.

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. Wie kann man den Hash-Wert anzeigen?

Verwenden Sie den Befehl ohne Optionen, um den Hash-Wert und den Dateinamen anzuzeigen.

md5sum file1.txt

Hier ist die Ausgabe dieses Befehls, die auf unserem System erzeugt wurde:

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

Die Ausgabe kann auch im BSD-Format mit der Option –tag angezeigt werden.

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

Q2. Wie kann man mehrere Dateien validieren?

Der Befehl md5sum kann mehrere Dateien gleichzeitig validieren. Wir werden file2.txt und file3.txt hinzufügen, um die Möglichkeiten zu demonstrieren.

Wenn Sie die Hashes in eine Datei schreiben, können Sie mit dieser Datei überprüfen, ob sich eine der Dateien geändert hat. Hier schreiben wir die Hashes der Dateien in die Datei-Hashes und verwenden sie dann, um zu bestätigen, dass sich keine der Dateien geändert hat.

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]$

Jetzt werden wir file3.txt ändern, ein einziges Ausrufezeichen am Ende der Datei hinzufügen und den Befehl erneut ausführen.

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]$

Du kannst sehen, dass sich die Datei file3.txt geändert hat.

Q3. Wie kann man nur geänderte Dateien anzeigen?

Wenn Sie viele Dateien überprüfen müssen, sollten Sie möglicherweise nur die Dateien anzeigen, die sich geändert haben. Mit der Option „–quiet“ listet md5sum nur die Dateien auf, die sich geändert haben.

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

Q4. Wie erkennt man Änderungen in einem Skript?

Du kannst md5sum in einem Skript verwenden. Mit der Option „–status“ druckt md5sum keine Ausgabe. Des weiteren verwenden wir den Linux echo Befehl. Stattdessen gibt der Statuscode 0 zurück, wenn es keine Änderungen gibt, und 1, wenn die Dateien nicht übereinstimmen. Das folgende Skript hashes.sh gibt eine 1 im Statuscode zurück, da sich die Dateien geändert haben. Die Skriptdatei finden Sie unten:

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
[lion@ornatecandy Documents]$

Q5. Wie kann man ungültige Hash-Werte identifizieren?

md5sum kann dir mitteilen, ob du ungültige Hashes hast, wenn du Dateien vergleichst. Um Sie zu warnen, wenn Hash-Werte falsch sind, können Sie die Option –warn verwenden. Für dieses letzte Beispiel verwenden wir sed, um ein zusätzliches Zeichen am Anfang der dritten Zeile einzufügen. Dies ändert den Hash-Wert in den Datei-Hashes und macht ihn ungültig.

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

Dies zeigt, dass die dritte Zeile einen ungültigen Hash hat.

[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]$

Weitere Linux Befehle

Hier einige weitere Linux Befehle, die Dich interessieren könnten:

Fazit

Die md5sum ist ein einfacher Befehl, der eine oder mehrere Dateien schnell überprüfen kann, um festzustellen, ob sich eine von ihnen gegenüber der Originaldatei geändert hat. Weitere Informationen zu md5sum findest du in seiner Manpage.

Das könnte dich auch interessieren …