Cómo usar Oh My Zsh para exprimir tu terminal

Última actualización: 06/05/2026
Autor: Isaac
  • Oh My Zsh actúa como un framework sobre Zsh que centraliza temas, plugins y configuración avanzada del shell.
  • La instalación requiere tener Zsh, Git y curl/wget, y pasa por configurar Zsh como shell por defecto del sistema.
  • El archivo ~/.zshrc controla el tema y los plugins activos, permitiendo personalizar por completo el aspecto y el comportamiento.
  • Plugins como zsh-syntax-highlighting, zsh-autosuggestions y zsh-completions aportan mejoras clave en autocompletado, legibilidad y productividad.

Configuración de Oh My Zsh en la terminal

Si te pasas medio día con la terminal abierta, tiene poco sentido seguir usando un prompt soso y poco informativo. Zsh y, sobre todo, Oh My Zsh, pueden convertir esa consola aburrida en una herramienta mucho más cómoda, vistosa y productiva. No se trata solo de poner colores bonitos: hablamos de mejor autocompletado, ayudas visuales con Git, alias inteligentes y un montón de pequeños detalles que ahorran tiempo.

En las próximas líneas vamos a ver cómo usar Oh My Zsh desde cero: qué es, cómo instalarlo en Linux y macOS, cómo activarlo como shell por defecto, cómo cambiar de tema, qué plugins merece la pena activar (incluyendo zsh-syntax-highlighting, zsh-autosuggestions y compañía) y cómo resolver problemas típicos de fuentes o locales. La idea es que, al terminar, tengas una terminal moderna y útil, no solo más bonita.

Qué es Zsh y por qué usar Oh My Zsh

Zsh es una shell de Unix que parte de Bash pero añade muchas mejoras de usabilidad y productividad: autocompletado muy potente, opciones avanzadas de scripting, manejo del historial más inteligente y soporte excelente para personalización. En la mayoría de sistemas modernos (macOS, muchas distros Linux) ya lo tienes disponible o se puede instalar fácilmente.

Sobre Zsh se construye Oh My Zsh, que puedes imaginar como un framework de configuración y extensiones. En lugar de tener que escribir a mano todo tu archivo ~/.zshrc, Oh My Zsh te instala una configuración base muy pulida, con:

  • Un conjunto grande de temas listos para usar.
  • Decenas de plugins oficiales y cientos de la comunidad.
  • Actualizaciones sencillas con el comando omz update o upgrade_oh_my_zsh.
  • Una estructura estándar (directorios themes, plugins, custom, etc.) que facilita mantener tu configuración.

En la práctica, Oh My Zsh actúa como un gestor de temas y plugins para Zsh, además de proporcionarte un .zshrc de inicio bastante completo. El código que se instala en ~/.oh-my-zsh se carga desde tu .zshrc cada vez que abres la terminal: ahí es donde entra en juego la lógica para activar temas, plugins, alias y otras opciones.

Requisitos previos: Zsh, Git, curl y compañía

Antes de instalar Oh My Zsh necesitas tener preparado un mínimo de herramientas: Zsh instalado y funcionando, además de Git y, según el método que prefieras, curl o wget para descargar el instalador.

En distribuciones basadas en Red Hat como CentOS o derivados, puedes instalar Zsh y Git con:

sudo yum install git zsh

En Debian, Ubuntu y derivados, el comando equivalente sería:

sudo apt-get install git zsh

En macOS la cosa viene medio hecha: el sistema ya trae Zsh preinstalado en /bin/zsh, pero muchas veces no es la última versión. Si quieres ir al día, lo más cómodo es recurrir a Homebrew para actualizar tanto Zsh como Git:

brew install git zsh

Además, para instalar Oh My Zsh desde el script oficial te hará falta curl (o wget). En Debian/Ubuntu, por ejemplo, puedes añadirlo si no lo tienes ya:

sudo apt install git curl -y

Instalar y activar Zsh como shell por defecto

Una vez instalado el paquete Zsh en tu sistema, el siguiente paso es hacer que sea la shell principal cuando abras una nueva sesión o terminal. Si no haces esto, seguirás entrando en Bash u otra shell antigua.

En la mayoría de sistemas basta con ejecutar:

chsh -s $(which zsh)

Este comando cambia tu shell de login al binario devuelto por which zsh. Tras introducir tu contraseña, cierra sesión y vuelve a entrar para que surta efecto. Si quieres comprobarlo, puedes lanzar:

echo $0

y deberías ver zsh como resultado. También puedes revisar qué Zsh estás usando con:

which zsh

