首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用前面命令输出的文本

使用前面命令输出的文本
EN

Unix & Linux用户
提问于 2010-08-12 09:34:38
回答 6查看 5.3K关注 0票数 16

2015年4月编辑:如果您有同样的问题,我建议您也检查http://xiki.org/

我知道终端不是这样工作的,但我常常希望有一种简单的方法来使用文本(复制文本、修改文本等等),而这种方式已经在我的终端窗口历史记录中从以前的命令输出中得到了使用。

我想象过是这样的:

我在bash即将输入一个命令,我意识到我需要键入屏幕上已经出现的内容,上面几行。我可以够到鼠标并选择它,但我讨厌它。此刻我真正希望的是,我的整个终端变成了一个巨大的Vim缓冲区,所有这些都是:提示、我输入的命令以及这些命令的输出。所有的一切。然后,我可以跳几行,也许编辑一点,然后抽出一些文字。然后,返回bash模式并粘贴我在当前命令行中单击的任何内容。

我知道有一些选择:

  • 自然,将我需要的文本从某个命令的输出直接输送到一个文件,或者直接到下一个命令。但为此,您必须预先计划或重新执行历史记录中的命令(假设输出不会在调用之间发生变化)。
  • 若要触及鼠标并选择要复制的文本,请执行以下操作。糟糕,烦人,我希望我没有那样做,(这不是GUI stackexchange站点,是吗?=)
  • 使用我的(Mac )终端应用程序的“导出文本作为.”选项,并将终端文本保存到文件中。然后打开文件并使用它。几乎可以,但是为什么要经历将文件保存到磁盘上的步骤呢?

所以问题是:在这种情况下你会做什么?在这个场景中,有什么技巧、工具、shell功能可以使用吗?你只是辞职使用鼠标或重新键入任何您需要键入的?

问题可能是我不是在做‘unix方式’,但是拜托,这是2010年,我不能轻易地在光标之外复制几行文字?

EN

回答 6

Unix & Linux用户

回答已采纳

发布于 2010-08-12 09:52:26

您可以使用脚本(使用-f确保每次刷新),并且可以将所有输出保存在一个文件中。

使用终端复用器(屏幕、tmux等)。例如,对于屏幕http://web.mit.edu/gnu/doc/html/screen_11.html#

命令:复制,输入复制/回滚模式。这允许您将文本从当前窗口及其历史记录复制到粘贴缓冲区中。在这种模式下,类似vi的全屏编辑器处于活动状态,控件如下所示。

其他终端多路复用器肯定具有更先进的功能。

票数 4
EN

Unix & Linux用户

发布于 2010-08-12 09:55:54

在emacs中,M壳处理以前输出的版本。您可以很容易地复制粘贴以前的命令输出,或缓冲区的任何部分,就像一个常规缓冲区。我很确定应该有一个vim等价物。

票数 5
EN

Unix & Linux用户

发布于 2010-08-12 11:54:01

在tmux (终端多路复用器)中,您可以按Ctrl+A-[切换到Vi缓冲区模式,您可以在屏幕周围导航,来回滚动缓冲区,复制文本等等。默认的快捷方式实际上是Ctrl+B-[但这显然是要重新配置的。此外,默认的缓冲区模式是Emacs,但您可以将其配置为Vi。

看看tmux,它确实是一个伟大的现代终端复用器。除了使用缓冲区之外,您还可以在多个窗口中拆分屏幕,从多个终端连接到同一会话等。为了最终的方便,您甚至可以将其作为登录shell,如果您告诉它实际的shell是什么。

在OpenBSD上,tmux甚至成为基本系统的一部分。

有关详细信息,请参阅tmux手册页。还请参阅http://tmux.sourceforge.net/上的截图

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档