前面有一篇文章《一个有些意思的项目--文件夹对比工具(一)》,里面简单讲了下diff算法之--Myers算法。
在我们编写代码的时候,我们经常需要知道两个文件之间,或者同一个文件不同版本之间有什么差异性。在 Windows 下有个很强大的工具叫作 BeyondCompare ,那在 Linux 下需要用到什么工具呢?
原文链接:https://rumenz.com/rumenbiji/linux-diff.html
diff 命令在Linux中的作用是比较两个文件之间的差异。它可用于比较文本文件、目录及其子目录中的文件。
diffstat命令根据diff的比较结果,统计各文件的插入、删除、修改等差异计量。
在 Linux 操作系统下,ls (list) 可以说是我们日常使用率较高的命令了,它主要用来显示目标列表,输出信息可以进行彩色加亮显示,以分区不同类型的文件。关于 ls[1] 的语法、选项、实例、扩展知识,这里就不详细介绍了。
diff命令能够比较给定的两个文件的不同,如果使用-代替文件参数,则要比较的内容将来自标准输入,diff命令是以逐行的方式比较文本文件的异同处,如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
我们在写代码的过程中,免不了会对代码进行一些修修改改。但经常会出现改着改着,就不知道改完后与源文件的差异是怎样的。这里,我们就需要一个文本比对工具来进行文本比对。
1.df命令 # df -ha 显示所有文件和分区的使用 # df -h /dev/sda1 显示sda1磁盘使用率 # df -T 显示文件系统名称属于每个分区。区的格式类型(比方ext3) 注:h參数表示转换为M。G等人们经常使用的磁盘空间单位显示 2.du命令 # du -h src 显示src文件夹中各个文件(或者文件)所占用的磁盘空间 # du -hs /usr 显示usr文件夹中全部文件的总大小 # du -h test.c 显示test.c文件所占用的磁盘空间 3.dd命令 dd 是 Linux/UNIX 下的一个很实用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同一时候进行指定的转换。 # dd if=/dev/hdb | gzip > /root/image.gz 备份/dev/hdb全盘数据。并利用gzip工具进行压缩。保存到指定路径 注:“|”表示管道命令,是指“|”的左边执行结果是其右边的输入条件或者范围。如:history | grep date指从history这条命令执行的结果中显示包括有“date”的命令 # gzip -dc /root/image.gz | dd of=/dev/hdb 将压缩的备份文件恢复到指定盘 # dd if=/dev/fd0 of=disk.img bs=4M 备份软盘。读和写的块大小为4M 4.# uname -a 查看Ubuntu的版本号 5.cat命令 # cat -n test.c 显示整个test.c的内容,并对内容按行编号 6.lsmod命令 # lsmod 显示全部内核载入的模块 # lsmod | grep mptspi 显示内核载入的全部包括mtpspi的模块 7.# lsusb 查看USB设备 8.# cat /proc/cpuinfo 查看cpu的状态 9.# lshw 查看硬件信息 10.# fdisk -l 查看磁盘的信息 # fdisk /dev/sda 对磁盘sda(注意不是sda1,sda1是sda的一个分区)进行操作,包含新建分区。删除分区等,后面的操作按提示选项进行。 11.# free -m 查看当前内存使用情况 12.# ps -A 查看当前系统有哪些进程 13.# kill 进程号 中止一个进程 14.# kill -9 进程号 强制中止一个进程。kill 进程号不成功时能够使用 15.# top 查看当前进程的实时状况 # top -p 786 显示进程号为786的进程的实时执行状况 16.ifconfig命令 # ifconfig 显示网卡相关的信息 # ifconfig eth0 up 打开eth0网卡 # ifconfig eth0 down 关闭eth0网卡 # infonfig eth0 192.168.1.1 设置eth0的IP地址为192.168.1.1 17.启动停止服务命令 # /etc/init.d/服务名 restart/stop/start 重新启动/停止/启动一个服务 18.# whereis 文件名称 高速查找一个文件 19.# find 文件夹 -name 文件名称 在文件夹中查找某个文件名称的文件 find -name ‘*fb*’ 在当前文件夹下查找文件名称中包括”fb”字样的文件 find /usr -name ‘*fb*’ 在/usr文件夹下查找文件名称中包括”fb”字样的文件 20.# tail -n 6 文件名称 假设值的前面有 +(加号)。从文件开头指定的单元数開始将文件写到标准输出。假设值的前面有 -(减号)。则从文件末尾指定的单元数開始将文件写到标准输出。假设值前面没有 +(加号)或 -(减号)。那么从文件末尾指定的单元号開始读取文件。 # tail -n 6 文件名称 == # tail -n -6 文件名称 21.grep命令 # grep ‘test’ d* 显示全部以d开头的文件里包括test的行。
问:1 如何查看当前的Linux服务器的运行级别? 答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。 问:2 如何查看Linux的默认网关? 答: 用 “route -n” 和 “netstat -nr” 命令,我们可以查看默认网关。除了默认的网关信息,这两个命令还可以显示当前的路由表。 问:3 如何在Linux上重建初始化内存盘镜像文件? 答: 在CentOS 5.X / RHEL 5.X中,可以用mkinitrd命令来创建初始化内存盘文
各位小伙伴快来看看这里的基础题目都能完全掌握嘛? 欢迎各路大神留言或投稿自己遇到的面试题目! 请小伙伴们先只看以下题目部分,自己先思考下答案!(不要偷看后面的答案部分) 题目部分 1、如何查看当前的L
如何比较两个相似的文件来检查差异?答案显而易见,就是使用 Linux 中的 diff 命令。
Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,<, ‘>’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的作用。 默认Linux的命令的结果都是输出到标准输出,错误信息 (比如命令未找到或文件格式识别错误等) 输出到标准错误,而标准输出和标准错误默认都会显示到屏幕上。 >表示重定向标准输出,> filename就是把标准输出存储到文件filename里面。标准错误还是会显示在屏幕上。 2 >&1 表示把标准错误重定向到标准输出。Linux终端用2表示标准
如果给定的文件名是 -,表示从标准输入读取内容。如果给定的文件是目录,则将会比较该目录中具有相同文件名的文件,默认情况下不会对其子目录文件进行任何比较操作。
我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点。在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也有很多很强大的工具
俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界。
cat命令用于查看纯文本文件(内容较少的),英文全称为“concatenate”,语法格式为“cat [参数] 文件名称”。
diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。
现在诸葛建国要比较dev和test两个mysql数据库的结构,最简单就是dump出来然后diff。 大笔一挥,写出如下脚本 mysqldump -u user -ppassword dbname -d --skip-comments > dev mysqldump -u user -ppassword dbname -d --skip-comments > test diff dev test --skip-comments选项可以去掉Dump completed on 2018-05-18 14:36
Linux的浩瀚无垠,使人总能每次都提交与众不同的内容。这些内容不仅对他们的职业生涯很有用,同时也让他们增长知识。在此,我们就尝试这么去做,至于能取得多大的成功,就由我们的读者朋友们来判断吧。
本篇博文讲述系统内核、Bash解释器的关系与作用,如何正确的执行Linux命令以及常见排错方法。
文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! Linux cat命令 cat 命令用于连接文件并打印到标准输出设备上。 Linux chattr命令 Linux chattr命令用于改变文件属性。 Linux chgrp命令 Linux chgrp命令用于变更文件或目录的所属群组。 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。 Linux chmo
1、Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、Linux命令行下往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、Linux命令行下将改动的文件提交到版本库 svn commit -m “Log
Linux中有两个比较命令,它们分别是comm和diff,在比较文本文件的版本时通常很有用。本文介绍它们的区别和简单用法。
作者 | Pradeep Kumar 来源 | linux中国 豌豆贴心提醒,本文阅读时间5分钟,文末有秘密! 1.如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'ru
我们计算增量代码覆盖率的基础,就是要找出两个版本代码的差异,在Git环境下,我们可以很方便的通过Git脚本来获取这些数据。
执行./dp.sh。 gen 是生成数据的程序,bruteforce 是暴力的程序,my 是我要测试的程序。 diff 的参数-b是忽略空格引起的变化,-y是使用并列格式输出,--suppress-common-lines 是在并列格式中不印出公共行。 ps.来源是学长们留下的板子上的,然后我加上了参数。
其实有很多种请客。git status可能有一些不同的原因,但git diff可能没有。
本文主要讲述,如何编译一个linux内核,使其默认执行我们提供的一个hello world程序。
以下就是今天我们要介绍的Linux命令: man touch, cat and less sort and grep cut sed tar find diff uniq chmod 接下来让我们逐一来详细介绍。 1、man命令 第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”: 语法: man <command name> man ls root@devopscube:~# man ls
Linux这么多命令,通常会让初学者望而生畏。下面是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的同学,精选的一批必须要搞懂的命令集合。 任何一个命令其实都是可以深入的,比如tail -f和tail -F的区别。我们不去关心,只使用最常见的示例来说明。本文不会教你具体的用法,那是抢man命令的饭碗。这只是个引导篇,力求简洁。
通常,我们在了解应用服务的性能时,都会去在所定义的垃圾收集日志文件中去分析GC活动轨迹,在gc.log文件中,我们经常会看到每个GC事件所打印的三种时间类型:
您可以使用 arch 命令了解计算机体系结构。Arch 命令打印诸如“i386、i486、i586、alpha、arm、m68k、mips、sparc、x86_64 等”。
作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息。本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助。 以下就是今天我们
到目前为止,我们已经阐述了 Git 基本的运作机制和使用方式,介绍了许多 Git 提供的工具来帮助你简单且有效地使用它。 在本章,我们将演示如何借助 Git 的一些重要的配置方法和钩子机制,来满足自定义的需求。 通过这些工具,它会和你、你的公司或你的团队配合得天衣无缝。
Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单:在一个实用的工具包里尽可能多的包含渗透和审计工具。 Kali Linux is an open source project that is maintained and funded by Offensive Security, a provider of world-class information security training and penetration testing services.
使用 docker 是非常简单的-你只要会 build,run,inspect,pull 和 push 容器和镜像,但你有没有想过 docker 如何做到这些以及内部实际工作原理是什么?在这个简单的界面背后隐藏着许多很酷的技术,在本文中我们将探讨其中之一——联合文件系统——所有容器和镜像层背后的文件系统......
pt-config-diff是Percona Toolkit工具集的其中一个,主要用于my.cnf配置文件和show global variables系统变量之间的对比,下面简单介绍一下。
git config –global user.email mail@box.com
本篇介绍如何通过difflib模块实现文件内容差异对比。difflib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持输出可读性比较强的HTML文档,与Linux下的diff命令相似。我们可以使用difflib对比代码、配置文件的差别,在版本控制方面是非常有用。 Python 2.3或更高版本默认自带difflib模块,无需额外安装。
命令:cat cat 命令用于连接文件并打印到标准输出设备上。 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明 -n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和
将 linux(文件名) 挂载到 linux_cd 目录下,正常访问 O7avZhikgKgbF 文件夹即可看到 flag 文件,再经过 base64 解码得到最终 flag
unix2dos: converting file baby to DOS format ...
像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/linux-shell-command/
领取专属 10元无门槛券
手把手带您无忧上云