JARVIS/nucleo/saber/glosario.py
sito 8e4bc8ad94 JARVIS: asistente de voz local para Linux
Nucleo propio: oye con whisper.cpp, piensa con un modelo de Ollama, habla
con Piper, y hace RAG sobre los apuntes del usuario. 100% local, sin
cuentas ni claves.

Escrito bajo una restriccion dura, 4 GB de VRAM: el cerebro y whisper
comparten tarjeta y solo caben porque estan dimensionados para ello. El
RAG usa embeddings estaticos con busqueda hibrida; la voz clonada se sirve
de una cache de frases.

Incluye instalador (install.sh), requisitos, y documentacion del stack,
del manejo de root y de las acciones. Los apuntes indexados y el diario NO
se incluyen: son privados y el .gitignore los bloquea.
2026-08-16 15:34:37 +02:00

94 lines
5.3 KiB
Python

"""Tareas comunes de Linux en castellano, mapeadas al comando.
El puente que las man pages no dan: estan en ingles, y "cambiar permisos" no se
parece a "change file mode bits". Aqui viven las tareas del dia a dia dichas
como las diria el usuario, con el comando y una linea de como se usa. Es
curado a mano a proposito: son las 50 cosas que de verdad se piden, y una
traduccion buena vale mas que mil man pages mal recuperadas.
Se anaden al indice como entradas normales, asi que se buscan igual que todo lo
demas y ademas se llevan el impulso por palabras exactas.
"""
# (lo que se pide en castellano, el comando, como se usa)
TAREAS = [
("cambiar los permisos de un fichero o carpeta", "chmod",
"chmod 755 fichero (rwx dueño, rx resto). chmod +x da permiso de ejecucion."),
("cambiar el dueño de un fichero", "chown",
"chown usuario:grupo fichero. Con -R para una carpeta entera."),
("comprimir una carpeta en un archivo", "tar",
"tar czf archivo.tar.gz carpeta/ comprime. tar xzf archivo.tar.gz extrae."),
("descomprimir un zip", "unzip", "unzip archivo.zip. Con -d carpeta para donde."),
("buscar texto dentro de ficheros", "grep",
"grep -r 'texto' carpeta/ busca en todo. grep -i ignora mayusculas."),
("buscar ficheros por nombre", "find",
"find /ruta -name '*.txt' busca por nombre. -type f solo ficheros."),
("ver los puertos abiertos en escucha", "ss",
"ss -tlnp lista los puertos TCP en escucha con su proceso."),
("ver que procesos consumen mas", "top",
"top o htop en tiempo real. ps aux --sort=-%cpu para una foto."),
("matar un proceso", "kill",
"kill PID lo termina. kill -9 PID a la fuerza. pkill nombre por nombre."),
("ver el espacio libre en disco", "df", "df -h muestra el espacio por particion."),
("ver cuanto ocupa una carpeta", "du", "du -sh carpeta/ el tamaño total."),
("ver la memoria libre", "free", "free -h muestra RAM y swap."),
("descargar un fichero de internet", "wget",
"wget URL descarga. curl -O URL tambien. curl -L sigue redirecciones."),
("copiar ficheros a un servidor", "scp",
"scp fichero usuario@servidor:/ruta lo sube. scp -r para carpetas."),
("sincronizar carpetas", "rsync",
"rsync -av origen/ destino/ copia solo lo cambiado. -z comprime en red."),
("editar un fichero de texto", "nano",
"nano fichero (facil) o vim fichero. Ctrl+O guarda y Ctrl+X sale en nano."),
("ver el contenido de un fichero", "cat",
"cat fichero. less fichero para leer largo. head/tail para principio/final."),
("ver los ultimos cambios de un fichero de log", "tail",
"tail -f log sigue en vivo. tail -n 50 las ultimas 50 lineas."),
("ver los servicios del sistema", "systemctl",
"systemctl status servicio. start/stop/restart para manejarlo."),
("ver los mensajes del sistema", "journalctl",
"journalctl -xe lo reciente. journalctl -u servicio de un servicio."),
("montar un disco o usb", "mount",
"mount /dev/sdX1 /mnt monta. lsblk lista los discos. umount desmonta."),
("ver la configuracion de red", "ip",
"ip a las interfaces y sus IP. ip r la tabla de rutas."),
("escanear una red o unos puertos", "nmap",
"nmap -sV objetivo detecta servicios. nmap -p- todos los puertos."),
("ver el uso de red en vivo", "iftop", "iftop o nload muestran el trafico en vivo."),
("cambiar de directorio y listar", "ls",
"ls -la lista con detalles y ocultos. cd carpeta entra. pwd dice donde estas."),
("crear una carpeta", "mkdir", "mkdir carpeta. mkdir -p a/b/c crea la ruta entera."),
("mover o renombrar", "mv", "mv origen destino mueve o renombra."),
("copiar ficheros", "cp", "cp origen destino. cp -r para carpetas."),
("borrar ficheros", "rm",
"rm fichero. rm -r carpeta. CUIDADO: no hay papelera, es definitivo."),
("dar permisos de administrador a un comando", "sudo",
"sudo comando lo ejecuta como root. Pide tu contraseña."),
("ver el historial de comandos", "history", "history lista lo tecleado. Ctrl+R busca."),
("programar una tarea periodica", "cron",
"crontab -e edita tus tareas. Formato: min hora dia mes diasemana comando."),
("ver la temperatura y el hardware", "sensors",
"sensors muestra temperaturas. lscpu la CPU, lspci los dispositivos."),
("gestionar paquetes en Debian", "apt",
"apt install paquete, apt update actualiza la lista, apt upgrade el sistema."),
("ver o cambiar variables de entorno", "export",
"export VAR=valor la pone. env las lista. echo $VAR la muestra."),
("comprobar si un comando esta instalado", "which",
"which comando dice donde esta, o nada si no esta. type comando tambien."),
("ver diferencias entre dos ficheros", "diff",
"diff a b muestra las diferencias. diff -u formato de parche."),
("contar lineas palabras o bytes", "wc",
"wc -l lineas, wc -w palabras. cat fichero | wc -l cuenta lineas."),
("conectarse a una base de datos", "psql",
"psql -U usuario base para Postgres. mysql -u usuario -p para MySQL."),
("ver quien esta conectado", "who", "who los usuarios. w con lo que hacen."),
]
def entradas():
for pide, cmd, como in TAREAS:
yield {
"tipo": "tarea", "herramienta": cmd, "perfil": "LINUX",
"fichero": f"tarea comun: {cmd}",
"texto": f"Para {pide}: usa {cmd}. {como}",
}