linux-tutorial/docs/linux/commands/文件目录管理/文件内容查看.md
2018-02-27 17:29:23 +08:00

366 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: linux 常用命令-文件内容查看
date: 2018/02/27
categories:
- linux
tags:
- linux
- command
---
<!-- TOC -->
- [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)
<!-- /TOC -->
# 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表示512k表示1024m表示1 048576(1M)。
### 语法
```
tail(选项)(参数)
```
### 选项
```
--retry即是在tail命令启动时文件不可访问或者文件稍后变得不可访问都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
-c<N>或——bytes=<N>输出文件尾部的NN为整数个字节内容
-f<name/descriptor>或;--follow<nameldescript>显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效
-F与选项“-follow=name”和“--retry"连用时功能相同;
-n<N>或——line=<N>输出文件的尾部NN位数字行内容。
--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
```