{"id":23,"date":"2025-10-13T02:38:00","date_gmt":"2025-10-13T05:38:00","guid":{"rendered":"https:\/\/ft1.com.br\/ft1\/?page_id=23"},"modified":"2025-10-27T02:18:24","modified_gmt":"2025-10-27T05:18:24","slug":"dev","status":"publish","type":"post","link":"https:\/\/ft1.com.br\/ft1\/dev\/","title":{"rendered":"dev"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"pt-br\">\n&lt;head>\n  &lt;meta charset=\"utf-8\">\n  &lt;meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  &lt;title>Cheatsheet \u2014 Dev Runs&lt;\/title>\n  &lt;style>\n:root{--bg:#0b0f14;--fg:#e8eff8;--muted:#a7b0bc;--accent:#4da3ff;--card:#111722;--border:#1f2a3a;}\n*{box-sizing:border-box}\nbody{margin:0;display:flex;background:var(--bg);color:var(--fg);font:15px\/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial}\na{color:var(--accent);text-decoration:none}\n.sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;overflow:auto;min-width:260px;border-right:1px solid var(--border);background:#0d131c;padding:18px}\n.sidebar h1{font-size:18px;margin:0 0 12px}\n.menu{display:grid;gap:6px}\n.menu a{padding:8px 10px;border-radius:10px;background:transparent;border:1px solid transparent}\n.menu a:hover{border-color:var(--border);background:#0f1621}\n.content{padding:24px;max-width:980px;margin:0 auto;flex:1;display:grid;gap:28px}\nsection{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px}\nsection h2{margin:0 0 12px;font-size:18px}\n.item{border:1px solid var(--border);border-radius:12px;margin:10px 0;background:#0f1621}\n.item-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}\n.label{font-weight:600;color:var(--fg)}\n.copy{cursor:pointer;border:1px solid var(--border);background:#0d131c;color:var(--fg);border-radius:8px;padding:6px 10px}\n.copy:active{transform:scale(0.98)}\npre{margin:0;padding:12px;overflow:auto}\ncode{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;font-size:13px;white-space:pre}\n.topbar{position:sticky;top:0;background:linear-gradient(#0b0f14,#0b0f1400);padding:8px 0 6px;z-index:5}\n.hint{color:var(--muted);font-size:13px;margin-left:6px}\n@media(max-width:980px){.sidebar{display:none} .content{padding:14px}}\n&lt;\/style>\n&lt;\/head>\n&lt;body>\n  &lt;aside class=\"sidebar\">\n    &lt;h1>\u26a1 Cheatsheet&lt;\/h1>\n    &lt;nav class=\"menu\">\n      &lt;a href=\"#ddev\">DDEV&lt;\/a>\n&lt;a href=\"#drush-drupal\">Drush (Drupal)&lt;\/a>\n&lt;a href=\"#docker\">Docker&lt;\/a>\n&lt;a href=\"#homebrew-macos\">Homebrew (macOS)&lt;\/a>\n&lt;a href=\"#nodejs--npm\">Node.js \/ NPM&lt;\/a>\n&lt;a href=\"#pnpm\">PNPM&lt;\/a>\n&lt;a href=\"#yarn\">Yarn&lt;\/a>\n&lt;a href=\"#python-venvpipuv\">Python (venv\/pip\/uv)&lt;\/a>\n&lt;a href=\"#php--composer\">PHP \/ Composer&lt;\/a>\n&lt;a href=\"#git-b\u00e1sico\">Git (b\u00e1sico)&lt;\/a>\n&lt;a href=\"#vs-code-cli\">VS Code (CLI)&lt;\/a>\n&lt;a href=\"#vite-web-dev\">Vite (web dev)&lt;\/a>\n&lt;a href=\"#laravel-php\">Laravel (PHP)&lt;\/a>\n&lt;a href=\"#postgresql-cli\">PostgreSQL (CLI)&lt;\/a>\n&lt;a href=\"#redis-cli\">Redis (CLI)&lt;\/a>\n&lt;a href=\"#misc-util\">Misc (util)&lt;\/a>\n    &lt;\/nav>\n  &lt;\/aside>\n  &lt;main class=\"content\">\n    &lt;div class=\"topbar\">\n      &lt;strong>Bloquinhos com Copy\/Paste&lt;\/strong>&lt;span class=\"hint\">Clique em \u201cCopiar\u201d e cole no terminal&lt;\/span>\n    &lt;\/div>\n    \n    &lt;section id=\"ddev\">\n      &lt;h2>DDEV&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Subir containers&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev start&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Reiniciar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev restart&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Parar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev stop&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Abrir no navegador&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev launch&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Shell do projeto (web)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev ssh&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Listar projetos&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev list&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Logs (web)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev logs&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Exec na web (ex.: composer install)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec composer install&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Poweroff (reset global)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev poweroff&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"drush-drupal\">\n      &lt;h2>Drush (Drupal)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Status&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush status&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Login admin&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush uli&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Cache:rebuild&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush cr&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Atualizar DB&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush updb -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Import config&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush cim -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Export config&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush cex -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Cron&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush cron&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar site (standard)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>ddev exec drush site:install standard -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"docker\">\n      &lt;h2>Docker&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Subir (detached)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker compose up -d&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Parar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker compose down&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Logs servi\u00e7o (follow)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker compose logs -f&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Listar containers&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker ps&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Entrar no container (sh)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker exec -it &lt;container> sh&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Build&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker build -t &lt;nome>:latest .&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Prune total&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>docker system prune -af&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"homebrew-macos\">\n      &lt;h2>Homebrew (macOS)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Atualizar &amp; upgrade&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>brew update &amp;&amp; brew upgrade&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar formula&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>brew install &lt;formula>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar app (cask)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>brew install --cask &lt;app>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Checar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>brew doctor&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Limpar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>brew cleanup -s&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"nodejs--npm\">\n      &lt;h2>Node.js \/ NPM&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Init projeto&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm init -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar dep&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm i &lt;pkg>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Dev&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run dev&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Build&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run build&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Start&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm start&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Listar scripts&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Atualizar deps (interativo)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npx npm-check -u&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"pnpm\">\n      &lt;h2>PNPM&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Init&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm init&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar dep&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm add &lt;pkg>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Dev&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm dev&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Build&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm build&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Start&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm start&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Atualizar deps&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pnpm update -L&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"yarn\">\n      &lt;h2>Yarn&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Init&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>yarn init -y&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar dep&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>yarn add &lt;pkg>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Dev&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>yarn dev&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Build&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>yarn build&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"python-venvpipuv\">\n      &lt;h2>Python (venv\/pip\/uv)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Criar venv&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>python -m venv .venv&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Ativar venv (mac\/linux)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>source .venv\/bin\/activate&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Ativar venv (Windows)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>.\\.venv\\Scripts\\activate&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Instalar deps&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pip install -r requirements.txt&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Freezar deps&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pip freeze > requirements.txt&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Rodar script&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>python main.py&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Atualizar pip&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>python -m pip install --upgrade pip&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">(R\u00e1pido) uv&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>pip install uv\nuv venv\nsource .venv\/bin\/activate\nuv pip install -r requirements.txt&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"php--composer\">\n      &lt;h2>PHP \/ Composer&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Vers\u00e3o&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>php -v&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Servidor embutido&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>php -S localhost:8000 -t public&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Composer install&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>composer install&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Composer update&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>composer update&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Adicionar pacote&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>composer require vendor\/package&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"git-b\u00e1sico\">\n      &lt;h2>Git (b\u00e1sico)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Init + primeiro commit&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>git init\ngit add .\ngit commit -m \"init\"&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Branch nova&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>git checkout -b feat\/x&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Pull&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>git pull&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Push&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>git push&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Stash&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>git stash\ngit stash pop&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"vs-code-cli\">\n      &lt;h2>VS Code (CLI)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Abrir pasta atual&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>code .&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Abrir arquivo&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>code &lt;arquivo>&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Sem extens\u00f5es&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>code --disable-extensions .&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Recarregar janela&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>code --force&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"vite-web-dev\">\n      &lt;h2>Vite (web dev)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Criar app&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm create vite@latest&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Dev&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run dev&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Build&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run build&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Preview&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>npm run preview&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"laravel-php\">\n      &lt;h2>Laravel (PHP)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Criar projeto&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>composer create-project laravel\/laravel app&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Servidor&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>php artisan serve&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Migra\u00e7\u00f5es&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>php artisan migrate&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"postgresql-cli\">\n      &lt;h2>PostgreSQL (CLI)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Conectar&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>psql \"postgres:\/\/user:pass@localhost:5432\/db\"&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Listar DBs&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>\\l&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Listar tabelas&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>\\dt&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"redis-cli\">\n      &lt;h2>Redis (CLI)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Abrir CLI&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>redis-cli&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Ping&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>redis-cli PING&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n    &lt;section id=\"misc-util\">\n      &lt;h2>Misc (util)&lt;\/h2>\n      \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Gerar .env do exemplo&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>cp .env.example .env&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Buscar na \u00e1rvore&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>grep -R \"termo\" .&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n        &lt;div class=\"item\">\n          &lt;div class=\"item-header\">\n            &lt;div class=\"label\">Liberar porta 3000 (mac)&lt;\/div>\n            &lt;button class=\"copy\" onclick=\"copyCode(this)\">Copiar&lt;\/button>\n          &lt;\/div>\n          &lt;pre>&lt;code>lsof -i :3000 | awk 'NR>1 {print $2}' | xargs kill -9&lt;\/code>&lt;\/pre>\n        &lt;\/div>\n        \n    &lt;\/section>\n    \n  &lt;\/main>\n  &lt;script>\nfunction copyCode(btn){\n  const pre = btn.parentElement.nextElementSibling;\n  const text = pre.innerText;\n  navigator.clipboard.writeText(text).then(()=>{\n    const old = btn.textContent;\n    btn.textContent = \"Copiado \u2713\";\n    setTimeout(()=>btn.textContent=old, 1200);\n  });\n}\n&lt;\/script>\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":1,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":25,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/posts\/23\/revisions\/25"}],"wp:attachment":[{"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ft1.com.br\/ft1\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}