仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 622|回复: 9
打印 上一主题 下一主题

[其他Linux] Linux教程之读懂diff仓酷云

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:26:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本。
diff是Unix体系的一个很主要的工具程序。
它用来对照两个文本文件的差别,是代码版本办理的基石之一。你在命令行下,输出:
  $diff<变化前的文件><变化后的文件>
diff就会告知你,这两个文件有何差别。它的显现了局不太好懂,上面我就来讲明,怎样读懂diff。

<br>
1、diff的三种格局
因为汗青缘故原由,diff有三种格局:
  *一般格局(normaldiff)
  *高低文格局(contextdiff)
  *兼并格局(unifieddiff)
我们顺次来看。
2、示例文件
为了便于解说,先新建两个示例文件。
第一个文件叫做f1,内容是每行一个a,一共7行。
  a
  a
  a
  a
  a
  a
  a
第二个文件叫做f2,修正f1而成,第4行酿成b,其他稳定。
  a
  a
  a
  b
  a
  a
  a
3、一般格局的diff
如今对f1和f2举行对照:
  $difff1f2
这时候,diff就会显现一般格局的了局:
  4c4
  <a
  ---
  >b
第一行是一个提醒,用来讲明变化地位。
  4c4
它分红三个部分:后面的"4",暗示f1的第4行有变更;两头的"c"暗示变化的形式是内容改动(change),其他形式另有"增添"(a,代表addition)和"删除"(d,代表deletion);前面的"4",暗示变化后酿成f2的第4行。
第二行分红两个部分。
  <a
后面的小于号,暗示要从f1傍边往除该行(也就是第4行),前面的"a"暗示该行的内容。
第三行用来支解f1和f2。
  ---
第四行,相似于第二行。
  >b
后面的年夜于号暗示f2增添了该行,前面的"b"暗示该行的内容。
最早的Unix(即AT&T版本的Unix),利用的就是这类格局的diff。
4、高低文格局的diff
上个世纪80年月初,加州年夜学伯克利分校推出BSD版本的Unix时,以为diff的显现了局太复杂,最好到场高低文,便于懂得产生的变化。因而,推出了高低文格局的diff。
它的利用办法是到场c参数(代表context)。
  $diff-cf1f2
显现了局以下:
  ***f12012-08-2916:45:41.000000000+0800
  ---f22012-08-2916:45:51.000000000+0800
  ***************
  ***1,7****
  a
  a
  a
  !a
  a
  a
  a
  ---1,7----
  a
  a
  a
  !b
  a
  a
  a
这个了局分红四个部分。
第一部分的两行,显现两个文件的基础情形:文件名和工夫信息。
  ***f12012-08-2916:45:41.000000000+0800
  ---f22012-08-2916:45:51.000000000+0800
"***"暗示变化前的文件,"---"暗示变化后的文件。
第二部分是15个星号,将文件的基础情形与变化内容支解开。
  ***************
第三部分显现变化前的文件,即f1。
  ***1,7****
  a
  a
  a
  !a
  a
  a
  a
这时候不但显现产生变更的第4行,还显现第4行的后面三行和前面三行,因而一共显现7行。以是,后面的"***1,7****"就暗示,从第1行入手下手一连7行。
别的,文件内容的每行最后面,另有一个标志位。假如为空,暗示该行无变更;假如是叹息号(!),暗示该行有修改;假如是减号(-),暗示该行被删除;假如是加号(+),暗示该举动新增。
第四部分显现变化后的文件,即f2。
  ---1,7----
  a
  a
  a
  !b
  a
  a
  a
除变化行(第4行)之外,也是高低文各显现三行,统共显现7行。
5、兼并格局的diff
假如两个文件类似度很高,那末高低文格局的diff,将显现大批反复的内容,很华侈空间。1990年,GNUdiff领先推出了"兼并格局"的diff,将f1和f2的高低文兼并在一同显现。
它的利用办法是到场u参数(代表unified)。
  $diff-uf1f2
显现了局以下:
  ---f12012-08-2916:45:41.000000000+0800
  +++f22012-08-2916:45:51.000000000+0800
  @@-1,7+1,7@@
  a
  a
  a
  -a
  +b
  a
  a
  a
它的第一部分,也是文件的基础信息。
  ---f12012-08-2916:45:41.000000000+0800
  +++f22012-08-2916:45:51.000000000+0800
"---"暗示变化前的文件,"+++"暗示变化后的文件。
第二部分,变化的地位用两个@作为首先和停止。
  @@-1,7+1,7@@
后面的"-1,7"分红三个部分:减号暗示第一个文件(即f1),"1"暗示第1行,"7"暗示一连7行。合在一同,就暗示上面是第一个文件从第1行入手下手的一连7行。一样的,"+1,7"暗示变化后,成为第二个文件从第1行入手下手的一连7行。
第三部分是变化的详细内容。
  a
  a
  a
  -a
  +b
  a
  a
  a
除有变化的那些行之外,也是高低文各显现3行。它将两个文件的高低文,兼并显现在一同,以是叫做"兼并格局"。每行最后面的标记位,空暗示无变化,减号暗示第一个文件删除的行,加号暗示第二个文件新增的行。
6、git格局的diff
版本办理体系git,利用的是兼并格局diff的变体。
  $gitdiff
显现了局以下:
  diff--gita/f1b/f1
  index6f8a38c..449b072100644
  ---a/f1
  +++b/f1
  @@-1,7+1,7@@
  a
  a
  a
  -a
  +b
  a
  a
  a
第一行暗示了局为git格局的diff。
  diff--gita/f1b/f1
举行对照的是,a版本的f1(即变化前)和b版本的f1(即变化后)。
第二行暗示两个版本的git哈希值(index地区的6f8a38c对象,与事情目次地区的449b072对象举行对照),最初的六位数字是对象的形式(一般文件,644权限)。
  index6f8a38c..449b072100644
第三行暗示举行对照的两个文件。
  ---a/f1
  +++b/f1
"---"暗示变化前的版本,"+++"暗示变化后的版本。
前面的行都与官方的兼并格局diff不异。
  @@-1,7+1,7@@
  a
  a
  a
  -a
  +b
  a
  a
  a
7、浏览质料
  *diff-Wikipedia
  *Howtoreadapatchordiff
  *Howtoworkwithdiffrepresentationingit
(完)

在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
爱飞 该用户已被删除
沙发
发表于 2015-1-21 06:37:34 | 只看该作者
通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-24 06:14:17 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
小妖女 该用户已被删除
地板
发表于 2015-1-29 20:29:45 | 只看该作者
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
兰色精灵 该用户已被删除
5#
发表于 2015-2-5 20:20:28 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
若天明 该用户已被删除
6#
发表于 2015-3-6 21:39:05 | 只看该作者
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
谁可相欹 该用户已被删除
7#
发表于 2015-3-8 10:48:31 | 只看该作者
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。
小女巫 该用户已被删除
8#
发表于 2015-3-15 21:49:39 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
再见西城 该用户已被删除
9#
发表于 2015-3-22 05:10:28 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
变相怪杰 该用户已被删除
10#
发表于 2015-3-22 05:10:28 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 23:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表