cmp命令linux cmp命令怎么用

Linux cmp比較兩個文件是否有差異命令詳解

功能說明:比較兩個文件是否有差異。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為明水等服務(wù)建站,明水等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為明水企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

語法:cmp [-clsv][-i 字符數(shù)目][--help][第一個文件][第二個文件]

補充說明:當相互比較的兩個文件完全一樣時,則該指令不會顯示任何信息。若發(fā)現(xiàn)有所差異,預設(shè)會標示出第一個不同之處的字符和列數(shù)編號。若不指定任何文件名稱或是所給予的文件名為”-”,則cmp指令會從標準輸入設(shè)備讀取數(shù)據(jù)。

參數(shù):

 -c或–print-chars  除了標明差異處的十進制字碼之外,一并顯示該字符所對應(yīng)字符。

 -i字符數(shù)目或–ignore-initial=字符數(shù)目  指定一個數(shù)目。

 -l或–verbose  標示出所有不一樣的地方。

 -s或–quiet或–silent  不顯示錯誤信息。

 -v或–version  顯示版本信息。

 –help  在線幫助。

實例:

1. 要確定兩個文件是否相同,請輸入:

cmp prog.o.bak prog.o

這比較 prog.o.bak 和 prog.o。如果文件相同,則不顯示消息。如果文件不同,則顯示第一個不同的位置;例如:

prog.o.bak prog.o differ: char 4, line 1

如果顯示消息 cmp: EOF on prog.o.bak,則 prog.o 的第一部分與 prog.o.bak 相同,但在 prog.o 中還有其他數(shù)據(jù)。

2. 要顯示不同字節(jié)的每個對,請輸入:

cmp -l prog.o.bak prog.o

這比較文件,然后顯示字節(jié)數(shù)(使用十進制格式)和每個不同的不同字節(jié)(使用八進制格式)。例如,如果第五個字節(jié)在 prog.o.bak 中是八進制 101,在 prog.o 中是 141,則 cmp

關(guān)于linux cmp的問題。在網(wǎng)上看到一個關(guān)于cmp -s的例子,百撕不得騎姐。

不是這樣的

if COMMAND的語義是, 如果COMMAND執(zhí)行成功, 而linux下面成功的標志往往是0.

也就是說COMMAND返回0的話, 就繼續(xù)執(zhí)行, 否則執(zhí)行else。

這一點和C、JAVA這些編程語言是相反的。

linux shell中這樣的命令 怎么總是變量名非法 #!/bin/csh -f set path1=$(cmp count1 count) echo $path1

因為csh里面設(shè)置變量不能以$開頭。正確寫法是:

set path1 = `cmp count1 count`; echo $path1

如何1分鐘內(nèi)對 Linux 性能快速分析(113資訊網(wǎng))

當你在IDC主機商購買一臺系統(tǒng)為 Linux 服務(wù)器之后,我想大家第一時間就是對主機進行一個性能分析,這里我跟大家分享幾個命令,能讓大家在一分鐘以內(nèi)對自己的性能有一個大致的鳥解?

uptime

dmesg | tail

vmstat 1

mpstat -P ALL 1

pidstat 1

iostat -xz 1

free -m

sar -n DEV 1

sar -n TCP,ETCP 1

top

這10個命令到底是什么意思,我為大家一一解釋一下:

1.uptime

# uptime

03:16:26 up 21:31, 1 user, load average: 10.02, 06.43, 09.02

在上面的例子中,平均負載顯示是在不斷增加的,1 分鐘的值是 10,相比 15 分鐘的值 09 來說是增加了。這個數(shù)字這么大就意味著有事情發(fā)生了.

2. dmesg | tail

# dmesg | tail

[? 14.102501] ISO 9660 Extensions: RRIP_1991A

[? 15.900216] ISO 9660 Extensions: Microsoft Joliet Level 3

[? 15.900234] ISO 9660 Extensions: RRIP_1991A

[? 17.030540] EXT4-fs (vda1): resizing filesystem from 5242619 to 13106939 blocks

[? 17.151434] random: crng init done

[? 17.151436] random: 7 urandom warning(s) missed due to ratelimiting

