Aer*_*oss 525 ssh gnu-screen terminal putty scrolling
我在管理我工作的服务器时使用screen执行我的命令行任务。我通常运行小命令(主要是文件系统任务),但有时我运行更广泛的任务(如 DBA)。
这些任务的输出对我来说很重要。由于我将 Ubuntu 和 OS X(都是终端 Windows)用于我的任务,但我需要使用屏幕,因此滚动不可用,因此任何长输出(认为来自选择的 500 行表)对我来说都是不可见的。鼠标滚轮是不可能的。
当我说“滚动对我来说是不可见的”时,我的意思是:

我在考虑两种选择:
暂停(想想paginate)某个命令的输出。当输出开始时,它会让我阅读正在发生的事情,然后我按“Enter”,然后输出继续,直到没有更多显示。
在屏幕内滚动。但我不知道这是否可能。
当然,我不知道这些选项是否真的可行。如果是,如何实现?其他替代方案将受到欢迎。
njs*_*jsg 722
Screen 有自己的滚动缓冲区,因为它是一个终端多路复用器,必须处理多个缓冲区。
也许有更好的方法,但我习惯于使用“复制模式”滚动(您可以使用屏幕本身复制文本,尽管这也需要粘贴命令):
点击您的屏幕前缀组合(默认为C-a/ control+ A),然后点击Escape.
使用箭头键 (↑和↓)向上/向下移动。
完成后,点击q或Escape回到滚动缓冲区的末尾。
(如果不是qorEscape你点击EnterorReturn然后移动光标,你将选择要复制的文本,点击Enter或Return第二次将复制它。然后你可以粘贴,C-a然后是]。)
当然,你总是可以使用more和less,这两个常用的寻呼机,对于某些命令来说可能就足够了。
Geo*_*e M 236
使用njsgscreen指出的缓冲区是一个很好的解决方案。您还可以在屏幕内的 xterm termcap 信息中禁用备用文本缓冲区。禁用后,您可以使用滚动条(和鼠标滚轮)上下滚动。
将此添加到您的~/.screenrc.
# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读更多讨论。
Meh*_*ian 47
所有这些答案都解决了如何在 screen 会话中导航,但是screen 命令中有一个内置功能可以-L根据手册将所有内容通过参数存储在文件中:
-L 告诉 screen 打开窗口的自动输出日志记录。
所以你可以这样做:
screen -L -S testscreen
Run Code Online (Sandbox Code Playgroud)
它会创建当前目录下的一个文件,名称为screenlog.#其中#是该屏幕从0开始的数字。
这有很多优点,对我来说最重要的是:
tail -F实时监控进度,无需附加到屏幕。grep检查日志中的某些术语并生成通知(电子邮件、弹出窗口、voip 等)。这可以应用在多个屏幕上,而无需您主动查看它们。小智 8
如果您没有清楚结帐
尝试Control+ A,然后Escape。
然后使用Up,Down或进行导航PgUp PgDown
并Escape退出该模式。
否则https://unix.stackexchange.com/a/40243/318478
回答在上面!简单解释一下一切。
命令可能不清楚!好吧,我一开始就错过了。看看关于如何复制的部分!这很酷!
我已经成功通过将内容传输到 来获得基本分页more,例如:
ls -l | more
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要语法突出显示等用例的颜色输出,您可以使用
ls -l --color=always | more
Run Code Online (Sandbox Code Playgroud)
这导致我可以轻松地一次浏览一个屏幕的输出。我还没有尝试过 @uther 的修改,~/.screenrc但当鼠标可用时,这似乎确实是更可取的持久解决方案。
要尝试一下,您可以转到此 BusyBox 模拟器,然后...
cd ~/bin
ls -l --color=always | more
Run Code Online (Sandbox Code Playgroud)
使用空格键翻阅命令的结果ls -l,或使用 Enter 键逐行浏览结果。
| 归档时间: |
|
| 查看次数: |
445899 次 |
| 最近记录: |