Comandos Útiles

Estos comandos aparecen en los niveles de Bandit. Practícalos:
# Ver archivos ocultos
ls -la
# Leer contenido de archivos
cat archivo.txt
# Buscar texto en archivos
grep "palabra" archivo.txt
# Buscar archivos
find . -name "nombre"
# Ver tipo de archivo
file archivo
Tip: En Bandit, muchas contraseñas están en archivos con nombres raros o están ocultos. ¡Usa estos comandos!
Herramientas poderosas para buscar, filtrar y procesar información.
Practica: Sigue usando
Tabpara autocompletar yCtrl + Rpara buscar comandos anteriores.

Búsqueda de Archivos: find
Busca archivos y directorios por nombre, tipo, fecha, tamaño, etc.
# Buscar por nombre
find . -name "archivo.txt"
# Buscar ignorando mayúsculas/minúsculas
find . -iname "archivo.txt"
# Buscar con comodines
find . -name "*.py"
# Buscar solo directorios
find . -type d -name "tests"
# Buscar solo archivos
find . -type f -name "*.txt"
# Buscar en una ruta específica
find /home/usuario -name "config*"
Opciones útiles de find
| Opción | Significado | Ejemplo |
|---|---|---|
-name |
Por nombre exacto | -name "file.txt" |
-iname |
Nombre (ignora mayúsculas) | -iname "File.txt" |
-type f |
Solo archivos | -type f |
-type d |
Solo directorios | -type d |
-mtime -7 |
Modificados últimos 7 días | -mtime -7 |
-size +1M |
Mayores a 1 MB | -size +1M |
Ejemplos prácticos
# Archivos Python modificados hoy
find . -name "*.py" -mtime 0
# Archivos grandes (más de 100MB)
find . -type f -size +100M
# Eliminar archivos .tmp (cuidado!)
find . -name "*.tmp" -delete

Búsqueda en Contenido: grep
Global Regular Expression Print - busca texto dentro de archivos.
# Buscar palabra en un archivo
grep "error" log.txt
# Buscar ignorando mayúsculas
grep -i "error" log.txt
# Buscar en múltiples archivos
grep "import" *.py
# Buscar recursivamente en directorios
grep -r "TODO" .
# Mostrar número de línea
grep -n "error" log.txt
# Mostrar contexto (líneas antes/después)
grep -C 3 "error" log.txt
# Contar ocurrencias
grep -c "error" log.txt
Opciones útiles de grep
| Opción | Significado |
|---|---|
-i |
Ignora mayúsculas/minúsculas |
-r |
Recursivo (busca en subdirectorios) |
-n |
Muestra número de línea |
-c |
Cuenta ocurrencias |
-l |
Solo muestra nombres de archivos |
-v |
Invierte (líneas que NO coinciden) |
-A n |
Muestra n líneas después |
-B n |
Muestra n líneas antes |
-C n |
Muestra n líneas antes y después |
Ejemplos prácticos
# Buscar funciones en código Python
grep -n "def " *.py
# Buscar TODOs en todo el proyecto
grep -rn "TODO" --include="*.py" .
# Ver errores en logs, ignorando líneas con "debug"
grep "error" log.txt | grep -v "debug"