En algunos entornos (por ejemplo, ciertas versiones de CentOS) puede que tengas que usar un comando adicional para el usuario actual:

usermod -s $(which zsh) $(whoami)

Si al cambiar la shell aparece el mensaje «non-standard shell», el sistema te está avisando de que esa ruta no está en la lista de shells permitidas en /etc/shells. La solución es sencilla: copia la ruta exacta de which zsh, edita /etc/shells como root y pega esa línea. Después vuelve a lanzar el comando chsh.

Terminal configurada con Oh My Zsh y plugins

Instalar Oh My Zsh paso a paso

Con Zsh activo como shell predeterminada, ya puedes pasar a instalar el framework Oh My Zsh. El método estándar es usar el script oficial que se encuentra en GitHub y se descarga con curl o wget.

  dpkg vs apt vs apt-get: diferencias reales y cuándo usar cada uno

Instalación usando curl:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

o, en algunos artículos antiguos, verás la URL de robbyrussell (el creador original):

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

Instalación usando wget en su lugar:

sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Durante la instalación, el script clona el repositorio en ~/.oh-my-zsh, genera un ~/.zshrc nuevo basado en una plantilla y te pregunta si quieres establecer Zsh como shell por defecto (si no lo habías hecho ya) y si puede sobrescribir un .zshrc existente.

Al terminar el proceso, lo normal es que el prompt cambie por completo y veas una interfaz de línea de comandos con colores, información básica de Git si estás en un repositorio y un aspecto más cuidado. Eso es Oh My Zsh trabajando por ti.

Qué hace realmente Oh My Zsh por debajo

Mucha gente se pregunta qué está pasando “detrás de bambalinas”. Oh My Zsh no es magia negra, sino un conjunto de scripts Zsh, funciones, plantillas de configuración y colecciones de plugins y temas.

Al instalarse, crea un árbol de directorios en ~/.oh-my-zsh con esta estructura general:

  • themes/: almacena todos los temas preinstalados, cada uno en su propio fichero .zsh-theme.
  • plugins/: contiene los plugins oficiales, como git, docker, vscode, npm, etc.
  • custom/: pensado para tus temas y plugins personalizados, para no tocar el core del framework.
  • templates/: incluye la plantilla zshrc.zsh-template que sirve de base para generar tu .zshrc.

Tu archivo ~/.zshrc carga el script principal de Oh My Zsh y, a partir de ahí, se activan los temas, plugins y opciones según lo que definas en las variables ZSH_THEME y plugins=(...). La lógica del framework también se ocupa de tareas como actualizarse, inicializar autocompletados o establecer alias por defecto.

¿Es un gestor de extensiones? En la práctica, sí: centraliza la instalación, activación y carga de temas y plugins sobre Zsh. El código que se ejecuta al abrir una terminal se encarga de enganchar todas esas piezas en tu sesión de shell.

Personalizar el tema de Oh My Zsh

Una de las primeras cosas que suele hacer cualquiera tras instalar Oh My Zsh es cambiar el tema por defecto. El tema inicial suele ser robbyrussell, sencillo pero poco espectacular comparado con otros más modernos.

Para modificarlo, edita el archivo de configuración con tu editor favorito. Por ejemplo:

nano ~/.zshrc

Busca la línea donde se define el tema:

ZSH_THEME="robbyrussell"

y cambia el valor por cualquier otro disponible, como el popular agnoster:

ZSH_THEME="agnoster"

Guarda el archivo y recarga la configuración con:

source ~/.zshrc
# o
exec zsh

El comando source vuelve a leer el archivo dentro de la sesión actual, mientras que exec zsh relanza completamente la shell, algo útil cuando cambias a un tema que carga cosas diferentes. Si quieres ver todos los temas integrados, puedes listar el directorio:

ls ~/.oh-my-zsh/themes/

Si prefieres algo más dinámico, incluso existe la posibilidad de usar un tema aleatorio cada vez que abras la terminal. Para ello, configura:

ZSH_THEME="random"
ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" "xiong-chiamiov" )

De este modo, la shell elegirá uno de los candidatos definidos en ese array cada inicio.

Temas avanzados: Powerlevel9k y Powerlevel10k

Más allá de los temas que vienen de serie, hay otros muy populares que se instalan aparte. Uno de los más conocidos es Powerlevel10k, heredero mejorado de Powerlevel9k, pensado para ofrecer mucha información (Git, estado del sistema, contexto, etc.) con un rendimiento altísimo.

