Productividad en la Shell
Alias, funciones de shell y trucos de historial para desarrolladores de Python que trabajan en bash/zsh: git, uv, pytest y SSH más rápidos sin memorizar cada flag.
Busca en todas las páginas de la documentación
Alias, funciones de shell y trucos de historial para desarrolladores de Python que trabajan en bash/zsh: git, uv, pytest y SSH más rápidos sin memorizar cada flag.
# ~/.bashrc o ~/.zshrc
alias gs='git status -sb'
alias uvr='uv run'
alias pyt='uv run pytest -q'
gco() { git checkout "$@"; }Cuándo recurrir a esto:
curl | jq de la semana pasada desde el historial# Extractos de ~/.zshrc para monorepo de Python
export PATH="$HOME/.local/bin:$PATH"
alias uvs='uv sync'
alias uvt='uv run pytest -q'
alias ruffc='uv run ruff check .'
alias rufff='uv run ruff format .'
# Patrón de función de humo confirmado - promocionar a bin/smoke.sh cuando se comparta
billing-smoke() {
set -euo pipefail
curl -sf http://localhost:8000/health
curl -sf http://localhost:8000/ready
echo "smoke ok"
}
# checkout de git con fzf (requiere fzf)
alias gcb='git branch | fzf | xargs git checkout'Lo que esto demuestra:
set -euo pipefail para pruebas de humoHISTSIZE, HISTFILESIZE, histappend para persistencia.| Herramienta | Propósito |
|---|---|
fzf | Selección difusa de archivos, ramas |
direnv | Carga automática de .envrc por directorio de proyecto |
zoxide | Salto z billing al directorio más frecuente |
starship | Prompt multiplataforma con indicador de venv |
# Mostrar venv activo en el prompt - módulo python de starship o:
export PS1='($(basename $VIRTUAL_ENV)) \u@\h:\w$ '
# Búsqueda hacia atrás en el historial para rg
bind '"\C-r": reverse-search-history' # bash por defectoalias ls='ls --color' OK; enmascarar python es peligroso. Solución: evitar alias en python, rm, git push.set -euo pipefail al principio.curl -H "Authorization: Bearer ..." guardado. Solución: patrón HISTIGNORE o prefijo de espacio + HISTCONTROL=ignorespace./opt/app/bin..bashrc enorme ralentiza SSH - Carga diferida de plugins estilo nvm. Solución: dividir opcionalmente ~/.bashrc.d/.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
Makefile make test | El equipo quiere una interfaz | Desarrolladores solo Windows sin make |
Runner just | Recetas de comandos ricas | Política de cero dependencias adicionales |
| Tareas de IDE | Desarrolladores centrados en GUI | Operadores solo SSH |
| CLI Dedicada (Typer) | Subcomandos complejos | Alias simple es suficiente |
Ambos están bien en macOS/Linux - zsh es el predeterminado en macOS; asegúrate de que los scripts sean compatibles con bash para CI.
.envrc con layout uv o source .venv/bin/activate automáticamente al hacer cd.
Documentar en el repositorio docs/shell.md - no forzar dotfiles a través del repositorio sin opt-in.
export HISTTIMEFORMAT='%F %T ' en bash para saber cuándo ejecutaste ese comando de migración.
git config --global core.excludesfile ~/.gitignore_global para .DS_Store, .idea.
Verificar bindkey en zsh; instalar el paquete de atajos de teclado de fzf.
uv generate-shell-completion zsh >> directorio de completion de ~/.zshrc.
Los alias a menudo están deshabilitados - usar comandos completos en cron/systemd.
Deshabilitar plugins no utilizados; starship solo es más ligero.
Cuando tiene argumentos, manejo de errores, o es compartido por el equipo - mover a bin/ con pruebas.
Versiones de la Pila: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.
Revisado por Chris St. John·Última actualización: 19 jul 2026