当我说“滚动对我来说是不可见的时,我的意思是:
我当时考虑两个选项:
暂停(考虑分页)某条命令的输出,当输出开始时,它将让我阅读正在发生的事情,然后按“ Enter”,然后输出继续,直到没有其他显示为止。
在屏幕内滚动。但是我不知道这是否可行。
当然,我不知道这些选项是否真的如果可能的话,如何实现它们?其他替代方案将受到广泛欢迎。
#1 楼
屏幕具有自己的滚动缓冲区,因为它是终端多路复用器,并且必须处理多个缓冲区。也许有更好的方法,但是我习惯于使用“复制模式”滚动(可以使用屏幕本身来复制文本,尽管这也需要粘贴命令):
按一下屏幕前缀组合(默认为
C-a
/ control + A),然后按Escape键。使用箭头键(↑和↓)向上/向下移动。
完成后,按q或Escape返回滚动缓冲区的末尾。
(如果不是按q或Escape而是按Enter或Return,然后移动光标,则将选择要复制的文本,然后再次按Enter或Return键将其复制。然后可以先粘贴
C-a
,再粘贴]
。)当然,您始终可以始终使用
more
和less
使用的寻呼机,对于某些命令来说可能就足够了。#2 楼
使用njsg指出的screen
缓冲区是一个很好的解决方案。您还可以在屏幕内的xterm termcap信息中禁用备用文本缓冲区。禁用后,您可以使用滚动条(和鼠标滚轮)上下滚动。将其添加到您的
~/.screenrc
中。# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@
您可以在此处阅读更多讨论。
评论
通过键入Ctrl + A 、:来设置回滚限制,键入“ scrollback 10000”或您想要的任何数值
–lobi
16-11-10在22:20
使用此功能,Linux终端的典型快捷键(shift + pg上/下起始/结束)也可以使用,谢谢。
–托克兰
16-11-22在10:02
仅此技巧就使我重新考虑使用屏幕...
–鱼监视器
17年8月18日在10:56
+1比公认的解决方案更优雅。
–y o
17年10月23日在18:00
仅提供您自启动以来的输出屏幕-即,重新连接到其他地方意味着您无法向上滚动并查看之前发生的情况。但您仍然可以使用接受的答案中的解决方案来检索较早的输出-然后可以再次使用鼠标滚轮。
–菲尔
17年11月2日在4:08
#3 楼
所有这些答案都解决了如何在屏幕会话中导航的问题,但是screen命令中有一个内置功能,可以根据以下手册通过-L
参数将所有内容存储在文件中:-L告诉屏幕打开Windows的自动输出日志记录。
因此您可以执行以下操作:
screen -L -S testscreen
它将在当前目录中创建一个文件,名称为
screenlog.#
,其中#
是该屏幕从0开始的数字。这有很多优点,对我来说最重要的是:
自从我可以将日志文件保存在项目文件夹中以备将来参考以来,我一直在做记录。
使用
tail -F
实时监视进度,而无需连接到屏幕。使用
grep
检查日志中的某些术语并产生通知(电子邮件,弹出窗口,voip等) C。)。可以将其应用于多个屏幕,而无需主动查看它们。评论
我不知道-L屏幕标志,这非常有用! +1
–克雷登斯
19-6-27在16:11
只想添加更多,在执行screen命令的同一文件夹中会生成screenlog。#
–LêQuang Duy
19年8月6日,下午3:52
有趣的是,我正在使用屏幕,因为WSL2中的尾部不可靠。值得庆幸的是,在WSL之外。
–杰伊·基林(Jay Killeen)
8月20日4:42
@JayKilleen我认为您使用的是错误的工具;)少尝试-F即可获得所需的功能:linux.die.net/man/1/less(PS的错误工具当然是Window $)
–迈赫拉德·马哈茂迪(Mehrad Mahmoudian)
8月28日8:20
干杯将尝试一下。
–杰伊·基林(Jay Killeen)
8月31日0:36
#4 楼
我已经成功地通过将内容传递到more
来获得基本的分页,例如:ls -l | more
或者,如果您希望为语法突出显示之类的用例输出颜色,则可以使用
ls -l --color=always | more
这将导致输出,我可以轻松地一次翻阅一个屏幕。我还没有尝试@uther对
~/.screenrc
的修改,但是当有鼠标可用时,这似乎是一种持久的解决方案。要尝试此操作,可以转到此BusyBox模拟器,然后...
cd ~/bin
ls -l --color=always | more
使用空格键翻页查看
ls -l
命令的结果,或使用Enter键逐行浏览结果。#5 楼
如果您不明白,请清除结帐https://stackoverflow.com/questions/18489216/how-to-scroll-up-and-down-in-sliced-screen-terminal
先按Control + A,然后再进行Escape。
然后使用Up,Down或PgUp PgDown导航
,然后进行Escape退出该模式。
否则,https://unix.stackexchange.com/a/40243/318478
在顶部回答!只需解释一下即可。
命令可能不清楚!好吧,我起初很想念它。查看有关如何复制的部分!太酷了!
#6 楼
如果使用Windows
并使用Bitvise SSH客户端,则使用screen
时可以轻松滚动输出。我一直在使用它,没有任何麻烦。即使再次按detach
屏幕和attach
,仍可以在该屏幕上滚动以前的输出。使用Putty或Mac Terminal时,@ njsg的建议效果很好。
#7 楼
对于Emacsians,您可以在~/.screenrc
文件中添加此行以获得Emacs样式的导航:markkeys "l=^F:h=^B:$=^E:^F=^V:^B=^U"
此行更改了以下内容:
| Action | Default | Emacs |
|-------------+---------+-------|
| Forward | l | C-f |
| Backward | h | C-b |
| End of line | $ | C-e |
| Page down | C-f | C-v |
| Page up | C-b | C-U |
请注意,“向上翻页”使用
C-u
替换M-v
,因为屏幕不支持元字符。
评论
同样,按q会退出复制模式而不复制任何内容(这是少按一次按钮)。这可能在vi的解释中,但现在链接已断开。
–娜塔奈尔·法利(Nathanael Farley)
2014年6月26日8:59
同样,按[Esc]也会退出复印模式。
–Sopalajo de Arrierez
2015年10月6日在21:06
任何方式向上翻页?
– Sungguk Lim
16-10-29在2:47
滚动缓冲区似乎支持类似于vi的命令:C-b和C-f用于向上/向下滚动页面。
–桐子
17年1月18日在7:30
在复制模式下,我的PageUp和PageDown按钮可以工作。第一次按仅移动一行,但随后按正常方式翻页。
–reas0n
17年2月28日在21:54