首先,这不是一个关于history
存储所有输入的命令的问题。
我在工作站上打开了几个终端,从中我可以启动模拟、检查输出,偶尔还会显示错误消息。
有Gnome Terminal
一个设置可以控制向后滚动的长度,在我的情况下,该设置被设置为略少于 10000 行。
现在我的问题是:我如何搜索回滚?
就我而言,我想检查最近是否出现过错误消息。是的,我可以向后滚动并用眼睛搜索相关错误消息。但对于几个可能长达 10000 行的终端来说,这意味着要花费大量时间进行滚动。
我假设回滚中的信息需要存储在某个地方,如果存储在某个地方,它实际上可能是可搜索的。
[编辑:更正该问题为关于 Gnome 终端的问题。]
答案1
如果脚本产生的输出对您非常重要(查找错误、警告、运行的操作等),那么您不应该依赖于您正在使用的控制台的显示。
您必须将脚本的输出重定向到某些文件,这样做有以下优点:
- 你不再受限于所用控制台的滚动缓冲区中的行数
- 只要你愿意,你可以存档结果,甚至在有效运行脚本几天/几周/几个月后,你仍可以检索到所做的操作
- 您可以将错误记录到专用文件中,与信息消息不同,从而更容易找到错误。(如果脚本中使用的命令将错误发送到 STDERR 并将信息发送到 STDOUT)。
- 您甚至可以使用该命令将输出记录到文件,同时仍在终端上显示输出
tee
。
因此,你可以这样做:
./script.sh | tee -a output
复制所有输出脚本到名为输出,将文本附加到文件末尾,并在终端上显示文本。
答案2
回滚缓冲区是终端或控制台的功能。
如果您正在使用帧缓冲区控制台,则可以fbcon=scrollback:
在启动时使用参数来增加回滚的大小。
为了xfce4-终端,转到“编辑->设置->常规->回滚”并根据您的喜好更改滚动缓冲区。
对于 kde控制台,进入“设置->配置当前配置文件...->滚动->固定行数”
古典的终端可以使用启动标志 -sl 777(用于 777 行回滚缓冲区)或通过 saveLines 配置进行配置。
为了GNU 屏幕,使用 screen -h 启动它。
我会选择屏幕,您可以在其中搜索回滚缓冲区:
/ Vi-like search forward
? Vi-like search backward
C-a s Emacs style incremental search forward
C-r Emacs style reverse i-search
在滚动回滚模式(或复制模式,是一样的)下,您也可以复制和粘贴文本。