终端滚动缓冲区默认过小,需按终端类型调整:gnome terminal、konsole、xterm、alacritty等需修改各自配置;screen/tmux需调高历史行数;长输出应优先用less -n +g分页;系统日志等需导出落盘后查看。

终端滚动缓冲区默认太小,Ctrl+Shift+Up翻不到几行就断了
Linux桌面环境(如GNOME Terminal、Konsole、XTerm)的滚动缓冲区默认通常只有512–2048行,跑个journalctl -n 1000或长日志输出后,早期内容直接被挤掉。这不是Shell限制,是终端模拟器自身的显示缓冲配置。
修改方法取决于你用的终端程序:
- GNOME Terminal:菜单 编辑 → 首选项 → 滚动 → 限制滚动行数,建议设为
10000或勾选“无限”(实际受限于内存) - Konsole:设置 → 选项 → 历史记录 → “保留行数”,设为
20000 - XTerm:需在
~/.Xresources中添加:XTerm*saveLines: 10000,然后运行xrdb -merge ~/.Xresources - Alacritty:在
~/.config/alacritty/alacritty.yml中设置history.size: 10000
screen和tmux里翻页不靠鼠标,但默认历史行数也不够
它们自带缓冲区,但默认值往往保守(screen默认100行,tmux默认2000行),纯键盘操作时容易误判“没更多内容”。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
screen:启动前加-h 10000,例如screen -h 10000 -S mysession;已运行中按Ctrl+A :defh 10000临时扩容 -
tmux:改配置文件~/.tmux.conf,加一行set -g history-limit 10000,重载配置用tmux source-file ~/.tmux.conf - 注意:
tmux的history-limit只影响复制模式(Prefix+[)可回溯范围,不影响Ctrl+b PgUp的普通翻页——后者由终端本身缓冲决定
命令行输出太多,less比滚动更可靠
依赖终端滚动看长输出本质是被动方案,容易丢上下文。主动分页才是稳定做法。
- 所有支持管道的命令,优先接
| less -N +G:自动跳到末尾,Shift+G回底,k/j逐行,/pattern搜索,q退出 - 想保留全部原始输出(含颜色),加
-R:ls --color=always /usr/bin | less -R -N +G -
tail -f实时追加时,按Ctrl+C退出后,tail -n +1 logfile | less -N可重读全量——别指望滚动条记住它
系统级日志或后台服务输出,终端缓冲根本不管用
比如journalctl、docker logs、systemctl status,这些输出本就不经过当前终端缓冲,而是由各自服务控制缓存策略。
-
journalctl默认只存最近的几万行(受/etc/systemd/journald.conf中SystemMaxUse和MaxRetentionSec约束),查旧日志得先确认是否还存在 -
docker logs --tail 10000 container_name能强制取指定行数,但容器未启用log-driver持久化时,重启后日志即丢失 - 真正要长期查,必须导出:
journalctl -u nginx.service > nginx.log,再用less或vim打开