[? 18.314268] EXT4-fs (vda1): resized filesystem to 13106939

[? 20.394666] new mount options do not match the existing superblock, will be ignored

[? 38.405804] ISO 9660 Extensions: Microsoft Joliet Level 3

[? 38.407599] ISO 9660 Extensions: RRIP_1991A

這里展示的是最近 10 條系統(tǒng)消息日志,如果系統(tǒng)消息沒有就不會展示。主要是看由于性能問題導致的錯誤。

3. vmstat 1

# vmstat 1

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r? b? swpd? free? buff? cache? si? so? ? bi? ? bo? in? cs us sy id wa st

1? 0? ? ? 0 324644 141184 1270628? ? 0? ? 0? ? 10? ? 40? 207? 431? 1? 1 99? 0? 0

0? 0? ? ? 0 324388 141184 1270628? ? 0? ? 0? ? 0? ? 0? 130? 280? 1? 1 98? 0? 0

0? 0? ? ? 0 324388 141184 1270628? ? 0? ? 0? ? 0? ? 0? 89? 169? 0? 0 100? 0? 0

0? 0? ? ? 0 324420 141184 1270628? ? 0? ? 0? ? 0? ? 0? 118? 225? 1? 0 99? 0? 0

0? 0? ? ? 0 324420 141184 1270628? ? 0? ? 0? ? 0? ? 32? 125? 254? 0? 0 99? 1? 0

1? 1? ? ? 0 324420 141184 1270628? ? 0? ? 0? ? 0? ? 68? 96? 171? 0? 0 96? 4? 0

0? 0? ? ? 0 324452 141184 1270628? ? 0? ? 0? ? 0? 184? 127? 166? 0? 1 96? 3? 0

^C

r: CPU 上的等待運行的可運行進程數(shù)。這個指標提供了判斷 CPU 飽和度的數(shù)據(jù),因為它不包含 I/O 等待的進程??山忉尀椋骸皉” 的值比 CPU 數(shù)大的時候就是飽和的。

free:空閑內(nèi)存,單位是 k。如果這個數(shù)比較大,就說明你還有充足的空閑內(nèi)存。“free -m” 和下面第 7 個命令,可以更詳細的分析空閑內(nèi)存的狀態(tài)。

si,so:交換進來和交換出去的數(shù)據(jù)量,如果這兩個值為非 0 值,那么就說明沒有內(nèi)存了。

us,sy,id,wa,st:這些是 CPU 時間的分解,是所有 CPU 的平均值。它們是用戶時間,系統(tǒng)時間(內(nèi)核),空閑,等待 I/O 時間,和被偷的時間(這里主要指其它的客戶,或者使用 Xen,這些客戶有自己獨立的操作域)。

4. mpstat -P ALL 1

# mpstat -P ALL 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2020 _x86_64_ (1 CPU)

03:33:26 AM? CPU? ? %usr? %nice? ? %sys %iowait? ? %irq? %soft? %steal? %guest? %gnice? %idle

03:33:27 AM? all? ? 0.00? ? 0.00? ? 0.00? ? 1.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? 99.00

03:33:27 AM? ? 0? ? 0.00? ? 0.00? ? 0.00? ? 1.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? 99.00

這個命令打印各個 CPU 的時間統(tǒng)計,可以看出整體 CPU 的使用是不是均衡的。由于我使用的是1H2G主機看不出區(qū)別!

5. pidstat 1

# pidstat 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2020 _x86_64_ (1 CPU)

03:34:47 AM? UID? ? ? PID? ? %usr %system? %guest? %wait? ? %CPU? CPU? Command

03:34:48 AM? ? 0? ? ? 1120? ? 1.00? ? 0.00? ? 0.00? ? 0.00? ? 1.00? ? 0? sshd

pidstat 命令為每個 CPU 統(tǒng)計信息功能。由于我使用的是1H2G主機看不出區(qū)別!

6. iostat -xz 1

# iostat -xz 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2020 _x86_64_ (1 CPU)

avg-cpu:? %user? %nice %system %iowait? %steal? %idle