Para instalar Powerlevel10k sobre Oh My Zsh puedes clonar su repositorio en el directorio de temas personalizados:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \ 
  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Después ajusta ~/.zshrc para usarlo:

ZSH_THEME="powerlevel10k/powerlevel10k"

Al abrir una nueva terminal, se lanzará un asistente interactivo de configuración que te va preguntando por el estilo de prompt que prefieres, símbolos, colores, nivel de información de Git, etc. Es muy flexible y, sobre todo, muy rápido comparado con otros temas cargados.

Si te interesa el tema clásico Powerlevel9k, el procedimiento es similar:

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

ZSH_THEME="powerlevel9k/powerlevel9k"

En ambos casos, estos temas suelen requerir fuentes con glifos especiales (Powerline o Nerd Fonts) para que las flechas y símbolos no se vean como cuadrados raros.

Fuentes especiales y problemas de caracteres

Muchos temas tipo powerline (como agnoster o Powerlevel10k con ciertos estilos) usan símbolos especiales: flechas, iconos de rama, separadores segmentados, etc. Si tu fuente no soporta esos glifos, verás cuadraditos o interrogaciones.

Para solucionarlo, tienes dos caminos habituales:

  • Instalar Powerline Fonts.
  • Instalar una fuente de la familia Nerd Fonts (por ejemplo, Meslo, Fira Code o Inconsolata parcheadas).

Instalación de Powerline Fonts desde GitHub:

git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd ..
rm -rf fonts

Una vez instaladas, abre las preferencias de tu emulador de terminal (por ejemplo, en iTerm2: Preferences > Profiles > Text > Change Font) y selecciona una fuente “for Powerline”, como Meslo LG DZ for Powerline o similar.

Si además quieres disfrutar de ligaduras de programación (por ejemplo, que => se vea como una flecha), puedes instalar Fira Code y activar la opción de ligatures en el emulador (en iTerm2, la casilla “Use ligatures”).

Otro problema habitual es el error del tipo (anon):12: character not in range, especialmente en entornos como contenedores Docker donde los locales no vienen preinstalados. Eso ocurre porque la shell intenta mostrar caracteres Unicode que tu configuración de locales no soporta. En Debian/Ubuntu, suele bastar con instalar:

sudo apt install locales-all

y luego reiniciar sesión para que Zsh pueda trabajar sin problemas con UTF-8.

Oh My Zsh en macOS con iTerm2 y Homebrew

En macOS es muy típico montar una configuración “completa” combinando Homebrew, iTerm2, Zsh actualizado y Oh My Zsh. El flujo suele ser este:

  1. Instalar las herramientas de línea de comandos de Xcode:
xcode-select --install

Si hay problemas, puedes resetear con:

xcode-select -r
  1. Instalar Homebrew con el script oficial:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Instalar iTerm2 como emulador de terminal moderno:
brew install --cask iterm2
  1. Instalar o actualizar Zsh vía Brew:
brew install zsh
  1. Establecer la versión de Brew como shell por defecto:
chsh -s /usr/local/bin/zsh

Después de cerrar sesión y volver entrar, comprueba con:

echo $0   # debería decir zsh
which zsh # debería apuntar a /usr/local/bin/zsh u otra ruta de Brew según el chip
  1. Instalar Oh My Zsh con el método visto antes y, si quieres, añadir temas, esquemas de color de iTerm2 y fuentes.

Para los esquemas de colores de iTerm2 (Batman, Argonaut, etc.) solo hay que descargar el repositorio iTerm2-color-schemes, ir a la carpeta Schemes y, desde iTerm2, importar los archivos .itermcolors desde Preferences > Profiles > Colors > Color Presets > Import.

Plugins esenciales de Oh My Zsh

Lo que realmente dispara la productividad son los plugins de Oh My Zsh. Por defecto suele venir activado únicamente el de Git, pero puedes añadir todos los que te hagan falta, tanto de los integrados como de la comunidad.

Para gestionar los plugins, abre de nuevo ~/.zshrc y localiza la línea:

plugins=(git)

A partir de ahí puedes ampliar la lista, por ejemplo:

plugins=(
  git
  zsh-autosuggestions
  zsh-syntax-highlighting
  zsh-completions
)

Los plugins integrados (como git, docker, node, npm, vscode, etc.) ya están en ~/.oh-my-zsh/plugins y solo necesitan ser añadidos al array. Para los plugins de la comunidad, primero hay que clonar el repositorio en el directorio de plugins personalizados y después referenciarlos en plugins=(...).

zsh-syntax-highlighting

