一、文件内容浏览命令
1. cat命令: 查看文本文件的内容
命令格式:cat [选项] 文件列表
常用选项:
-n——对输出内容中的所有行标注行号。
-b——对输出内容中的非空行标注行号。
例:
2. more 和 less 命令: 分页查看文件内容
命令格式: more | less [选项] 文件名
常用选项:
-数字——仅适用于more命令,用来指定分页显示时每页的行数。
+num——指定从文件的第num行开始显示。
-c——从顶部清屏然后显示文件内容。
-N——仅适用于less命令,其作用是在每行前添加输出行号。
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
文件末尾时more会自动退出,less 按q键退出
例:输入more | less -N more_less.txt查看more_less.txt并且输出行号
输入想查找的内容,如输入/Linux进行查找,如果有多个可以输入n进行查找下一个,输入b可以查找上一个
例:查看Linux
3. head 和 tail 命令: 查看文件开头或末尾的部分内容
命令格式:head | tail [选项] 文件名
常用选项:
-num——指定需要显示文件多少行的内容,若不指定,默认只显示十行。
-f——使tail不停地去读取和显示文件最新的内容, 以监视文件内容的变化。这样有实时监视的效果。
例题:查看前五行和后五行
4. grep 命令: 检索、过滤文件内容,在指定的文件中查找并显示含有指定字符串的行。
命令格式:grep [参数] 文件名称
参数及作用
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行 |
例:
使用ls命令+通配符查找file1.txt,file2.txt, file3.txt
使用grep命令查找file1.txt, file2.txt, file3.txt
使用grep命令在more_less.txt中查找Linux且输出行号
二、命令搜索
1. whereis命令: 搜索系统命令的命令,whereis 命令不能搜索普通文件,
而只能搜索系统命令。
2. which 命令: 也是搜索系统命令的命令
和whereis区别:
- whereis 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
- 而 which 命令在查找到二进制命令的同时,如果这个命令有别名, 则还可以找到别名命令。
3. locate 命令: 可以按照文件名搜索普通文件的命令
优点: 按照数据库搜索,搜索速度快,消耗资源小。
缺点: 只能按照文件名来搜索文件, 而不能执行更复杂的搜索,
比如按照权限、大小、修改 时间等搜索文件。
例:
三、find命令
find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。
参数及作用:
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
–type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的 |
文件) | |
-prune | 忽略某个目录 |
-exec …… {}; | 后面可跟用于进一步处理搜索结果的命令 |
例:使用find命令在当前路径下查找所有的普通文件,以下只是一部分
例:
使用find命令查找当前路径下的file1.txt,file2.txt,file3.txt
使用find命令查找文件所有者为root的普通文件
例:使用find命令查找修改时间在1天以内的普通文件
四、文本排序统计
1. cut命令: 用于按列提取文本内容,语法格式为:“cut [参数] 文件名称”。
例:
使用默认定界符切割文件内容,且输出切割后的第一个字段
切割文件内容,且输出切割后的第一个字段和第三个字段
按字节切割:输出切割的第一个字节到第10个字节的内容
按字符切割:输出切割后的第一个字符和第5个字符的内容
例:按指定分界符去切割: 输出第一个字段和第三个字段内容
2. uniq命令: 用于去除文本中连续的重复行,英文全称为:“unique”,语法格式为:“uniq [参数] 文件名称”。该命令首先比较相邻的行,然后除去第二行和该行的后续副本,重复的行一定相邻,一般使用在排序后。如果分开且重复的使用uniq命令并不能去重。
例:
使用uniq命令输出去重后的结果
使用uniq命令只输出重复的行
使用uniq命令输出不重复的行
使用uniq命令统计重复次数
3. sort命令: 用于对文本内容进行再排序,语法格式为:“sort [参数] 文件名称”。
参数及作用:
参数 | 作用 |
---|---|
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
例:
创建文件num.txt,args.txt,内容分别为num.txt: 1 3 5 2 4
args.txt: test args1args2 args4 args4 args3
对num.txt进行排序,且将结果输出到sorted_num.txt中
对args.txt进行排序,且将结果输出到sorted_args.txt中
对num.txt和args.txt进行排序,且将结果输出到sorted_merge.txt中
例:
对args.txt排序后去重输出,两种去重方式,使用uniq和-u
合并sorted_args.txt和sorted_num.txt且输出
给定文件info_txt:按第二列作为key进行排序
4. tr命令
- Linux tr 命令用于转换或删除文件中的字符。
- tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
语法: - tr [-cdst][–help][–version][第一字符集][第二字符集]
- tr [OPTION]…SET1[SET2]
参数及作用:
参数 | 作用 |
---|---|
-c | 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 |
-d | 删除指令字符 |
-s | 缩减连续重复的字符成指定的单个字符 |
-t | 削减 SET1 指定范围,使之与 SET2 设定长度相等 |
–help | 显示程序用法信息 |
–version | 显示程序本身的版本信息 |
例:
将26个小写字母的后13个字母替换成大写字母
将hello 123 world 456中的数字替换成空字符
将hello 123 world 456中字母和空格替换掉,只保留数字
5. wc命令: 用于统计指定文本文件的行数、字数或字节数,英文全称为:“word counts”,语法格式为:“wc [参数] 文件名称”。
参数及作用:
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
例:
按字节去统计
按单词去统计
按行去统计