? ? ? 0.67? ? 0.01? ? 0.52? ? 0.29? ? 0.00? 98.52

Device? ? ? ? ? ? r/s? ? w/s? ? rkB/s? ? wkB/s? rrqm/s? wrqm/s? %rrqm? %wrqm r_await w_await aqu-sz rareq-sz wareq-sz? svctm? %util

loop0? ? ? ? ? ? 0.00? ? 0.00? ? ? 0.00? ? ? 0.00? ? 0.00? ? 0.00? 0.00? 0.00? ? 0.22? ? 0.00? 0.00? ? 9.64? ? 0.00? 0.00? 0.00

scd0? ? ? ? ? ? 0.02? ? 0.00? ? ? 0.48? ? ? 0.00? ? 0.00? ? 0.00? 0.00? 0.00? ? 0.21? ? 0.00? 0.00? ? 27.72? ? 0.00? 0.19? 0.00

vda? ? ? ? ? ? ? 0.64? ? 4.07? ? ? 9.15? ? 40.59? ? 0.00? ? 1.99? 0.00? 32.85? ? 3.58? ? 2.31? 0.01? ? 14.31? ? 9.96? 0.24? 0.11

avg-cpu:? %user? %nice %system %iowait? %steal? %idle

? ? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? 100.00

Device? ? ? ? ? ? r/s? ? w/s? ? rkB/s? ? wkB/s? rrqm/s? wrqm/s? %rrqm? %wrqm r_await w_await aqu-sz rareq-sz wareq-sz? svctm? %util

r/s, w/s, rkB/s, wkB/s:這些表示設(shè)備上每秒鐘的讀寫次數(shù)和讀寫的字節(jié)數(shù)(單位是k字節(jié))。這些可以看出設(shè)備的負載情況。性能問題可能就是簡單的因為大量的文件加載請求。

await:I/O 等待的平均時間(單位是毫秒)。這是應(yīng)用程序所等待的時間,包含了等待隊列中的時間和被調(diào)度服務(wù)的時間。過大的平均等待時間就預示著設(shè)備超負荷了或者說設(shè)備有問題了。

avgqu-sz:設(shè)備上請求的平均數(shù)。數(shù)值大于 1 可能表示設(shè)備飽和了(雖然設(shè)備通常都是可以支持并行請求的,特別是在背后掛了多個磁盤的虛擬設(shè)備)。

%util:設(shè)備利用率。是使用率的百分數(shù),展示每秒鐘設(shè)備工作的時間。這個數(shù)值大于 60% 則會導致性能很低(可以在 await 中看),當然這也取決于設(shè)備特點。這個數(shù)值接近 100% 則表示設(shè)備飽和了。

7. free -m/h

ubuntu@VM-0-17-ubuntu:~# free -m

? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available

Mem:? ? ? ? ? 1833? ? ? ? 137? ? ? ? 313? ? ? ? ? 5? ? ? ? 1381? ? ? ? 1506

Swap:? ? ? ? ? ? 0? ? ? ? ? 0? ? ? ? ? 0

ubuntu@VM-0-17-ubuntu:~$ free -h

? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available

Mem:? ? ? ? ? 1.8G? ? ? ? 139M? ? ? ? 311M? ? ? ? 5.8M? ? ? ? 1.3G? ? ? ? 1.5G

Swap:? ? ? ? ? ? 0B? ? ? ? ? 0B? ? ? ? ? 0B

這個命令我相信大家都熟悉,buffers:用于塊設(shè)備 I/O 緩沖的緩存,cached:用于文件系統(tǒng)的頁緩存。

8. sar -n DEV 1

ubuntu@VM-0-17-ubuntu:~# sar -n DEV 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2020 _x86_64_ (1 CPU)

03:43:35 AM? ? IFACE? rxpck/s? txpck/s? ? rxkB/s? ? txkB/s? rxcmp/s? txcmp/s? rxmcst/s? %ifutil

03:43:36 AM? ? ? eth0? ? 11.00? ? 10.00? ? ? 0.79? ? ? 1.06? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00

03:43:36 AM? ? ? ? lo? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00

