{"id":29195497,"url":"https://github.com/ispc-soluciones/toolkit-linux","last_synced_at":"2025-07-02T05:04:36.691Z","repository":{"id":293157114,"uuid":"983132746","full_name":"ISPC-Soluciones/toolkit-linux","owner":"ISPC-Soluciones","description":"🛠️ Toolkit de Administración Jr. es una herramienta funcional basada en Bash, desarrollada para simplificar tareas básicas de administración en sistemas Linux (Ubuntu/Debian). Diseñada para ser utilizada por estudiantes, usuarios principiantes o administradores de sistemas en pequeñas startups o entornos educativos.","archived":false,"fork":false,"pushed_at":"2025-06-12T19:31:42.000Z","size":86,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T20:55:56.097Z","etag":null,"topics":["bash-script","linux-shell","toolkit"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ISPC-Soluciones.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T23:44:52.000Z","updated_at":"2025-06-12T19:31:45.000Z","dependencies_parsed_at":"2025-06-12T20:55:43.556Z","dependency_job_id":null,"html_url":"https://github.com/ISPC-Soluciones/toolkit-linux","commit_stats":null,"previous_names":["cristianvellio/toolkit-linux","ispc-soluciones/toolkit-linux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ISPC-Soluciones/toolkit-linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ISPC-Soluciones%2Ftoolkit-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ISPC-Soluciones%2Ftoolkit-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ISPC-Soluciones%2Ftoolkit-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ISPC-Soluciones%2Ftoolkit-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ISPC-Soluciones","download_url":"https://codeload.github.com/ISPC-Soluciones/toolkit-linux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ISPC-Soluciones%2Ftoolkit-linux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263077629,"owners_count":23410167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash-script","linux-shell","toolkit"],"created_at":"2025-07-02T05:04:34.799Z","updated_at":"2025-07-02T05:04:36.683Z","avatar_url":"https://github.com/ISPC-Soluciones.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e 🛠️ Toolkit de Administración Jr. \u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/27c1f99f-f9b7-4059-98ac-8f396863f6a2\" alt=\"tools\" width=\"600\" height=\"400\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\nToolkit de Administración Jr. es una herramienta funcional basada en Bash, desarrollada para simplificar tareas básicas de administración en sistemas Linux (Ubuntu/Debian). Diseñada para ser utilizada por estudiantes, usuarios principiantes o administradores de sistemas en pequeñas startups o entornos educativos, este toolkit ofrece un menú interactivo y accesible desde la terminal que permite realizar tareas clave como monitoreo de procesos, análisis de recursos del sistema, gestión de usuarios, entre otras.\n\nEl proyecto se construyó bajo una estructura modular, utilizando scripts individuales para cada funcionalidad, lo que facilita la lectura, mantenimiento y extensión futura del sistema.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003ch2 align=\"center\"\u003e 🧩 Scripts del Toolkit \u003c/h2\u003e\n\n### 📄 *main.sh*\n\nEste es el script principal del toolkit. \n\n🔍 Funcionamiento:\n\nSe encarga de presentar el menú general al usuario, desde donde se puede acceder a los distintos módulos del sistema:\n- Gestión de procesos\n- Información de memoria\n- Uso de disco y archivos\n- Administración de usuarios y grupos\n- Chequeos de seguridad\n- Salir\n\nCada opción del menú ejecuta scripts independientes, ubicados en carpetas específicas dentro de \u003ccode\u003e`modulos/`\u003c/code\u003e. El menú permanece activo hasta que el usuario elige salir.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003ch2 align=\"center\"\u003e 🧩 Scripts de Procesos \u003c/h2\u003e\n\n### 📄 *procesos.sh*\n\nEste script representa el módulo de Gestión de Procesos, y es invocado desde \u003ccode\u003e`main_toolkit.sh`\u003c/code\u003e.\n\n🔍 Funcionamiento:\n\nMuestra un submenú específico con distintas opciones relacionadas al control y monitoreo de procesos en el sistema. Entre las funcionalidades que ofrece:\n\nListar todos los procesos\n- Ver detalles por PID\n- Terminar procesos (suavemente o de forma forzada)\n- Suspender/reanudar procesos\n- Cambiar la prioridad (nice value)\n- Abrir el monitor en tiempo real (\u003ccode\u003e`top`\u003c/code\u003e)\n\nCada funcionalidad se encuentra implementada en su propio archivo .\u003ccode\u003e`.sh`\u003c/code\u003e, y \u003ccode\u003e`procesos.sh`\u003c/code\u003e se encarga de invocarlos según la selección del usuario.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *listar_procesos_todos.sh*\n\n🔍 Funcionamiento:\n\nEste script implementa la función de mostrar todos los procesos en ejecución.\n\u003cbr\u003e\n\u003cbr\u003e\n\n- Utiliza el comando (\u003ccode\u003e`ps aux`\u003c/code\u003e) para mostrar la lista completa.\n- Muestra los resultados con formato y encabezado.\n- Incluye una opción para volver al submenú de procesos.\n- Brinda una interfaz amigable, clara y con mensajes informativos para el usuario.\n\nEste archivo es parte del módulo de procesos, ubicado típicamente en (\u003ccode\u003e`modulos/procesos/`\u003c/code\u003e).\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *ver_detalles_proceso.sh*\n\nEsta función le solicita al usuario que ingrese el PID (Número de Identificación del Proceso) del cual desea ver información detallada. Utiliza el comando 'ps -p \u003cPID\u003e' para mostrar información como el usuario, el uso de CPU y memoria, el estado, el tiempo de inicio y el comando del proceso especificado.\n\n🔍 Funcionamiento:\n\nAl ejecutar la opción correspondiente en el menú, el script pedirá al usuario que ingrese el número PID del proceso que desea investigar.\n\nUna vez que el usuario introduce el PID y presiona Enter, el script utiliza el comando ps -p \u003cPID\u003e -o pid,user,pcpu,pmem,vsz,rss,tty,stat,start,time,command para mostrar información relevante del proceso. Esta información incluye:\n\n- PID: El identificador único del proceso.\n- USER: El usuario propietario del proceso.\n- %CPU: El porcentaje de uso de la CPU por el proceso.\n- %MEM: El porcentaje de uso de la memoria RAM por el proceso.\n- VSZ: El tamaño virtual de la imagen del proceso.\n- RSS: El tamaño del conjunto residente (la porción de la memoria que realmente ocupa el proceso en la RAM).\n- TTY: El terminal asociado al proceso (si existe).\n- STAT: El estado actual del proceso (ej: S para sleeping, R para running).\n- START: La hora o fecha en que se inició el proceso.\n- TIME: La cantidad total de tiempo de CPU que el proceso ha utilizado.\n- COMMAND: El comando que se ejecutó para iniciar el proceso.\n\nSi el PID ingresado no corresponde a ningún proceso activo en el sistema, el script mostrará un mensaje indicando que no se encontró ningún proceso con ese PID.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *terminar_proceso_suave.sh*\n\nEsta función permite terminar un proceso en ejecución enviando una señal de terminación suave (SIGTERM). Le solicita al usuario que ingrese el PID del proceso que desea finalizar. Utilizando el comando 'kill \u003cPID\u003e' se envia la señal SIGTERM. Esta señal da al proceso la oportunidad de cerrarse de forma ordenada, guardando su estado si es necesario.\n\n🔍 Funcionamiento:\n\nAl seleccionar la opción correspondiente en el menú, el script pedirá al usuario que ingrese el número PID del proceso que desea terminar.\n\nAntes de enviar la señal, el script preguntará al usuario si está seguro de que desea terminar el proceso con el PID ingresado. El usuario deberá ingresar \"s\" o \"S\" para confirmar y cualquier otra cosa para cancelar la operación.\n\nSi el usuario confirma, el script utiliza el comando kill \u003cPID\u003e (que por defecto envía la señal SIGTERM) al proceso especificado.\n\nDespués de intentar enviar la señal, el script mostrará un mensaje indicando si la señal se envió correctamente. Sin embargo, es importante tener en cuenta que el script solo envía la señal; el proceso en sí decide si y cómo responder a ella. Algunos procesos pueden ignorar esta señal.\n\nImportante: Utilizar la terminación suave es la forma recomendada de finalizar un proceso, ya que le permite realizar una limpieza antes de cerrarse. Solo en casos donde un proceso no responde a SIGTERM se debería considerar el uso de la terminación forzada (kill -9), la cual tus compañeros implementarán.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 terminar_proceso_forzado.sh\n🔍 Funcionamiento:\n\nAl selecionar este script implementa la función de terminar un proceso de forma forzada.\n\u003cbr\u003e\u003cbr\u003e\n\n- Utiliza el comando (\u003ccode\u003ekill -9 \u003cPID\u003e\u003c/code\u003e) para enviar la señal SIGKILL al proceso indicado.\n\n- Elimina inmediatamente el proceso, sin darle oportunidad de liberar recursos.\n\n- Solicita al usuario que ingrese el PID del proceso a finalizar.\n\n- Brinda mensajes claros e informativos sobre el resultado de la acción.\n\n- Incluye opción para volver al submenú de procesos.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 suspender_proceso.sh 💤\n🔍 Funcionamiento:\n\nEste script implementa la función de suspender un proceso temporalmente.\n\u003cbr\u003e\u003cbr\u003e\n\n- Utiliza el comando (\u003ccode\u003ekill -19 \u003cPID\u003e\u003c/code\u003e) para enviar la señal SIGSTOP.\n\n- El proceso queda detenido, pero puede reanudarse más tarde con kill -18 \u0026lt;PID\u0026gt;.\n\n- Solicita al usuario que ingrese el PID del proceso a suspender.\n\n- Informa al usuario si la suspensión fue exitosa o no.\n\n- Incluye opción para volver al submenú de procesos.\n\n- Este archivo es parte del módulo de procesos, ubicado típicamente en (\u003ccode\u003emodulos/procesos/\u003c/code\u003e).\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 reanudar_proceso.sh 💤\n🔍 Funcionamiento:\n\n- Esta función permite reanudar un proceso que ha sido pausado o suspendido.\n \n- Solicita al usuario que ingrese el PID (identificador del proceso) y pide confirmación antes de enviar la señal SIGCONT (código 18).\n \n- La señal SIGCONT reanuda la ejecución de procesos detenidos mediante SIGSTOP o Ctrl+Z.\n \n- Si la señal se envía correctamente, se muestra un mensaje confirmando la acción; de lo contrario, se informa de un error.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *abrir_monitor_procesos.sh*\n\nEste script se encarga de abrir una herramienta de monitoreo de procesos del sistema. Verifica si htop está instalado; si lo está, lo ejecuta. Si no, recurre al comando top.\n\n🔍 Funcionamiento:\n\nMuestra un mensaje de prueba para verificar que el script se ejecuta.\n\nVerifica si el comando htop está disponible en el sistema:\n\nSi está instalado, lo ejecuta.\n\nSi no está instalado, ejecuta top como alternativa.\n\nAmbas herramientas permiten observar procesos, uso de CPU, memoria, y más en tiempo real.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *validar_entrada.sh*\n\nEste script contiene funciones que pueden ser importadas por otros scripts para validar entradas del usuario, como por ejemplo si un PID es válido.\n\n🔍 Funciones incluidas:\n\nes_entero_positivo(valor)\n- Verifica si el valor ingresado es un número entero positivo.\n\npid_existe(pid)\n- Verifica si el número ingresado corresponde a un PID existente en el sistema.\n\nPara usar estas funciones desde otro archivo, se debe importar el script con source:\n\nsource ./validar_entrada.sh\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *cambiar_prioridad_proceso.sh*\n\nEste script permite modificar la prioridad de ejecución de un proceso específico utilizando el comando \"renice\".\nLa prioridad puede establecerse con un rango de **-20** (mayor prioridad) a **19** (menor prioridad), siempre que el usuario cuente con los permisos necesarios.\n\n🔍 Funcionamiento:\n\n1. Solicita al usuario el **PID** del proceso que desea modificar.\n2. Solicita el nuevo valor de **prioridad** (nice).\n3. Ejecuta el comando `renice` con los valores ingresados para cambiar la prioridad del proceso.\n\n⚠️ **Importante:**  \nModificar la prioridad de procesos puede requerir privilegios elevados (por ejemplo, `sudo`) si el proceso no pertenece al usuario actual.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003ch2 align=\"center\"\u003e 🧩 Scripts de Memoria \u003c/h2\u003e\n\n### 📄 *memoria.sh*\nEste script representa el módulo de Gestión de Memoria, y es invocado desde main_toolkit.sh.\n\n🔍 Funcionamiento:\n\nMuestra un submenú específico con distintas opciones relacionadas al monitoreo del uso de memoria del sistema. Las funcionalidades disponibles incluyen:\n\n- Ver el uso actual de RAM y SWAP.\n\n- Consultar un resumen de /proc/meminfo.\n\n- Obtener estadísticas de procesos y uso de memoria con vmstat.\n\nCada funcionalidad está implementada en su propio archivo .sh dentro del directorio modulos/memoria/, y memoria.sh se encarga de invocarlos según la selección del usuario.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n### 📄 *UsoRam.sh*\nEste script permite visualizar el uso actual de la memoria RAM y la memoria SWAP del sistema (memoria virtual) , utilizando el comando free -h con una interfaz simple y legible para el usuario.\n\n🔍 Funcionamiento:\n\n- Limpia la pantalla para una mejor visualización.\n\n- Muestra un título con formato en color cian.\n\n- Ejecuta el comando free -h para mostrar el uso actual de la RAM y SWAP en un formato legible (por ejemplo, MB o GB).\n\n- Espera que el usuario presione Enter para regresar al menú u otra sección del script.\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *vmstat.sh*\nEste script proporciona un menú interactivo para visualizar estadísticas del sistema relacionadas con memoria, procesos y disco utilizando el comando vmstat. Está pensado como una herramienta accesible para usuarios que desean obtener información clave del sistema sin memorizar comandos.\n\n🔍 Funcionamiento:\n\nAl ejecutarlo, se muestra un menú con las siguientes opciones:\n\n1_Ver resumen del sistema (vmstat -s)\nIncluye análisis del uso de la memoria swap con advertencias si se detecta uso elevado.\n\n2_Ver actividad en tiempo real (vmstat 1 5)\nMuestra 5 muestras de estadísticas con intervalos de 1 segundo.\n\n3_Ver estadísticas de disco (vmstat -d)\n\n4_Ver paginación del disco sda (vmstat -p sda)\n\n5_Ver memoria activa/inactiva (vmstat -a)\n\n6_Ver número de procesos creados desde el arranque (vmstat -f)\n\n7_Volver al menú anterior o salir\n\n🛠️ Requisitos:\n\nEl comando vmstat debe estar instalado\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *meminfo.sh*\n\nEste script forma parte del módulo de Gestión de Memoria, y es ejecutado desde memoria.sh.\n\n🔍 Funcionamiento:\n\nmeminfo.sh permite consultar de forma directa y completa el contenido del archivo del sistema /proc/meminfo, el cual proporciona información detallada sobre la memoria virtual del sistema.\n\nEntre sus características se incluyen:\n\nVerificación previa de la existencia del archivo /proc/meminfo\n\nVisualización clara y ordenada del contenido completo del archivo\n\nEncabezado informativo y pausa final para revisión antes de volver al menú\n\n📌 Objetivo:\nBrindar una vista detallada de estadísticas como memoria libre, buffers, cachés, y uso de SWAP, útil para diagnóstico o monitoreo del estado de la memoria del sistema.\n\n\u003ch2 align=\"center\"\u003e 🧩 Scripts de Disco \u003c/h2\u003e\n\n### 📄 *disco.sh*\n\nEste script implementa el módulo de uso de disco y archivos del Toolkit de Administración Jr. Su objetivo es brindar a los usuarios una forma sencilla de obtener información clave relacionada con el uso del sistema de archivos.\n\n🔍 Funcionamiento:\n\nAl ejecutar `disco.sh`, se despliega un submenú interactivo con opciones para:\n\nVer espacio libre/usado en discos montados\nInvoca el script `espacio_disco.sh`.\n\nCalcular el tamaño de un archivo o directorio\nEjecuta el script `tamaño.sh`.\n\nListar archivos de un directorio\nLlama a `listar_archivos.sh`.\n\nVolver al menú principal\nFinaliza la ejecución del submenú y devuelve el control a `main_toolkit.sh`.\n\n🔁 El menú permanece activo hasta que el usuario elige la opción de volver.\n\n💡 Este módulo está pensado para facilitar la gestión de espacio en disco, especialmente útil para verificar informacion sobre uso de particiones o limpiar archivos innecesarios.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *especio_disco.sh*\n\nEste script muestra un informe claro y visual del espacio en disco utilizado por las particiones montadas en el sistema.\n\n🔍 Funcionamiento:\n\nUtiliza el comando:\n\n```bash\ndf -h --output=source,size,used,avail,pcent,target\n```\n\nEste comando muestra:\n\n  - Sistema de archivos (`source`)\n\n  - Tamaño total\n\n  - Espacio usado\n\n  - Espacio disponible\n\n  - Porcentaje de uso\n\n  - Punto de montaje\n\n Se omite la primera línea del encabezado con `tail -n +2` para mostrar solo los datos relevantes al usuario.\n\n Al finalizar, se espera que el usuario presione Enter para volver al submenú, evitando que la información desaparezca inmediatamente.\n\n🎯 Objetivo:\nBrindar una vista rápida del estado de almacenamiento en el sistema, muy útil para monitorear particiones llenas o identificar problemas de espacio antes de instalar software, hacer backups o guardar grandes volúmenes de datos.\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *listar_archivos.sh*\n\nEste script permite listar archivos y directorios del sistema de forma interactiva desde la terminal. \n\n🔧 ¿Qué hace?\nOfrece un menú interactivo para:\n\nElegir un directorio (actual, /home, /root, personalizado, o todo el sistema).\n\nElegir el tipo de listado (simple, completo, recursivo).\n\nVer los resultados con ls, adaptado a la opción elegida.\n\n\n📜 Estructura del Menú\n\nEl usuario puede elegir entre:\n\n  Directorio actual (.)\n\n  Directorio /home\n\n  Directorio /root\n\n  Ingresar una ruta manual\n\n  Listar todo el sistema (/)\n\n  Salir al menú anterior\n\nSeleccionar Tipo de Listado\n\n  ls: listado simple\n\n  ls -l: listado con detalles (permisos, tamaño, etc.)\n\n  ls -R: listado recursivo\n\n  ls -lR: listado completo y recursivo\n\u003cbr\u003e\n\u003cbr\u003e\n\n### 📄 *tamaño.sh*\n\n\n🔍  Función calcular_tamaño()\n \n  Esta función permite al usuario calcular el tamaño total de un archivo o directorio específico. Utiliza el comando 'du -sh \u003cruta\u003e', donde:\n\n  -s muestra solo el total, sin desglosar subdirectorios\n \n  -h presenta el resultado en un formato legible (KB, MB, GB, etc.)\n \n   Primero verifica si la ruta ingresada existe, luego solicita confirmación, y finalmente muestra el tamaño total si se confirma la operación.\n\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003ch2 align=\"center\"\u003e⚙️ Requisitos de Ejecución\u003c/h2\u003e\n\nPara ejecutar correctamente el Toolkit, se requiere lo siguiente:\n\n- Sistema operativo: Linux (preferentemente Ubuntu o Debian).\n- Bash Shell.\n  \n\u003ch3\u003eMetodo 1:\u003c/h3\u003e\n\n1. Posicionarse en la carpeta donde esta ubicada la aplicacion\n2. Utilizar el comando 'chmod -R a+rwx .' para darle permiso recursivo a toda la carpeta\n   \n\u003ch3\u003eMetodo 2:\u003c/h3\u003e\n\n- Permisos de ejecución para los scripts (`chmod +x nombre_script.sh`).\n- Paquete `dos2unix` instalado (si los scripts fueron editados desde Windows):\n  ```bash\n  sudo apt update \u0026\u0026 sudo apt install dos2unix -y\n\n**Convertir archivos si es necesario:**\n  ```bash\ndos2unix *.sh \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fispc-soluciones%2Ftoolkit-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fispc-soluciones%2Ftoolkit-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fispc-soluciones%2Ftoolkit-linux/lists"}