syntaxis/docs/howto/bash_commands_summary.txt
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

293 lines
15 KiB
Plaintext

╔════════════════════════════════════════════════════════════════════════════╗
║ LISTA COMPLETA DE COMANDOS BASH USADOS Y PARA QUÉ ║
╚════════════════════════════════════════════════════════════════════════════╝
CATEGORÍA 1: DETECTAR EL SISTEMA OPERATIVO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. uname -s
Uso: Detectar el SO (Darwin=macOS, Linux=Linux)
Salida: Darwin
Por qué: El install.sh usa esto para elegir cómo instalar deps
2. uname -m
Uso: Detectar arquitectura del procesador
Salida: arm64 (también: x86_64, aarch64)
Por qué: Saber si es Intel, Apple Silicon, o ARM64 Linux
3. uname -a
Uso: Información completa del sistema
Salida: Darwin rigzin.local 25.1.0 Darwin Kernel...
Por qué: Ver kernel version, hostname, arquitectura todo junto
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 2: INFORMACIÓN DE RUST (RUSTC)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4. rustc --version
Uso: Ver versión de Rust instalada
Salida: rustc 1.91.1 (ed61e7d7e 2025-11-07)
Por qué: Verificar que sea compatible (1.75+)
5. rustc --print host-tuple ⭐ LA MÁS IMPORTANTE
Uso: Obtener el target triple del sistema actual
Salida: aarch64-apple-darwin
Por qué: ESTO es lo que Cargo usa para elegir qué compilar
- aarch64-apple-darwin = Mac M1/M2/M3
- x86_64-apple-darwin = Mac Intel
- aarch64-unknown-linux-gnu = Linux ARM64
- x86_64-unknown-linux-gnu = Linux Intel
6. rustc --version --verbose
Uso: Info detallada de Rust (LLVM version, etc)
Salida: Muestra release, commit, LLVM version
Por qué: Debug si hay problemas de compatibilidad
7. rustc --print cfg
Uso: Ver características del CPU que Rust detecta
Salida: target_arch="aarch64", target_os="macos", etc.
Por qué: Rust usa esto para #[cfg(...)] en el código
Los desarrolladores pueden hacer código específico para cada arch
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 3: INFORMACIÓN DE RUSTUP (TOOLCHAIN MANAGER)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8. rustup default
Uso: Ver qué toolchain es el default
Salida: stable-aarch64-apple-darwin (default)
Por qué: Saber si está configurado correctamente
9. rustup toolchain list
Uso: Ver todos los toolchains instalados
Salida: stable-aarch64-apple-darwin
stable-x86_64-unknown-linux-gnu
nightly-aarch64-apple-darwin
etc.
Por qué: Ver si tenemos múltiples versiones/targets
10. rustup target list | grep installed
Uso: Ver qué TARGETS están instalados para compilar
Salida: aarch64-apple-darwin (installed)
x86_64-apple-darwin (installed)
x86_64-unknown-linux-gnu (installed)
Por qué: ESTO determina si podemos hacer cross-compilation
Si solo tienes aarch64-apple-darwin → solo puedes compilar para Mac ARM
Si también tienes x86_64-unknown-linux-gnu → puedes compilar para Linux
11. rustup which rustc
Uso: Saber dónde está instalado rustc
Salida: /Users/jesusperezlorenzo/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rustc
Por qué: Verificar que esté en el lugar correcto
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 4: INFORMACIÓN AVANZADA DE RUST
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12. rustc --print sysroot
Uso: Encontrar dónde está la std library y targets instalados
Salida: /Users/jesusperezlorenzo/.rustup/toolchains/stable-aarch64-apple-darwin
Por qué: Verificar que todo esté en el lugar correcto
13. rustc --print sysroot | xargs -I {} ls {}/lib/rustlib/
Uso: Listar todos los targets disponibles en este toolchain
Salida: aarch64-apple-darwin
aarch64-apple-ios
x86_64-apple-darwin
x86_64-unknown-linux-gnu
etc.
Por qué: Ver exactamente qué targets puedes compilar
14. rustc --print target-list | head -20
Uso: Ver TODOS los targets que Rust teóricamente soporta (100+)
Salida: Muestra todas las combinaciones posibles
Por qué: Investigación académica, ver opciones disponibles
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 5: INFORMACIÓN DE CARGO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
15. cargo --version
Uso: Ver versión de cargo
Salida: cargo 1.91.1 (ea2d97820 2025-10-10)
Por qué: Asegurar que sea compatible
16. cargo metadata --format-version=1 --no-deps
Uso: Obtener info JSON sobre el workspace
Salida: JSON con todos los crates, sus nombres, tipos, etc.
Por qué: Automatizar acceso a información del proyecto
17. cargo build --release --dry-run
Uso: Ver qué HARÍA cargo sin compilar realmente
Salida: Muestra qué se compilaría, sin hacerlo
Por qué: Preview seguro antes de compilar largo
18. cargo build --release -v
Uso: Ver cada comando que cargo ejecuta (verbose mode)
Salida: Muestra cada línea de rustc, rustcflags, etc.
Por qué: Debug para entender exactamente qué hace cargo
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 6: INVESTIGACIÓN DEL PROYECTO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19. ls -la .cargo/
Uso: Ver si existe config de cargo personalizada
Salida: total 0 (vacío) O archivos config.toml
Por qué: Si existe .cargo/config.toml, afecta cómo compila
20. cat .cargo/config.toml
Uso: Ver configuración personalizada de compilación
Salida: [build] sections, [target.x86_64-unknown-linux-gnu] etc.
Por qué: Cargo usa esto para cross-compilation y flags especiales
21. grep -A 10 "\[profile.release\]" Cargo.toml
Uso: Ver las optimizaciones de release en el proyecto
Salida: opt-level = 3
lto = true
strip = true
Por qué: Entender cómo se optimiza el build
22. cat Cargo.toml | grep resolver
Uso: Ver la versión de resolver que usa el workspace
Salida: resolver = "2"
Por qué: Afecta cómo se resuelven dependencias
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 7: INSPECCIÓN DEL TARGET DIRECTORY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
23. du -sh target/debug target/release
Uso: Ver tamaño de builds
Salida: 12G target/debug
2.4G target/release
Por qué: Comparar debug vs release, ver espacio usado
24. cat target/.rustc_info.json
Uso: Ver info cacheada del host (target, features, etc)
Salida: JSON con target_arch, target_os, CPU features
Por qué: Entender qué detectó Cargo en el build anterior
25. ls -lh target/release/deps/ | head
Uso: Ver archivos compilados (.rlib, .dylib, .o)
Salida: libaho_corasick-43a015cbf5e800e6.rlib (2.2M)
Por qué: Verificar que se compiló correctamente
26. ls -lh target/release/
Uso: Listar ejecutables en target/release
Salida: workspace, workspace-tui, workspace-dashboard
Por qué: Verificar que se generaron los binarios
27. file target/release/workspace
Uso: Ver información del binario compilado ⭐
Salida: Mach-O 64-bit executable arm64
O: ELF 64-bit LSB pie executable, x86-64
Por qué: VERIFICAR que se compiló para la arquitectura correcta
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 8: CROSS-COMPILATION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
28. rustup target add x86_64-unknown-linux-gnu
Uso: Instalar capacidad de compilar para Linux desde macOS
Salida: (no output, solo instala)
Por qué: Agregar un nuevo target para cross-compilation
29. cargo build --release --target x86_64-unknown-linux-gnu
Uso: Compilar explícitamente para un target DIFERENTE
Salida: Crea target/x86_64-unknown-linux-gnu/release/
Por qué: Cross-compilation (compilar para otro SO)
30. ls -lh target/x86_64-unknown-linux-gnu/release/
Uso: Ver binarios compilados para Linux
Salida: workspace, workspace-tui, etc. (para Linux)
Por qué: Verificar cross-compilation funcionó
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 9: ANÁLISIS DE BINARIOS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
31. file target/release/workspace
Uso: Ver arquitectura del binario (LA MÁS IMPORTANTE)
Salida: Mach-O 64-bit executable arm64
O: ELF 64-bit LSB pie executable, x86-64
Por qué: CONFIRMAR que se compiló para la arquitectura CORRECTA
Si en Mac ves "x86-64" hay un problema
Si en Linux ves "arm64" hay un problema
32. nm target/release/workspace | head
Uso: Ver símbolos en el binario
Salida: (vacío si está stripped)
Por qué: Debug si sospechas problema en compilación
33. ldd target/release/workspace (solo Linux)
Uso: Ver librerías dinámicas que necesita
Salida: libstdc++.so.6, libc.so.6, etc.
Por qué: Verificar dependencias dinámicas
─────────────────────────────────────────────────────────────────────────────
CATEGORÍA 10: BUILD Y COMPILACIÓN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34. cargo build --workspace
Uso: Compilar en debug (rápido, para desarrollo)
Salida: Compiling workspace-core v0.1.0...
Por qué: Build rápido durante desarrollo
35. cargo build --release --workspace
Uso: Compilar en release (lento, optimizado)
Salida: Compiling workspace-core v0.1.0...
Por qué: Build para producción, con optimizaciones
36. cargo check --workspace
Uso: Verificar errores sin generar binarios
Salida: Checking workspace-core v0.1.0...
Por qué: Feedback rápido sin compilar completo
37. cargo test --workspace --lib --release
Uso: Ejecutar tests con binarios optimizados
Salida: test result: ok. X passed...
Por qué: Validar que todo funciona antes de release
╔════════════════════════════════════════════════════════════════════════════╗
║ RESUMEN CLAVE PARA TI ║
╚════════════════════════════════════════════════════════════════════════════╝
PARA ENTENDER CÓMO ELIGE CARGO EL TARGET, ESTOS 5 SON SUFICIENTES:
1. uname -s && uname -m
→ Ver qué SO y arquitectura tienes
2. rustc --print host-tuple
→ VER EXACTAMENTE QUÉ TARGET USA RUST (la clave)
3. rustup target list | grep installed
→ Ver qué targets puedes compilar
4. cargo build --release -v
→ Ver cada comando que ejecuta cargo/rustc
5. file target/release/workspace
→ CONFIRMAR que el binario es para la arquitectura correcta
════════════════════════════════════════════════════════════════════════════
ESTOS 5 COMANDOS RESUELVEN EL 99% DE PROBLEMAS DE TARGET SELECTION:
✓ ¿Por qué no compila para mi arquitectura? → file target/release/workspace
✓ ¿Cuál es mi target? → rustc --print host-tuple
✓ ¿Puedo compilar para Linux? → rustup target list
✓ ¿Qué está haciendo cargo? → cargo build -v
✓ ¿Qué SO tengo? → uname -s
════════════════════════════════════════════════════════════════════════════