在 Linux 上查看文件内容的 5 种方法

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


如何使用 cat、more、head 和 tail 命令查看 Linux 文件的内容,而不仅仅是文本文件。

Linux 提供了许多命令来查看文件的内容,包 括 cat、more、head 和 tail,但这只是一个开始。

一方面,即使是最显而易见的命令也有很多许多用户不会去使用的选项。还有一些普普通通的命令提供了一些独特的功能。在本文中,我们将介绍查看文件内容的命令,以及如何定制这些视图以更好地满足你的需求的选项。

cat

cat 命令将文本文件的全部内容发送到终端窗口以供查看。实际上,如果你输入 cat,然后输入包含数千行内容的文件名,那么这些行将以极快的速度在你的窗口中滚动,你将无法看到除了最后一屏外的其他文本。对于 Linux 用户来说 cat 命令很熟悉,但即使是这个基本命令也提供了许多有用的选项,例如对输出中的行进行编号,这是我们许多人可能从未使用过的。更进一步,你不仅可以对行进行编号,还可以选择如何编号。

对每行进行编号就像这样:

$ cat -n msg
     1  Hello --
     2
     3  I hope you are having a wonderful day!
     4
     5
     6  That's it for ...       now
     7
     8  bye!
     9
    10  s.

你也可以只对有内容的行编号。请注意,对于此命令,仅包含空格的行不被视为“空”,而是会被编号。

$ cat -b msg
     1  Hello --

     2  I hope you are having a wonderful day!


     3  That's it for ...       now

     4  bye!

     5  s.

cat 命令允许你使用 -s 选项忽略重复的空白行,但是要完全忽略空白行你必须添加另一个命令。

$ cat -s msg
Hello --

I hope you are having a wonderful day!

That's it for ...       now

bye!

s.

要忽略所有空白行,只需如下将 cat 的输出通过管道传递给 grep 命令。 点(.)匹配包含任意字符的文本,因此它将显示任意非空的行,用于结束一行的回车换行做匹配(LCTT 译注:此处原文有误,径改)。

$ cat msg | grep .
Hello --
I hope you are having a wonderful day!
That's it for ...       now
bye!
s.

-E 选项通过在每行末尾加 $ 符提供视觉提示,来显示行尾是否还有多余的空格。

$ cat -E msg
Hello --$
$
I hope you are having a wonderful day!  $
$
$
That's it for ...       now$
$
bye!$
$
s.$

使用 -A 时,既可以在每行的末尾显示 $ 字符,并且制表符会显示为 ^I 而不是空白。

$ cat -A msg
Hello --$
$
I hope you are having a wonderful day!$
$
$
That’s it for ...^Inow$
$
bye!$
$
s.$

使用 head 和 tail 显示文件部分内容

head 和 tail 显示文件的头部或尾部,默认为十行。 你可以使用 -3(显示 3 行)或 -11(显示 11 行)之类的字符串来指定要查看的其它行数。tail 命令与 head 的工作方式相同,但是显示文件的尾部而不是头部。

$ head -3 msg
Hello --
I hope you are having a wonderful day!
$ tail -3 msg
bye!

s.

你还可以结合使用 head 和 tail 命令来查看文件中间的文本。你只需要选择起点和想要查看行数即可。在此例中,命令将在文件中显示第二个一百行,并在 cat 的帮助下为这些行编号。

$ cat -b mybigfile | head -200 | tail -100
   101  Invoice #2020-06-07a sent to vendor

使用 more 或者 less 浏览一屏文本

more 命令是一次浏览一屏内容的自然之选,而 less 通过使用上下键盘箭头增加了在文件中上下移动的能力,这样你就可以遍历内容,然后在文件中回退。

使用 od 查看文本的两种方法

od(八进制转储)命令能够以常规文本和一系列 ASCII 值(即该文本在文件中的实际编码方式)的形式查看文件。在下面的例子中可以看到,带编号的行显示了 ASCII 数字值,而其他行则显示了文本和不可打印的字符。

$ od -bc msg
0000000 110 145 154 154 157 040 055 055 012 012 111 040 150 157 160 145
          H   e   l   l   o       -   -  \n  \n   I       h   o   p   e
0000020 040 171 157 165 040 141 162 145 040 150 141 166 151 156 147 040
              y   o   u       a   r   e       h   a   v   i   n   g
0000040 141 040 167 157 156 144 145 162 146 165 154 040 144 141 171 041
          a       w   o   n   d   e   r   f   u   l       d   a   y   !
0000060 012 012 012 124 150 141 164 047 163 040 151 164 040 146 157 162
         \n  \n  \n   T   h   a   t   '   s       i   t       f   o   r
0000100 040 056 056 056 011 156 157 167 012 012 142 171 145 041 012 012
              .   .   .  \t   n   o   w  \n  \n   b   y   e   !  \n  \n
0000120 163 056 012
          s   .  \n

请注意,换行符显示为 n(八进制 012),而制表符显示为 t(八进制 011)。

