在Linux系统中,sha256sum
命令用于计算和校验文件的SHA256哈希值。这是一种安全性极高的散列算法,常用于验证文件的完整性,以确保文件在传输过程中未被篡改。
Linux sha256sum命令介绍
sha256sum
(Secure Hash Algorithm 256)是一个用于计算和验证256位(即32字节)SHA2哈希值的命令。这个命令对于软件分发、文件传输验证以及一般的数据完整性确认非常重要。
Linux sha256sum命令适用的Linux版本
sha256sum
命令几乎在所有的Linux发行版中都是可用的,因为它包含在coreutils
包中,这个包是大多数Linux发行版的标准组件。以下是在不同发行版中安装coreutils
的命令:
# 基于apt的发行版(如Debian、Ubuntu、Raspbian、Kali Linux等)
sudo apt-get update && sudo apt-get install coreutils
# 基于yum的发行版(如RedHat,CentOS 7等)
sudo yum update && sudo yum install coreutils
# 基于dnf的发行版(如Fedora,CentOS 8等)
sudo dnf update && sudo dnf install coreutils
# 基于apk的发行版(如Alpine Linux)
sudo apk add coreutils
# 基于pacman的发行版(如Arch Linux)
sudo pacman -Syu coreutils
# 基于zypper的发行版(如openSUSE)
sudo zypper ref && sudo zypper in coreutils
# 基于pkg的FreeBSD发行版
sudo pkg update && sudo pkg install coreutils
# 基于Homebrew的OS X/macOS发行版
brew update && brew install coreutils
Linux sha256sum命令的基本语法
语法格式:
sha256sum [选项]... [文件]...
Linux sha256sum命令的常用选项或参数说明
选项 | 描述 |
---|---|
-b , --binary | 读取二进制文件模式 |
-c , --check | 读取SHA256和校验值,并检查是否匹配 |
--ignore-missing | 在校验模式下,忽略不存在的文件 |
--quiet | 在校验模式下,不输出成功的校验信息 |
--status | 在校验模式下,不输出任何信息,状态码表示成功与否 |
--strict | 校验时,如果有任何格式错误,则退出 |
-t , --text | 读取文本文件模式(默认) |
--help | 显示帮助信息并退出 |
--version | 显示版本信息并退出 |
Linux sha256sum命令实例详解
实例1:计算单个文件的SHA256值
这个实例展示了如何计算一个文件的SHA256哈希值。
[linux@bashcommandnotfound.cn ~]$ sha256sum filename.tar.gz
实例2:校验文件的SHA256值
如果你有一个文件和它的SHA256校验和,你可以使用以下命令来验证文件的完整性。
[linux@bashcommandnotfound.cn ~]$ sha256sum -c filename.sha256sum
其中,filename.sha256sum
文件包含了原始文件的SHA256哈希值。
实例3:对多个文件计算SHA256值
可以一次对多个文件计算SHA256值,如下所示:
[linux@bashcommandnotfound.cn ~]$ sha256sum file1.txt file2.txt file3.txt
实例4:将计算结果输出到文件
将多个文件的SHA256校验和输出到一个文件中,后可以使用重定向符号 >
:
sha256sum file1.txt file2.txt file3.txt > checksums.sha256
这将会创建一个名为 checksums.sha256
的文件,其中包含了前面提到的三个文件的SHA256校验和。
实例5:在脚本中静默校验文件完整性
如果你在编写一个自动化脚本,可能希望校验文件但不输出任何信息,只通过状态码来判断:
sha256sum -c --status checksums.sha256
if [ $? -eq 0 ]; then
echo "验证通过: 所有文件都是完整的。"
else
echo "验证失败: 文件可能已被篡改。"
fi
实例6:计算字符串的SHA256值
你可以使用 echo
命令和管道来计算一个字符串的SHA256哈希值。注意使用 -n
以避免 echo
命令在输出中包含换行符。
echo -n "Hello, World!" | sha256sum
实例7:检查多个文件的SHA256值
如果你有一个包含多个文件SHA256校验和的文件,可以一次性校验所有文件。
sha256sum -c checksums.sha256
这里 checksums.sha256
文件中应包含多行,每行格式为 <hash> <space> <filename>
。
实例8:从标准输入读取内容计算SHA256值
可以使用 -
代表标准输入,来计算通过管道传递的数据的SHA256值。
cat filename.tar.gz | sha256sum -
实例9:递归计算目录中所有文件的SHA256值
可以配合 find
命令和 xargs
命令来递归地计算一个目录中所有文件的SHA256值。
find . -type f -exec sha256sum {} +
或者
find . -type f -print0 | xargs -0 sha256sum
实例10:创建一个校验和文件并验证它
首先,计算一组文件的校验和并保存到一个文件中:
sha256sum file1.txt file2.txt file3.txt > checksums.sha256
然后,你可以使用该文件来验证文件后续是否保持未更改:
sha256sum -c checksums.sha256
实例11:忽略校验和文件中的缺失文件
在校验时,如果某些文件不在目录中,你可能希望忽略这些缺失的文件而不是中断校验过程。
sha256sum -c --ignore-missing checksums.sha256
实例12:在校验时忽略成功消息
如果你只对检查失败的文件感兴趣,可以使用 --quiet
选项来隐藏成功的校验信息。
sha256sum -c --quiet checksums.sha256
实例13:仅输出不匹配的文件名
如果你想要一个只包含校验失败文件名的列表,可以结合使用 --quiet
和 awk
。
sha256sum -c checksums.sha256 --quiet | awk '/FAILED/{print $2}'
注意事项
- 在使用
sha256sum
命令时,确保从可信来源获取SHA256校验和。 - 如果你正在编写脚本,确保正确处理错误状态码。
sha256sum -c
命令期望校验和文件中每行格式为<hash> <space> <filename>
。如果文件格式不正确,命令将失败。- 安全性至关重要时,考虑使用更高级的工具,如GPG签名,来验证文件的完整性。
评论区