00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 常用选项
  • 04. 参考示例
  • 05. 附录

01. 命令概述

md5sum - 计算检验MD5效验码

md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

02. 命令格式

用法:md5sum [选项]... [文件]...

03. 常用选项

显示  或  检验  MD5  效验码. 如果 没有 FILE 或者 FILE 是 - 时,
就从 标准 输入 读入.-b, --binary以 二进制 模式 读入 文件 (DOS/Windows 下 默认)
-c, --check对 给定 的 文件 检验 MD5 效验码
-t, --text以 文本 模式 读入 文件 (默认)
下面 的 两个 选项 只在 检验 效验码 时用:
--status不显示 任何 输出, 用 返回码 表示 成功 与否
-w, --warn对于 错误 的 MD5 效验码 行 的 格式 发出 警告
--help 显示 这个 帮助 然后 退出
--version
显示 版本 信息 然后 退出

04. 参考示例

4.1 生成文件md5值

[deng@localhost test]$ md5sum /etc/passwd
134edeaf80dc359ed33dc53eb8967920  /etc/passwd
[deng@localhost test]$

4.2 生成多个文件md5值

[deng@localhost test]$ md5sum *
134edeaf80dc359ed33dc53eb8967920  passwd
134edeaf80dc359ed33dc53eb8967920  passwd1
[deng@localhost test]$

注意: md5sum校验的是文件内容,与文件名无关**

4.3 不同模式计算同一个文件md5值

[deng@localhost test]$ file passwd
passwd: ASCII text
[deng@localhost test]$ md5sum passwd
134edeaf80dc359ed33dc53eb8967920  passwd
[deng@localhost test]$ md5sum -b passwd
134edeaf80dc359ed33dc53eb8967920 *passwd
[deng@localhost test]$ md5sum -t passwd
134edeaf80dc359ed33dc53eb8967920  passwd
[deng@localhost test]$

虽然是不同的读入模式,但是在进行求md5的时候,是一样的,因为是逐位校验的。如下文本文件,无论通过哪种模式读取md5都一致。

4.4 md5重定向

将生成md5值重定向到指定的文件,通常文件的扩展名我们会命为.md5

[deng@localhost test]$ md5sum passwd > passwd.md5
[deng@localhost test]$ md5sum passwd
134edeaf80dc359ed33dc53eb8967920  passwd
[deng@localhost test]$ cat passwd.md5
134edeaf80dc359ed33dc53eb8967920  passwd
[deng@localhost test]$

4.5 将多个文件的md5重定向到指定的文件

[deng@localhost test]$ md5sum * > d.md5
[deng@localhost test]$ cat d.md5
134edeaf80dc359ed33dc53eb8967920  passwd
134edeaf80dc359ed33dc53eb8967920  passwd1
8b7e9d66d329c74071b8a01800f4deb9  passwd.md5
[deng@localhost test]$

4.6 重定向追加

这里新增文件ls,单独求其md5,将其md5追加到文件中

[deng@localhost test]$ md5sum /bin/ls >> d.md5
[deng@localhost test]$ cat d.md5
134edeaf80dc359ed33dc53eb8967920  passwd
134edeaf80dc359ed33dc53eb8967920  passwd1
8b7e9d66d329c74071b8a01800f4deb9  passwd.md5
a78c13d806e594dc4014d145d689f23d  /bin/ls
[deng@localhost test]$

4.7 md5校验

-c选项来对文件md5进行校验。校验时,根据已生成的md5来进行校验。生成当前文件的md5,并和之前已经生成的md5进行对比,如果一致,则返回OK,否则返回错误信息

[deng@localhost test]$ md5sum -c d.md5
passwd: 确定
passwd1: 确定
passwd.md5: 确定
/bin/ls: 确定
[deng@localhost test]$

修改文件后,文件md5变化

[deng@localhost test]$ vim passwd
[deng@localhost test]$ md5sum -c d.md5
passwd: 失败
passwd1: 确定
passwd.md5: 确定
/bin/ls: 确定
md5sum: 警告:1 个校验和不匹配
[deng@localhost test]$

4.8 不显示任何输出, 用返回码 表示成功与否

–status,不显示校验信息,以命令返回值来判断。校验一致返回0,不一致返回1

[deng@localhost test]$ md5sum -c --status d.md5
[deng@localhost test]$ echo $?
1
[deng@localhost test]$

4.9 过滤掉校验ok的文件

[deng@localhost test]$ md5sum -c d.md5 | grep -v "确定"
md5sum: 警告:1 个校验和不匹配
passwd: 失败
[deng@localhost test]$

特殊说明
1)md5sum 是校验文件内容,与文件名是否相同无关

2)md5sum值逐位校验,所以文件越大,校验时间越长。

总结
通过md5sum来校验生成文件校验码,来发现文件传输(网络传输、复制、本地不同设备间的传输)异常造成的文件内容不一致的情况。

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

【Linux】一步一步学Linux——md5sum命令(61)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

  9. 大学生为什么要学Linux?Linux有什么优点?

    前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...

最新文章

  1. ICLR 2022初审你得了多少分?平均4.93浮动,预测6分才被接收
  2. python turtle库画图案-Python如何使用turtle库绘制图形
  3. 手动抽油机_察雅县抽油机钢丝绳橡胶皮带生产厂家
  4. 设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略
  5. CSS中的层叠性、继承性、优先级、权重
  6. C# Windows Workflow Fundation之状态机
  7. 10-Python入门学习-函数的对象与嵌套、名称空间与作用域、闭包函数
  8. Shell自动备份部署新项目
  9. 对研发经理这一岗位的个人理解
  10. 软件运行 计算机硬件环境,软件运行环境该怎么写
  11. crontab实现秒级的计划任务
  12. namenode 格式化 -format
  13. 5000在线的服务器选择,支持负载5000人10000人在线的服务器的配置及其网络要求!!...
  14. c语言数组模拟骰子6000次,单选:模拟骰子的6000次投掷,编程统计并输出骰子的6个面各自出现的概率。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。...
  15. 年终奖没领到惨遭开除,Fabio机器人的苦逼之旅
  16. hbase的master启动失败 master running as process 9400. Stop it first.
  17. python豆瓣电影爬虫
  18. 静态网页制作HTML学习笔记
  19. 智能温度系统(C51+DS18B20温度传感器+LM016L显示屏)
  20. 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写

热门文章

  1. N!-201308071627.txt
  2. 静态库与动态库(一):概述
  3. Ruby学习笔记_索引贴
  4. php函数get和set,php中外部类调用_get函数和_set函数的方法
  5. Qt Creator基本快捷键
  6. Java黑皮书课后题第2章:*2.8(当前时间)程序清单2-7给出了显示当前格林尼治时间的程序。修改这个程序,提示用户输入相对于GMT的时区偏移量,显示在这个特定时区的时间
  7. c mysql安装教程 pdf_MySQL下载安装、配置与使用教程详细版(win7x64)
  8. 用C++设计一个不能被继承的类
  9. shell判断IP地址是否合法
  10. 关于四金计算和工资对照表