原文链接:https://rumenz.com/rumenbiji/linux-compare-dir.html
Windows 习惯使用 TortoiseGit 进行各种 Merge 操作,到了 Linux 也应该准备一个。
如果给定的文件名是 -,表示从标准输入读取内容。如果给定的文件是目录,则将会比较该目录中具有相同文件名的文件,默认情况下不会对其子目录文件进行任何比较操作。
Linux 下对于目录的切换,大家肯定会想到一个命令:cd 命令。这个是 Linux 下再基本不过的命令,如果这个命令都不知道的话,赶紧剖腹自尽去吧。
可以试下x86_64-redhat-linux-gcc -o hello hello.c -static或者gcc -o hello hello.c -static,如果也无法编译,就证明这个pc的gcc确实不支持静态编译
Linux的浩瀚无垠,使人总能每次都提交与众不同的内容。这些内容不仅对他们的职业生涯很有用,同时也让他们增长知识。在此,我们就尝试这么去做,至于能取得多大的成功,就由我们的读者朋友们来判断吧。
使用diffie模块实现文件内容差异对比。dmib作为 Python的标准库模块, 无需安装,作用是对比文本之间的差异,且支持输出可读性比较强的HTML文档,与 Linux 下的dif命令相似。我们可以使用 diffie对比代码、配置文件的差别,在版本控制方面是非 常有用。 Python3.x或更高版本默认自带 diffie模块,无需额外安装。
-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified[统一] context.
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的行。
一般来说,如果我们在研发过程中需要对代码进行修改,是不需要通过打补丁的方式的,因为我们可以直接改动文件即可。但是如果针对一款要上线的产品,我们总不能在研发的电脑上编译通过后直接发布到线上的。(转载请指明出于breaksoftware的csdn博客)因为这样做有很多缺陷:
本文主要讲述,如何编译一个linux内核,使其默认执行我们提供的一个hello world程序。
我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入:
sync-diff-inspector 是由 PingCAP 开源的数据校验工具,用于校验MySQL/TiDB中两份数据是否一致。
网络设备配置管理与版本控制 摘要 2014-12-25 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller Free
您可以使用 arch 命令了解计算机体系结构。Arch 命令打印诸如“i386、i486、i586、alpha、arm、m68k、mips、sparc、x86_64 等”。
Linux这么多命令,通常会让初学者望而生畏。下面是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的同学,精选的一批必须要搞懂的命令集合。 任何一个命令其实都是可以深入的,比如tail -f和tail -F的区别。我们不去关心,只使用最常见的示例来说明。本文不会教你具体的用法,那是抢man命令的饭碗。这只是个引导篇,力求简洁。
1. 命令帮助 help选项 # ls --help man手册 # man ls 2. 关闭、重启系统 关闭系统 shutdown 1分钟后关闭系统 # shutdown -h 1 立即关闭系统 # shutdown -h now 指定时间关闭系统 # shutdown -h 12:00 关闭系统 poweroff # poweroff 挂起系统 halt # halt 重启系统 reboot # reboot 切换系统运行级别 init 运行级别: 0 => 停机 1 => 单用户模式 2 => 多
本着尽可能快完成编译和能用则用的原则, 谈谈编译目前最新的OpenCV 4.5.2编译过程.
碎碎念 今天梳理了这篇文章,同一个地方只能跌一次跟头,再重复错误肯定被老码农敲脑袋 梳理这篇文章源于3月份参加NOI Online测试赛没有全文比较输出文件内容,只是对比了几个值,导致爆零( ̄﹏ ̄;) 标题是老码农起的,心灵鸡汤太多了,以后想管他叫”唐鸡汤“了。(*^_^*) 准备测试文件 mode_ex1.ans 4 1 5 1 4 2 4 8 2 1 2 3 4 5 mode_ex1-2.ans 修改了第13行数据:4 -> 6 4 1 5 1 4 2 4 8 2 1 2 3 6 5 mode_ex
2. 当从服务器clone下来了最新的代码,然后想知道中间的某一部分的代码的patch,
上篇文章 编译一个默认输出hello world的linux内核 中,我们已经知道如何编译一个可以自运行的linux内核,这篇文章我们来看下如何对内核进行断点调试。
pt-config-diff是Percona Toolkit工具集的其中一个,主要用于my.cnf配置文件和show global variables系统变量之间的对比,下面简单介绍一下。
许多在 shell 提示下键入的 Linux 命令都与你在 DOS 下键入的命令相似。事实上,某些命令完全相同。
注意:Ubuntu是Debian系统的扩展和继承,因此Ubuntu中的软件安装包的格式为deb。
diff 给定两个目录,如何找出哪些文件因内容不同 > diff --brief --recursive dir1/ dir2/ --brief仅显示有无差异 或者使用 > diff -qr dir1/ dir2/ -q 仅显示有无差异,不显示详细的信息 -r 比较子目录中的文件 git > git diff --no-index dir1/ dir2/ 可以显示颜色差异 rsync > rsync -rvn -i --delete dir1/ dir2 | sed -n '2,/^$/{/^$/
在日常运维过程中,我们时常遇到这样的烦恼,两套库配置差不多,性能就是不一样,或者将自建的数据库迁移到云上之后,性能差别非常的大;无奈之举,去比对数据库配置是否相同,人肉对比,不仅效率低下而且容易出错哦。pt拿出了这么一个神器,专门对比mysql配置,有这么几种对比方式:
404实验室内部的WAM(Web应用监控程序,文末有关于WAM的介绍)监控到 MetInfo 版本更新,并且自动diff了文件,从diff上来看,应该是修复了一个任意文件读取漏洞,但是没有修复完全,导致还可以被绕过,本文就是记录这个漏洞的修复与绕过的过程。
一个项目正式交付客户使用了,对于版本的升级和代码更新是个一直困扰的问题,由于之前一直都是内部人员使用,可以让他们每次都下载完整压缩包(压缩后大概 40-50MB),但对于正式的终端用户,这个体验是不可接受。 参考过 Electron 官方文档,里面提及的方案兼容性并不好(Linux 不支持),需要准备的东西不少,而且交互上也不满意;本文介绍方案的细节及中间遇到的一些坑。
数据库备份 数据库复制不能取代备份的作用 备份分类: 全量备份:整个数据库的完整备份 增量备份:在上一次备份基础上,对更改数据进行备份。mysqldump不支持这种 逻辑备份:结果为SQL语句,适用于所有存储引擎 物理备份:对数据库目录的靠背,对于内存表只备份结构 备份内容: 备份方式: mysqldump全备介绍 mysqldump备份 mysqldump database [tables] mysqldump --database DB1 [DB2] mysqldump --all-databases
数字游民第三波有你吗 https://mp.weixin.qq.com/s/q864LQvsOOmd9nUyxk939w
PHP作为脚本语言,很多时候我们更新程序都只需要把修改过的文件重新上传覆盖一下就行。
ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件
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.
semantic 库地址:https://github.com/github/semantic
在每台服务器/etc/zabbix/zabbix_agentd.conf设置路径:此例只需要piddiff.sh
TCP重组一直是入侵检测系统中最为重要也是最难的一部分,它涉及到全流量的缓存,因此存储消耗十分巨大,据统计100万的会话就要产生1G~10G的内存缓存,因此设计一套TCP重组优化的算法十分必要,目前优化的办法有两种,一种是尽量不去TCP重组减少缓存包括红绿名单,配置,抽样算法,另一种就是将重组下沉到硬件例如FPGA,减少以软件方式缓存。我横向对比了三种目前流行的入侵检测系统,,看看TCP软件重组上这三种IDS/IPS系统有什么优化点:
Docker安装后默认下载的位置在/var/lib/docker ,如果/var分区没有独立分出来,Linux下默认是与/根分区在一起。一般我们装Linux系统的时候,除了做邮件服务器外,都不会把/var分区独立分出来,而且/分区一般不会太大,比如我现在用的这台根分区50G的,在拉镜像的时候提示硬盘空间不足的问题,而其它分区还有很大空间。基于此情此景,我们都要把这个目录改一下
在linux下我们经常用到的四个应用程序的目录是:/bin、/sbin、/usr/bin、/usr/sbin
作为开发者,你是否对不同源代码段之间的解析和比较困惑不已呢?今天的GitHub趋势热榜上排名第一的帖子介绍了一款多语言支持的“超级命令行工具”Semantic,或许可以解决这个令人头疼的问题。
#!/usr/bin/python # -*- coding: utf8 -*- import os import sys import filecmp import re import shutil file_list = [] def recursive_dir(dir1): """ 递归当前目录的文件和子目录 :param dir1: 传参 需要递归的目录 :return: 当前目录下所有文件和目录 """ curDir = os.path.absp
编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:
使用python filecmp模块的dircmp类可以很方便的比对两个目录,dircmp的用法已经有很多文章介绍,不再赘述。
FTP 服务器是日常工作中比较常用的一种配置,可用于与外部文件共享。 例如:作为与 A 公司合作的第三方 B 公司,A 公司每天需要获取 B 公司提供的某些关键数据信息,那么 A 公司可以通过何种方式来获取 B 公司的数据信息呢?
使用 docker 是非常简单的-你只要会 build,run,inspect,pull 和 push 容器和镜像,但你有没有想过 docker 如何做到这些以及内部实际工作原理是什么?在这个简单的界面背后隐藏着许多很酷的技术,在本文中我们将探讨其中之一——联合文件系统——所有容器和镜像层背后的文件系统......
本例子使用Python的os模块和 argparse模块,将工作目录work_dir下所有后缀名为old_ext的文件修改为后缀名为new_ext
在我们的日常运维工作中,使用jenkins来完成业务代码发版上线是至关重要的一环。 前面已经提到在jenkins上添加用户权限的操作,今天重点说下如何在jenkins下构建项目工程进行代码发布? 在此简单介绍下jenkins进行代码发布的流程(根据本人的经历而述)。 1)代码上线要经历四个场景:Dev开发环境-->Test测试环境-->Beta验收环境-->Online线上环境 Dev开发环境:开发人员在开发机上自行开发,开发后将代码上传到svn/git版本控制系统里。 Test测试环境:将代码从svn下载
列表属于可变序列,元组、字符串属于不可变序列。不可变序列中, append()、pop()、insert() 等修改序列元素的函数均⽆法使⽤。
领取专属 10元无门槛券
手把手带您无忧上云