在Linux命令行中查看文件内容
在终端基础知识系列的本章中,您将了解如何在 Linux 命令行中查看文件的内容。
您在终端基础知识系列的上一章中学习了如何创建新文件。
在本章中,您将学习阅读文件。我将讨论显示文本文件内容的最常见的 Linux 命令。
在执行此操作之前,让我们使用示例文件创建“游乐场”。我们先创建一个目录并切换到它。
mkdir display_files && cd display_files
在这里复制一个巨大的文本文件。
cp /etc/services .
然后,创建一个名为 columbo.txt
的新文件,其中包含以下文本(如上一章所述,使用带有 >> 的 cat 命令):
Prescription: Murder
Ransom for a Dead Man
Murder by the Book
Death Lends a Hand
Dead Weight
Suitable for Framing
Lady in Waiting
Short Fuse
Blueprint for Murder
您不必自己输入所有内容。您可以使用 Ctrl+Shift+V 在终端中复制粘贴。大多数终端都支持此快捷方式。
一切就绪后,让我们看看在 Linux 终端中查看文件的各种方法。
使用cat命令显示文件内容
cat 命令是 Linux 中查看文件最流行的方法。
使用起来非常简单。只需给它文件名,它就会在屏幕上显示文件内容。事情再简单不过了。
cat filename
您可以尝试显示columbo.txt 文件的内容吗?
cat columbo.txt
这是它显示的输出:
可选挑战:使用带有 >> 重定向的 cat 或 echo 命令将包含“Etude in Black”文本的新行添加到 columbo.txt 文件中。如果您需要帮助,请参阅上一章。
使用less命令读取大文本文件
cat 命令就这么简单。事实上,这太简单了。而且简单的方法在复杂的场景中是行不通的。
尝试使用cat命令查看services文件的内容。
cat services
这个 services
是一个包含数百行的巨大文件。当您使用 cat 时,它会用整个文本淹没整个屏幕。
这并不理想。你能读到文件的第一行吗?是的,可以,但必须一直向上滚动。如果文件有数千行,您甚至无法滚动回前几行。
这就是 less 命令发挥作用的地方。它允许您逐页读取文件的内容。您退出查看模式,终端屏幕一如既往地干净。
使用less命令读取services文件:
less services
现在您处于不同的观看模式。您可以使用箭头键逐行移动。您还可以使用 Page Up 和 Page Down 键上下移动页面。
您甚至可以使用 /search_term 搜索某些文本。
读完文件后,按 Q 键退出 less 视图并返回到正常的终端查看。
这张表将帮助您减少使用:
- Up arrow
上移一行
- Down arrow
向下移动一行
- Space or PgDn
向下移动一页
- b or PgUp
向上移动一页
- g
移至文件开头
- G
移至文件末尾
- ng
移动到第n行
- /pattern
搜索模式并使用 n 移动到下一个匹配项
- q
少退出
从实时查看文件到为文本添加书签,更少的内容可以做更多的事情。阅读本文以了解更多信息。
您可以使用less命令在终端中读取PDF文件。
头部和尾部显示文本文件的一部分
如果您只想以猫式显示方式查看文本文件的某些部分,请使用 head 和 tail 命令。
默认情况下,head 命令显示文件的前 10 行。
head filename
但您也可以修改它以显示前 n 行。
head -n filename
tail 命令默认显示最后 10 行。
tail filename
但您可以修改它以显示从底部开始的 n 行。
tail -n filename
实践例子
让我们看一些例子。使用此脚本生成一个易于理解的文件:
#create or clear the content of the file
echo -n > sample
#put content to the file
for i in {1..70}
do
echo "This is the line $i" >> sample
done
创建一个名为 script.sh 的新文件,并将上述脚本内容复制粘贴到其中。现在运行如下脚本来生成示例文件:
bash script.sh
现在,您已经有了一个名为 sample
的文件,其中每 70 行包含诸如“This is the line number N”之类的行。
显示此示例文件的前 10 行和最后 10 行。
让我们将其提升到一个新的水平。您可以将它们组合起来以显示文件的特定行。例如,要显示从 35 到 40 的行,请像这样使用:
head -n 40 filename | tail -n +35
这里 :
head -n 40 filename
将显示文件的前 40 行。tail -n +35
将显示head
命令输出中从第 35 行到末尾的行。是的!请注意 + 号,它会改变 tail 命令的正常行为。
您还可以将它们组合起来以仅显示特定的行。假设您要显示第 55 行;像这样将头和尾结合起来。
head -n 55 filename | tail -n 1
这里 :
head -n 55 filename
将显示文件的前 55 行。tail -n 1
将显示head
命令输出的最后一行,即文件的第 55 行。
测试你的知识
是时候锻炼你的灰细胞并练习你在本章中学到的知识了。
使用相同的
sample
文件并显示第 63 和 68 行。现在显示从 67 到 70 的行。
只显示第一行怎么样?
您在 /etc/passwd 文件中看到了什么?显示其内容。
这就是本章的内容。接下来,您将了解如何在命令行中删除文件和文件夹。敬请关注。