Estoy buscando ejecutar una función en JS cuando se hace clic en un botón en la interfaz , espero que ejecute comandos de terminal, este es el trabajo de la función .
Lo primero que me vino a la mente es usar el módulo OS en Python para poder usar os.system() para ejecutar comandos de terminal. Encontré algunos videos en YouTube, pero la mayoría de ellos te guían sobre cómo hacerlo, pero no del lado del cliente.
Sería muy apreciado si pudiera explicarme qué es del lado del cliente, porque pedí ayuda en Discord pero la gente sigue hablando de eso, solo necesito una explicación/resumen/conclusión simple y comprensible
Entonces, cuando no encontré ningún recurso para ejecutar un script de Python desde JS, pensé en ejecutar los comandos de la terminal directamente desde JS, pero aún no encontré ningún recurso que pudiera ayudar.
Entonces, ¿te gustaría entender más? Aquí está mi caso:
Estoy creando una aplicación web que es un ofuscador de código, y para ofuscar el código quiero usar comandos de terminal, esos comandos funcionan sin problemas, así que quiero ejecutar esos comandos desde JS.
La aplicación estará alojada en un servidor Linux (Linode) provisto por Linode, es Ubuntu LTS
Nota: Este proyecto es una aplicación web, HTML/CSS/JS y extra
¡Gracias por tu ayuda! Siéntete libre si tienes alguna duda pregúntame en los comentarios
Con respecto a tu primera pregunta.
El lado del cliente (representación) se refiere a todo lo que se muestra en una aplicación web o se lleva a cabo en el cliente (dispositivo del usuario final). Esto incluye lo que ve el usuario, como texto, imágenes y el resto de la interfaz de usuario, junto con cualquier acción que realice una aplicación dentro del navegador del usuario.
Por estas razones y dado que no puede ejecutar nada más que HTML, CSS y JavaScript puro en el lado del cliente, también puede comprender por qué no puede ejecutar comandos bash en el lado del cliente; para eso, tendrá que crear una aplicación del lado del servidor que captará la solicitud del lado del cliente, ejecutará/completará la solicitud y devolverá el resultado al cliente.
Hay un buen artículo sobre el trabajo del lado del cliente con el back-end que puede leer aquí https://dev.to/gbudjeakp/how-to-connect-your-client-side-to-your-server-side- usando-nodo-y-express-2i71
A partir de ahí y una vez que tenga el cliente del lado del servidor ejecutándose, podrá usar paquetes como "child_process" que lo ayudarán a ejecutar comandos bash, por ejemplo, y mucho más.
Ejemplo simple ejecutando ls usando child_process
const { exec } = require("child_process"); exec("ls -la", (err, stdout, stderr) => { if (err) { console.log(`error: ${err.message}`); return; } if (stderr) { console.log(`stderr: ${stderr}`); return; } console.log(`stdout: ${stdout}`); });