wc(统计数据)

语法:wc [OPTION]... [FILE]...
Options:

  • -l:行数
  • -w:单词数
  • -c:字数

cut(文本截取工具)

语法:cut OPTION... [FILE]...
Options:

  • -d:指定分隔符
  • -f:保留第几个字段
  • -n:基于数值大小进行排序,默认是文本字符排序

sort(排序工具)

语法:sort [OPTION]... [FILE]..
Options:

  • -t:指定分隔符
  • -k:用于排序比较的字段
  • -r:逆序排序,默认是升序排序
  • -f:忽略字符大小写
  • -u:重复的行(连续且重复)只保留一次
  • -n:用于对数字进行排序

uniq(去重工具)

Options:

  • -c:统计相同行出现的次数
  • -u:只显示没有重复的行
  • -d:只显示重复的行

comm(比较两个文件的内容)

作用:用于两个文件之间的比较:交集、求差、差集。comm命令必须使用排序过的文件作为输入。

  • 交集:打印出两个文件所共有的行
  • 求差:打印出指定文件所包含的且互不相同的那些行
  • 差集:打印出包含在文件A中,但不包含在其他指定文件中的那些行

语法:comm A B [-1] [-2] [-3]
Option:

  • -n:删除输出结果的第n列

输出结果:

  • 第一列:只在A中出现的行
  • 第二列:只在B中出现的行
  • 第三列:同时在A和B中出现的行

touch(创建空文件)

  • touch A:创建空文件
  • touch -a A:更改文件的访问时间
  • touch -m A:更改文件的修改时间
  • touch -d A:指定具体的时间戳

file(打印文件类型信息)

语法: file filename
Options:

  • -b:打印不包括文件名在内的文件类型信息

diff(逐行比较文件的内容)

语法:diff [OPTION]... FILES
生成补丁:diff /path/to/oldfile /path/to/newfile > /path/to/patch_file

patch(打补丁)

  • -i:指定补丁文件
    patch -i xxx.patch a.txt //向a.txt文件打补丁
  • -R:逆向打补丁
    patch -R -i xxx.patch a.txt

read(从键盘读取变量的值)

Options:

  • -p:指定读取值时的提示符;
  • -t:指定读取值时等待的时间(秒)。

expect(UNIX系统中用来进行自动化控制和测试的工具)

  • spawn:指定需要自动化哪一个命令
  • expect:提供需要等待的信息
  • send:要发送的提示消息
  • expect eof:表示命令交付结束

dd(生成文件)

  • if=<文件>:代表输入文件
  • bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数;
  • cbs=<字节数>:转换时,每次只转换指定的字节数;
  • conv=<关键字>:指定文件转换的方式;
  • count=<区块数>:仅读取指定的区块数;
  • ibs=<字节数>:每次读取的字节数;
  • obs=<字节数>:每次输出的字节数;
  • of=<文件>:输出到文件;
  • seek=<区块数>:一开始输出时,跳过指定的区块数;
  • skip=<区块数>:一开始读取时,跳过指定的区块数;

例:

dd if=/dev/zero of=junk.data bs=1M count=1	//创建一个1M大小的文件junk.data
dd if=/dev/zero of=junk.data bs=2M count=2	//创建一个4M大小的文件junk.data
# /dev/zero是一个字符设备,他会不断反馈0值字节
# 可以不指定if,代表从stdin中读取输入
# 可以不指定of,代表从stdout输出

tac:(逆序打印)

split

语法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
参数:

  • -<行数> : 指定每多少行切成一个小文件
  • -b<字节> : 指定每多少字节切成一个小文件
  • --help : 在线帮助
  • --version : 显示版本信息
  • -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
  • [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

grep

语法:grep [options] pattern [file...]
options:

    -i:忽略字符大小写
    --color:将配置的字符高亮显示
    -v:反向查找
    -o:只显示被模式匹配到的字符串,如果同一个行有多个字符串 那么每个字符串显示一行,可以加上wc -l统计出现多少次这个字符串
    -E:使用扩展的正则表达式
    -A n:当某一行被找到时,显示这一行且显示这一行下面的n行
    -B n:当某一行被找到时,显示这一行且显示这一行上面的n行
    -C n:当某一行被找到时,显示这一行且显示这一行上下的n行
    -q:不显示匹配或者没匹配到的内容,可以通过此匹配获取命令执行返回值用来进行shell编写

find

语法:find [路径] {条件} 条件操作相关符 [-exec|-ok \n]
options:

-newer #find . -newer cc.tt 查看比cc.tt还要新的文件    touch -d "2015-5-15 12:00" cc.tt创建时指定时间
-user 所属用户
-name 文件名称或通配符
-size 文件大小
        +50M:查看文件大小大于五十M
        -50M:查看文件大小小于50M
        50M:文件大小在50M的文件
        #find /tmp -size +5M -and -size -15M
        #find /tmp ! \(-size +5M -a -name bb \)
-type 文件类型
-atime 时间(天)
-mtime
-ctime
-amin 时间(分钟)
-mmin
-cmin
    -5————五天或者五分钟以内
    +5————五天或者五分钟之前
-exec 操作 ————不能使用别名(因为不提示如果一次性数据太多会造成内存溢出,此时用xargs)
    #find /tmp -name a -exec cp {} /root/Desktop/ \;————{}代表find处理结果
-ok 操作 ————与exec的区别最大在于-ok提供提示(大部分)
xargs
    #find /tmp -name a | xargs -i cp {} /root/Desktop/
    #find /tmp -name a | xargs ls -l

atime、ctime、mtime区别

简名全名中文作用
atimeAccess Time访问时间最后一次访问文件(读取或执行)的时间
ctimeChange Time变化时间最后一次改变文件(属性或权限)或者目录(属性或权限)的时间
mtimeModify Time修改时间最后一次修改文件(内容)或者目录(内容)的时间

星霜荏苒 居诸不息