一分钟学一个 Linux 命令 - cat 和 tail
前言
大家好,我是 god23bin。今天我给大家带来的是 Linux 命令系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天,需要你花费两分钟时间,因为我们要介绍的是两个常用的查看文件内容的命令:cat 和 tail 命令。
cat
什么是 cat 命令?
cat 命令源自于 concatenate files and print 这个词组,意思为「连接文件并输出」。
cat 命令用于连接一个或多个文件,并将结果输出到终端或其他文件,这样我们就能在终端直接看到输出的内容。cat 命令适合查看内容较少、纯文本的文件。
如何使用 cat 命令?
cat 命令的使用非常简单。你只需在终端中输入 cat,并指定要连接的文件名。
基本语法:
cat [选项参数] 文件名
如果想要同时查看多个文件的话,那么可以这样:
cat 文件名1, 文件名2
这样就能将这两个文件连接起来了,并输出到终端。
举例说明
假设我们在 /opt/games/gta6 目录下,现在有一个 show.txt 的文本文件,我们想查看该文件的内容,那么可以在终端输入以下命令:
cat show.txt
这将在终端中显示 show.txt 文件的内容。

常用选项参数
-n(--number):显示行号。-b(--number-nonblank):显示行号,空行没有行号。-s(--squeeze-blank):显示行号,多个空行压缩合并成一行,显示空行行号。-T(--show-tabs):在文件中显示制表符(将 TAB 字符显示为^I符号)
例子
cat某个文件的同时显示行号:
cat -n show.txt

cat某个文件的同时显示行号,空行不显示行号:
cat -b show.txt

cat某个文件的同时显示行号,多个空行合并成一行显示行号:
这里我修改 show.txt 的内容,多加上几个空行,接着使用 -s 命令输出内容。
cat -s show.txt

- 显示在文件中的制表符:
cat -T show.txt
这将在文件中的制表符位置显示 ^I 符号。

清空指定文件内容
我们可以借助「空设备文件」和「输出重定向操作符」,清空指定文件的内容。
cat /dev/null > show.txt
此时再 cat show.txt 就看不到任何内容了。

写入内容到文件
借助「输出重定向操作符」写入内容到指定的文件,遇到 EOF 中止符后才结束写入并保存。
cat > show.txt << EOF

tail
什么是 tail 命令?
tail 的意思就是「尾部、尾巴」,顾名思义,该命令用于显示文件的尾部内容,默认会显示指定文件的末尾 10 行的内容。
tail 命令通常用于查看日志文件或实时监控日志文件的更新。
如何使用 tail 命令?
使用 tail 命令非常简单。你只需在终端中输入 tail,并指定要查看内容的文件名。
基本语法:
tail [选项参数] 文件名
同样,tail 也可以指定多个文件,如果指定了多个文件,那么会在显示的每个文件内容前面加上文件名来加以区分。
举例说明
依旧在 /opt/games/gta6 目录下,现在有一个 readme.txt 的文本文件,我们想查看该文件的尾部内容,那么可以在终端输入以下命令:
tail readme.txt

默认输出显示 10 行的尾部内容。
指定多个文件:
tail show.txt readme.txt

常用选项参数
-n:指定要显示的尾部行数。-f:(follow)持续跟踪显示文件尾部最新的内容,比如你查看日志文件的时候,当日志发生变化,就能实时看到日志的输出显示。
例子
- 指定显示文件尾部 20 行的内容
tail -n 20 readme.txt

