--- title: linux 常用命令-文件内容查看 date: 2018/02/27 categories: - linux tags: - linux - command --- - [linux 常用命令-文件内容查看](#linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4-%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%E6%9F%A5%E7%9C%8B) - [cut](#cut) - [补充说明](#%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E) - [语法](#%E8%AF%AD%E6%B3%95) - [选项](#%E9%80%89%E9%A1%B9) - [参数](#%E5%8F%82%E6%95%B0) - [实例](#%E5%AE%9E%E4%BE%8B) - [指定字段的字符或者字节范围](#%E6%8C%87%E5%AE%9A%E5%AD%97%E6%AE%B5%E7%9A%84%E5%AD%97%E7%AC%A6%E6%88%96%E8%80%85%E5%AD%97%E8%8A%82%E8%8C%83%E5%9B%B4) - [head](#head) - [补充说明](#%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E) - [语法](#%E8%AF%AD%E6%B3%95) - [选项](#%E9%80%89%E9%A1%B9) - [参数](#%E5%8F%82%E6%95%B0) - [tail](#tail) - [补充说明](#%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E) - [语法](#%E8%AF%AD%E6%B3%95) - [选项](#%E9%80%89%E9%A1%B9) - [参数](#%E5%8F%82%E6%95%B0) - [实例](#%E5%AE%9E%E4%BE%8B) - [more](#more) - [补充说明](#%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E) - [语法](#%E8%AF%AD%E6%B3%95) - [选项](#%E9%80%89%E9%A1%B9) - [参数](#%E5%8F%82%E6%95%B0) - [实例](#%E5%AE%9E%E4%BE%8B) - [less](#less) - [补充说明](#%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E) - [语法](#%E8%AF%AD%E6%B3%95) - [选项](#%E9%80%89%E9%A1%B9) - [参数](#%E5%8F%82%E6%95%B0) - [实例](#%E5%AE%9E%E4%BE%8B) # linux 常用命令-文件内容查看 ## cut 连接文件并打印到标准输出设备上 ### 补充说明 **cut命令** 用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令。 说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指 明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如`cut fl f2 > f3`将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。 当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。 ### 语法 ``` cut(选项)(参数) ``` ### 选项 ``` -b:仅显示行中指定直接范围的内容; -c:仅显示行中指定范围的字符; -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容; -n:与“-b”选项连用,不分割多字节字符; --complement:补足被选择的字节、字符或字段; --out-delimiter=<字段分隔符>:指定输出内容是的字段分割符; --help:显示指令的帮助信息; --version:显示指令的版本信息。 ``` ### 参数 文件:指定要进行内容过滤的文件。 ### 实例 例如有一个学生报表信息,包含No、Name、Mark、Percent: ``` [root@localhost text]# cat test.txt No Name Mark Percent 01 tom 69 91 02 jack 71 87 03 alex 68 98 ``` 使用 **-f** 选项提取指定字段: ``` [root@localhost text]# cut -f 1 test.txt No 01 02 03 ``` ``` [root@localhost text]# cut -f2,3 test.txt Name Mark tom 69 jack 71 alex 68 ``` **--complement** 选项提取指定字段之外的列(打印除了第二列之外的列): ``` [root@localhost text]# cut -f2 --complement test.txt No Mark Percent 01 69 91 02 71 87 03 68 98 ``` 使用 **-d** 选项指定字段分隔符: ``` [root@localhost text]# cat test2.txt No;Name;Mark;Percent 01;tom;69;91 02;jack;71;87 03;alex;68;98 ``` ``` [root@localhost text]# cut -f2 -d";" test2.txt Name tom jack alex ``` ### 指定字段的字符或者字节范围 cut命令可以将一串字符作为列来显示,字符字段的记法: * **N-** :从第N个字节、字符、字段到结尾; * **N-M** :从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段; * **-M** :从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。 上面是记法,结合下面选项将摸个范围的字节、字符指定为字段: * **-b** 表示字节; * **-c** 表示字符; * **-f** 表示定义字段。 **示例** ``` [root@localhost text]# cat test.txt abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz ``` 打印第1个到第3个字符: ``` [root@localhost text]# cut -c1-3 test.txt abc abc abc abc abc ``` 打印前2个字符: ``` [root@localhost text]# cut -c-2 test.txt ab ab ab ab ab ``` 打印从第5个字符开始到结尾: ``` [root@localhost text]# cut -c5- test.txt efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz ``` ## head 在屏幕上显示指定文件的开头若干行 ### 补充说明 **head命令** 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。 ### 语法 ``` head(选项)(参数) ``` ### 选项 ``` -n<数字>:指定显示头部内容的行数; -c<字符数>:指定显示头部内容的字符数; -v:总是显示文件名的头信息; -q:不显示文件名的头信息。 ``` ### 参数 文件列表:指定显示头部内容的文件列表。 ## tail 在屏幕上显示指定文件的末尾若干行 ### 补充说明 **tail命令** 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。 注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。 ### 语法 ``` tail(选项)(参数) ``` ### 选项 ``` --retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用; -c或——bytes=:输出文件尾部的N(N为整数)个字节内容; -f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效; -F:与选项“-follow=name”和“--retry"连用时功能相同; -n或——line=:输出文件的尾部N(N位数字)行内容。 --pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令; -q或——quiet或——silent:当有多个文件参数时,不输出各个文件名; -s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数; -v或——verbose:当有多个文件参数时,总是输出各个文件名; --help:显示指令的帮助信息; --version:显示指令的版本信息。 ``` ### 参数 文件列表:指定要显示尾部内容的文件列表。 ### 实例 ``` tail file (显示文件file的最后10行) tail -n +20 file (显示文件file的内容,从第20行至文件末尾) tail -c 10 file (显示文件file的最后10个字符) ``` ## more 显示文件内容,每次显示一屏 ### 补充说明 **more命令** 是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答: * 按Space键:显示文本的下一屏内容。 * 按Enier键:只显示文本的下一行内容。 * 按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。 * 按H键:显示帮助屏,该屏上有相关的帮助信息。 * 按B键:显示上一屏内容。 * 按Q键:退出rnore命令。 ### 语法 ``` more(语法)(参数) ``` ### 选项 ``` -<数字>:指定每屏显示的行数; -d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”; -c:不进行滚屏操作。每次刷新这个屏幕; -s:将多个空行压缩成一行显示; -u:禁止下划线; +<数字>:从指定数字的行开始显示。 ``` ### 参数 文件:指定分页显示内容的文件。 ### 实例 显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。 ``` more -dc file ``` 显示文件file的内容,每10行显示一次,而且在显示之前先清屏。 ``` more -c -10 file ``` ## less 分屏上下翻页浏览文件内容 ### 补充说明 **less命令** 的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。 ### 语法 ``` less(选项)(参数) ``` ### 选项 ``` -e:文件内容显示完毕后,自动退出; -f:强制显示文件; -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度; -l:搜索时忽略大小写的差异; -N:每一行行首显示行号; -s:将连续多个空行压缩成一行显示; -S:在单行显示较长的内容,而不换行显示; -x<数字>:将TAB字符显示为指定个数的空格字符。 ``` ### 参数 文件:指定要分屏显示内容的文件。 ## 实例 ```bash sudo less /var/log/shadowsocks.log ```