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的转义序列,暂时把控制权交回本地控制台:- 按下 Ctrl+](右方括号键),此时控制台顶部可能会出现
ssh>提示(没看到也不影响操作生效) - 现在再用上面的Shift组合键,就能正常滚动本地的屏幕缓冲区了
- 滚动完成后,按下任意键就能回到SSH会话,继续操作远程VPS
- 按下 Ctrl+](右方括号键),此时控制台顶部可能会出现
关于那句话的通俗解释
你看到的“滚动回滚是Windows控制台本身提供的,不是里面的shell”其实很好理解:你打开的那个黑框框(Windows控制台窗口)才是管理屏幕历史内容的主体,不管里面运行的是PowerShell还是SSH,滚动缓冲区的操作都是控制台来处理的。但SSH会话会把大部分按键“抢走”发给远程,所以才需要转义序列来切换控制权。备选方案:用分页命令处理输出
如果快捷键还是不顺手,你可以把远程命令的输出通过管道传给分页工具:- 用Windows自带的
more:比如在远程执行ls -la | more,按空格键翻页,按q退出 - 如果你的系统装了Git Bash或者WSL,推荐用
less,功能更强大:ls -la | less,支持上下箭头逐行滚动、PgUp/PgDn翻页,按q退出
- 用Windows自带的
备注:内容来源于stack exchange,提问作者michal roesler




