You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10 PowerShell连接VPS(SSH)时,如何通过键盘滚动屏幕缓冲区?

Windows 10 PowerShell连接VPS(SSH)时,如何通过键盘滚动屏幕缓冲区?

我来帮你梳理下这个问题的解决思路,你遇到的快捷键失效问题大概率是两个原因:要么没用到正确的控制台快捷键,要么是SSH会话捕获了你的按键输入,没交给本地控制台处理。

  • 先确认正确的本地控制台滚动快捷键
    Windows控制台本身的滚动快捷键需要配合Shift键,你之前试的组合少了关键的Shift,正确的操作是:

    • 逐行滚动:Ctrl+Shift+PgUp(向上)、Ctrl+Shift+PgDn(向下)
    • 整屏滚动:Shift+PgUp(向上)、Shift+PgDn(向下)
      先试试这些组合,如果还是不行,往下看。
  • 解决SSH会话劫持按键的问题
    当你通过PowerShell连接SSH到VPS时,大部分键盘输入会直接发送给远程的Shell,导致本地控制台的滚动快捷键失效。这时候你需要触发SSH的转义序列,暂时把控制权交回本地控制台:

    1. 按下 Ctrl+](右方括号键),此时控制台顶部可能会出现ssh>提示(没看到也不影响操作生效)
    2. 现在再用上面的Shift组合键,就能正常滚动本地的屏幕缓冲区了
    3. 滚动完成后,按下任意键就能回到SSH会话,继续操作远程VPS
  • 关于那句话的通俗解释
    你看到的“滚动回滚是Windows控制台本身提供的,不是里面的shell”其实很好理解:你打开的那个黑框框(Windows控制台窗口)才是管理屏幕历史内容的主体,不管里面运行的是PowerShell还是SSH,滚动缓冲区的操作都是控制台来处理的。但SSH会话会把大部分按键“抢走”发给远程,所以才需要转义序列来切换控制权。

  • 备选方案:用分页命令处理输出
    如果快捷键还是不顺手,你可以把远程命令的输出通过管道传给分页工具:

    • 用Windows自带的more:比如在远程执行ls -la | more,按空格键翻页,按q退出
    • 如果你的系统装了Git Bash或者WSL,推荐用less,功能更强大:ls -la | less,支持上下箭头逐行滚动、PgUp/PgDn翻页,按q退出

备注:内容来源于stack exchange,提问作者michal roesler

火山引擎 最新活动