Windows Terminal 的历史记录大小由 historySize 控制,默认 9001 行,可在 settings.json 的 profiles 或 profiles.defaults 中设为 10000–32767;需重启终端生效,且不影响 shell 自身历史(如 PowerShell 的 $MaximumHistoryCount 或 bash 的 HISTSIZE)。
修改 Windows Terminal 的历史记录大小
windows terminal 默认只保留 9001 行命令历史(含输出),超出后旧内容会被自动覆盖。这个值由 historysize 控制,不是滚动条开关,而是决定你最多能向上回溯多少行内容。
在 settings.json 中设置 historySize
打开 Windows Terminal 设置(可通过下拉菜单 → “设置”,或按 Ctrl + ,),点击右下角“以 JSON 格式打开设置”,在 "profiles" 区域内找到你要修改的配置文件(如 PowerShell 或 CMD),在其对象中添加或修改:
"historySize": 20000
若想对所有配置文件统一生效,可加在 "profiles": { "defaults": { ... } } 下方:
"defaults": { "historySize": 20000 }
保存后需关闭并重新打开终端窗口,新设置才会生效。
注意事项和合理取值
该值最大支持 32767,不建议设为 0(禁用历史)或远超上限(可能导致内存占用升高、响应变慢):
- 日常使用:设为 10000–20000 已足够应对构建、日志流等场景
- 调试长任务时可临时设到 32767,但不宜长期保持
- 设得过大不会损坏系统,但可能影响终端滚动、搜索(Ctrl+Shift+F)性能
- 此设置仅影响 Windows Terminal 自身缓存,不影响 shell(如 PowerShell)内部的
Get-History命令历史
补充:别漏掉 shell 层的历史控制
Windows Terminal 的 historySize 管的是界面层可滚动内容,而命令本身是否被 shell 记录,还取决于 shell 配置:
- PowerShell:检查
$MaximumHistoryCount(默认 4096),可通过$PSDefaultParameterValues['*:MaximumHistoryCount']=10000持久化调整 - WSL / bash:确认
HISTSIZE和HISTFILESIZE是否足够(如export HISTSIZE=10000) - 这些 shell 级设置需写入对应配置文件(如
$PROFILE或~/.bashrc)并重启会话才生效










