cksum
检查文件的CRC是否正确
补充说明
cksum命令 是检查文件的CRC是否正确,确保文件从一个系统传输到另一个系统的过程中不被损坏。这种方法要求校验和在源系统中被计算出来,在目的系统中又被计算一次,两个数字进行比较,如果校验和相等,则该文件被认为是正确传输了。
注意:CRC是指一种排错检查方法,即循环冗余校验法。
指定文件交由cksum命令进行校验后,会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则cksum命令会从标准输入设备中读取数据。
语法
cksum(选项)(参数)
选项
--help:在线帮助;
--version:显示版本信息。
参数
文件:指定要计算校验的版本信息。
实例
使用cksum命令计算文件"testfile1"的完整性,输入如下命令:
cksum testfile1 #对指定文件进行CRC校验
以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:
1263453430 78 testfile1 #输出信息
上面的输出信息中,“1263453430"表示校验码,“78"表示字节数。
注意:如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。
clear
清除当前屏幕终端上的任何信息
补充说明
clear命令 用于清除当前屏幕终端上的任何信息。
语法
clear
实例
直接输入clear命令当前终端上的任何信息就可被清除。
clock
用于调整 RTC 时间
补充说明
clock命令用于调整 RTC 时间。 RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。
语法
clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日期时间>"]
[--setepoch --epoch=< >][--show][--systohc][--test][--utc][--version]
选项
--adjust 第一次使用"--set"或"--systohc"参数设置硬件时钟,会在/etc目录下产生一个名称为adjtime的文件。当再次使用这两个参数调整硬件时钟,此文件便会记录两次调整间之差异,日后执行clock指令加上"--adjust"参数时,程序会自动根 据记录文件的数值差异,计算出平均值,自动调整硬件时钟的时间。
--debug 详细显示指令执行过程,便于排错或了解程序执行的情形。
--directisa 告诉clock指令不要通过/dev/rtc设备文件,直接对硬件时钟进行存取。这个参数适用于仅有ISA总线结构的老式电脑。
--getepoch 把系统核心内的硬件时钟新时代数值,呈现到标准输出设备。
--hctosys Hardware Clock to System Time,把系统时间设成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间,所以最好在系统启动时就执行它。
--set--date 设置硬件时钟的日期和时间。
--setepoch--epoch=<年份> 设置系统核心之硬件时钟的新时代数值,年份以四位树字表示。
--show 读取硬件时钟的时间,并将其呈现至标准输出设备。
--systohc System Time to Hardware Clock,将系统时间存回硬件时钟内。
--test 仅作测试,并不真的将时间写入硬件时钟或系统时间。
--utc 把硬件时钟上的时间时为CUT,有时也称为UTC或UCT。
--version 显示版本信息。
实例
获取当前的时间
clock # 获取当前的时间
显示UTC时间
clock -utc #显示UTC时间
clockdiff
检测两台linux主机的时间差
补充说明
在ip报文的首部和ICMP报文的首部都可以放入时间戳数据。 clockdiff 程序正是使用时间戳来测算目的主机和本地主机的系统时间差。
选项
-o:使用IP时间戳选项来测量系统时间差。时间戳只用3个。
-o1:使用IP时间戳选项来测量系统时间差。用4个时间戳。如果-o和-o1都没有设置,那么就是用ICMP时间戳来测试系统时间差。
实例
lixi@lixi-desktop:~$ ping -T tsandaddr www.ustc.edu.cn -c 1
PING www.ustc.edu.cn (202.38.64.9) 56(124) bytes of data.
64 bytes from 202.38.64.9: icmp_seq=1 ttl=62 time=0.823 ms
TS: lixi-desktop.local (210.45.74.25) 12522473 absolute
210.45.74.1 -251
local-gw.ustc.edu.cn (202.38.64.126) 248
202.38.64.9 -857514
Unrecorded hops: 3
--- www.ustc.edu.cn ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.823/0.823/0.823/0.000 ms
首先由上面的得出在RRT不大的时候,几个ICMP时间戳的关系。本地主机和202.38.64.9之间的时间差约为:-857514+248-251=-857517。分别用-o(IP选项中时间戳)和不带选项(ICMP路由时间戳)上述路由的系统时间进行测试。得到的结果:
lixi@lixi-desktop:~# ./clockdiff -o 202.38.64.9
..................................................
host=202.38.64.9 rtt=1(0)ms/1ms delta=-857517ms/-857517ms Wed Dec 17 11:28:30 2008
lixi@lixi-desktop:~# ./clockdiff 202.38.64.9
.
host=202.38.64.9 rtt=750(187)ms/0ms delta=-857517ms/-857517ms Wed Dec 17 11:28:35 2008
两种方法测试的都比较准确。
cmp
比较两个文件是否有差异
补充说明
cmp命令 用来比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有差异,预设会标示出第一个不通之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为“-”,则cmp指令会从标准输入设备读取数据。
语法
cmp(选项)(参数)
选项
-c或--print-chars:除了标明差异处的十进制字码之外,一并显示该字符所对应字符;
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目;
-l或——verbose:标示出所有不一样的地方;
-s或--quiet或——silent:不显示错误信息;
-v或——version:显示版本信息;
--help:在线帮助。
参数
目录:比较两个文件的差异。
实例
使用cmp命令比较文件"testfile"和文件"testfile1"两个文件,则输入下面的命令:
cmp testfile testfile1 #比较两个指定的文件
在上述指令执行之前,使用cat命令查看两个指定的文件内容,如下所示:
cat testfile #查看文件内容
Absncn 50 #显示文件“testfile”
Asldssja 60
Jslkadjls 85
cat testfile1 #查看文件内容
Absncn 50 #显示文件“testfile1”
AsldssjE 62
Jslkadjls 85
然后,再执行cmp命令,并返回比较结果,具体如下所示:
cmp testfile testfile1 #比较两个文件
testfile testfile1 #有差异:第8字节,第2行
注意:在比较结果中,只能够显示第一比较结果。
col
过滤控制字符
补充说明
col命令 是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备。在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符>和>>,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符。
语法
col(选项)
选项
-b:过滤掉所有的控制字符,包括RLF和HRLF;
-f:滤掉RLF字符,但允许将HRLF字符呈现出来;
-x:以多个空格字符来表示跳格字符;
-l<缓冲区列数>:预设的内存缓冲区有128列,用户可以自行指定缓冲区的大小。
colrm
删除文件中的指定列
补充说明
colrm命令 用于删除文件中的指定列。colrm命令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则colrm命令不会过滤任何一行。
语法
colrm(参数)
参数
- 起始列号:指定要删除的指定列;
- 结尾列号:指定要删除的结尾列。
comm
按行比较两个已排序的文件。
概要
comm [OPTION]... FILE1 FILE2
主要用途
- 按行比较两个已排序的文件。
- 当
FILE1或FILE2为-时,读取标准输入。 - 无选项时输出三列,第一列为
FILE1独有的行,第二列为FILE2独有的行,第三列为FILE1,FILE2共有的行。
选项
-1 不输出第一列。
-2 不输出第二列。
-3 不输出第三列。
--check-order 检查输入行是否正确的排序,即使它们确实是已排序过的。
--nocheck-order 不检查输入行是否正确的排序。
--output-delimiter=STR 使用STR作为输出列之间的分隔符而不是默认的TAB。
--total 额外地增加第四列输出概要。
-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
返回值
返回0表示成功,返回非0值表示失败。
例子
文本 aaa.txt 内容
[root@localhost text]# cat aaa.txt
aaa
bbb
ccc
ddd
eee
111
222
文本 bbb.txt 内容
[root@localhost text]# cat bbb.txt
bbb
ccc
aaa
hhh
ttt
jjj
比较结果
[root@localhost text]# comm --nocheck-order aaa.txt bbb.txt
aaa
bbb
ccc
aaa
ddd
eee
111
222
hhh
ttt
jjj
输出的第一列只包含在aaa.txt中出现的行,第二列包含在bbb.txt中出现的行,第三列包含在aaa.txt和bbb.txt中相同的行。各列之间以制表符(\t)作为分隔符。
command
调用并执行指定的命令
补充说明
command命令 调用指定的指令并执行,命令执行时不查询shell函数。command命令只能够执行shell内部的命令。
语法
command(参数)
参数
指令:需要调用的指令及参数。
实例
使用command命令调用执行echo Linux,输入如下命令:
command echo Linux #调用执行shell内部指令
上面的命令执行后,将调用执行命令echo Linux,其执行结果如下:
Linux
compress
使用Lempress-Ziv编码压缩数据文件
补充说明
compress命令 使用“Lempress-Ziv”编码压缩数据文件。compress是个历史悠久的压缩程序,文件经它压缩后,其名称后面会多出".Z"的扩展名。当要解压缩时,可执行uncompress指令。事实上uncompress是指向compress的符号连接,因此不论是压缩或解压缩,都可通过compress指令单独完成。
语法
compress(选项)(参数)
选项
-f:不提示用户,强制覆盖掉目标文件;
-c:将结果送到标准输出,无文件被改变;
-r:递归的操作方式;
-b<压缩效率>:压缩效率是一个介于9~16的数值,预设值为"16",指定愈大的数值,压缩效率就愈高;
-d:对文件进行解压缩而非压缩;
-v:显示指令执行过程;
-V:显示指令版本及程序预设值。
参数
文件:指定要压缩的文件列表。
实例
将/etc/man.config复到/tmp ,并加以压缩
[root@localhost ~]# cd /tmp
[root@localhost tmp]# cp /etc/man.config .
[root@localhost tmp]# compress man.config
[root@localhost tmp]# ls -l
-rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z
将刚刚的压缩档解开
[root@localhost tmp]# compress -d man.config.Z
将 man.config 压缩成另外一个文件来备份
[root@localhost tmp]# compress -c man.config > man.config.back.Z
[root@localhost tmp]# ll man.config*
-rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config
-rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z
这个-c的选项比较有趣!会将压缩过程的资料输出到屏幕上,而不是写入成为file.Z文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。