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区别
简名 | 全名 | 中文 | 作用 |
---|---|---|---|
atime | Access Time | 访问时间 | 最后一次访问文件(读取或执行)的时间 |
ctime | Change Time | 变化时间 | 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 |
mtime | Modify Time | 修改时间 | 最后一次修改文件(内容)或者目录(内容)的时间 |