Este plugin colorea los comandos en tiempo real, de forma que ves en verde lo que existe y en rojo lo que está mal escrito o no está instalado. Es muy útil para evitar errores tontos antes de pulsar Enter.

Instalación:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Luego añádelo en ~/.zshrc dentro del array de plugins. Tras guardar, recarga la shell con source ~/.zshrc.

zsh-autosuggestions

Este plugin muestra sugerencias de comandos basadas en tu historial mientras vas escribiendo. Verás la sugerencia en gris y, si te interesa, puedes aceptarla pulsando la flecha derecha.

Instalación:

git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Después, añádelo al array plugins=(...). Si el color de la sugerencia no te convence, puedes ajustarlo añadiendo algo así a tu .zshrc:

export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=5"

En este caso, el 5 corresponde a un tono morado dentro de la paleta estándar.

zsh-completions y otros plugins interesantes

El plugin zsh-completions añade un montón de autocompletados extra para herramientas como Git, Composer, UFW, Node y muchas más. Se instala de forma similar:

git clone https://github.com/zsh-users/zsh-completions \
  ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions

No olvides activar el sistema de completado en tu .zshrc si todavía no lo tenías:

autoload -U compinit && compinit

Además de estos, merece la pena echar un ojo a plugins como:

  • docker o plugins específicos como zsh-docker, para autocompletar comandos de Docker.
  • node y npm, muy útiles si trabajas con JavaScript/TypeScript.
  • vscode, que facilita abrir proyectos con code . y otros atajos.
  • copydir y copyfile, para copiar rápidamente rutas y contenidos al portapapeles.
  • dirhistory, que permite navegar por el historial de directorios usando combinaciones como Alt+izquierda/derecha.

Alias, funciones y personalización avanzada

Aunque Oh My Zsh trae muchos alias por defecto, siempre puedes definir tus propios atajos en el .zshrc. Por ejemplo, si estás harto de escribir docker images, puedes crear un alias corto:

alias dckimgs="docker images"

También puedes aprovechar para crear funciones más complejas, o incluso tu propio plugin personalizado. Un ejemplo sencillo sería crear un directorio y entrar en él de un tirón:

function mkcd() {
  mkdir -p "$1" && cd "$1"
}

Si quieres agrupar alias y funciones en un plugin propio, puedes crearlo en ~/.oh-my-zsh/custom/plugins/misutils/ con un archivo misutils.plugin.zsh, meter ahí todas tus utilidades y añadir misutils al array plugins=(...).

Rendimiento, problemas típicos y buenas prácticas

Si empiezas a activar plugins a lo loco, es posible que con el tiempo notes que la terminal tarda demasiado en abrirse. No es raro cuando se cargan muchos scripts pesados o plugins que hacen comprobaciones de red, por ejemplo.

Para medir el tiempo de inicio de Zsh con tu configuración actual puedes usar:

time zsh -i -c exit

Si el resultado se dispara por encima de uno o dos segundos, quizá convenga revisar. Un truco es ir deshabilitando plugins temporalmente y volver a medir, para identificar el que se está comiendo más tiempo. Los sospechosos habituales suelen ser:

  • Plugins con lógica compleja de Git sobre repos gigantes.
  • Plugins que lanzan comandos externos en el arranque.
  • Gestores de versiones de lenguajes (nvm, pyenv, etc.) mal configurados.

También es buena idea evitar duplicidades: por ejemplo, no tiene mucho sentido usar dos plugins de autocompletado avanzados a la vez si se pisan entre sí. Y, cada cierto tiempo, conviene actualizar tanto Oh My Zsh como los plugins de la comunidad:

omz update   # o upgrade_oh_my_zsh según tu versión

cd ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git pull

Si en algún momento tu configuración se rompe o empieza a dar errores raros, siempre puedes hacer una copia de seguridad del .zshrc actual y volver a la plantilla original:

cp ~/.zshrc ~/.zshrc.backup
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

y, a partir de ahí, ir reintroduciendo tus cambios con calma.

Con todo lo visto, ya tienes un panorama bastante completo de cómo usar Oh My Zsh: desde la instalación de Zsh y el framework, pasando por la elección de temas (tanto básicos como avanzados tipo Powerlevel10k), la configuración de fuentes y esquemas de color, hasta la activación de plugins clave como zsh-syntax-highlighting, zsh-autosuggestions o zsh-completions. Si dedicas un rato a ajustar tema, plugins y alias a tu gusto, tu terminal dejará de ser una simple pantalla negra y se convertirá en un entorno de trabajo muy cómodo, donde cada detalle visual y cada sugerencia automática juega a favor de tu productividad diaria.