后台 bash 命令

后台执行长时间运行的命令

概述

后台命令允许长任务异步执行,Claude Code 会返回任务 ID,便于继续对话与后续管理。

工作原理

  • 异步执行,不阻塞工作流
  • 输出缓冲,可随时检索
  • 任务 ID 便于追踪与管理
  • 会话结束时自动清理

启动后台命令

1. 通过提示启动

在后台运行 npm install
[后台任务 ID: task-12345 已启动]

2. 使用 Ctrl+B

npm test
[按 Ctrl+B]
[任务已移至后台,ID: task-12346]

3. 使用 /background

/background npm run dev
[后台任务 ID: task-12347 已启动]

常见场景

在后台运行 webpack build
[后台任务 ID: task-12348 已启动]
在后台运行 npm install
[后台任务 ID: task-12349 已启动]
在后台运行 jest --watch
[后台任务 ID: task-12350 已启动]
在后台运行 npm run dev
[后台任务 ID: task-12351 已启动]
在后台运行 docker-compose up
[后台任务 ID: task-12352 已启动]
在后台运行 nodemon server.js
[后台任务 ID: task-12353 已启动]

管理后台任务

列出所有后台任务
正在运行的后台任务:
- task-12345: npm install (运行中)
- task-12346: npm test (运行中)
- task-12347: npm run dev (运行中)
检查任务 task-12345 的状态
任务 task-12345 状态:
- 命令: npm install
- 状态: 运行中
- 运行时间: 2分30秒
- PID: 12345
获取任务 task-12345 的输出
added 1423 packages in 2m
found 0 vulnerabilities
停止任务 task-12345
任务 task-12345 已停止
清理已完成的任务
已清理 2 个已完成的后台任务

使用场景示例

# 启动后台构建
在后台运行 npm run build

# 同时询问 Claude 问题
请解释这段 React 代码的工作原理:
function App() {
  const [count, setCount] = useState(0);
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}
# 启动后台开发服务器
在后台运行 npm run dev

# 查看服务器输出
获取任务 task-12347 的输出
Compiled successfully!
You can now view my-app in the browser.
Local:            http://localhost:3000
# 同时启动多个任务
在后台运行 npm install
在后台运行 npm run lint
在后台运行 npm test

# 查看所有任务状态
列出所有后台任务

高级技巧

在后台运行 npm install && npm run build
[后台任务 ID: task-12354 已启动]
在后台运行 npm run build > build.log 2>&1
[后台任务 ID: task-12355 已启动]
在后台运行 "* * * * * /usr/bin/node /path/to/script.js"
[后台任务 ID: task-12356 已启动]
# 启动开发服务器
在后台运行 npm run dev
[后台任务 ID: task-12352 已启动]

# 同时运行测试
在后台运行 npm test
[后台任务 ID: task-12353 已启动]

# 继续开发
创建一个新的组件

### 长时间构建

# 启动构建
在后台运行 webpack --mode production
[后台任务 ID: task-12354 已启动]
# 在构建时继续工作
编写测试用例
# 启动监控
在后台运行 npm run watch
[后台任务 ID: task-12355 已启动]

# 查看输出
获取任务 task-12355 的输出

Bash 模式

使用 ! 前缀直接运行 bash 命令:

! npm test
! git status
! ls -la

Bash 模式示例

# 快速检查状态
! git status

# 运行测试
! npm test

# 查看文件
! cat package.json

最佳实践

  • 长任务优先使用后台模式。
  • 定期检查任务输出。
  • 完成后清理任务,避免列表膨胀。
  • 避免同时运行过多后台任务。

注意事项

  • 后台任务在会话结束时自动清理。
  • 输出为缓冲模式,可能非实时。
  • 太多任务会影响性能。

故障排除

后台任务失败

  • 检查任务输出获取错误原因。
  • 确认命令语法与依赖。
  • 必要时前台运行进行调试。

无法停止任务

  • 尝试使用 pkill
  • 重启 Claude Code。
  • 手动终止进程。

输出不显示

  • 等待缓冲区填充。
  • 手动获取任务输出。
  • 确认任务仍在运行。

On this page