如何在终端中完全获取并复制太长的输出?


8

在终端中,命令输出太长。但是,当我向后滚动时,我看到它被截断了,只显示了最后一部分。在Gnome-Terminal和Konsole中,我有此问题。在xterm中没有这种问题,但是我无法在xterm中复制输出。

如何获得完整的输出?


Answers:


5

我知道在xfce4-terminal中有一个选项可以增加显示的行数:

在此处输入图片说明

对于ubuntu Terminal 在此处输入图片说明

除此之外,还有@ Zelda64fan说的话。


+1 Pipe tee并不是最佳选择,因为在某些情况下不起作用,例如HROOT 3NVIORTNM3NT

9

您可以将输出发送到文件:(要运行的命令command > file.txt在哪里,要将其保存到的文件),然后使用进行查看。commandfile.txtgedit file.txt


8

使用xclip

cat long.output | xclip -sel clip

如果没有安装就可以

sudo apt-get install xclip

这是我个人最喜欢的GUI终端。不幸的是,使用TTY不能正常工作,只有重定向到文件才能帮上忙
Sergiy Kolodyazhnyy

5

如果您不需要整个输出,则可以通过以下方法将其通过管道传递:command | less。查看输出后,这也省去了删除文件的麻烦。


less输出很难复制。
Sparhawk

2

在xterm中,“选择时自动复制”应为默认值。尝试三次单击,然后使用鼠标中键(或模拟的第三按钮)进行粘贴。

其他终端也应如此,但是您需要手动复制和粘贴。

有很多很多方法可以做到这一点。script在某些情况下,我喜欢使用。在从命令行启动命令之前,从命令行键入'script'以启动它,然后按Ctrl-D停止。如果不指定捕获文件名,则默认为'typescript'。打印到屏幕上的所有内容都应在文件中捕获。


2

将控制台输出保存到文件中:

  1. tee 命令

tee命令-从标准输入读取并写入标准输出和文件。

它会自动创建文件并将cmd的所有输出保存ps -ax到一个文件中processes_info,该文件名为cmd运行所在的同一文件夹中的文件。

user@admin:~$ ps -ax | tee processes_info
  1. script 命令

脚本命令-制作终端会话的打字稿。

user@admin:~$ script my_console_output.txt

这将创建一个名为as的文件my_console_output.txt,并将打开一个子外壳,并记录该会话中的所有信息。之后,脚本开始运行,无论控制台输出如何,脚本都将存储在文件中my_console_output.txt;除非并且直到分叉外壳退出时脚本结束。(例如,当用户键入内容exitCTRLD键入内容时。)

user@admin:~$ script -c "ps ax" processes_info.txt
  • 它启动脚本;
  • 创建文件processes_info.txt;
  • 将控制台输出存储到文件中;
  • 结束(关闭)脚本。

    其他例子:

    script -c 'echo "Hello, World!"' hello.txt
    

script -c "rails runner -e development lib/scripts/my_script.rb" report.txt帮助我轻松地将Rails Runner脚本的非常长的输出捕获到文件中。我尝试使用重定向到文件,但仅在脚本末尾写入。那对我没有帮助,因为我的脚本中很少有交互式命令。然后我只用script了我的代码,然后运行了rails runnerin脚本会话,但是它没有编写所有内容。然后我发现了这一点,script -c "runner command here" output_file并按需要保存了所有输出。这是在Ubuntu 14.04 LTS
Jignesh Gohel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.