使用這個工具是可以檢測網(wǎng)絡(luò)接口的吞吐:rxkB/s 和 txkB/s,作為收發(fā)數(shù)據(jù)負載的度量,也是檢測是否達到收發(fā)極限。在上面這個例子中,eth0 接收數(shù)據(jù)達到 0.79 kb 字節(jié)/秒,發(fā)送數(shù)據(jù)達到1.06 字節(jié)/秒。

9. sar -n TCP,ETCP 1

ubuntu@VM-0-17-ubuntu:~# sar -n TCP,ETCP 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2020 _x86_64_ (1 CPU)

03:49:56 AM? active/s passive/s? ? iseg/s? ? oseg/s

03:49:57 AM? ? ? 0.00? ? ? 0.00? ? ? 5.05? ? ? 3.03

03:49:56 AM? atmptf/s? estres/s retrans/s isegerr/s? orsts/s

03:49:57 AM? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00? ? ? 0.00

這是對 TCP 關(guān)鍵指標的統(tǒng)計,它包含了以下內(nèi)容:

active/s:每秒本地發(fā)起的 TCP 連接數(shù)(例如通過 connect() 發(fā)起的連接)。

passive/s:每秒遠程發(fā)起的連接數(shù)(例如通過 accept() 接受的連接)。

retrans/s:每秒TCP重傳數(shù)。

10. top

ubuntu@VM-0-17-ubuntu:~# top

top - 03:53:20 up 1 day,? 1:41,? 1 user,? load average: 0.01, 0.04, 0.00

Tasks:? 89 total,? 1 running,? 52 sleeping,? 0 stopped,? 0 zombie

%Cpu(s):? 0.3 us,? 0.3 sy,? 0.0 ni, 99.3 id,? 0.0 wa,? 0.0 hi,? 0.0 si,? 0.0 st

KiB Mem :? 1877076 total,? 317436 free,? 143420 used,? 1416220 buff/cache

KiB Swap:? ? ? ? 0 total,? ? ? ? 0 free,? ? ? ? 0 used.? 1540856 avail Mem

PID USER? ? ? PR? NI? ? VIRT? ? RES? ? SHR S %CPU %MEM? ? TIME+ COMMAND? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

3730 root? ? ? 20? 0? 105688? 6812? 5840 S? 0.3? 0.4? 0:00.01 sshd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

7546 root? ? ? 20? 0? 644608? 14924? 6776 S? 0.3? 0.8? 2:48.99 YDService? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1 root? ? ? 20? 0? 159892? 9260? 6796 S? 0.0? 0.5? 0:06.45 systemd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 kthreadd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

4 root? ? ? 0 -20? ? ? 0? ? ? 0? ? ? 0 I? 0.0? 0.0? 0:00.00 kworker/0:0H? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

6 root? ? ? 0 -20? ? ? 0? ? ? 0? ? ? 0 I? 0.0? 0.0? 0:00.00 mm_percpu_wq? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

7 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:04.29 ksoftirqd/0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

8 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 I? 0.0? 0.0? 0:08.85 rcu_sched? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

9 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 I? 0.0? 0.0? 0:00.00 rcu_bh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

10 root? ? ? rt? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 migration/0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

11 root? ? ? rt? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.16 watchdog/0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

12 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 cpuhp/0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

13 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 kdevtmpfs? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

top 命令包含了很多我們前面提到的指標。這個命令可以很容易看出指標的變化表示負載的變化,這個看起來和前面的命令有很大不同。

top 的一個缺陷也比較明顯,很難看出變化趨勢,其它像 vmstat 和 pidstat 這樣的工具就會很清晰,它們是以滾動的方式輸出統(tǒng)計信息。所以如果你在看到有問題的信息時沒有及時的暫停下來(Ctrl-S 是暫停, Ctrl-Q 是繼續(xù)),那么這些有用的信息就會被清屏。

文章原文: ?(來都來了,就去我博客看下?。。?/p>

分享題目:cmp命令linux cmp命令怎么用
URL網(wǎng)址:http://muchs.cn/article42/dohdphc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站改版、云服務(wù)器網(wǎng)站制作、關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司