我正在使用 GNOME 终端使用“tail -f”查看日志文件。日志中不断有大量输入,我发现发生的情况是,我向上滚动到上一部分,然后我正在阅读它,然后屏幕变黑,或者被更下方的文本替换文件。
我不知道这是否是问题所在,但好像 tail 只能在内存中保存这么多行,并且当在我正在读取的行之后出现特定数字时,它会删除我正在读取的行。
需要输入才能实现这一点的后续行数不是也巨大 - 在我刚刚做的实验中大约有 600(~55,000 字节)行。我想将其增加到大约 20,000 行(或者说 1,000,000 字节,如果以字节为单位计算的话)。谁能告诉我该怎么做?谢谢
PS - 读到此内容的人可能会想说“这不是它的用途tail -f
,它只是为了读取文件末尾”。我喜欢两全其美 - 按“Enter”键到达文件末尾并查看现在发生的情况,而且还能够向上滚动并查看之前发生的情况。
答案1
GNOME-Terminal 的回滚设置位于“编辑”->“首选项”->“配置文件”->“编辑”->“滚动”下。在我的安装中,默认值似乎是 8,192 行,但您可以将其设置为您想要的值或完全禁用该限制。
您还可以使用寻呼机来less
实现相同的目的:
tail -f file | less
请注意,在内存中存储无限的历史记录可能最终会在长时间运行的任务中占用相当大的内存块。使用寻呼机将允许在退出寻呼机时清除大部分缓冲区,而在终端中,它会持续与终端会话一样长。
你可能会发现过去关于回滚缓冲区的答案有助于了解正在发生的事情。