Oh My Zsh es una herramienta de configuración para Zsh que mejora tu
experiencia en la terminal con funciones como autocompletado
inteligente, alias útiles, integración con Git, y un entorno visual
atractivo. Continúa leyendo o, si prefieres, haz
CLICK AQUÍ
para ver un tutorial paso a paso en YouTube
Artículo recomendado: Vim, el Editor de Texto: Comandos Básicos.
Contenido:
- 1. Instalación de Zsh y herramientas necesarias
- 2. Instalación de Oh My Zsh
- 3. Cambiar el tema del prompt
- 4. Activar y configurar plugins
- 4.1. Qué hacen y cómo usar los plugins instalados
- 5. Crear alias personalizados
- 6. Actualizar Oh My Zsh
- 7. Consejos útiles
- 8. ¿Comandos o configuraciones que dejaron de funcionar?
- 8.1. Casos comunes
-
8.2. Ejemplo práctico: Error
zsh: command not found: node, a pesar de ya tenerlo instalado.
1. Instalación de Zsh y herramientas necesarias
- Debian, Ubuntu y derivados:
- Arch Linux y derivados:
- Fedora, RHEL y derivados:
- Verifica que Zsh esté instalado con:
Ejecuta el siguiente comando según tu distribución para instalar ‘Git’, ‘curl’ y ‘Zsh’:
sudo apt update && sudo apt install git curl zsh -y
sudo pacman -Syu git curl zsh
sudo dnf install git curl zsh
zsh --version
2. Instalación de Oh My Zsh
- Ejecuta el script oficial para instalar Oh My Zsh:
- Verifica que Oh My Zsh está instalado correctamente con:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Este script instalará Oh My Zsh y configurará Zsh como tu shell predeterminado. Si no lo hace, configúralo manualmente con:
chsh -s $(which zsh)
echo $ZSH
3. Cambiar el tema del prompt
-
Abre el archivo de configuración usando
vimVim, el Editor de Texto: Comandos Básicos. También puedes usarnanoo un editor gráfico comovscode: -
Busca y reemplaza la línea
ZSH_THEME="robbyrussell"con el tema que desees, por ejemplo: - Guarda con ‘:wq’ y aplica los cambios con:
- Puedes listar todos los temas disponibles con:
Los temas en Oh My Zsh definen la apariencia del prompt en la terminal. Cambiar el tema puede ayudarte a personalizar el estilo visual, mostrar más o menos información, o simplemente hacer tu entorno más cómodo o funcional para tu flujo de trabajo.
El tema por defecto es
ZSH_THEME="robbyrussell". Puedes
cambiarlo por otro, Asi:
vim ~/.zshrc
ZSH_THEME="ys"
ZSH_THEME=’robbyrussell’
ZSH_THEME=’ys’
source ~/.zshrc
ls $ZSH/themes
4. Activar y configurar plugins
- Abre el archivo de configuración:
-
Busca y reemplaza la línea de plugins
plugins=(git)con : - Instala los plugins externos si aún no los tienes:
- Recarga la configuración:
Los plugins en Oh My Zsh amplían las funcionalidades del shell, agregando comandos, autocompletado, mejoras visuales y herramientas útiles para el trabajo diario. Activarlos permite optimizar tareas comunes y personalizar aún más tu entorno de terminal.
vim ~/.zshrc
plugins=(git z autojump zsh-autosuggestions zsh-syntax-highlighting)
plugins=(git)
plugins=(git z autojump etc…)
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sudo apt install autojump
source ~/.zshrc
4.1. Qué hacen y cómo usar los plugins instalados
-
gst: ejecutagit status -
gco: ejecutagit checkout -
gca: combinagit addygit commiten un solo paso -
gcm: realiza un commit con mensaje directamente -
glog: muestra el historial con una vista compacta y visual del árbol de commits -
gpl: ejecutagit pull -
gps: ejecutagit push -
gaa: ejecutagit add --all -
Primero navega a un directorio de forma habitual para que
zlo registre: - Luego puedes acceder directamente escribiendo parte del nombre:
-
Si quieres eliminar el historial de rutas aprendidas por
z, borra su archivo de datos: - También puedes editar el archivo manualmente si deseas conservar algunas rutas y eliminar otras:
- Este comando solo muestra la ruta almacenada por autojump, pero no cambia de directorio:
-
Usa el alias
jpara ir directamente al directorio más usado que coincida: -
Ejemplo: si antes ejecutaste
git push origin main, al escribir: -
Verás
sh origin mainen gris como sugerencia, y puedes aceptarla con la tecla → (flecha derecha). - Ejemplo: si escribes mal el comando se mostrará en rojo:
‘git’: incluye atajos que ahorran tiempo al trabajar con Git. En lugar de escribir comandos largos, puedes usar alias como:
Ejemplo de uso:
gst
gco -b nueva-rama
gaa
‘z’: recuerda automáticamente los directorios que visitas con más frecuencia y te permite acceder a ellos escribiendo solo una parte del nombre. Cuanto más lo uses, más rápido y preciso será.
cd ~/Documentos/proyecto-cliente
z cliente
rm ~/.z
vim ~/.z
‘autojump’: hace algo similar a z, basado en historial de uso. Requiere reiniciar la terminal la primera vez.
autojump cliente
j completed
‘zsh-autosuggestions’: muestra sugerencias de comandos anteriores mientras escribes, basadas en tu historial. Las sugerencias aparecen en color gris al final de la línea.
git pu
‘zsh-syntax-highlighting’: colorea los comandos en tiempo real mientras los escribes, ayudando a detectar errores de sintaxis o rutas inexistentes antes de ejecutarlos.
c
5. Crear alias personalizados
- Abre el archivo de configuración:
- Agrega alias útiles al final del archivo:
-
alias update='sudo apt update && sudo apt upgrade -y': actualiza el sistema. -
alias cls='clear': limpia la pantalla de la terminal. -
alias ll='ls -lah': lista archivos con detalles y ocultos en formato legible. -
alias ..='cd ..': sube un nivel en el árbol de directorios. -
alias ...='cd ../..': sube dos niveles. -
alias grep='grep --color=auto': resalta coincidencias en los resultados de búsqueda. - Guarda y aplica los cambios:
Los alias personalizados te permiten crear atajos para comandos largos o repetitivos, haciendo que tu experiencia en la terminal sea más rápida, eficiente y cómoda. Son ideales para automatizar tareas comunes con una sola palabra o combinación corta.
vim ~/.zshrc
source ~/.zshrc
6. Actualizar Oh My Zsh
- Usa el siguiente comando para actualizar Oh My Zsh:
- Si no tienes 'omz', usa el comando clásico:
- También puedes actualizar manualmente:
omz update
upgrade_oh_my_zsh
cd ~/.oh-my-zsh
git pull
7. Consejos útiles
- Usa 'TAB' para autocompletar comandos y rutas.
- Usa la flecha '↑' para repetir comandos anteriores.
-
Usa
zoautojumppara navegar rápidamente. - Explora nuevos temas con:
-
Edita el archivo
.zshrcpara probarlos conZSH_THEME='nombre'.
ls $ZSH/themes
8. ¿Comandos o configuraciones que dejaron de funcionar?
Al cambiar de bash a
zsh, es común que algunas cosas que
antes funcionaban ya no lo hagan. Esto puede afectar comandos, alias,
variables de entorno y otras configuraciones importantes del sistema.
8.1. Casos comunes
-
Comandos: herramientas como
node,python,javaodockerpueden dejar de funcionar si no están correctamente configuradas en el entorno o elPATH. -
Alias: comandos como
ll,gsoservepueden desaparecer si estaban definidos como alias en Bash. -
Variables de entorno: definiciones como
JAVA_HOME,ANDROID_HOMEo rutas personalizadas enPATHpueden perderse. -
Entornos virtuales: herramientas como
conda,pyenvopoetryrequieren bloques de inicialización específicos. -
Prompt personalizado: en lugar de
PS1en Bash, Zsh usaZSH_THEMEcon los temas de Oh My Zsh.
Solución general: abre Bash, verifica qué funcionaba,
revisa tu archivo .bashrc con
vim, y copia lo necesario a tu
.zshrc.
⚠️ Advertencia: Antes de copiar cualquier bloque,
revisa si ya existe en .zshrc para
evitar duplicaciones, conflictos o comportamientos inesperados.
8.2. Ejemplo práctico: Error
zsh: command not found: node, a pesar
de ya tenerlo instalado.
Si funcionaba anteriormente, esto se debe a que
nvm (Node Version Manager) no está
inicializado en tu archivo .zshrc.
- Para comprobar si antes funcionaba, puedes abrir temporalmente una terminal con Bash ejecutando:
- Luego, dentro de Bash, prueba si el comando funciona:
-
Si funciona en Bash pero no en Zsh, revisa tu archivo
~/.bashrccon: -
Busca la configuración relacionada, como este bloque de
nvm: -
Y cópialo tal cual al final de tu archivo
~/.zshrccon: -
⚠️ Advertencia: Antes de pegarlo, asegúrate de que
ese bloque no esté ya presente en
.zshrcpara evitar duplicación o errores. - Guarda los cambios y aplícalos con:
bash
node -v
vim ~/.bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
vim ~/.zshrc
.bashrc
.zshrc
source ~/.zshrc
Ahora deberías poder usar node con
normalidad también en Zsh.