Pregunta 1¿Qué lee la línea que escribes en la terminal, busca el programa cuyo nombre va al principio y lo arranca?
Qué es un entorno de desarrollo — editor, terminal y entorno de ejecución
Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Escribes en el editor, lo entregas desde la terminal y el entorno de ejecución lo ejecuta. Con diagramas vemos estas tres funciones, cómo lee el shell la línea que escribes y dónde busca el archivo.
Este artículo trata el entorno de desarrollo.
Entorno de desarrollo es el nombre conjunto de tres programas: el editor, la terminal y el entorno de ejecución.
Juntar los tres en una sola pantalla da un entorno de desarrollo integrado (IDE, Integrated Development Environment), y los más conocidos son Visual Studio Code, IntelliJ IDEA y Xcode.
- Qué hace cada uno de los tres: el editor, la terminal y el entorno de ejecución
- Que el nombre de la terminal cambia según el sistema operativo, y cómo leer su pantalla
- Cómo lee el shell la línea que escribes y qué archivo busca
- Cómo el entorno de ejecución ejecuta línea a línea, desde arriba, el app.js que recibe
Qué es un entorno de desarrollo: el editor, la terminal y el entorno de ejecución
Un entorno de desarrollo (development environment: la combinación de programas para escribir código fuente y ejecutarlo dando comandos) es el nombre conjunto de tres cosas, no un programa que se llame así.
- Escribes el contenido de app.js y lo guardas
- Programas como Visual Studio Code
- La pantalla donde escribes una línea como node app.js
- Viene instalada con el sistema operativo
- Programas llamados node o python
- Lo instalas desde el sitio oficial
- app.js — el código fuente que escribiste
- Los archivos de imágenes y de configuración también van aquí
- Cuando creas otra app, creas otra carpeta
Los tres del marco de arriba se reutilizan una vez instalados.
Lo único que creas de nuevo cada vez es una carpeta como my-app, la del marco de abajo.
El editor no es solo una pantalla para escribir texto: puede mostrar la lista de archivos y la terminal juntas en la misma pantalla.
Cuando unas instrucciones dicen «editor de código» o «IDE», puedes tomarlo como lo mismo.
- Aparecen los archivos que hay dentro de my-app
- Al hacer clic en app.js se abre a la derecha
- Aquí sale el contenido de app.js
- El archivo no cambia hasta que guardas
- Aquí puedes escribir node app.js
- Es lo mismo que una terminal abierta aparte
Los tres programas están conectados y funcionan dentro de una misma computadora.
El marco entero es una computadora, y los tres se reparten las funciones dentro.
El editor llega hasta crear el archivo; quien lo ejecuta es el entorno de ejecución.
La terminal es la entrada por la que le dices al entorno de ejecución que ejecute ese archivo, y el resultado sale en esa misma terminal.
El entorno de desarrollo es un conjunto de tres programas
Entorno de desarrollo es el nombre de tres cosas juntas: escribir, teclear y ejecutar.
Se escribe en el editor, se teclea en la terminal y se ejecuta en el entorno de ejecución, y una vez instalados los tres los reutilizas también en tu siguiente app.
La terminal — «Terminal» en Mac, «Símbolo del sistema» en Windows
La terminal (terminal: el programa de pantalla en el que escribes comandos como texto y recibes los resultados como texto) viene instalada con el sistema operativo desde el principio.
Eso sí, el nombre cambia según el sistema operativo.
Los nombres cambian, pero todas se ven igual.
Escribes una línea en una pantalla donde solo hay texto, pulsas Enter y el resultado sale en la línea de abajo.
- Símbolos como $, # o >
- Antes suele aparecer el nombre de la carpeta en la que estás
- Escribes el texto a la derecha del prompt
- No pasa nada hasta que pulsas Enter
- Tanto los resultados como los errores salen como texto en las líneas de abajo
- Cuando termina de salir, aparece otra vez el prompt siguiente
En una pantalla real escribes una línea a la derecha del símbolo del principio, como abajo, y el resultado vuelve debajo.
pwd devuelve dónde está la carpeta en la que estás y ls devuelve lo que hay dentro de esa carpeta.
$ pwd
/home/you/my-app
$ ls
app.js package.json
La terminal es una pantalla para escribir texto y mostrar resultados.
Quien lee de verdad la línea que escribes y decide qué programa ejecutar es el shell (shell: el programa que lee la línea escrita, busca el programa cuyo nombre va al principio y lo arranca) que funciona dentro de esa pantalla.
bash y zsh, que aparecen en las instrucciones, son nombres de shells.
El shell trata la línea que escribes en dos partes: el principio y lo que va detrás.
El shell busca un programa con el node del principio y entrega el app.js de detrás a ese programa.
Entonces busca app.js solo dentro de la carpeta que el shell tiene abierta en ese momento, y a esa carpeta se le llama directorio actual (current directory: la carpeta que el shell tiene abierta ahora).
Su nombre suele aparecer justo antes del prompt (prompt: el símbolo que indica que se acepta la entrada) del principio de la línea.
- En la terminal aparece my-app al principio de la línea
- app.js está aquí, así que node app.js funciona
- Aunque app.js esté aquí, node app.js no funciona
- Al escribir cd my-app, el marco de arriba pasa a ser la carpeta en la que estás
El mismo node app.js da un resultado distinto si cambia la carpeta en la que estás.
app.js está guardado dentro de my-app.
| La carpeta en la que está el shell | Dónde se busca app.js | El resultado de node app.js |
|---|---|---|
| my-app | Dentro de my-app → se encuentra | app.js se ejecuta |
| Descargas | Dentro de Descargas → no se encuentra | Cannot find module |
| Después de cd my-app | Dentro de my-app → se encuentra | app.js se ejecuta |
Las instrucciones ponen cd antes de un comando para cambiar ese lugar de búsqueda.
Cuando escribes un destino detrás de cd, la línea siguiente se ejecuta en la carpeta a la que te moviste.
$ cd my-app
$ pwd
/home/you/my-app
Lo que ocurre con la línea que escribes lo decide lo que pusiste al principio.
Lo visto hasta aquí es el mínimo para leer los comandos que aparecen en las instrucciones.
Si quieres aprender más a fondo, en el curso de introducción a Linux hay ejercicios en los que escribes comandos en una terminal del navegador.
Si empiezas por Rutas y navegación entre directorios, lo de cd de este artículo continúa justo ahí.
Quien lee la línea que escribes es el shell
Quien lee la línea que escribes no es la pantalla, sino el shell que funciona dentro.
Cuando algo no sale bien, léelo por separado: command not found significa que no se encontró el nombre del principio, y Cannot find module, que el archivo de detrás no está en la carpeta en la que estás.
El entorno de ejecución — ejecuta el contenido de app.js en orden desde arriba
El entorno de ejecución al que el shell entrega app.js lee su contenido línea a línea desde arriba y lo ejecuta en el orden escrito.
Si ejecutas las tres líneas siguientes con node app.js, en pantalla salen solo dos.
console.log("Hola");
const price = 1200;
console.log(price + " yenes");
En pantalla salen solo las líneas que piden mostrar algo.
El entorno de ejecución solo lee línea a línea desde arriba
Lo que hace el entorno de ejecución es leer app.js línea a línea desde arriba y hacer lo que está escrito.
Solo las líneas que piden mostrar algo sacan texto en pantalla, y lo único que lee es el app.js que le entregó el shell.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2Escribiste node app.js y salió que no se encuentra app.js. ¿Qué compruebas primero?
Pregunta 3Cuando escribes node app.js en la terminal, ¿qué ejecuta el contenido de app.js en orden desde arriba?