Linux diff比较文件的差异命令详解

功能说明:比较文件的差异。
语  法:diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][–help][–left-column][–suppress-common-line][文件或目录1][文件或目录2]
补充说明:diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
参  数:
 -  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
 -a或–text  diff预设只会逐行比较文本文件。
 -b或–ignore-space-change  不检查空格字符的不同。
 -B或–ignore-blank-lines  不检查空白行。
 -c  显示全部内文,并标出不同之处。
 -C或–context  与执行”-c-“指令相同。
 -d或–minimal  使用不同的演算法,以较小的单位来做比较。
 -D或ifdef  此参数的输出格式可用于前置处理器巨集。
 -e或–ed  此参数的输出格式可用于ed的script文件。
 -f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
 -H或–speed-large-files  比较大文件时,可加快速度。
 -l或–ignore-matching-lines  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
 -i或–ignore-case  不检查大小写的不同。
 -l或–paginate  将结果交由pr程序来分页。
 -n或–rcs  将比较结果以RCS的格式来显示。
 -N或–new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
 -p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
 -P或–unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
 -q或–brief  仅显示有无差异,不显示详细的信息。
 -r或–recursive  比较子目录中的文件。
 -s或–report-identical-files  若没有发现任何差异,仍然显示信息。
 -S或–starting-file  在比较目录时,从指定的文件开始比较。
 -t或–expand-tabs  在输出时,将tab字符展开。
 -T或–initial-tab  在每行前面加上tab字符以便对齐。
 -u,-U或–unified=  以合并的方式来显示文件内容的不同。
 -v或–version  显示版本信息。
 -w或–ignore-all-space  忽略全部的空格字符。
 -W或–width  在使用-y参数时,指定栏宽。
 -x或–exclude  不比较选项中所指定的文件或目录。
 -X或–exclude-from  您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。
 -y或–side-by-side  以并列的方式显示文件的异同之处。
 –help  显示帮助。
 –left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
 –suppress-common-lines  在使用-y参数时,仅显示不同之处。

Linux cmp比较两个文件是否有差异命令详解

cmp(compare)
功能说明:比较两个文件是否有差异。
语  法:cmp [-clsv][-i ][–help][第一个文件][第二个文件]
补充说明:当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为”-“,则cmp指令会从标准输入设备读取数据。
参  数:
 -c或–print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
 -i或–ignore-initial=  指定一个数目。
 -l或–verbose  标示出所有不一样的地方。
 -s或–quiet或–silent  不显示错误信息。
 -v或–version  显示版本信息。
 –help  在线帮助。

Linux cksum检查文件的CRC是否正确命令详解

cksum(check sum)
功能说明:检查文件的CRC是否正确。
语  法:cksum [–help][–version][文件…]
补充说明:CRC是一种排错检查方式,该演算法的标准由CCITT所指定,至少可检测到99.998%的已知错误。指定文件交由cksum演算,它会回报计算结果,供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为”-“,则cksum指令会从标准输入设备读取数据。
参  数:
 –help  在线帮助。
 –version  显示版本信息。

Linux chown设置档案拥有者命令详解

