linux 中more、less 和 most 的区别

如果你是一个 Linux 方面的新手,你可能会在 more、less、most 这三个命令行工具之间产生疑惑。在本文当中,我会对这三个命令行工具进行对比,以及展示它们各自在 Linux 中的一些使用例子。总的来说,这几个命令行工具之间都有相通和差异,而且它们在大部分 Linux 发行版上都有自带。

我们首先来看看 more 命令。

more 命令

more 是一个老式的、基础的终端分页阅读器,它可以用于打开指定的文件并进行交互式阅读。如果文件的内容太长,在一屏以内无法完整显示,就会逐页显示文件内容。使用回车键或者空格键可以滚动浏览文件的内容,但有一个限制,就是只能够单向滚动。也就是说只能按顺序往下翻页,而不能进行回看。

更正

有的 Linux 用户向我指出,在 more 当中是可以向上翻页的。不过,最原始版本的 more 确实只允许向下翻页,在后续出现的较新的版本中也允许了有限次数的向上翻页,只需要在浏览过程中按 b 键即可向上翻页。唯一的限制是 more 不能搭配管道使用(如 ls | more)。(LCTT 译注:此处原作者疑似有误,译者使用 more 是可以搭配管道使用的,或许与不同 more 版本有关)

按 q 即可退出 more。

更多示例

打开 ostechnix.txt 文件进行交互式阅读,可以执行以下命令:

$ more ostechnix.txt

在阅读过程中,如果需要查找某个字符串,只需要像下面这样输入斜杠(/)之后接着输入需要查找的内容:

/linux

按 n 键可以跳转到下一个匹配的字符串。

如果需要在文件的第 10 行开始阅读,只需要执行:

$ more +10 file

就可以从文件的第 10 行开始显示文件的内容了。

如果你需要让 more 提示你按空格键来翻页,可以加上 -d 参数:

$ more -d ostechnix.txt

如上图所示,more 会提示你可以按空格键翻页。

如果需要查看所有选项以及对应的按键,可以按 h 键。

要查看 more 的更多详细信息,可以参考手册:

$ man more

less 命令

less 命令也是用于打开指定的文件并进行交互式阅读,它也支持翻页和搜索。如果文件的内容太长,也会对输出进行分页,因此也可以翻页阅读。比 more 命令更好的一点是,less 支持向上翻页和向下翻页,也就是可以在整个文件中任意阅读。

在使用功能方面,less 比 more 命令具有更多优点,以下列出其中几个:

  • 支持向上翻页和向下翻页
  • 支持向上搜索和向下搜索
  • 可以跳转到文件的末尾并立即从文件的开头开始阅读
  • 在编辑器中打开指定的文件

更多示例

打开文件:

$ less ostechnix.txt

按空格键或回车键可以向下翻页,按 b 键可以向上翻页。

如果需要向下搜索,在输入斜杠(/)之后接着输入需要搜索的内容:

/linux

按 n 键可以跳转到下一个匹配的字符串,如果需要跳转到上一个匹配的字符串,可以按 N 键。

如果需要向上搜索,在输入问号(?)之后接着输入需要搜索的内容:

?linux

同样是按 n 键或 N 键跳转到下一个或上一个匹配的字符串。

只需要按 v 键,就会将正在阅读的文件在默认编辑器中打开,然后就可以对文件进行各种编辑操作了。

按 h 键可以查看 less 工具的选项和对应的按键。

按 q 键可以退出阅读。

要查看 less 的更多详细信息,可以参考手册:

$ man less

most 命令

most 同样是一个终端阅读工具,而且比 more 和 less 的功能更为丰富。most 支持同时打开多个文件。你可以在打开的文件之间切换、编辑当前打开的文件、迅速跳转到文件中的某一行、分屏阅读、同时锁定或滚动多个屏幕等等功能。在默认情况下,对于较长的行,most 不会将其截断成多行显示,而是提供了左右滚动功能以在同一行内显示。

更多示例

打开文件:

$ most ostechnix1.txt

按 e 键可以编辑当前文件。

如果需要向下搜索,在斜杠(/)或 S 或 f 之后输入需要搜索的内容,按 n 键就可以跳转到下一个匹配的字符串。

如果需要向上搜索,在问号(?)之后输入需要搜索的内容,也是通过按 n 键跳转到下一个匹配的字符串。

同时打开多个文件:

$ most ostechnix1.txt ostechnix2.txt ostechnix3.txt

