개요
bash 도구는 Claude에게 다음을 제공합니다:- 상태를 유지하는 지속적인 bash 세션
- 모든 셸 명령 실행 능력
- 환경 변수 및 작업 디렉토리 접근
- 명령 체이닝 및 스크립팅 기능
모델 호환성
| 모델 | 도구 버전 |
|---|---|
| Claude 4 모델 및 Sonnet 3.7 | bash_20250124 |
| Claude Sonnet 3.5 (사용 중단됨) | bash_20241022 |
Claude Sonnet 3.5 (사용 중단됨)는 bash 도구를 사용할 때
computer-use-2024-10-22 베타 헤더가 필요합니다.bash 도구는 Claude 4 모델과 Sonnet 3.7에서 일반적으로 사용 가능합니다.이전 도구 버전은 새로운 모델과의 하위 호환성이 보장되지 않습니다. 항상 모델 버전에 해당하는 도구 버전을 사용하세요.
사용 사례
- 개발 워크플로: 빌드 명령, 테스트, 개발 도구 실행
- 시스템 자동화: 스크립트 실행, 파일 관리, 작업 자동화
- 데이터 처리: 파일 처리, 분석 스크립트 실행, 데이터셋 관리
- 환경 설정: 패키지 설치, 환경 구성
빠른 시작
작동 방식
bash 도구는 지속적인 세션을 유지합니다:- Claude가 실행할 명령을 결정합니다
- bash 셸에서 명령을 실행합니다
- 출력(stdout 및 stderr)을 Claude에게 반환합니다
- 세션 상태가 명령 간에 지속됩니다(환경 변수, 작업 디렉토리)
매개변수
| 매개변수 | 필수 | 설명 |
|---|---|---|
command | 예* | 실행할 bash 명령 |
restart | 아니오 | bash 세션을 재시작하려면 true로 설정 |
restart 사용 시를 제외하고 필수
사용 예시
사용 예시
예시: 다단계 자동화
Claude는 명령을 연결하여 복잡한 작업을 완료할 수 있습니다:bash 도구 구현
bash 도구는 스키마 없는 도구로 구현됩니다. 이 도구를 사용할 때 다른 도구와 달리 입력 스키마를 제공할 필요가 없습니다. 스키마는 Claude의 모델에 내장되어 있으며 수정할 수 없습니다.1
bash 환경 설정
Claude가 상호작용할 수 있는 지속적인 bash 세션을 생성합니다:
2
명령 실행 처리
명령을 실행하고 출력을 캡처하는 함수를 생성합니다:
3
Claude의 도구 호출 처리
Claude의 응답에서 명령을 추출하고 실행합니다:
4
안전 조치 구현
검증 및 제한 사항을 추가합니다:
오류 처리
bash 도구를 구현할 때 다양한 오류 시나리오를 처리합니다:명령 실행 타임아웃
명령 실행 타임아웃
명령 실행이 너무 오래 걸리는 경우:
명령을 찾을 수 없음
명령을 찾을 수 없음
명령이 존재하지 않는 경우:
권한 거부됨
권한 거부됨
권한 문제가 있는 경우:
구현 모범 사례 따르기
명령 타임아웃 사용
명령 타임아웃 사용
중단되는 명령을 방지하기 위해 타임아웃을 구현합니다:
세션 상태 유지
세션 상태 유지
환경 변수와 작업 디렉토리를 유지하기 위해 bash 세션을 지속적으로 유지합니다:
큰 출력 처리
큰 출력 처리
토큰 제한 문제를 방지하기 위해 매우 큰 출력을 잘라냅니다:
모든 명령 로깅
모든 명령 로깅
실행된 명령의 감사 추적을 유지합니다:
출력 정화
출력 정화
명령 출력에서 민감한 정보를 제거합니다:
보안
bash 도구는 직접적인 시스템 접근을 제공합니다. 다음과 같은 필수 안전 조치를 구현하세요:
- 격리된 환경에서 실행 (Docker/VM)
- 명령 필터링 및 허용 목록 구현
- 리소스 제한 설정 (CPU, 메모리, 디스크)
- 모든 실행된 명령 로깅
주요 권장사항
ulimit을 사용하여 리소스 제약 설정- 위험한 명령 필터링 (
sudo,rm -rf등) - 최소 사용자 권한으로 실행
- 모든 명령 실행 모니터링 및 로깅
가격
The bash tool adds 245 input tokens to your API calls. Additional tokens are consumed by:- Command outputs (stdout/stderr)
- Error messages
- Large file contents
일반적인 패턴
개발 워크플로
- 테스트 실행:
pytest && coverage report - 프로젝트 빌드:
npm install && npm run build - Git 작업:
git status && git add . && git commit -m "message"
파일 작업
- 데이터 처리:
wc -l *.csv && ls -lh *.csv - 파일 검색:
find . -name "*.py" | xargs grep "pattern" - 백업 생성:
tar -czf backup.tar.gz ./data
시스템 작업
- 리소스 확인:
df -h && free -m - 프로세스 관리:
ps aux | grep python - 환경 설정:
export PATH=$PATH:/new/path && echo $PATH
제한사항
- 대화형 명령 없음:
vim,less또는 비밀번호 프롬프트를 처리할 수 없음 - GUI 애플리케이션 없음: 명령줄만 가능
- 세션 범위: 대화 내에서 지속되지만 API 호출 간에는 손실됨
- 출력 제한: 큰 출력은 잘릴 수 있음
- 스트리밍 없음: 완료 후 결과 반환