MODULO 2.4

💻 Bash: Execucao de Comandos do Sistema

Execute qualquer comando do terminal. npm, git, docker, python, curl - tudo esta disponivel. Aprenda timeouts, background execution e boas praticas de seguranca.

6
Topicos
45
Minutos
Pratico
Nivel
Core
Tipo
1

🖥️ Sintaxe e Parametros

Bash executa comandos no terminal do sistema. E a ferramenta mais poderosa e tambem a mais perigosa - por isso requer atencao especial.

📋 Parametros do Bash

Parametro Tipo Descricao
command string Comando a executar (obrigatorio)
timeout number Timeout em ms (max 600000 = 10min)
description string Descricao do que o comando faz
run_in_background boolean Executar em background

Exemplos Basicos

# Listar arquivos

Bash(command="ls -la /projeto/src")

# Instalar dependencias

Bash(command="npm install", timeout=120000)

# Rodar testes

Bash(command="pytest tests/", description="Executar suite de testes")

2

⏱️ Timeouts e Limites

Por padrao, comandos tem timeout de 2 minutos (120000ms). Para operacoes longas, aumente o timeout ou use background execution.

Limites

  • Default: 120000ms (2 min)
  • Maximo: 600000ms (10 min)
  • Output: Truncado apos 30000 chars

Comandos Longos

# Build de projeto grande

Bash( command="npm run build", timeout=300000 )

# Ou em background

Bash( command="npm run build", run_in_background=true )

💡 Dica

Comandos em background nao bloqueiam - voce sera notificado quando terminarem. Use para builds, testes longos ou qualquer operacao que nao precisa de resultado imediato.

3

🔗 Encadeamento de Comandos

Use operadores shell para encadear comandos. A escolha do operador muda o comportamento em caso de erro.

&&

AND

Proximo so roda se anterior suceder

npm install && npm run build
;

SEQUENCIAL

Roda proximo independente do resultado

rm -rf dist; mkdir dist
||

OR

Proximo so roda se anterior falhar

test -f file || touch file

⚠️ Nao Use Newlines

Nao use quebras de linha para separar comandos - use && ou ; na mesma linha. Newlines podem causar problemas de parsing.

4

📁 Diretorio de Trabalho

O diretorio de trabalho persiste entre comandos, mas o estado do shell (variaveis, etc) nao. Use caminhos absolutos sempre que possivel.

✗ Evite

# Muda diretorio - pode confundir

cd /projeto && npm test

Evite cd quando possivel

✓ Preferivel

# Caminho absoluto - mais claro

npm test --prefix /projeto

Use caminhos absolutos

📍 Caminhos com Espacos

Sempre use aspas duplas para caminhos que podem ter espacos:

# CORRETO

python "/path/with spaces/script.py"

# ERRADO

python /path/with spaces/script.py

5

🛡️ Seguranca e Sandbox

Bash pode executar qualquer comando no sistema. A seguranca depende do modo de permissao configurado.

Comportamento por Modo

🛡️
Ask Mode

Pede permissao para cada comando Bash

Bypass Mode

Comandos na whitelist rodam automaticamente

🔥
YOLO Mode

Tudo roda sem perguntar - CUIDADO!

⚠️ Comandos Perigosos

Claude Code tem protecoes contra comandos destrutivos, mas em YOLO mode podem ser executados:

  • rm -rf / - Deleta tudo
  • git push --force - Sobrescreve historico
  • chmod -R 777 / - Quebra permissoes
6

🎯 Boas Praticas

Usar Bash de forma eficiente e segura requer seguir algumas praticas recomendadas.

✓ Fazer

  • Usar descricoes claras
  • Preferir ferramentas dedicadas (Glob/Grep)
  • Usar caminhos absolutos
  • Definir timeouts apropriados
  • Executar comandos paralelos quando possivel

✗ Evitar

  • Usar cat/grep/find via Bash
  • Comandos interativos (-i flag)
  • Newlines entre comandos
  • cd desnecessario
  • Comandos destrutivos sem revisao

💡 Use Ferramentas Dedicadas

Para leitura de arquivos use Read, para busca use Glob/Grep, para escrita use Write/Edit. Bash deve ser reservado para operacoes de sistema como instalar pacotes, rodar testes, builds e comandos git.

📋 Resumo do Modulo

Bash executa comandos do sistema - npm, git, docker, tudo disponivel
Timeout padrao 2 min, max 10 min - ou use background para operacoes longas
Use && para encadear - proximo so roda se anterior suceder
Prefira caminhos absolutos - evite cd desnecessario
Use ferramentas dedicadas - Read/Glob/Grep em vez de cat/find/grep

Proximo Modulo:

2.5 - Git e Versionamento Integrado - commits, branches, PRs com gh CLI