A casi todo el mundo le impone la terminal al principio. Abres un tutorial de React, llegas al
paso dos y te encuentras con “abre una terminal y escribe npm install”: una pantalla vacía, un
cursor parpadeando y ninguna pista de qué hacer. Es una reacción normal, y se le pierde el
respeto rápido: en cuanto la usas a diario, deja de dar reparo.
La terminal no es una reliquia ni una herramienta de élite. Es la interfaz más directa que existe para hablar con tu sistema operativo: una vez que la conoces, la prefieres para muchas cosas porque es más rápida y más predecible. Y —esto es lo importante— es donde viven las herramientas de un desarrollador frontend en 2026: npm, git, node. No hay alternativa gráfica oficial para ellas.
No vas a romper nada, con una sola excepción: un comando que te aviso bien claro más abajo.
Qué es la terminal y qué es la shell#
La terminal es la ventana: el programa que dibuja texto en pantalla y acepta lo que escribes. La shell es el intérprete: el programa que lee lo que escribiste, lo ejecuta y te devuelve el resultado.
La distinción te importa porque hay varias shells, y no todas son iguales:
- bash y zsh son las habituales en macOS y Linux (macOS cambió de bash a zsh en 2019). Los comandos básicos que verás aquí funcionan igual en ambas.
- PowerShell es la shell estándar en Windows. Comparte la filosofía pero los comandos tienen
nombres distintos: donde en bash escribes
ls, en PowerShell escribesGet-ChildItem(aunque en versiones recienteslstambién funciona como alias). Para evitar fricciones, en Windows muchos devs instalan Git Bash o WSL (Windows Subsystem for Linux), que dan una experiencia idéntica a bash.
En este capítulo, los comandos son los de bash/zsh. Si estás en Windows sin Git Bash, anoto las diferencias donde hay matiz.
Orientarse: saber dónde estás#
El primer miedo es no saber dónde estás parado. Dos comandos te ubican:
pwdPrint Working Directory. Imprime la ruta completa de la carpeta en la que estás ahora mismo. Si no sabes nada más, saber esto ya te salva.
lsLista el contenido de la carpeta actual: ficheros y subcarpetas. Equivalente a abrir la carpeta
en el explorador y ver lo que hay dentro. En Windows (PowerShell nativo) el alias es dir.
Moverse: cd#
cd nombre-carpetaChange Directory. Entra en esa carpeta. Si estás en /proyectos y escribes cd team-builder,
pasas a /proyectos/team-builder.
Hay dos patrones que usarás constantemente:
cd ..— sube un nivel, a la carpeta padre.cd /ruta/absoluta/completa— va directamente ahí, desde donde sea.
Una ruta absoluta empieza en la raíz del sistema (/ en unix, C:\ en Windows) y llega
hasta el destino sin importar dónde estés. Una ruta relativa parte desde tu posición actual:
cd ../otro-proyecto sube uno y entra en otra carpeta, relativo a donde estás ahora.
Crear cosas: mkdir y touch#
mkdir team-builderCrea una carpeta llamada team-builder en el directorio actual.
touch heroes.jsonCrea un fichero vacío. En Windows (PowerShell nativo) el equivalente es
New-Item heroes.json -ItemType File, aunque Git Bash acepta touch directamente.
Copiar, mover y renombrar: cp y mv#
cp origen.txt destino.txtCopia un fichero. El original se mantiene.
mv origen.txt destino.txtMueve (o renombra) un fichero. Si destino.txt es una carpeta, lo mete dentro; si es un nombre,
lo renombra. Para carpetas completas, añade -r (recursivo): cp -r carpeta-a carpeta-b.
Ver el contenido de un fichero: cat#
cat heroes.jsonImprime el contenido del fichero en la terminal. Útil para revisar un fichero pequeño sin abrir el editor.
Borrar: rm — y un aviso que va en serio#
rm fichero.txtBorra el fichero. No va a la papelera. Desaparece en ese instante. No hay deshacer.
Para borrar una carpeta con todo lo que contiene:
rm -r nombre-carpetaEl -r significa recursivo: borra la carpeta y todo lo que haya dentro. Es el comando con más
potencial de daño de esta lista. Antes de ejecutarlo, comprueba que pwd muestra la ruta que
esperas y que el nombre es el correcto.
Tabla de referencia rápida#
| Comando | Qué hace | Ejemplo |
|---|---|---|
pwd | Muestra en qué carpeta estás | pwd |
ls | Lista el contenido de la carpeta actual | ls |
cd carpeta | Entra en esa carpeta | cd team-builder |
cd .. | Sube a la carpeta padre | cd .. |
mkdir nombre | Crea una carpeta | mkdir src |
touch nombre | Crea un fichero vacío | touch index.html |
cp a b | Copia el fichero a como b | cp config.json config.backup.json |
mv a b | Mueve o renombra a a b | mv borrador.js index.js |
rm fichero | Borra un fichero (sin papelera) | rm temp.txt |
rm -r carpeta | Borra una carpeta y su contenido | rm -r dist |
cat fichero | Muestra el contenido de un fichero | cat package.json |
Pruébalo en tu terminal#
La mejor manera de perder el miedo es hacer algo real con un riesgo cero. Esta secuencia crea una carpeta, entra, crea un fichero, lo lista y lo borra. Todo confinado en una carpeta nueva: nada puede salir mal.
Abre tu terminal y ejecuta esto paso a paso. Lee lo que devuelve la terminal después de cada comando:
# 1. Mira dónde estás
pwd
# 2. Crea una carpeta de prueba
mkdir prueba-terminal
# 3. Entra en ella
cd prueba-terminal
# 4. Confirma que estás dentro
pwd
# 5. Crea un fichero vacío
touch hola.txt
# 6. Comprueba que está ahí
ls
# 7. Borra el fichero (es un fichero de prueba: no hay riesgo)
rm hola.txt
# 8. Comprueba que ha desaparecido
ls
# 9. Sube un nivel y borra la carpeta de prueba
cd ..
rm -r prueba-terminalSi todo ha ido bien, has creado y destruido estructura de ficheros desde la terminal sin usar el ratón. Eso ya es usar la CLI de verdad.
Comprueba lo que sabes#
Pregunta 1 de 5
¿Por qué un desarrollador frontend usa la terminal si hay interfaces gráficas para todo?
El siguiente capítulo es Git básico: clone, commit, push, pull. Ya tienes la terminal: es exactamente desde ahí donde vas a lanzar git.