od 命令特别有用的用途之一是查看非文本文件以获取可以标识文件类型的信息。在这里,我们看到 JFIF(JPEG 文件交换格式)标签,该标签让 file 之类报告文件类型的命令将它标示为 jpg 文件。这里还有很多其他有用的信息,特别是如果你对这些文件的格式感到好奇的话。

在接下来的命令中,我们查看 jpg 文件的开始部分。

$ od -bc arrow.jpg | head -12
0000000 377 330 377 340 000 020 112 106 111 106 000 001 001 000 000 001
        377 330 377 340  \0 020   J   F   I   F  \0 001 001  \0  \0 001
0000020 000 001 000 000 377 333 000 103 000 003 002 002 002 002 002 003
         \0 001  \0  \0 377 333  \0   C  \0 003 002 002 002 002 002 003
0000040 002 002 002 003 003 003 003 004 006 004 004 004 004 004 010 006
        002 002 002 003 003 003 003 004 006 004 004 004 004 004  \b 006
0000060 006 005 006 011 010 012 012 011 010 011 011 012 014 017 014 012
        006 005 006  \t  \b  \n  \n  \t  \b  \t  \t  \n  \f 017  \f  \n
0000100 013 016 013 011 011 015 021 015 016 017 020 020 021 020 012 014
         \v 016  \v  \t  \t  \r 021  \r 016 017 020 020 021 020  \n  \f
0000120 022 023 022 020 023 017 020 020 020 377 333 000 103 001 003 003
        022 023 022 020 023 017 020 020 020 377 333  \0   C 001 003 003

如果我们要 file 命令提供有关此图像的信息,我们可能会看到类似下面这样的信息。file 命令从文件开头的数据中提取了所有这些描述性信息:

$ file arrow.jpg
arrow.png: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 500x375, components 3

使用 jp2a 将文件视为基于文本的图像

如果你只能在命令行工作,并且想了解特定图像包含的内容,那么可以使用 jp2a(jpeg to ascii)之类的工具提供字符渲染。图像在这种格式下的识别程度取决于文件。不要有太多期待,因为你将看到的图像版本是“低分辨率”下的测试!这是一只分辨率很低的帝王企鹅。(请离远点看)

$ jp2a Emperor_Penguin.jpg
MMMMMMMMWOdkNMMMMMMMMMMMMMMMMMMM
MMMXK0kc.... ,OKMMMMMMMMMMMMMMMM
MMNK0Ol...   :Xx'dNMMMMMMMMMMMMM
MMMMMMMd;lx00Oo. ..xMMMMMMMMMMMM
MMMMMMK.OXMMMMMN,...lMMMMMMMMMMM
MMMMMMx'KXNNMMMMK....0MMMMMMMMMM
MMMMMMx:kkKNWWMMMl.. 'NMMMMMMMMM
MMMMMMddx0NNNWMMMK'...;NMMMMMMMM
MMMMMMck0NNWWWWWMMd  ..lMMMMMMMM
MMMMMM.d0KXNWWWWMMo  ...WMMMMMMM
MMMMMM.xOXNNWNMMMW. ....KMMMMMMM
MMMMMM'kKNKWXWMMMK  ..'.0MMMMMMM
MMMMMMxckXNNNNMMMX  .:..XMMMMMMM
MMMMMMW;xKNWWWMMMM. .;. NMMMMMMM
MMMMMMMok0NNWNWMMMx .l..MMMMMMMM
MMMMMMMkxOKXWXNMMMMl.:'dMMMMMMMM
MMMMMMM0dKOdKXXNMMMMNx,WMMMMMMMM
MMMMMMMWoKxldXKNNMMMMM;MMMMMMMMM
MMMMMMMMxxxxdNWNXNMMMM;MMMMMMMMM
MMMMMMMMxOcoo0XOOOOWMW,kMMMMMMMM
MMMMMMM0xK;.cO0dNX:0XXd;NMMMMMMM
MMMNkdd:,'ldXXO0xl;x0kx:;lKMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

总结

Linux 上有很多命令可以通过各种方式查看文件的内容。其中一些选项在你需要处理文件内容时可能会非常有用。其它的只是……有趣。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-30
本文作者:Linux中国
本文来自:“掘金”,了解相关信息可以关注“掘金”

相关文章
|
12天前
|
Linux
linux中查看某个文件夹下文件的个数和大小
这篇文章介绍了在Linux系统中使用各种命令(如`stat`、`wc`、`du`和`ls`)来查看文件夹下文件的个数和大小的方法。
52 4
linux中查看某个文件夹下文件的个数和大小
|
2月前
|
Linux
Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
104 2
|
4天前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
15 2
|
7天前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
9天前
|
Linux
深入理解Linux中的cp命令:文件与目录的复制利器
深入理解Linux中的cp命令:文件与目录的复制利器
|
10天前
|
Linux Shell
10-9|linux上统计文件中单词次数
10-9|linux上统计文件中单词次数
|
10天前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
1月前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
12天前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
14 0
|
2月前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
141 2
下一篇
无影云桌面