如果你是一个 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 手册。

您可能感兴趣的文章:

文章同步发布: https://www.geek-share.com/detail/2769911793.html

linux 中more、less 和 most 的区别的更多相关文章

  1. Linux中yum和apt-get用法及区别

    Linux中yum和apt-get用法及区别   一般来说著名的linux系统基本上分两大类:   1.RedHat系列:Redhat.Centos.Fedora等   2.Debian系列:Debi ...

  2. linux中fork, source和exec的区别

    转:linux中fork, source和exec的区别 shell的命令可以分为内部命令和外部命令. 内部命令是由特殊的文件格式.def实现的,如cd,ls等.而外部命令是通过系统调用或独立程序实现 ...

  3. linux中软链接和硬链接的区别与小结

    ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...

  4. linux中软连接和硬链接的区别

    linux中创建软连接和硬链接的方法: 软连接: ln -s oldfile slink 硬连接: ln oldfile hlink linux中创建软连接和硬链接的区别:        原理上,硬链 ...

  5. linux中/etc/profile 和 ~/.bash_profile 的区别

    在 linux中设置环境变量一般使用bash_profile进行配置 其中/etc/bash_profile 表示系统整体设置 ,生效后系统内所有用户可用而 ~/.bash_profile 只表示当前 ...

  6. Linux中apt与apt-get命令的区别与解释

    2019-01-15 14:35:39 随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版 ...

  7. 在linux中,&和&&, |和|| ,&> 与 >的区别

    对应刚接触linux命令的小伙伴们来说,这些符号一定是很困扰的下面我们一起来看这些符号区别和用法 & 表示任务在后台执行,如要在后台运行 如: [root@localhost local]# ...

  8. Linux中nohup和&的用法和区别

    在Linux执行任务时,如果键入Ctrl+C退出进行其他任务或者关闭当前session 当前任务就会终止 要想不让进程停止或者让进程在后台运行,就需要一些命令,nohup和&就是一种非常好的方 ...

  9. Linux中select poll和epoll的区别

    在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select.poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加 ...

  10. linux中exec和xargs命令的区别和优劣分析

    find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...

随机推荐

  1. String的优化 Stringbuffer和Stringbuilder

    string 上次说到string是最好衍生出来的一种字符类型,实现原理是由char[].我们知道数组一旦创建时不可更改的,所以每一次进行字符串的拼接都是在new一个新的字符串进行添加,这样的话对内存 ...

  2. [C++] 空间配置器——allocator类

    1.new和delete有一些灵活性上的局限:new把内存分配和对象构造组合在了一起:delete将对象析构和内存释放组合在了一起.   2.当分配一大块内存时,我们通常计划在这块内存上按需构造对象, ...

  3. 这些Mysql常用命令你是否还记得?

    前言 记录mysql常用命令操作 基础操作 命令行登录mysql  mysql -u用户名 -p用户密码 为表增加创建时间和更新时间 ALTER TABLE order_info_tbl ADD CO ...

  4. ASP.NET Core 3.0 gRPC 双向流

    目录 ASP.NET Core 3.0 使用gRPC ASP.NET Core 3.0 gRPC 双向流 ASP.NET Core 3.0 gRPC 认证授权 一.前言 在前一文 <ASP.NE ...

  5. kvm-web管理工具webvirtmgr

    前言: 使用开源的虚拟化技术,对公司自有的少数服务器进行虚拟化,在满足业务需求的同时,并未增加投入,同时也避免了使用云主机的不便,技术层面,kvm是开源的虚拟化产品,虚拟化性能出众,更重要的是免费!! ...

  6. oracle异机恢复测试

    (一)问题背景 最近在生产环境中,开发人员误操作,使用truncate将oracle数据库某个表的数据全部删除了,在删除之后,开发人员发现自己闯祸了,于是联系值班的DBA进行紧急数据恢复. 经过分析, ...

  7. 删除pdf中的链接

    在Acrobat中打开pdf文件,然后:编辑→首选项→一般→自动从文本检测URL,把此处的对勾去掉,以后就不会变为食指按的形状了! 还有以下的方法 方法1:“高级(A)”→“链接(L)”→“删除文档中 ...

  8. MySQL 相关规约(v1.0)

    0)前言 a. 基本规约 [强制]表存储引擎必须使用InnoDB(针对主库一般是强制要求的) [强制]表字符集默认使用utf8,必要时候使用utf8mb4(个人踩坑:emoji表情存储问题) 说明: ...

  9. 基于Docker搭建大数据集群(三)Hadoop部署

    主要内容 Hadoop安装 前提 zookeeper正常使用 JAVA_HOME环境变量 安装包 微云下载 | tar包目录下 Hadoop 2.7.7 角色划分 角色分配 NN DN SNN clu ...

  10. 23种设计模式之观察者模式(Observer Pattern)

    观察者模式(Observer Pattern):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象,这个主题对象在状态发生变化时,会通知所有观察者.当一个对象改变需要同时改变其他对象, ...