cksum

cksum

检查文件的CRC是否正确

补充说明

cksum命令 是检查文件的CRC是否正确,确保文件从一个系统传输到另一个系统的过程中不被损坏。这种方法要求校验和在源系统中被计算出来,在目的系统中又被计算一次,两个数字进行比较,如果校验和相等,则该文件被认为是正确传输了。

注意:CRC是指一种排错检查方法,即循环冗余校验法。

指定文件交由cksum命令进行校验后,会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则cksum命令会从标准输入设备中读取数据。

语法

cksum(选项)(参数)

选项

--help:在线帮助;
--version:显示版本信息。

参数

文件:指定要计算校验的版本信息。

实例

使用cksum命令计算文件"testfile1"的完整性,输入如下命令:

cksum testfile1            #对指定文件进行CRC校验

以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:

1263453430 78 testfile1     #输出信息

上面的输出信息中,“1263453430"表示校验码,“78"表示字节数。

注意:如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。

2024-08-08    
clear

clear

清除当前屏幕终端上的任何信息

补充说明

clear命令 用于清除当前屏幕终端上的任何信息。

语法

clear

实例

直接输入clear命令当前终端上的任何信息就可被清除。

2024-08-08    
clock

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时间
2024-08-08    
clockdiff

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

两种方法测试的都比较准确。

2024-08-08    
cmp

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行  

注意:在比较结果中,只能够显示第一比较结果。

2024-08-08    
col

col

过滤控制字符

补充说明

col命令 是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备。在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符>>>,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符。

语法

col(选项)

选项

-b:过滤掉所有的控制字符,包括RLF和HRLF;
-f:滤掉RLF字符,但允许将HRLF字符呈现出来;
-x:以多个空格字符来表示跳格字符;
-l<缓冲区列数>:预设的内存缓冲区有128列,用户可以自行指定缓冲区的大小。
2024-08-08    
colrm

colrm

删除文件中的指定列

补充说明

colrm命令 用于删除文件中的指定列。colrm命令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则colrm命令不会过滤任何一行。

语法

colrm(参数)

参数

  • 起始列号:指定要删除的指定列;
  • 结尾列号:指定要删除的结尾列。
2024-08-08    
comm

comm

按行比较两个已排序的文件。

概要

comm [OPTION]... FILE1 FILE2

主要用途

  • 按行比较两个已排序的文件。
  • FILE1FILE2-时,读取标准输入。
  • 无选项时输出三列,第一列为FILE1独有的行,第二列为FILE2独有的行,第三列为FILE1FILE2共有的行。

选项

-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)作为分隔符。

2024-08-08    
command

command

调用并执行指定的命令

补充说明

command命令 调用指定的指令并执行,命令执行时不查询shell函数。command命令只能够执行shell内部的命令。

语法

command(参数)

参数

指令:需要调用的指令及参数。

实例

使用command命令调用执行echo Linux,输入如下命令:

command echo Linux            #调用执行shell内部指令

上面的命令执行后,将调用执行命令echo Linux,其执行结果如下:

Linux
2024-08-08    
compress

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文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。

2024-08-08