在打开了多个文件的状态下,可以输入 :n 切换到下一个文件,使用 ↑ 或 ↓ 键选择需要切换到的文件,按回车键就可以查看对应的文件。

要打开文件并跳转到某个字符串首次出现的位置(例如 linux),可以执行以下命令:

$ most file +/linux

按 h 键可以查看帮助。

按键操作列表

移动:

  • 空格键或 D 键 – 向下滚动一屏
  • DELETE 键或 U 键 – 向上滚动一屏
  • ↓ 键 – 向下移动一行
  • ↑ 键 – 向上移动一行
  • T 键 – 移动到文件开头
  • B 键 – 移动到文件末尾
  • > 键或 TAB 键 – 向右滚动屏幕
  • < 键 – 向左滚动屏幕
  • → 键 – 向右移动一列
  • ← 键 – 向左移动一列
  • J 键或 G 键 – 移动到某一行,例如 10j 可以移动到第 10 行
  • % 键 – 移动到文件长度某个百分比的位置

窗口命令:

  • Ctrl-X 2、Ctrl-W 2 – 分屏
  • Ctrl-X 1、Ctrl-W 1 – 只显示一个窗口
  • O 键、Ctrl-X O – 切换到另一个窗口
  • Ctrl-X 0 – 删除窗口

文件内搜索:

  • S 键或 f 键或 / 键 – 向下搜索
  • ? 键 – 向上搜索
  • n 键 – 跳转到下一个匹配的字符串

退出:

  • q 键 – 退出 most ,且所有打开的文件都会被关闭
  • :N、:n – 退出当前文件并查看下一个文件(使用 ↑ 键、↓ 键选择下一个文件)

要查看 most 的更多详细信息,可以参考手册:

$ man most

总结

more – 传统且基础的分页阅读工具,仅支持向下翻页和有限次数的向上翻页。

less –more 功能丰富,支持向下翻页和向上翻页,也支持文本搜索。在打开大文件的时候,比 vi 这类文本编辑器启动得更快。

most – 在上述两个工具功能的基础上,还加入了同时打开多个文件、同时锁定或滚动多个屏幕、分屏等等大量功能。

以上就是我的介绍,希望能让你通过我的文章对这三个工具有一定的认识。如果想了解这篇文章以外的关于这几个工具的详细功能,请参阅它们的 man 手册。

(0)

