首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
查看文件内容 ====== 前面小节介绍了文件和目录相关的操作,本小节介绍如何使用 `file`、`cat`、`more`、`tail` 命令在不同场景下去查看文件相关信息和内容。 1\. file 查看文件类型 --------------- `file` 命令可以用来查看文件类型,还能查看文件的编码格式,下面列举一些 `file` 命令的参数: | file 命令参数名称 | 功能与作用描述 | | :-- | :-- | | \-b | 表示 `--brief`,显示查看结果时,不显示文件名 | | \-c | 表示 `--checking-printout`,显示指令执行过程 | | \-f | 表示 `--files-from FILE`,列出文件中文件名的文件类型 | | \-F | 表示 `--separator STRING`,使用指定符号替换输出文件名后的默认的 `:` | | \-i | 输出 `mime` 类型的字符串 | | \-L | 表示 `--dereference`,查看对应软链接对应文件的文件类型 | | \-z | 表示 `--uncompress`,尝试查看压缩文件信息 | ### 1.1 查看文件类型 这里还是以 `/home/study` 目录里面的文件为例,命令如下: ```bash magento@/home/study$ ls alltxt.tar a.log a.txt b.txt magento@/home/study$ file alltxt.tar alltxt.tar: POSIX tar archive (GNU) magento@/home/study$ file a.txt a.txt: empty magento@/home/study$ file a.log a.log: empty magento@/home/study$ ls alltxt.tar a.log a.txt b.txt magento@/home/study$ mkdir new_dir magento@/home/study$ file new_dir/ new_dir/: directory ``` ### 1.2 查看文件时不显示文件名称 在 `file` 命令后面跟上一个 `-b` 参数重复一次上面的流程,命令如下: ls file -b a.txt file -b new_dir file -b alltxt.tar file -b alltxt.tar.gz file -b alltxt.tar.bz2 file -b alltxt.tar.Z > **Tips**:使用 `-b` 参数查看的文件信息时没有打印出文件名。 ### 1.3 查看压缩包信息 进入到 `/home/study`,使用 `-z` 参数去查看压缩包信息,命令如下: cd /home/study ls file -z alltxt.tar.gz file -z alltxt.tar.bz2 file -z alltxt.tar.Z > **Tips**:如上所示,展示了压缩包相关的信息。 2\. cat 查看文件内容 -------------- `cat` 命令可以用来查看文件内容,下面列举一些 `cat` 命令的参数: | cat 命令参数名称 | 功能与作用描述 | | :-- | :-- | | \-A | 表示 `--show-all`,展示所有内容 | | \-b | 表示 `--number-nonblank`,对查看的内容的非空行,对其行数编号 | | \-n | 表示 `--number`,对查看的内容行数编号输出 | | \-v | 表示 `--show-nonprinting`,使用^ 和M- 引用,除了LFD和 TAB 之外 | | \-E | 表示 `--show-ends`,在每行的最后展示KaTeX parse error: Expected 'EOF', got '符' at position 1: 符̲号;就是无论你输入了什么,屏幕…符号结尾 | | \-e | 同 `-vE` | | \-s | 表示 `--squeeze-blank`,抑制空行输入,就是如果你有多行连续的空行,他会压缩成一行输出 | | \-T | 表示 `--show-tabs`,将跳格字符显示为^I | | \-t | 同 `-VT` | ### 2.1 查看文件所有内容 这里以 `/etc/passwd` 文件为例,使用如下命令查看其中的内容: ```bash cat /etc/passwd ``` > **Tips**:在输入路径或者文件名称的时候可以使用 `Tab` 键来补全。 ### 2.2 对查看内容编排 命令如下: cat -b passwd cat -n passwd > **Tips**:`-b` 表示排除掉空行的内容,然后对其输出编号,会后会补上一行空行展示出来。 3\. more 命令查看文件内容 ----------------- `more` 命令也用来查看文件内容,下面列举一些 `more` 命令的参数: | more 命令参数名称 | 功能与作用描述 | | :-- | :-- | | +n | 从第 n 行开始显示 | | \-n | 定义屏幕大小为 n 行 | | +/pattern | 在每个档案显示前搜寻该字串 `pattern`,然后从该字串前两行之后开始显示 | | \-c | 从顶部清屏,然后显示 | | \-d | 提示 `Press space to continue,'q' to quit(按空格键继续,按q键退出)`,而禁用响铃功能 | | \-l | 忽略 `Ctrl+l(换页)` 字符 | | \-p | 通过清除窗口而不是滚屏来对文件进行换页,与 -c 选项相似 | | \-s | 把连续的多个空行显示为一行 | | \-u | 把文件内容中的下画线去掉 | 这里以查看 `/etc/passwd` 文件内容为例,命令如下: cd /etc more passwd > **Tips** : 如上所示,可以按`空格`键继续浏览剩下内容,也可以按 `q` 键结束浏览。 4\. tail 命令查看文件内容 ----------------- `tail` 命令也用来查看文件内容,下面列举一些 `tail` 命令的参数: | tail 命令参数名称 | 功能与作用描述 | | :-- | :-- | | \-f | 表示 `--follow[={name或descriptor}]`,该参数用于监听文件新增内容。 | | \-c | 表示 `--bytes=[+]NUM`,从 num 字节位置读取指定文件 | | \-n | 表示 `--lines=[+]NUM`,从 num 行位置读取指定文件。 | | \-F | 同 `-f` | | \-q | 表示 `--quiet`,从不输出给出文件名的首部 | | \-s | 表示 `--sleep-interval=N`,与-f合用,表示在每次反复的间隔休眠S秒 | ### 4.1 查看文件最后几行内容 以 `/etc/passwd` 文件为例,如要查看最后 5 行内容,命令如下: cd /etc tail -5 passwd > **Tips**:使用上所示的命令可以查看 `passwd` 文件的最后 5 行内容。 ### 4.2 查看指定行数的内容 以 `/etc/passwd` 文件为例,如要从第 45 行开始显示内容,命令如下: tail -n +45 passwd > **Tips**:使用如上所示的命令可以查看 `passwd` 文件的第 45 行开始的内容。 ### 4.3 监听日志文件 在实际工作中,经常会使用 `-f` 去监听日志新增内容,达到开发者调试的目的,这里为了演示方便,需要打开之前安装过的 `MobaXterm`,按照之前第 7 小节的步骤,打开两个登录窗口 首先进入 `/home` 目录,新建一个日志文件 `access.log`,命令如下: cd /home ls touch access.log 接下来使用 `tail` 命令跟上 `-f` 参数对 `access.log` 日志文件监听,命令如下: tail -f access.log 接下来在新打开的窗口中,进入 `/home` 目录,向 `access.log` 文件写入内容: cd /home echo "这是第一条测试内容(time=2020-05-05 18:00)" >> access.log echo "这是第二条测试内容(time=2020-05-05 19:00)" >> access.log echo "这是第三条测试内容(time=2020-05-05 20:00)" >> access.log > **Tips**:这种监听日志的方法经常用在后端程序开发调试工作中。 此时模拟日志数据输入完成,接着打开原来的监听窗口,查看新写进来的内容。 其它查看文件的方法 --- - less命令查看文件 - vim编辑器查看文件 5.小结 ---- 本小节介绍了如何使用 `file`、`cat`、`more`、`tail` 去查看文件内容,读者根据不同场景来选择合适的命令查看文件内容,其中 `tail -f` 命令经常用于后端开发日志监听,来调试代码的作用,也能帮助快速捕捉到程序异常,提升修复问题的效率。
上一篇:
find查找文件和目录
下一篇:
grep命令 – 文本搜索
该分类下的相关小册推荐:
从零写一个基于go语言的Web框架
深入浅出Go语言核心编程(二)
深入浅出Go语言核心编程(三)
Go开发基础入门
深入浅出Go语言核心编程(一)
Go语言入门实战经典
GO面试指南
Go 组件设计与实现
企业级Go应用开发从零开始
深入浅出Go语言核心编程(四)
Go开发权威指南(上)
go编程权威指南(一)