- 持续跟踪文件尾部最新内容
tail -f sys-user.log
一般这样就会跟踪 sys-user.log 日志文件的尾部最新的内容,我们就能看到会持续输出的日志。
不过,目前这样只能输出尾部 10 行的内容,跟踪也只能看 10 行,我们想看更多行怎么办呢?一般在查看日志的时候,日志的输出是比较多的,我一般是跟踪 1000 行,那么可以在终端输入:
tail -1000f sys-user.log
这样,就能够指定跟踪尾部最新的 1000 行的内容了!
总结
现在,相信聪明的你已经掌握了这两个命令了!你可以开始在终端中尝试使用 cat 和 tail 命令,自己捣鼓玩玩!掌握 cat 和 tail 命令的基本用法和常见选项参数,将使我们更加高效地查看相关文件的内容。
这里需要注意的是这两个命令都有 -n 参数,cat 的 -n 是用来显示行号的,而 tail 的 -n 是用来指定显示多少行的。
最后的最后
希望各位屏幕前的靓仔靓女们给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!
咱们下期再见!
一分钟学一个 Linux 命令 - cat 和 tail的更多相关文章
- 一天学一个Linux命令:第一天 ls
文章更新于:2020-03-02 注:本文参照 man ls 手册,并给出使用样例. 文章目录 一.命令之`ls` 1.名字及介绍 2.语法格式 3.输出内容示例 4.参数 二.命令实践 1.`ls ...
- 一天学一个Linux命令:第二天 cd pwd
文章更新于:2020-03-08 注:本文参照 man pwd 手册,并给出使用样例. 文章目录 一.命令之 `cd` 和 `pwd` 1.命令介绍 2.语法格式 3.使用样例 4.pwd 参数 5. ...
- 每天一个linux命令(1):tail 命令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- 【转载】每天一个Linux命令
目 录 每天一个linux命令(1) : ls 命令 每天一个linux命令(2) : cd 命令 每天一个linux命令(3) : pwd 命令 每天一个linux命令(4) : mkdi ...
- 2018/03/07 每日一个Linux命令 之 cat
每日一个Linux命令 2018-03-07 Linux 命令 cat cat [-参数] fileName 在之前的Linux使用中 cat 命令一直作为文本输出指令来使用,很少可以深入学习的该命令 ...
- 每天一个linux命令:cat(10)
cat cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用 注意:当文件较大时,文本在屏幕上迅速 ...
- 每天一个 Linux 命令(21):find命令之xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...
- 每天一个linux命令目录
出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...
- 每天一个linux命令-转载
每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令 ...
- [转]每天一个linux命令目录
[转]每天一个linux命令目录 http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每 ...
随机推荐
- [C++STL教程]4.map超强的容器,它终于来了!零基础都能理解的入门教程
之前我们介绍过vector, queue, stack,他们都有一个共同的特点,就是都可以用线性表来模拟.今天我们来学习一个全新且高封装性的容器:map. 作者:Eriktse 简介:19岁,211计 ...
- MySQL 中索引是如何实现的,有哪些类型的索引,如何进行优化索引
MySQL 中的索引 前言 索引的实现 哈希索引 全文索引 B+ 树索引 索引的分类 聚簇索引(clustered index) 非聚簇索引(non-clustered index) 联合索引 覆盖索 ...
- GIT 操作大全 基于廖雪峰
命令显示从最近到最远的提交日志 git log / git log --pretty=oneline 回退到上一个版本:$ git reset --hard HEAD^ (用HEAD表示当前版 ...
- OpenTranslator:一款基于ChatGPT API的翻译神器
这是一款使用 ChatGPT API 进行划词翻译和文本润色的浏览器插件.借助了 ChatGPT 强大的翻译能力,它将帮助您更流畅地阅读外语和编辑外语. 它能干啥 一. 可翻译 二. 可润色 三. 可 ...
- pandas之读取文件
当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步.Panda 提供了多种读取数据的方法: read_csv() 用于读取文本文件 read_json() 用于读 ...
- JavaScript的引入方式
外部JS文件 deno.js alert('你好!JavaScript'); JS引入方式.html <!--方式一:内部脚本--> <!--标签不能自闭和--> <sc ...
- socket 到底是个啥
哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...
- vue中通过$emit实现子向父通信
本篇讨论vue中使用$emit实现子向父通信, 第一步:我们在父组件中注册子组件,然后再给子组件标签添加一个自定义事件监听,这样在子组件实例上就绑定了一个自定义的事件add. 后面如果触发add事件, ...
- (一)pyahocorasick和marisa_trie,字符串快速查找的python包,自然语言处理,命名实体识别可用的高效包
Pyahocorasick Pyahocorasick是一个基于AC自动机算法的字符串匹配工具.它可以用于快速查找多个短字符串在一个长字符串中的所有出现位置.Pyahocorasick可以在构建状态机 ...
- 【有问必答】搭建uniapp项目流程手把手教学
前言 缘由 博友有问,狗哥必答 前段时间,博友加本狗微信,询问uniapp的学习方法.本狗资历浅薄,没有专门学过uniapp,只能将自己日常开发uniapp的基本流程和步骤进行分享,希望可以略尽绵薄之 ...