Clear-History仅清空当前PowerShell会话历史,不删除PSReadLine持久化的历史文件;彻底重置需删除ConsoleHost_history.txt并重载PSReadLine模块。

VSCode 本身不保存终端命令历史,重置历史记录必须操作底层 shell,不是改 VSCode 设置就能生效的。
PowerShell 历史记录清空与重置
PowerShell 的命令历史由 PSReadLine 模块管理,history -c 或 Clear-History 只清当前会话,不影响磁盘文件;真正重置得删掉历史文件并重载模块。
-
Get-PSReadLineOption查看HISTFILE路径(常见为$HOME\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt) - 执行
Remove-Item $env:HISTFILE -Force删除历史文件 - 再运行
Import-Module PSReadLine -Force重建空白历史缓存 - 如果终端启动时带
-NoProfile(如某些远程开发场景),PSReadLine根本不加载 → 历史功能直接失效,需检查terminal.integrated.profiles.*配置里是否误加了该参数
bash / zsh 历史记录重置流程
bash 和 zsh 的历史持久化依赖 HISTFILE 文件和 shell 选项,history -c 只清内存,不碰磁盘;清空历史本质是清文件 + 重置缓冲区。
- 确认当前
HISTFILE:执行echo $HISTFILE(bash 默认~/.bash_history,zsh 默认~/.zsh_history) - 清空文件:
> $HISTFILE(注意是重定向清空,不是rm) - 清空当前会话历史:
history -c,再执行history -w强制写入空状态到文件 - zsh 用户额外检查:
INC_APPEND_HISTORY和SHARE_HISTORY若启用,多个终端会实时同步,清一个不一定全清,建议先关掉其他终端再操作
为什么 Terminal: Clear Scrollback 不起作用
Terminal: Clear Scrollback 清的是终端面板的**输出滚动缓冲区**(即 console.log、报错堆栈等),和**命令历史记录**(history)完全无关。这是两个独立系统:
- 命令历史 → 由 shell 进程维护,存在磁盘文件或内存中,↑/↓ 键调用
- 滚动缓冲区 → 由 VSCode 的 xterm.js 渲染器维护,存储所有终端输出文本,鼠标可滚动查看
- 执行
clear、cls、Ctrl+L全部无效于命令历史,它们连 shell 的history表都不碰 - 如果你在新终端里按 ↑ 还能翻出旧命令,说明 shell 历史文件没被清,或者新终端继承了旧会话环境(比如没启用
histappend导致覆盖写入)
VSCode 终端重启后历史还在?检查这三点
即使你删了历史文件,新开终端仍出现旧命令,大概率是以下某个环节没断开:
- VSCode 启动终端时复用了旧 shell 进程(如启用了
terminal.integrated.reuseShell,默认 false,但某些插件可能绕过) - shell 配置文件(
.bashrc/.zshrc/$PROFILE)里设置了HISTSIZE=0或HISTFILESIZE=-1,导致历史被禁用或无限追加 - Git Bash 或 WSL 下,终端实际启动的是 login shell,会读取
/etc/profile或~/.profile,而不仅是.bashrc—— 历史配置可能藏在那里
真正干净的重置,得确保 shell 文件里没有残留的 HISTFILE 覆盖逻辑,且新终端进程是全新 fork,不是复用。