相关推荐

  • Linux 常用命令之Linux more命令使用方法

    more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比. more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 .more命令从前向后读取文件,因此在启动时就加载整个文件. 1.命令格式: more [-dlfpcsu ] [-num ] [+/

  • linux cat more less显示文件的区别

    cat命令功能用于显示整个文件的内容单独使用没有翻页功能因此经常和more命令搭配使用,cat命令还有就是将数个文件合并成一个文件的功能.  more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示.  less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件.所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件.当要结束浏览时,只要在less命令的提示符":"下按Q键即可.  其实这三个命令

  • Linux命令详解之less命令

    less命令 与 more命令 非常类似,但less命令 可以更加随意地浏览文件,而且 less 在查看之前不会加载整个文件. 相比较于more命令,很多人更喜欢使用 less命令. 一.Linux less命令语法 less [参数] 文件 less命令非常强大,在此只介绍几个常用的参数,更多参数使用man less来查看Linux帮助手册. -b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号.目录和二进制文件 -g 只标志最后

  • 每天学一个 Linux 命令之more命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 .more命令从前向后读取文件,因此在启动时就加载整个文件. 1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 2.命令功能: more命令和cat的功能一样都

  • Linux中多命令执行';'和'&&'的区别解释

    前言 在Linux运维过程中或者日常Linux系统操作过程中会同时执行多条命令,这样的话需要通过我们的多重命令方式进行处理.多命令执行包括';'和'&&'命令,这样shell就可以一次执行多个命令,每个命令之间可用':'和'&&'隔开. 那么这两者之间有什么区别,下面来一起看看吧. 1.':' 用':' ---------是先执行第一个命令,不管第一个命令是否出错都执行下一个命令. 2.'&&' 用'&&'--------是当第一个命令正确执

  • Linux中多命令执行';'和'&&'的区别解释

    前言 在Linux运维过程中或者日常Linux系统操作过程中会同时执行多条命令,这样的话需要通过我们的多重命令方式进行处理.多命令执行包括';'和'&&'命令,这样shell就可以一次执行多个命令,每个命令之间可用':'和'&&'隔开. 那么这两者之间有什么区别,下面来一起看看吧. 1.':' 用':' ---------是先执行第一个命令,不管第一个命令是否出错都执行下一个命令. 2.'&&' 用'&&'--------是当第一个命令正确执

  • Linux中nohup与&的用法和区别详解

    示例 : 我们用python代码loop_hello.py做示例,代码的作用是循环输出循环次数和hello world!,每次输出后sleep 1秒 示例代码如下: import time def main(): i = 0 while True: i += 1 print('%d: hello world!' %(i)) time.sleep(1) if '__main__' == __name__: main() 运行loop_hello.py,输出结果如下: 程序每隔一秒会在终端输出一个字

  • 谈谈linux中flock、lockf和fcntl的区别

    首先flock和fcntl是系统调用,而lockf是库函数.lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的.后面分析不同点时大多数情况是将fcntl和lockf放在一起的.下面首先看每个函数的使用,从使用的方式和效果来看各个函数的区别.  1. flock 函数原型 int flock(int fd, int operation);  // Apply or remove an advisory lock on the open fi

  • 详解linux中fork、vfork、clone函数的区别

    在linux系统中,fork(),vfork()和clone函数都可以创建一个进程,但是它们的区别是什么呢???本文就这三者做一个较深入的分析!!! 1.fork() fork()函数的作用是创建一个新进程,由fork创建的进程称为子进程,fork函数调用一次返回两次,子进程返回值为0,父进程返回子进程的进程ID.我们知道,一个进程的地 址空间主要由代码段,数据段,堆和栈构成,那么p2就要复制相关的段到物理内存.原始的unix系统的实现的是一种傻 瓜式的进程创建,这些复制包括: (1) 为子进程

  • Linux中进程和线程的对比与区别

    Linux中进程和线程的对比与区别 1.概念 进程:正在运行中的程序. 线程:进程中的一条执行路径. 2.区别 (1)通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源.在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位. (2)线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定.线程的

  • Linux 中_exit和exit的区别

    Linux 中_exit和exit的区别 在Linux的标准库函数中,有一套称作高级I/O的函数,我们熟知的printf .fopen .fread .fwrite都在此列,他们也被称作缓冲I/O.其特征是对应每一个打开的文件,都存在一个缓冲区, 在内存中都有一片缓冲区,每次读文件会多读若干条记录,这样下次读文件时就可以直接从内存的缓存中取出,每次写文件时也仅仅是写入到内存的缓冲区,等待满足一定的条件(达到一定的数量,或者遇到特定字符,如换行和文件结束符EOF),再将缓冲区的内容一次性的写入文件

  • 浅析Linux中使用nohup及screen运行后台任务的示例和区别

    使用SSH终端(比如putty,xshell)连接Linux服务器上运行比较耗时任务,可能需要几个小时甚至几天才能完成,这时候终端被占据,我们还要做其他的任务呢,所以需要将这一类耗时任务放到后台来跑,只需要记录好日志就行了,有下面这些常用方法来实现这个需求. command & 在终端输入command &运行,这时候使用Ctrl + C中止命令将会失效,因为对&后台运行SIGINT1信号免疫,程序会继续运行. 但如果你直接关掉终端, 进程将跟着中止. 可见,使用&后台运行

  • Linux中mkdir函数与Windows中_mkdir函数的区别

    下面先来给大家介绍windows下_mkdir函数 复制代码 代码如下: #include<direct.h> int _mkdir( const char *dirname ); 参数: dirname是目录的路径名指针 返回值: 如果新目录的创建时间,这些功能中的每一个返回值 0. 在错误,则函数返回 – 1 linux下mkdir函数mode_t参数详解 复制代码 代码如下: #include <sys/stat.h> int mkdir(const char *path,

  • linux 中more、less 和 most 的区别

    如果你是一个 Linux 方面的新手,你可能会在 more.less.most 这三个命令行工具之间产生疑惑.在本文当中,我会对这三个命令行工具进行对比,以及展示它们各自在 Linux 中的一些使用例子.总的来说,这几个命令行工具之间都有相通和差异,而且它们在大部分 Linux 发行版上都有自带. 我们首先来看看 more 命令. more 命令 more 是一个老式的.基础的终端分页阅读器,它可以用于打开指定的文件并进行交互式阅读.如果文件的内容太长,在一屏以内无法完整显示,就会逐页显示文件内

随机推荐