Skip to content

Utilidades del Sistema

Herramientas y utilidades adicionales para administración del sistema y tareas especializadas en Linux.

Muestra, formatea y establece la fecha y hora del sistema. Útil para timestamps en logs y sincronización.

Terminal window
# Mostrar fecha actual
date
# Formato personalizado
date "+%Y-%m-%d %H:%M:%S"
date "+%d/%m/%Y"
# Fecha en UTC
date -u
# Timestamp Unix
date +%s
# Convertir timestamp a fecha
date -d @1640995200
# Fecha específica
date -d "2024-01-01"
date -d "next monday"
date -d "2 days ago"
# Establecer fecha (root)
date -s "2024-01-01 12:00:00"

Muestra calendarios en formato texto. Útil para planificación y referencia rápida de fechas.

Terminal window
# Calendario del mes actual
cal
# Calendario de año específico
cal 2024
# Calendario de mes específico
cal 12 2024
# Calendario de 3 meses
cal -3
# Calendario juliano
cal -j

Pausa la ejecución de scripts por un tiempo determinado. Esencial para timing en pentesting y automatización.

Terminal window
# Pausar por segundos
sleep 5
# Pausar por minutos
sleep 2m
# Pausar por horas
sleep 1h
# Pausar por días
sleep 1d
# Usar en scripts
sleep 0.5 # medio segundo

Imprime texto en la salida estándar. Fundamental para scripts, debugging y creación de archivos simples.

Terminal window
# Mostrar texto simple
echo "Hello World"
# Sin nueva línea
echo -n "Text without newline"
# Interpretar secuencias de escape
echo -e "Line 1\nLine 2\tTabbed"
# Mostrar variables
echo $HOME
echo "User: $USER"
# Redireccionar a archivo
echo "Content" > file.txt
echo "More content" >> file.txt

Muestra las variables de entorno del sistema. Útil para análisis de configuración y debugging.

Terminal window
# Mostrar todas las variables
printenv
# Variable específica
printenv HOME
printenv PATH
# Múltiples variables
printenv USER HOME SHELL

Manipula el entorno de ejecución de comandos. Permite ejecutar programas con variables específicas.

Terminal window
# Mostrar variables de entorno
env
# Ejecutar comando con entorno limpio
env -i command
# Ejecutar con variable específica
env VAR=value command
# Eliminar variable del entorno
env -u VAR command

Localiza la ruta completa de comandos ejecutables en el PATH. Útil para verificar instalaciones.

Terminal window
# Encontrar ubicación de comando
which python
which gcc
# Mostrar todas las ubicaciones
which -a python
# Verificar si comando existe
which nonexistent || echo "Command not found"

Busca binarios, código fuente y manuales de comandos. Más completo que which para análisis forense.

Terminal window
# Encontrar binario, fuente y manual
whereis ls
# Solo binario
whereis -b ls
# Solo manual
whereis -m ls
# Solo fuente
whereis -s gcc

Crea atajos personalizados para comandos largos o frecuentes. Mejora la eficiencia en pentesting.

Terminal window
# Mostrar todos los alias
alias
# Crear alias
alias ll='ls -la'
alias grep='grep --color=auto'
alias ..='cd ..'
# Alias temporal (solo sesión actual)
alias mycommand='long command with parameters'
# Ver definición de alias
alias ll
# Eliminar alias
unalias ll

Muestra y gestiona el historial de comandos ejecutados. Crucial para análisis forense y auditoría.

Terminal window
# Mostrar historial completo
history
# Mostrar últimos N comandos
history 10
# Buscar en historial
history | grep "pattern"
# Ejecutar comando del historial
!123 # Ejecutar comando número 123
!! # Ejecutar último comando
!string # Ejecutar último comando que empiece con "string"
# Limpiar historial
history -c
# Eliminar entrada específica
history -d 123

Limpia la pantalla del terminal. Útil para mantener sesiones organizadas durante pentesting.

Terminal window
# Limpiar pantalla
clear
# Atajo de teclado: Ctrl+L

Reinicia completamente el terminal a su estado inicial. Útil cuando el terminal se corrompe.

Terminal window
# Reiniciar terminal completamente
reset

Muestra el nombre del dispositivo de terminal actual. Útil para identificar sesiones en análisis forense.

Terminal window
# Mostrar dispositivo de terminal
tty

Graba toda la actividad de una sesión de terminal. Esencial para documentar actividades de pentesting.

Terminal window
# Iniciar grabación
script session.log
# Finalizar grabación
exit
# Reproducir sesión grabada
scriptreplay session.log

Mide el tiempo de ejecución de comandos y uso de recursos. Útil para optimización y análisis de rendimiento.