Redirección y Pipes
Redirección de salida
# Guardar salida en archivo (sobrescribe)
ls -la > listado.txt
# Agregar al final del archivo
echo "nueva línea" >> archivo.txt
# Redirigir errores
comando 2> errores.txt
# Redirigir salida y errores
comando > salida.txt 2>&1
# O en bash moderno:
comando &> todo.txt
Pipes (|)
El pipe envía la salida de un comando como entrada del siguiente.
# Filtrar salida
ls -la | grep ".txt"
# Contar archivos
ls | wc -l
# Ver últimos procesos
ps aux | tail -10
# Buscar en historial
history | grep "git"
# Ordenar y eliminar duplicados
cat lista.txt | sort | uniq
Ejemplos prácticos
# Los 5 archivos más grandes
ls -lS | head -5
# Contar líneas de código Python
find . -name "*.py" | xargs wc -l
# Procesos que usan más memoria
ps aux | sort -k 4 -r | head -10
Información del Sistema
Espacio en disco: df
# Ver espacio en disco
df -h
# Solo sistema de archivos local
df -h --local
Tamaño de directorios: du
# Tamaño del directorio actual
du -sh .
# Tamaño de cada subdirectorio
du -h --max-depth=1
# Ordenado por tamaño
du -h --max-depth=1 | sort -h
Información del sistema: uname
# Sistema operativo
uname -s
# Toda la información
uname -a
# Distribución de Linux
cat /etc/os-release
Procesos
Ver procesos: ps
# Tus procesos
ps
# Todos los procesos
ps aux
# Buscar un proceso específico
ps aux | grep python
Monitor interactivo: top / htop
# Monitor básico
top
# Monitor mejorado (si está instalado)
htop
Dentro de top/htop:
q- salirk- matar procesoM- ordenar por memoriaP- ordenar por CPU
Matar procesos: kill
# Matar por PID
kill 1234
# Forzar terminación
kill -9 1234
# Matar por nombre
killall python
pkill firefox
Permisos de Archivos
Entender permisos
-rwxr-xr-- 1 usuario grupo 4096 Jan 20 10:00 script.sh
| Parte | Significado |
|---|---|
- |
Tipo (- archivo, d directorio) |
rwx |
Permisos del dueño (read, write, execute) |
r-x |
Permisos del grupo |
r-- |
Permisos de otros |
Cambiar permisos: chmod
# Dar permiso de ejecución al dueño
chmod u+x script.sh
# Dar permiso de lectura a todos
chmod a+r archivo.txt
# Quitar permiso de escritura a otros
chmod o-w archivo.txt
# Usando números (rwx = 4+2+1 = 7)
chmod 755 script.sh # rwxr-xr-x
chmod 644 archivo.txt # rw-r--r--
Cambiar dueño: chown
# Cambiar dueño
sudo chown usuario archivo.txt
# Cambiar dueño y grupo
sudo chown usuario:grupo archivo.txt
# Recursivo
sudo chown -R usuario:grupo carpeta/
Descarga de Archivos
wget
# Descargar archivo
wget https://example.com/archivo.zip
# Guardar con otro nombre
wget -O nuevo_nombre.zip https://example.com/archivo.zip
# Descargar en silencio
wget -q https://example.com/archivo.zip
curl
# Ver contenido de una URL
curl https://api.example.com/data
# Guardar en archivo
curl -o archivo.zip https://example.com/archivo.zip
# Seguir redirecciones
curl -L https://example.com/redirect
Ejercicios
-
Encuentra todos los archivos
.mden el directorio actual:find . -name "*.md" -
Busca la palabra “error” en todos los archivos de texto:
grep -r "error" --include="*.txt" . -
Cuenta cuántas líneas tienen tus archivos Python:
find . -name "*.py" | xargs wc -l
-
Lista todos los archivos y guárdalos en
listado.txt:ls -la > listado.txt -
Encuentra los 3 directorios más grandes:
du -h --max-depth=1 | sort -hr | head -4 -
Cuenta cuántos procesos están corriendo:
ps aux | wc -l
Resumen de Comandos
| Comando | Descripción |
|---|---|
find . -name "*.py" |
Buscar archivos |
grep "texto" archivo |
Buscar en contenido |
grep -r "texto" . |
Buscar recursivamente |
comando > archivo |
Redirigir salida |
comando >> archivo |
Agregar a archivo |
cmd1 | cmd2 |
Pipe |
df -h |
Espacio en disco |
du -sh |
Tamaño de directorio |
ps aux |
Ver procesos |
kill PID |
Matar proceso |
chmod +x script.sh |
Dar permisos de ejecución |
wget URL |
Descargar archivo |
Más Ejercicios
Encuentra información en tu sistema:
# ¿Cuántos archivos .py hay en tu home?
find ~ -name "*.py" 2>/dev/null | wc -l
# ¿Cuáles son los 5 archivos más grandes?
find ~ -type f -exec ls -s {} \; 2>/dev/null | sort -n -r | head -5
# ¿Qué archivos modificaste hoy?
find ~ -type f -mtime 0 2>/dev/null | head -20
Crea un archivo de log para practicar:
cat << 'EOF' > practice.log
2026-01-20 10:30:15 INFO User login successful
2026-01-20 10:31:22 ERROR Database connection failed
2026-01-20 10:32:45 INFO User logout
2026-01-20 10:33:10 WARNING Disk space low
2026-01-20 10:34:55 ERROR File not found: config.yml
2026-01-20 10:35:30 INFO Backup completed
EOF
Ahora practica:
# Solo errores
grep "ERROR" practice.log
# Errores y warnings
grep -E "ERROR|WARNING" practice.log
# Todo menos INFO
grep -v "INFO" practice.log
# Con número de línea
grep -n "ERROR" practice.log
# Contar cada tipo
grep -c "ERROR" practice.log
grep -c "INFO" practice.log
Crea un archivo con datos:
cat << 'EOF' > datos.csv
nombre,edad,ciudad
Ana,25,CDMX
Carlos,30,Monterrey
Diana,25,Guadalajara
Eduardo,35,CDMX
Fernanda,28,Monterrey
EOF
Usa pipes para:
# Ver sin encabezado
tail -n +2 datos.csv
# Personas de CDMX
grep "CDMX" datos.csv
# Contar personas por ciudad
cut -d',' -f3 datos.csv | tail -n +2 | sort | uniq -c
# Ordenar por edad
tail -n +2 datos.csv | sort -t',' -k2 -n
Practica comandos de monitoreo:
# Espacio en disco
df -h
# Uso de memoria
free -h
# Top 5 procesos por CPU
ps aux --sort=-%cpu | head -6
# Top 5 procesos por memoria
ps aux --sort=-%mem | head -6
# Tu directorio más pesado
du -h --max-depth=1 ~ 2>/dev/null | sort -hr | head -5
Prompts para LLM
Tengo un proyecto de código y necesito encontrar todas las ocurrencias de [palabra/función/variable].
El proyecto está en: [ruta] Lenguajes: [Python/JavaScript/etc]
Dame el comando grep más eficiente para:
- Buscar la palabra exacta
- Ver contexto (líneas antes y después)
- Ignorar ciertos directorios (node_modules, pycache, etc.)
Tengo un archivo de logs grande y necesito:
- Encontrar todos los errores de las últimas 24 horas
- Contar cuántas veces aparece cada tipo de error
- Extraer solo las líneas con un patrón específico
El formato de mis logs es:
[pega ejemplo de línea de log]
Dame los comandos con grep, awk, sed o lo que sea más eficiente.
Necesito hacer esto en la terminal: [describe lo que quieres hacer]
Ejemplo de mi estructura de archivos:
[muestra tu estructura]
Dame el comando o pipeline de comandos para lograrlo. Explícame cada parte.
Tengo este error de permisos:
[pega el error]
El archivo tiene estos permisos (resultado de ls -la):
[pega los permisos]
¿Qué permisos necesito y cuál es el comando chmod correcto? Explícame qué significa cada número/letra.
Recordatorio de Atajos
| Atajo | Úsalo para |
|---|---|
Tab |
Autocompletar |
Ctrl + R |
Buscar comandos previos con grep, find, etc. |
Ctrl + C |
Cancelar comando largo (como find en todo /) |
Ctrl + L |
Limpiar pantalla después de mucha salida |