Configurar atajos en la terminal de Mac


¿Cuántas veces al día escribes el mismo comando largo en la terminal? Esa ruta interminable para llegar a tu carpeta de trabajo, ese script que ejecutas siempre igual. Yo lo hacía a diario hasta que descubrí que en mi Mac hay un archivo escondido cuyo único trabajo es ahorrarme exactamente eso. En este post te lo presento y te enseño a darle tu primer atajo.

1. El archivo que se ejecuta solo: .zshrc

Empecemos por lo principal, porque casi nadie te lo explica claro: en tu Mac existe un archivo llamado .zshrc que vive en tu carpeta de usuario. No es una carpeta ni un programa —es un simple archivo de texto.

Lo que lo hace especial es cuándo se ejecuta: cada vez que abres una ventana nueva de la terminal, tu Mac lee ese archivo de arriba a abajo y ejecuta todo lo que haya dentro, antes de darte el control. Piénsalo como las instrucciones de arranque de tu terminal: lo que pongas ahí "ya está listo" cada vez que empiezas a trabajar.

Dos detalles del nombre, para que no te confunda:

  • El ~ (que verás siempre que se hable de este archivo) es la forma corta de referirse a tu carpeta de usuario. La ruta completa es ~/.zshrc.
  • El punto al inicio (.zshrc) hace que el archivo esté oculto. Por eso no lo ves normalmente en Finder —pero ahí está.

¿Por qué "zsh"? Porque es el nombre del programa que interpreta tus comandos en la terminal de Mac (se llama Z shell, o zsh). El .zshrc es su archivo de configuración. En Macs antiguas el programa era otro (bash) y el archivo se llamaba .bashrc —si ves ese nombre por ahí, es lo mismo pero de la era anterior.

2. Ejemplo práctico: un atajo para tu carpeta de siempre

Vamos con el caso más útil y más fácil de entender: tienes una carpeta a la que entras todos los días, y estás cansado de escribir la ruta completa. La vamos a convertir en una sola palabra.

Imagina que cada día haces esto para llegar a la carpeta de tu proyecto:

cd ~/Documents/proyectos/dashboard-ventas

Eso sí que se vuelve tedioso: carpetas anidadas, varios niveles de profundidad, y la tienes que escribir entera cada mañana (o pelear con el autocompletado). Lo que queremos es escribir una palabra fácil de recordar —digamos hola-proyecto— y que la terminal nos lleve sola hasta allá.

Para lograrlo, abrimos el .zshrc y le agregamos una función:

hola-proyecto() {
  cd ~/Documents/proyectos/dashboard-ventas
}

Te traduzco línea por línea:

  • hola-proyecto() — le da nombre a tu atajo. Lo que escribas aquí es lo que vas a teclear en la terminal después.
  • Las llaves { } envuelven las instrucciones que se ejecutarán cuando llames al atajo.
  • cd ~/Documents/proyectos/dashboard-ventas — el comando real que quieres ahorrarte. cd significa change directory (cambiar de carpeta).

Hay un último paso que mucha gente olvida y por eso cree que "no funcionó": el .zshrc solo se lee al abrir una terminal nueva. Si lo editas en una terminal que ya está abierta, tienes que pedirle que vuelva a leer el archivo:

source ~/.zshrc

A partir de ahí, en cualquier terminal solo escribes hola-proyecto y apareces en la carpeta del proyecto. Lo escribiste una vez; lo usas para siempre.

3. Funciones y "alias": dos formas del mismo atajo

El ejemplo de arriba es una función. Pero existe un primo más simple llamado alias, y conviene que conozcas la diferencia para elegir bien:

  • Un alias solo cambia una palabra por un comando. Es para atajos de un único comando fijo. Por ejemplo: alias gs="git status" —escribes gs y se ejecuta git status. Punto.
  • Una función puede hacer varias cosas, encadenar comandos y recibir información extra. Es para cuando el atajo necesita más de un paso.

Regla simple para no dudar: ¿es un solo comando que nunca cambia? → alias. ¿necesitas varios pasos o algo de lógica? → función. Para empezar, con cualquiera de los dos resuelves el 90% de tus necesidades.

4. Todo lo demás que ese archivo puede hacer

El atajo de carpeta es apenas la punta del iceberg. Para que tengas el panorama completo, esto es lo que cabe dentro de un .zshrc —no te preocupes por dominarlo ahora, solo quiero que sepas que existe:

  • Aliases y funciones — los atajos que ya vimos. Lo que más usarás al principio.
  • Variables de entorno — datos que tus programas leen al arrancar (por ejemplo, cuál es tu editor de texto por defecto).
  • Modificar el PATH — la lista de carpetas donde la terminal busca programas. Si alguna vez instalaste algo y te dijo "command not found", esto suele ser la causa.
  • Personalizar el prompt — cambiar cómo se ve tu línea de comandos: colores, o mostrar en qué rama de Git estás parado.
  • Inicializar herramientas — preparar programas como gestores de versiones de Python o Node cada vez que abres la terminal.

La idea de fondo es siempre la misma: lo que repites a diario, lo dejas listo una vez aquí.

5. ¿Cuándo vale la pena? El único contra a tener en cuenta

Podrías pensar "entonces lleno el archivo de atajos y listo". Cuidado, porque hay un costo: cada línea del .zshrc se ejecuta al abrir la terminal. Si lo llenas de cosas pesadas, cada ventana nueva tarda un poco más en estar lista. En la práctica, con atajos sencillos como los de este post, ni lo notas —el problema aparece cuando cargas herramientas grandes sin necesidad.

Mi criterio para decidir qué merece un atajo:

  1. Rutas que navego siempre. Si entro a la misma carpeta cada día, eso es un atajo seguro.
  2. Comandos largos que repito tal cual. Si tecleo lo mismo por tercera vez, es candidato.
  3. Lo que NO tiene sentido como atajo: comandos que uso una vez al mes, o atajos tan crípticos que en un mes no recordaré qué hacen.

En resumen: no se trata de llenar el archivo, sino de quitarte de encima lo que repites sin pensar. Empieza pequeño y agrega un atajo solo cuando notes el patrón.

Una advertencia importante: nunca guardes contraseñas, tokens ni claves de API dentro del .zshrc. No es el lugar para secretos. Para eso existen otros mecanismos —tema para otro post.

6. Mi conclusión

El .zshrc es de esas cosas que, una vez que las entiendes, te preguntas cómo trabajabas sin ellas. No necesitas saber programar ni convertirte en experto de la terminal: con entender que es "un archivo que se ejecuta al abrir la terminal" y saber meterle una función, ya le ganas horas al mes a las rutas largas. Mi recomendación es que empieces hoy con un solo atajo —la carpeta donde más entras— y dejes que el archivo crezca solo, al ritmo de lo que de verdad repites.

7. Recursos

8. Pendientes

  • [ ] Rastrear durante unos días qué comandos uso realmente más en la terminal (revisar el historial con history) y convertir los más frecuentes en atajos para una segunda parte de este post.