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.