指令名称 : chown
  
  使用权限 : root
  
  使用方式 : chmod [-cfhvR] [–help] [–version] user[:group] file…
  
  说明 : Linux/Unix 是多人多工操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
  
  参数 :
  
  user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)–help : 显示辅助说明–version : 显示版本
  范例 :
  

  • 将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
  •   

    1. chown jessie:users file1.txt

      
      

  • 将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
  •   

    1. chmod -R lamport:users *

    Linux chmod设置权限命令详解

    指令名称 : chmod
      
      使用权限 : 所有使用者
      
      使用方式 : chmod [-cfvR] [–help] [–version] mode file…
      
      说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
      
      参数 :
      
      mode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
      u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
      + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
      r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
      -c : 若该档案权限确实已经更改,才显示其更改动作
      -f : 若该档案权限无法被更改也不要显示错误讯息
      -v : 显示权限变更的详细资料
      -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
      –help : 显示辅助说明
      –version : 显示版本
      
      

  • 范例 :将档案 file1.txt 设为所有人皆可读取 :
  •   

    1. chmod ugo+r file1.txt

      
      

  • 将档案 file1.txt 设为所有人皆可读取 :
  •  

    1.   chmod a+r file1.txt

      
      

  • 将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
  •   

    1. chmod ug+w,o-w file1.txt file2.txt

      
      

  • 将 ex1.py 设定为只有该档案拥有者可以执行 :
  •   

    1. chmod u+x ex1.py

      
      

  • 将目前目录下的所有档案与子目录皆设为任何人可读取 :
  •   

    1. chmod -R a+r *

      
      

  • 此外chmod也可以用数字来表示权限如 chmod 777 file
  •   

    1. 语法为:chmod abc file

      
      其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
      
      r=4,w=2,x=1
      若要rwx属性则4+2+1=7;
      若要rw-属性则4+2=6;
      若要r-x属性则4+1=5。
      
      范例:
      

    1. chmod a=rwx file

      
      和
      

    1. chmod 777 file

      
      效果相同
      

    1. chmod ug=rwx,o=x file

      
      和
      

    1. chmod 771 file

      
      效果相同
      
      若用chmod 4755 filename可使此程序具有root的权限

    Linux chgrp变更文件或目录的所属群组命令详解

    chgrp(change group)
    功能说明:变更文件或目录的所属群组。
    语  法:chgrp [-cfhRv][–help][–version][所属群组][文件或目录…] 或 chgrp [-cfhRv][–help][–reference=][–version][文件或目录…]
    补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
    参  数:
     -c或–changes 效果类似”-v”参数,但仅回报更改的部分。
     -f或–quiet或–silent  不显示错误信息。
     -h或–no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。
     -R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
     -v或–verbose  显示指令执行过程。
     –help  在线帮助。
     –reference=  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
     –version  显示版本信息。

    Linux chattr改变文件属性命令详解

    chattr(change attribute)
    功能说明:改变文件属性。
    语  法:chattr [-RV][-v][+/-/=][文件或目录…]
    补充说明:这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
     a:让文件或目录仅供附加用途。
     b:不更新文件或目录的最后存取时间。
     c:将文件或目录压缩后存放。
     d:将文件或目录排除在倾倒操作之外。
     i:不得任意更动文件或目录。
     s:保密性删除文件或目录。
     S:即时更新文件或目录。
     u:预防以外删除。

    参  数:
     -R 递归处理,将指定目录下的所有文件及子目录一并处理。
     -v 设置文件或目录版本。
     -V 显示指令执行过程。
     + 开启文件或目录的该项属性。
     - 关闭文件或目录的该项属性。
     = 指定文件或目录的该项属性。

    Linux cat输出档案命令详解

    名称:cat
      使用权限:所有使用者
      使用方式:cat [-AbeEnstTuv] [–help] [–version] fileName
      说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
      参数:
      -n 或 –number 由 1 开始对所有输出的行数编号
      -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
      -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
      -v 或 –show-nonprinting
      范例:

  • 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
  •   

    1. cat -n textfile1 > textfile2
  • 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
  •   

    1. cat -b textfile1 textfile2 >> textfile3
  • 此为清空/etc/test.txt档案内容
  •   

    1. cat /dev/null > /etc/test.txt
  • cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打
  •   

    1. cat /dev/fd0 > OUTFILE
  • 相反的,如果想把 image file 写到软碟,请打
  •   

    1. cat IMG_FILE > /dev/fd0

      
      注:
       1. OUTFILE 指输出的 image 档名。
       2. IMG_FILE 指 image file。
       3. 若从 image file 写回 device 时,device 容量需与相当。
       4. 通常用在制作开机磁片。

    适合Web服务器的iptables规则

    1. IPT="/sbin/iptables"
    2. $IPT –delete-chain
    3. $IPT –flush
    4. $IPT -P INPUT DROP    #1
    5. $IPT -P FORWARD DROP  #1
    6. $IPT -P OUTPUT DROP   #1
    7. $IPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #2
    8. $IPT -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT #3
    9. $IPT -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT #3
    10. $IPT -A INPUT -p tcp -m tcp –dport 21 -j ACCEPT  #3
    11. $IPT -A INPUT -p tcp -m tcp –dport 873 -j ACCEPT #3
    12. $IPT -A INPUT -i lo -j ACCEPT #4
    13. $IPT -A INPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT  #5
    14. $IPT -A INPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT #5
    15. $IPT -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #6
    16. $IPT -A OUTPUT -p udp -m udp –dport 53 -j ACCEPT #7
    17. $IPT -A OUTPUT -o lo -j ACCEPT #4
    18. $IPT -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT #8
    19. $IPT -A OUTPUT -p tcp -m tcp –dport 25 -j ACCEPT #9
    20. $IPT -A OUTPUT -p icmp -m icmp –icmp-type 8 -j ACCEPT  #10
    21. $IPT -A OUTPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT #10
    22. service iptables save
    23. service iptables restart

    存为脚本iptables.sh,执行sh iptables.sh自动配置防火墙。
    解释:
    #1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。
    #2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。
    #3、设置外部客户端连接服务器端口80,22,21,873。
    #4、允许内部数据循回。
    #5、允许外部ping服务器 。
    #6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。
    #7、允许服务器使用外部dns解析域名。
    #8、设置服务器连接外部服务器端口80。
    #9、允许服务器发送邮件。
    #10、允许从服务器ping外部。

    Linux下使用rsync最快速删除海量文件的方法

    昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件。这个是之前的程序写的日志,增长很快,而且没什么用。这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsync来实现快速删除大量文件。

    1、先安装rsync:

    1. yum install rsync

    2、建立一个空的文件夹:

    1. mkdir /tmp/test

    3、用rsync删除目标目录:

    1. rsync –delete-before -a -H -v –progress –stats /tmp/test log

    这样我们要删除的log目录就会被清空了,删除的速度会非常快。
    文章来源:http://www.ha97.com/4107.html