linux命令详解(22)文件信息获取,ls命令、md5sum|shalsum命令详解

文章标签: linux学习笔记
2014-12-25 17:33:47     11 人阅读    

知道如何查找文件之后,接下来便能获取与这些文件相关的更多信息。与不加选项运行ls命令相比,使用ls命令那些不常用的选项可以列出更多文件信息。file等命令能帮助识别文件类型。使用md5sum和sha1sum可以检验文件是否有效。
4.7.1 列出文件信息
说起ls命令,你或许再熟悉不过了,但有可能并不熟悉ls诸多有用的选项,这些选项有助于发现系统中文件相关的大量细节。下面这些例子使用ls显示文件和目录的详细信息(-l):

$ ls -l     当前目录中的文件和目录
$ ls -la    包括以点号(.)开头的文件/目录
$ ls -lt    按文件修改时间排序
$ ls -lu    按文件访问时间排序
$ ls -lS    按文件大小排序
$ ls -li    列出各个文件相关联的inode
$ ls -ln    列出用户/用户组的数字ID而非名称
$ ls -lh    以可读形式(K、M等)列出文件大小
$ ls -lR    递归列出当前目录及子目录下的文件

列出文件时,还可以让列表里的不同类型文件以不同方式显示:

$ ls -F                添加一字符以标示文件类型
FC7@     FC8/   memo.txt   pipefile|   script.sh*  xpid.socket=
$ ls --color=always    以不同颜色显示各种文件类型
$ ls -C                按列显示文件列表

第一个例子的输出结果显示了几种不同的文件类型。FC7@表示指向目录的符号链接,FC8/是普通目录,memo.txt为普通文件(无附加字符),pipefile|是命名管道(用mkfifo创建),script.sh*则为可执行文件,xpid.socket=为套接字。第二个例子用不同颜色显示不同文件类型,第三个例子则按列显示文件列表。
4.7.2 检验文件
在因特网上共享软件包和CD/DVD映像等文件时,通常会一并提供SHA1SUM或MD5SUM文件。这些文件包含校验和,用于确认下载到的文件与仓库发布的完全一致。
下面两个例子分别使用md5sum和sha1sum命令生成文件的校验和:

$ md5sum FC-6-i386-rescuecd.iso
54881969da026da24a92db4aab1dcc69  FC-6-i386-rescuecd.iso
$ sha1sum FC-6-i386-rescuecd.iso
834fd761b9c0a5dc550d10d97307dac998103a68  FC-6-i386-rescuecd.iso

具体选用哪个命令视(待核对的)文件提供者发布的是md5sum还是sha1sum信息而定。例如,下面是Fedora 6发行版的SHA1SUM文件内容:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

834fd761b9c0a5dc550d10d97307dac998103a68  FC-6-i386-rescuecd.iso
cc503d99c9d736af9052904a6ab14931b0850078  FC-6-i386-disc1.iso
3051710e6b2f1d17a14ede0ebb74761c29cda954  FC-6-i386-disc2.iso
5357ce21f8766db385b25923216a430b694bca5d  FC-6-i386-disc3.iso
d6133ab5ccf19431c14fd2ad85bce03c9834ef87  FC-6-i386-disc4.iso
6722f95b97e5118fa26bafa5b9f622cc7d49530c  FC-6-i386-DVD.iso
22327af62d6376916e209b0c4934540e14d5664a  FC-6-i386-disc5.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFFNo/utEJp0E8qb9IRAsf7AJ9ZqiDlKqJfAh8g5QHyDMmPOzNbTACfbyGw
hB8bkLBT+6ANW6y8iBmlxz8=
=O/Le
-----END PGP SIGNATURE-----

上面的SHA1SUM文件及其列出的ISO文件都位于当前目录时,使用sha1sum加-c选项可以一次检验所有ISO文件。示例如下:

$ sha1sum -c SHA1SUM
FC-6-i386-rescuecd.iso: OK
FC-6-i386-disc1.iso: OK
FC-6-i386-disc2.iso: OK
FC-6-i386-disc3.iso: OK
FC-6-i386-disc4.iso: OK
FC-6-i386-DVD.iso: OK
FC-6-i386-disc5.iso: OK

运行下面的命令可以检验其中一个文件(SHA1SUM文件所列):

$ cat SHA1SUM | grep rescuecd |sha1sum -c
FC-6-i386-rescuecd.iso: OK

使用md5sum命令可以比照MD5SUM文件(而不是SHA1SUM文件)检验文件,用法同上。结合本章之前介绍的find命令和md5sum命令,可以检验文件系统的任意部分。例如,下面的命令行会对/etc目录下的每个文件创建MD5校验和,之后可以核对这些文件,确认有无改动:

# find /etc -type f -exec md5sum {} \; 2>/dev/null > /tmp/md5.list

上述命令行的运行结果是/tmp/md5.list文件,包含/etc目录下每个文件的128位校验和。之后键入下面的命令即可查看文件有无改动:

# cd /etc
# md5sum -c /tmp/md5.list | grep -v 'OK'
./hosts.allow: FAILED
md5sum: WARNING: 1 of 1668 computed checksums did NOT match

从上面的输出可以看出,只有一个文件有改动(hosts.allow)。下一步就是检查那个改动过的文件,确认对文件的改动是否有意为之。

上面运行的file命令表明,bash shell提供了多种格式的文档文件。file命令会查看文件内容,确定文件是否包含troff标记(


原文地址:http://www.itmmd.com/201412/381.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

产品经理学习笔记(14)-搜集用户反馈   上一篇
下一篇  产品经理学习笔记(13)-用户反馈的意义

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!