Potencia tu terminal con Oh My Zsh en GNU/Linux

Índice – Instalación de WordPress en Debian

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 YouTube

Artículo recomendado: Vim, el Editor de Texto: Comandos Básicos.

1. Instalación de Zsh y herramientas necesarias

    Ejecuta el siguiente comando según tu distribución para instalar ‘Git’, ‘curl’ y ‘Zsh’:

  • Debian, Ubuntu y derivados:
  • sudo apt update && sudo apt install git curl zsh -y
  • Arch Linux y derivados:
  • sudo pacman -Syu git curl zsh
  • Fedora, RHEL y derivados:
  • sudo dnf install git curl zsh
    undefined
  • Verifica que Zsh esté instalado con:
  • zsh --version
    undefined

2. Instalación de Oh My Zsh

  • Ejecuta el script oficial para instalar Oh My Zsh:
  • sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    undefined

    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)
  • Verifica que Oh My Zsh está instalado correctamente con:
  • echo $ZSH
    undefined

3. Cambiar el tema del prompt

    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:

  • Abre el archivo de configuración usando vim Vim, el Editor de Texto: Comandos Básicos. También puedes usar nano o un editor gráfico como vscode:
  • vim ~/.zshrc
    undefined
  • Busca y reemplaza la línea ZSH_THEME="robbyrussell" con el tema que desees, por ejemplo:
  • ZSH_THEME="ys"

    ZSH_THEME=’robbyrussell’

    ZSH_THEME=’ys’

  • Guarda con ‘:wq’ y aplica los cambios con:
  • source ~/.zshrc
    undefined
  • Puedes listar todos los temas disponibles con:
  • ls $ZSH/themes
    undefined

4. Activar y configurar plugins

    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.

  • Abre el archivo de configuración:
  • vim ~/.zshrc
    undefined
  • Busca y reemplaza la línea de plugins plugins=(git) con :
  • plugins=(git z autojump zsh-autosuggestions zsh-syntax-highlighting)

    plugins=(git)

    plugins=(git z autojump etc…)

  • Instala los plugins externos si aún no los tienes:
  • 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
    undefined
  • Recarga la configuración:
  • source ~/.zshrc

4.1. Qué hacen y cómo usar los plugins instalados

    ‘git’: incluye atajos que ahorran tiempo al trabajar con Git. En lugar de escribir comandos largos, puedes usar alias como:

    • gst: ejecuta git status
    • gco: ejecuta git checkout
    • gca: combina git add y git commit en 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: ejecuta git pull
    • gps: ejecuta git push
    • gaa: ejecuta git add --all

    Ejemplo de uso:

    gst
    gco -b nueva-rama
    gaa
    undefined

    ‘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á.

    • Primero navega a un directorio de forma habitual para que z lo registre:
    • cd ~/Documentos/proyecto-cliente
    • Luego puedes acceder directamente escribiendo parte del nombre:
    • z cliente
      undefined
    • Si quieres eliminar el historial de rutas aprendidas por z, borra su archivo de datos:
    • rm ~/.z
      undefined
    • También puedes editar el archivo manualmente si deseas conservar algunas rutas y eliminar otras:
    • vim ~/.z

    ‘autojump’: hace algo similar a z, basado en historial de uso. Requiere reiniciar la terminal la primera vez.

    • Este comando solo muestra la ruta almacenada por autojump, pero no cambia de directorio:
    • autojump cliente
    • Usa el alias j para ir directamente al directorio más usado que coincida:
    • j completed
    undefined

    ‘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.

  • Ejemplo: si antes ejecutaste git push origin main, al escribir:
  • git pu
    undefined
    • Verás sh origin main en gris como sugerencia, y puedes aceptarla con la tecla → (flecha derecha).

    ‘zsh-syntax-highlighting’: colorea los comandos en tiempo real mientras los escribes, ayudando a detectar errores de sintaxis o rutas inexistentes antes de ejecutarlos.

  • Ejemplo: si escribes mal el comando se mostrará en rojo:
  • c
    undefined

5. Crear alias personalizados

    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.

  • Abre el archivo de configuración:
  • vim ~/.zshrc
    undefined
  • 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.
    undefined
  • Guarda y aplica los cambios:
  • source ~/.zshrc
    undefined

6. Actualizar Oh My Zsh

  • Usa el siguiente comando para actualizar Oh My Zsh:
  • omz update
  • Si no tienes 'omz', usa el comando clásico:
  • upgrade_oh_my_zsh
    undefined
  • También puedes actualizar manualmente:
  • cd ~/.oh-my-zsh
    git pull
    undefined

7. Consejos útiles

  • Usa 'TAB' para autocompletar comandos y rutas.
  • Usa la flecha '↑' para repetir comandos anteriores.
  • Usa z o autojump para navegar rápidamente.
  • Explora nuevos temas con:
  • ls $ZSH/themes
  • Edita el archivo .zshrc para probarlos con ZSH_THEME='nombre'.

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, java o docker pueden dejar de funcionar si no están correctamente configuradas en el entorno o el PATH.
  • Alias: comandos como ll, gs o serve pueden desaparecer si estaban definidos como alias en Bash.
  • Variables de entorno: definiciones como JAVA_HOME, ANDROID_HOME o rutas personalizadas en PATH pueden perderse.
  • Entornos virtuales: herramientas como conda, pyenv o poetry requieren bloques de inicialización específicos.
  • Prompt personalizado: en lugar de PS1 en Bash, Zsh usa ZSH_THEME con 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.

undefined
  • Para comprobar si antes funcionaba, puedes abrir temporalmente una terminal con Bash ejecutando:
  • bash
  • Luego, dentro de Bash, prueba si el comando funciona:
  • node -v
  • Si funciona en Bash pero no en Zsh, revisa tu archivo ~/.bashrc con:
  • vim ~/.bashrc
  • Busca la configuración relacionada, como este bloque de nvm:
  • export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
  • Y cópialo tal cual al final de tu archivo ~/.zshrc con:
  • vim ~/.zshrc
  • ⚠️ Advertencia: Antes de pegarlo, asegúrate de que ese bloque no esté ya presente en .zshrc para evitar duplicación o errores.
  • .bashrc

    .zshrc

  • Guarda los cambios y aplícalos con:
  • source ~/.zshrc

Ahora deberías poder usar node con normalidad también en Zsh.

undefined

Deja un comentario