A veces, usar el terminal que viene por defecto en Mac es un rollo. Si lo que te apetece es salirte de lo ordinario y darle vida a tu terminal aburrido mejorando, a la vez, tu productividad, te presento Z shell (Zsh).

Zsh es un intérprete de comandos (o shell) de Unix que está montado por encima de Bash (la shell predeterminado de macOS) y contiene muchas mejoras.

En este tutorial, vamos a configurar iTerm2 con Zsh y sus dependencias. Es una decisión muy acertada y después de hacerlo vas a pensar, "¿por qué no descubrí Zsh antes?" Bueno, ya que estás aquí, vamos a empezar.

Puntos claves

  • Instalación de Homebrew
  • Instalación de iTerm2
  • Instalación de Zsh y Oh My Zsh
  • Configurar las dependencias para crear un terminal bonito

Paso 1: instalar Homebrew

Homebrew es un gestor de paquetes de software de código abierto y gratuito que simplifica la instalación de software en dispositivos Apple que usan macOS.

Antes de instalar Homebrew, tenemos que instalar las herramientas de CLI para Xcode. Abre tu terminal y ejecuta el comando:

xcode-select —-install

Si te sale un error, ejecuta xcode-select -r para hacer reset de xcode-select.

Después, instala Homebrew.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Paso 2: instalar iTerm2

iTerm2 es un reemplazo para el terminal y es el sucesor de iTerm. La mayoría de los desarrolladores de software prefieren iTerm2 al terminal predeterminado de macOS gracias a sus numerosas prestaciones adicionales. Puedes integrar Zsh en iTerm2 para mejorar tu productividad.

Para instalar iTerm2, ejecuta el comando:

brew cask install iterm2

Paso 3: instalar Zsh

Zsh se diseñó para poder usarse de manera interactiva, aunque también es un potente lenguaje de secuencias de comandos.

MacOS viene por defecto con Zsh en el directorio /bin/zsh.

Vamos a instalar Zsh usando brew y hacer que iTerm2 lo use.

brew install zsh

Paso 4: instalar Oh My Zsh

“Oh My Zsh es un framework de código abierto impulsado por la comunidad, para gestionar tu configuración de Zsh. No te convertirá en un desarrollador 10x... pero puede que te sientas como uno después de instalarlo.”
— Robby Russell

Se ejecuta en Zsh para proporcionar unas prestaciones configurables dentro del archivo de configuración ~/.zhrc. Instala Oh My Zsh ejecutando el comando:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Comprueba la versión instalada:

zsh --version

Puedes actualizarlo también para obtener las últimas prestaciones que ofrece.

upgrade_oh_my_zsh

Reinicia iTerm2 para empezar con la experiencia de Zsh. ¡Bienvenido al mundo de "Oh My Zsh"!

Y eso no es todo. Ahora, vamos a instalar las dependencias para sacar lo mejor de Zsh.

Paso 5: cambiar el tema predeterminado

Por defecto, Oh My Zsh viene con un montón de temas. El predeterminado es el de robbyrussell, pero lo puedes cambiar a cualquier tema que elijas. En este ejemplo, lo he cambiado a agnoster, un tema que viene preinstalado.

Tienes que seleccionar este tema en ~/.zshrc. Para abrir el fichero de configuración (.zshrc), ejecuta:

nano ~/.zshrc

O abre el fichero con un editor de textos usando:

open ~/.zshrc
umcC5b7qtng38UbZngNRwMXq6NzwmR8SqIes

Configura el tema de Zsh y actualiza los cambios:

source ~/.zhrc

Usar un tema personalizado

Para instalar un tema no preinstalado, clona el repositorio al directorio custom/themes. En este ejemplo vamos a instalar powerlevel9k:

$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

Luego, selecciona este tema en tu ~/.zshrc:

ZSH_THEME="powerlevel9k/powerlevel9k"

Actualiza los cambios ejecutando el comando source ~/.zshrc

Navega a iTerm2 > Preferences > Profiles > Colors si quieres cambiar el color del terminal.

El tema que hemos seleccionado en este ejemplo requiere la fuente powerline así que vamos a instalarla.

Paso 6: instalar fuente

Voy a usar Inconsolata. Puedes buscar tu fuente favorita en Powerline fonts y luego instalarla.

l-nkEZ87vggoFrm5xPNGvyNMv9hyxZc2tE1U

O también puedes descargar la fuente entera.

git clone https://github.com/powerline/fonts.git

cd fonts

./install.sh

Para cambiar la fuente, navega a iTerm2 > Preferences > Profiles > Text > Change Font.

Ahora puedes ver que Inconsolata aparece en el listado de fuentes. Selecciona tu fuente preferida. Para fuentes que tienen soporte para ligaduras como FiraCode, chequea la opción "Use ligatures" para ver las flechas o otros operadores de forma elegante, como por ejemplo ( ).

flJ1CL1uDv0QoX-TK0MBgn7CVuyG0wOG388V
Seleccionar una fuente "Powerline"

Paso 7: instalar un esquema de colores

Vamos a cambiar el esquema de colores para tener un terminal más bonito. Navega a iTerm2-Color-Schemes y descárgate el directorio ZIP. Luego, extrae el directorio porque lo que necesitamos está en la carpeta de esquemas (schemes).

Navega a iTerm2 > Preferences > Profile > Colors > Color Presets > Import

  • Navega a la carpeta de esquemas y selecciona tus colores favoritos para así importarlos.
  • Haz clic en un color específico para activarlo. En este ejemplo he activado "Batman" porque es mi esquema de colores favorito.
0NGtEWFgLWeyM4tzGVtQ4xTNNqBdnHMdZMGw

¡Ya hemos terminado con los ajustes básicos ? ? !

tFnT1hiSKgWYMYYTNIzUfjD1Z5vIe2QnjSlI
Esquema de colores "Batman"

Paso 8: instalar plugins

Oh My Zsh viene con un plugin de Git preinstalado. Para añadir otros plugins, como por ejemplo Docker, sugerencia automática, resaltado de sintaxis y más:

  • Clona el repositorio Git del plugin que quieres. Por ejemplo:
git clone https://github.com/zsh-users/zsh-docker.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-docker
  • Navega al directorio .oh-my-zsh > custom > plugins para ver el directorio clonado. Para accederlo ejecuta open ~/.oh-my-zsh
  • Añade el plugin a la sección de plugins del archivo de configuración ~/.zshrc, tal como se ve en la captura abajo
  • Actualiza tus cambios ejecutando source ~/.zshrc
oK1lzMvgGrsycWUoueagV0a99eq00akzwiEW

Step 9: añadir aliases

Los alias son unos atajos que se usan para reducir el tiempo que pasas tecleando comandos. Puedes añadir aliases a comandos que ejecutas igual que en el ejemplo que tienes abajo.

VmmW4SCRGXW2cQ74o4nODyLOlNgZYeJEgOyR-1
Si tecleas dckimgs se ejecuta el comando de Docker images

Si conoces otras maneras de mejorar la productividad con Zsh, puedes comentarlas abajo. Encantado de leer tus sugerencias.