BlueSkies Asked: 2019-11-27 09:45:06 +0800 CST2019-11-27 09:45:06 +0800 CST 2019-11-27 09:45:06 +0800 CST “更多”和“更少”命令有什么区别? 772 下面的两个命令有什么区别? more file-name less file-name command-line less more 3 个回答 Voted Best Answer Rinzwind 2019-11-27T09:57:51+08:002019-11-27T09:57:51+08:00 more是最古老的,less是一种改进,most是一种改进。 简短比较: more:向前导航和有限的向后导航。 less:向前和向后导航,也有搜索选项。您可以立即转到文件的开头和结尾。另外,您可以切换到编辑器(例如在 vi 或 vim 中打开文件)。当文件很大时,它明显比编辑器快。 most:具有所有功能,more但less您也可以打开多个文件,打开多个文件时一次关闭一个文件,允许锁定和滚动打开的窗口,并允许拆分打开的窗口。 所有 3 都使用h让您查看命令的键绑定。 TOOGAM 2019-11-28T10:11:10+08:002019-11-28T10:11:10+08:00 笑话 有一个古老的笑话由三个词组成:“少即是多”。(这是 guillermo chamorro 对该问题的第二条评论所指的“双关语”。)人们如此喜欢这个笑话的一个原因可能是该陈述可以用三种不同的方式来理解,因此并不清楚指的是哪种方式。然而,所有三种方式都是准确的,至少在某些操作系统上是这样。(第 2 点可能不适用于 Ubuntu,我确实知道这是一个专注于 Ubuntu 的站点。但是,Ubuntu 源自 Debian 希望具有从 Unix 和 Unix 的其余部分获取和共享的想法的悠久历史- ish 系统。因此,了解其他操作系统的功能并不是一件坏事。) 有一个名为 LESS_IS_MORE 的变量 作为 less 的一个不争的事实(在某些操作系统上) 作为一个简单的英语陈述 为了澄清这些: 有一个名为 的变量LESS_IS_MORE。 该less命令支持名为LESS_IS_MORE. 默认情况下,该less命令的行为与旧more命令非常相似,但如果该less命令看到此变量设置为值 1(第一个),则该less命令将提供较少的功能以尝试增加它的兼容性与名为more. 这不是 Ubuntu 特定的,less所有平台都支持。less(1) (less的“手册页”)more中提到了这一点,标题为“与 的兼容性”。 作为 less 的一个不争的事实(在某些操作系统上) 该less命令支持许多程序在类 Unix 环境中使用的行为,即检查它作为哪个文件名运行的行为。如果运行less程序的命令行more以.lessmoreLESS_IS_MORE 一些操作系统实际上依赖于这个功能,并没有费心包含一个名为more. 好吧,需要明确的是,有一个名为的可用命令more(强烈建议与脚本兼容和一些非常常见的用户行为),但less和more命令都是指向同一可执行代码位流的“硬链接”。所以,操作系统在运行name命令时运行的可执行代码less实际上与操作系统在运行name命令时运行的可执行代码相同。more. (这甚至不仅仅是运行代码的相同副本的情况。从字面上看,通过从数据存储设备的完全相同的位置读取来加载相同的位,因此它实际上是相同的代码被使用。)因此,该语句指的less是more文字(事实的,非主观的,可证明的)真理,因为它们实际上是完全相同的程序,因为这两个程序实际上都使用完全相同的可执行代码。(但是,根据用于运行程序的命令,程序的行为可能会有所不同。) 如果有人说“less是more,字面意思。” 那么这个人可能试图澄清less命令和more命令共享相同的可执行位。这可以作为“硬链接”(使用 实现ln)最有效地完成,但也可以使用“符号链接”(使用 实现ln -s)或通过拥有可执行文件位的副本(可以轻松实现)来实现使用cp)。 作为一个简单的英语陈述 这是一个固执己见的声明(很多人都同意),说明该less命令具有更多的好功能,因此该less命令比旧的、更传统的寻呼机命令提供的体验更好(恰好被命名more)。由于使用命名命令的体验less明显更好,人们觉得将这种更好的体验描述为“更多!”是恰当的。 在整个答案中,我确实努力使对命令的所有引用都被明显标记。然而,体验笑话的最佳方式是口头上,因为这会增加一些歧义。口头上说 “少即是多” 或“less 是 more” 或“less更多! ” 可能都以完全相同的方式发音,所以如果语调没有清楚地表明对任何特定单词的任何特别强调,那么仅仅听到这三个单词并不能真正表明准确的陈述(如果有的话)是旨在比其他陈述更广泛地被引用。 除了幽默之外,这也可以用来衡量某人对这个命令 Unix 程序的熟悉程度。许多人在使用命令之前不会阅读每个命令的“手册页”(尤其是在学习如何在他们使用的第一个 Unix 平台上有效使用一些最基本的命令时),所以很多人最终学习了充分解释这个笑话时的 LESS_IS_MORE 变量。因此,口头上讲这个笑话可以作为一种方法来检查收件人似乎有多少确认或困惑。 (如果这个人看起来有点困惑,这可能表明这是一个很好的时间来帮助教育这个人关于这个陈述的多个方面。基于第一点或第二点,他们最终会知道一个多一点关于一个普通命令的行为。如果他们记住了这个笑话,那么他们就可以记住最后一点,这有助于他们记住less许多人更喜欢的命令的存在,并记住哪个命令通常提供了一个在许多平台上都有更好的体验。) DOS 兼容性 “ ”命令有一个方面more值得一提,这可能使它看起来比“ ”命令更好(至少在某些人看来)less。 非常非常多的 Unix(-ish) 系统都带有一个名为的命令more和一个名为 的命令less,这是内置的,作为操作系统的一部分安装。(在命令most的基础上进一步构建的名为 的less命令在其他答案之一中提到,但预安装在少得多的系统上。因此,需要先安装程序。)但是,该more命令也可能是预安装在大量计算机上,包括通常不被认为主要围绕 Unix 兼容性设计的计算机。 在 MS-DOS 和类似/兼容的平台中,包括现代 Microsoft Windows,以下将与 Unix 一样工作: more < filename.txt 您也可以通过管道输入more. 演示这一点的典型方法是显示一个显示文本文件内容的命令。在 Unix 中,这通常使用cat. MS-DOS 没有cat命令,而是使用type. (Unix 有一个单独的type命令可以做一些完全不同的事情。)所以: Unix:cat file.txt | more 操作系统:type file.txt | more (请记住,当我提到 DOS 时,它也适用于现代 Microsoft Windows,更不用说 OS/2 等其他系统了。因此,这些 DOS 参考文献与当今的现代世界相关,就像 Microsoft Windows 一样。) 作为一个更现代的示例,以下适用于现代 Microsoft Windows 系统以及许多 Unix 系统: netstat -na | more 对于现代版本,您还可以在命令行上指定一个或多个文件名。如果这样做,将显示第一个文件,然后将显示下一个文件。 more fileone.txt filetwo.txt 虽然该less命令可用于 MS-DOS、Microsoft Windows 和其他操作系统,但该程序通常没有预先捆绑。因此,less除非努力安装系统,否则该命令不可用。如果你踏入了一个你以前没有去过的计算机实验室,那么很有可能命名的命令more可能很容易使用,而命名的命令less通常只能在 Unix 平台上使用。对于某些人来说,这可能是命名命令的一个优势,more这对于他们更愿意习惯运行该命令来说非常重要。 杂项 我不想在这里提供完整的答案,因为这样做只会与其他答案多余。相反,我决定只包含我在其他地方没有看到的信息。因此,此答案旨在补充其他一些答案。我希望您喜欢这里提供的信息,但一定要查看其他答案。两个预先存在的答案(在这个答案之前发布)也提供了额外的信息。 Eliah Kagan 2019-11-27T09:57:58+08:002019-11-27T09:57:58+08:00 less让您向上和向下导航。 这是最重要的区别,但还有很多其他区别。less提供了许多超出more. 你可以按下它H,less它会显示它的简短帮助,解释如何使用它的各种交互功能。 最常见的是Spacebar或Page Down向下一屏文本并B返回Page Up一屏文本。所有四个箭头键都有效(尽管向上和向下箭头是最常用的)。 lessmore在与性能、资源使用和适应异常终端有关的某些方面也有所不同。正如man less所说: Less是一个类似于more (1) 的程序,但它有更多的功能。Less不必在启动之前读取整个输入文件,因此对于大型输入文件,它比vi (1) 等文本编辑器启动得更快。Less 使用 termcap(或某些系统上的 terminfo),因此它可以在各种终端上运行。对硬拷贝终端的支持甚至有限。(在硬拷贝终端上,应在屏幕顶部打印的行以插入符号为前缀。) 命令基于more和vi。命令前面可能有一个十进制数,在下面的描述中称为 N。如图所示,该数字由某些命令使用。 我一直在less比较more. 在 Ubuntu 中,more就是这样一个实现。但是,如果您调用lessbut 作为名称more- 如果您创建符号链接或硬链接来less调用more并运行它会发生这种情况 - 那么它的行为会有所不同,在more美学上类似于但允许您在文档中向上和向下移动。
more
是最古老的,less
是一种改进,most
是一种改进。简短比较:
more
:向前导航和有限的向后导航。less
:向前和向后导航,也有搜索选项。您可以立即转到文件的开头和结尾。另外,您可以切换到编辑器(例如在 vi 或 vim 中打开文件)。当文件很大时,它明显比编辑器快。most
:具有所有功能,more
但less
您也可以打开多个文件,打开多个文件时一次关闭一个文件,允许锁定和滚动打开的窗口,并允许拆分打开的窗口。所有 3 都使用
h
让您查看命令的键绑定。笑话
有一个古老的笑话由三个词组成:“少即是多”。(这是 guillermo chamorro 对该问题的第二条评论所指的“双关语”。)人们如此喜欢这个笑话的一个原因可能是该陈述可以用三种不同的方式来理解,因此并不清楚指的是哪种方式。然而,所有三种方式都是准确的,至少在某些操作系统上是这样。(第 2 点可能不适用于 Ubuntu,我确实知道这是一个专注于 Ubuntu 的站点。但是,Ubuntu 源自 Debian 希望具有从 Unix 和 Unix 的其余部分获取和共享的想法的悠久历史- ish 系统。因此,了解其他操作系统的功能并不是一件坏事。)为了澄清这些:
LESS_IS_MORE
。less
命令支持名为LESS_IS_MORE
. 默认情况下,该less
命令的行为与旧more
命令非常相似,但如果该less
命令看到此变量设置为值 1(第一个),则该less
命令将提供较少的功能以尝试增加它的兼容性与名为more
.less
所有平台都支持。less
(1) (less
的“手册页”)more
中提到了这一点,标题为“与 的兼容性”。less
命令支持许多程序在类 Unix 环境中使用的行为,即检查它作为哪个文件名运行的行为。如果运行less
程序的命令行more
以.less
more
LESS_IS_MORE
more
. 好吧,需要明确的是,有一个名为的可用命令more
(强烈建议与脚本兼容和一些非常常见的用户行为),但less
和more
命令都是指向同一可执行代码位流的“硬链接”。所以,操作系统在运行name命令时运行的可执行代码less
实际上与操作系统在运行name命令时运行的可执行代码相同。more
. (这甚至不仅仅是运行代码的相同副本的情况。从字面上看,通过从数据存储设备的完全相同的位置读取来加载相同的位,因此它实际上是相同的代码被使用。)因此,该语句指的less
是more
文字(事实的,非主观的,可证明的)真理,因为它们实际上是完全相同的程序,因为这两个程序实际上都使用完全相同的可执行代码。(但是,根据用于运行程序的命令,程序的行为可能会有所不同。)less
是more
,字面意思。” 那么这个人可能试图澄清less
命令和more
命令共享相同的可执行位。这可以作为“硬链接”(使用 实现ln
)最有效地完成,但也可以使用“符号链接”(使用 实现ln -s
)或通过拥有可执行文件位的副本(可以轻松实现)来实现使用cp
)。less
命令具有更多的好功能,因此该less
命令比旧的、更传统的寻呼机命令提供的体验更好(恰好被命名more
)。由于使用命名命令的体验less
明显更好,人们觉得将这种更好的体验描述为“更多!”是恰当的。在整个答案中,我确实努力使对命令的所有引用都被明显标记。然而,体验笑话的最佳方式是口头上,因为这会增加一些歧义。口头上说
less
是more
”less
更多! ”可能都以完全相同的方式发音,所以如果语调没有清楚地表明对任何特定单词的任何特别强调,那么仅仅听到这三个单词并不能真正表明准确的陈述(如果有的话)是旨在比其他陈述更广泛地被引用。
除了幽默之外,这也可以用来衡量某人对这个命令 Unix 程序的熟悉程度。许多人在使用命令之前不会阅读每个命令的“手册页”(尤其是在学习如何在他们使用的第一个 Unix 平台上有效使用一些最基本的命令时),所以很多人最终学习了充分解释这个笑话时的 LESS_IS_MORE 变量。因此,口头上讲这个笑话可以作为一种方法来检查收件人似乎有多少确认或困惑。
(如果这个人看起来有点困惑,这可能表明这是一个很好的时间来帮助教育这个人关于这个陈述的多个方面。基于第一点或第二点,他们最终会知道一个多一点关于一个普通命令的行为。如果他们记住了这个笑话,那么他们就可以记住最后一点,这有助于他们记住
less
许多人更喜欢的命令的存在,并记住哪个命令通常提供了一个在许多平台上都有更好的体验。)DOS 兼容性
“ ”命令有一个方面
more
值得一提,这可能使它看起来比“ ”命令更好(至少在某些人看来)less
。非常非常多的 Unix(-ish) 系统都带有一个名为的命令
more
和一个名为 的命令less
,这是内置的,作为操作系统的一部分安装。(在命令most
的基础上进一步构建的名为 的less
命令在其他答案之一中提到,但预安装在少得多的系统上。因此,需要先安装程序。)但是,该more
命令也可能是预安装在大量计算机上,包括通常不被认为主要围绕 Unix 兼容性设计的计算机。在 MS-DOS 和类似/兼容的平台中,包括现代 Microsoft Windows,以下将与 Unix 一样工作:
more < filename.txt
您也可以通过管道输入
more
. 演示这一点的典型方法是显示一个显示文本文件内容的命令。在 Unix 中,这通常使用cat
. MS-DOS 没有cat
命令,而是使用type
. (Unix 有一个单独的type
命令可以做一些完全不同的事情。)所以:cat file.txt | more
type file.txt | more
(请记住,当我提到 DOS 时,它也适用于现代 Microsoft Windows,更不用说 OS/2 等其他系统了。因此,这些 DOS 参考文献与当今的现代世界相关,就像 Microsoft Windows 一样。)
作为一个更现代的示例,以下适用于现代 Microsoft Windows 系统以及许多 Unix 系统:
netstat -na | more
对于现代版本,您还可以在命令行上指定一个或多个文件名。如果这样做,将显示第一个文件,然后将显示下一个文件。
more fileone.txt filetwo.txt
虽然该
less
命令可用于 MS-DOS、Microsoft Windows 和其他操作系统,但该程序通常没有预先捆绑。因此,less
除非努力安装系统,否则该命令不可用。如果你踏入了一个你以前没有去过的计算机实验室,那么很有可能命名的命令more
可能很容易使用,而命名的命令less
通常只能在 Unix 平台上使用。对于某些人来说,这可能是命名命令的一个优势,more
这对于他们更愿意习惯运行该命令来说非常重要。杂项
我不想在这里提供完整的答案,因为这样做只会与其他答案多余。相反,我决定只包含我在其他地方没有看到的信息。因此,此答案旨在补充其他一些答案。我希望您喜欢这里提供的信息,但一定要查看其他答案。两个预先存在的答案(在这个答案之前发布)也提供了额外的信息。
less
让您向上和向下导航。这是最重要的区别,但还有很多其他区别。
less
提供了许多超出more
. 你可以按下它H,less
它会显示它的简短帮助,解释如何使用它的各种交互功能。最常见的是Spacebar或Page Down向下一屏文本并B返回Page Up一屏文本。所有四个箭头键都有效(尽管向上和向下箭头是最常用的)。
less
more
在与性能、资源使用和适应异常终端有关的某些方面也有所不同。正如man less
所说:我一直在
less
比较more
. 在 Ubuntu 中,more
就是这样一个实现。但是,如果您调用less
but 作为名称more
- 如果您创建符号链接或硬链接来less
调用more
并运行它会发生这种情况 - 那么它的行为会有所不同,在more
美学上类似于但允许您在文档中向上和向下移动。