Terminal window
# Medir tiempo de comando
time ls -la
# Formato detallado
/usr/bin/time -v command
# Guardar estadísticas en archivo
/usr/bin/time -o stats.txt command
# Formato personalizado
/usr/bin/time -f "Real: %e, User: %U, System: %S" command

Ejecuta comandos con límite de tiempo. Previene que procesos se cuelguen durante escaneos automatizados.

Terminal window
# Ejecutar comando con timeout
timeout 30s long_running_command
# Timeout con señal específica
timeout -s KILL 60s command
# Preservar estado de salida
timeout --preserve-status 30s command

Construye y ejecuta comandos desde entrada estándar. Potente para procesamiento en lote y pipelines.

Terminal window
# Uso básico
echo "file1 file2 file3" | xargs rm
# Con find
find . -name "*.tmp" | xargs rm
# Ejecutar comando por cada línea
cat files.txt | xargs -I {} cp {} /backup/
# Limitar número de argumentos
find . -name "*.log" | xargs -n 1 gzip
# Manejar espacios en nombres
find . -name "*.txt" -print0 | xargs -0 rm
# Confirmar antes de ejecutar
echo "file1 file2" | xargs -p rm

Duplica la salida hacia archivos y pantalla simultáneamente. Esencial para logging durante pentesting.

Terminal window
# Escribir a archivo y mostrar en pantalla
command | tee output.txt
# Agregar a archivo existente
command | tee -a output.txt
# Escribir a múltiples archivos
command | tee file1.txt file2.txt
# Usar con sudo para archivos protegidos
echo "content" | sudo tee /etc/file.txt

Crea pipes nombrados (FIFO) para comunicación entre procesos. Útil para técnicas avanzadas de scripting.

Terminal window
# Crear pipe nombrado
mkfifo mypipe
# Escribir al pipe (en una terminal)
echo "data" > mypipe
# Leer del pipe (en otra terminal)
cat < mypipe

Ejecuta comandos que persisten al cerrar la terminal. Esencial para mantener procesos de larga duración.

Terminal window
# Ejecutar comando que persiste al cerrar terminal
nohup long_running_command &
# Redirigir salida
nohup command > output.log 2>&1 &
# Verificar procesos nohup
ps aux | grep -v grep | grep nohup
# Script de reconocimiento automatizado
#!/bin/bash
TARGET=$1
echo "Starting reconnaissance on $TARGET" | tee recon.log
# Ping test
timeout 5s ping -c 1 $TARGET && echo "Host is up" | tee -a recon.log
# Port scan
nmap -sS $TARGET | tee -a recon.log
# DNS lookup
nslookup $TARGET | tee -a recon.log
Terminal window
# Monitorear conexiones cada 5 segundos
while true; do
date
netstat -tulpn | grep LISTEN
sleep 5
done | tee network_monitor.log
Terminal window
# Buscar patrones sospechosos en logs
tail -f /var/log/auth.log | grep --line-buffered "Failed password" | \
while read line; do
echo "$(date): $line" | tee -a failed_logins.log
done
Terminal window
# Escaneo lento para evasión
for port in {1..1000}; do
timeout 1s nc -z target $port 2>/dev/null && echo "Port $port open"
sleep 0.1 # Delay para evasión
done
#!/bin/bash
echo "=== INFORMACIÓN DEL SISTEMA ===" | tee system_info.txt
echo "Fecha: $(date)" | tee -a system_info.txt
echo "Uptime: $(uptime)" | tee -a system_info.txt
echo "Usuario: $(whoami)" | tee -a system_info.txt
echo "Directorio: $(pwd)" | tee -a system_info.txt
echo "Espacio en disco:" | tee -a system_info.txt
df -h | tee -a system_info.txt
#!/bin/bash
echo "Iniciando limpieza del sistema..."
# Limpiar archivos temporales
find /tmp -type f -atime +7 -delete 2>/dev/null
echo "Archivos temporales limpiados"
# Limpiar logs antiguos
find /var/log -name "*.log" -size +100M -exec gzip {} \;
echo "Logs comprimidos"
# Limpiar historial
history -c
echo "Historial limpiado"
#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR
echo "Creando backup en $BACKUP_DIR" | tee backup.log
# Backup de configuraciones importantes
tar -czf $BACKUP_DIR/etc_backup.tar.gz /etc/ 2>/dev/null
tar -czf $BACKUP_DIR/home_backup.tar.gz /home/ 2>/dev/null
echo "Backup completado: $(date)" | tee -a backup.log

Tip: Combina estas utilidades en scripts para automatizar tareas repetitivas durante evaluaciones de seguridad. El comando tee es especialmente útil para mantener logs de actividades mientras ves el progreso en tiempo real.