一、Shell 命令执行是什么
在 Claude Code 会话中直接运行终端命令的能力。命令的输出自动进入对话上下文,Claude 可以立即读取和分析结果。
两种途径实现这一能力:
!前缀 — 你在输入框中直接输入命令,Claude 不参与决策- Bash 工具 — Claude 自主判断需要执行什么命令,向你请求批准后执行
两者的共同点:命令在 Claude Code 进程内执行,输出进入对话上下文。区别在于谁发起命令和是否需要权限审批。
二、两种执行方式
! 前缀(用户直接执行)
在输入框中以 ! 开头,命令立即执行:
特征:
- 命令和输出添加到对话上下文(Claude 可以"看到"结果)
- 不需要 Claude 解释或审批
- 支持
Tab从历史!命令中自动补全 - 支持
Ctrl+B将长时间运行的命令后台化 - 退出 Bash 模式:
Escape、空行Backspace、Ctrl+U
Bash 工具(Claude 请求执行)
用自然语言描述需求,Claude 自主选择并执行命令:
Claude 判断需要执行 ls → 弹出权限确认 → 你批准后执行 → 结果返回。
特征:
- Claude 决定运行什么命令
- 需要权限审批(可通过权限模式调整)
- 每个命令在独立进程中运行
- 工作目录跨命令保持,环境变量不跨命令保持
对比表
三、执行过程的结构
命令生命周期
无论哪种方式,一条 Shell 命令在 Claude Code 中的流程: