Este proyecto es un conjunto de scripts Bash que conforman un toolkit administrativo básico para sistemas operativos tipo Unix/Linux. Está diseñado para facilitar tareas habituales de gestión del sistema, monitoreo, seguridad, y administración de usuarios mediante una interfaz interactiva y amigable desde terminal.
- Ver procesos activos:
- Lista los 30 procesos que más CPU consumen, mostrando PID, usuario, %CPU, %MEM y comando.
ps -eo pid,user,%cpu,%mem,comm --sort=-%cpu | head -n 30
# -eo: especifica campos;
# --sort=-%cpu: ordena descendente por uso CPU- Consultar información detallada de un proceso:
- El usuario ingresa un PID y obtiene información detallada:
ps -p <PID> -o pid,ppid,user,%cpu,%mem,cmd- Finalizar un proceso manualmente:
- El usuario ingresa un PID, confirma la acción y se envía señal SIGTERM (15), que solicita al proceso terminar:
kill -15 <PID>- Ejecutar comandos habituales sobre procesos:
-
Permite elegir entre:
ps aux– Muestra todos los procesos.top -b -n 1– Top en modo batch.pgrep <nombre>– Buscar PID por nombre.kill <PID>– Finalizar proceso directamente.
- Crear un archivo nuevo:
- El usuario ingresa nombre y extensión por separado.
touch <nombre>.<extensión>- Crear un directorio:
- El usuario define un nombre (con validación de formato).
mkdir <nombre_directorio>- Listar archivos en un directorio:
- El usuario ingresa el directorio a listar y se muestra el contenido con:
ls -l <directorio>- Mostrar espacio libre y utilizado:
- Muestra el espacio ocupado y libre en discos montados.
df -h- Mostrar el tamaño ocupado por un directorio/archivo:
- El usuario especifica una ruta y se muestra el tamaño.
du -sh <ruta>- Comandos habituales sobre disco:
-
Permite elegir y ejecutar:
df– Estado del disco.du– Uso de espacio por carpeta.ls– Listado de archivos con detalles.
- Mostrar usuarios del sistema:
- Lista usuarios de sistema (UID < 1000) y usuarios normales (UID >= 1000), usando
getento/etc/passwd.
- Mostrar grupos del sistema:
- Lista grupos de sistema (GID < 1000) y grupos normales (GID >= 1000), usando
getento/etc/group.
-
Diagnóstico rápido de memoria (script:
memoria.sh):-
Realiza un análisis del uso de memoria RAM y SWAP, estadísticas del sistema y muestra los procesos que consumen más memoria.
-
Comandos utilizados:
free -h→ Estado de la RAM y SWAP.vmstat -s→ Estadísticas de memoria (buffers, caché, total y libre).head /proc/meminfo→ Información detallada del sistema.ps→ Lista de los procesos que más memoria consumen.
-
Ideal para monitoreo rápido de recursos de memoria en el sistema.
-
- Revisión básica de logs y seguridad:
-
Ver últimas 15 líneas de
/var/log/auth.log. -
Buscar errores de autenticación con la palabra "Failed".
-
Ver errores recientes del sistema con
journalctl. -
Logs SSH en las últimas 2 horas.
-
Comandos habituales: sesiones (
last,lastb), listado de archivos (ls -l), búsquedas por texto (grep), logs recientes (journalctl -xe).
- Git instalado (para clonar el repositorio):
git --version- Bash (shell de Linux/Unix) disponible:
bash --version-
Sistema operativo tipo Unix/Linux.
-
Acceso a Internet para clonar el repositorio.
-
Permisos de ejecución en el directorio de trabajo.
- Clonar el repositorio
git clone https://github.com/programando18/sistemas_operativos_2025.git- Ingresar al directorio del proyecto
cd sistemas_operativos_2025- Dar permisos de ejecución
chmod +x main_toolkit.sh procesos.sh archivos.sh disco.sh usuarios.sh memoria.sh seguridad.sh- Ejecutar el Toolkit
./main_toolkit.sh- Navegar por el menú
-
Al iniciarse, se mostrará un menú numerado con todas las opciones.
-
Escribir el número de la acción que se desea realizar y presionar Enter.
-
Seguir las instrucciones en pantalla para completar la tarea.
toolkit/
├── main_toolkit.sh # Script principal
├── procesos.sh # Funciones para gestión de procesos
├── archivos.sh # Funciones para archivos y directorios
├── disco.sh # Funciones y utilidades de disco
├── usuarios.sh # Gestión de usuarios y grupos
├── memoria.sh # Diagnóstico rápido de memoria y estado del sistema de archivos
└── seguridad.sh # Comandos y revisión básica de seguridad (opcional)
pstop(modo batch)pgrepkilltouchmkdirlsdfdugetentawkcolumngrepjournalctllastlastbhead