Cómo instalar Oh My Zsh en Ubuntu 22.04 (Guía paso a paso para la instalación de Oh My Zsh)

Z Shell (Zsh) es una shell interactiva de Unix reconocida por su función como intérprete de comandos y herramienta de scripting de shell. Representa una versión mejorada de la Bourne shell, incorporando diversas mejoras inspiradas en las funcionalidades de Bash, ksh y tcsh. Zsh ofrece numerosas ventajas, entre ellas la finalización de comandos en la línea, historial compartido, globbing avanzado, autocompletado inteligente con tabulación, corrección ortográfica y una amplia colección de plugins y temas.

Este tutorial le guiará a través del proceso de instalación de Oh My Zsh. También veremos cómo instalar Zsh en el sistema Ubuntu 22.04, lo que le permitirá aprovechar sus potentes funciones para mejorar la experiencia en la línea de comandos.

¿Cuál es la diferencia entre Zsh y Bash?

Tanto Zsh como Bash son intérpretes de línea de comandos de código abierto ampliamente adoptados. Zsh está diseñado para ser retrocompatible con Bash y posee una sintaxis casi idéntica. Esto garantiza una transición fluida entre ambos, ya que la mayoría de los comandos y patrones de interacción aprendidos en Bash también se aplican en Zsh.

Al comparar Zsh vs. Bash, la diferencia más destacada son las amplias capacidades de personalización interactiva que ofrece Zsh. Los usuarios pueden personalizar su experiencia de shell configurando temas y aprovechando el amplio ecosistema de plugins de Zsh. Estos plugins introducen numerosos ajustes interactivos que mejoran la experiencia global del usuario.

Aunque las mejoras individuales puedan parecer modestas, el efecto acumulativo de estos ajustes de productividad eleva rápidamente el rendimiento en la línea de comandos a un nivel superior.

Requisitos previos

Para instalar Zsh y el plugin Oh My Zsh, debe cumplir los siguientes requisitos:

Ubuntu 22.04 o la versión más reciente debe ejecutarse en su sistema o dentro de VirtualBox.

Debe disponer de privilegios root o sudo en caso de usar un usuario no root.

Instalación de Zsh en Ubuntu 22.04 (Instalar Zsh Ubuntu)

Antes de iniciar el proceso de configuración de Oh My Zsh, necesita instalar Zsh en Ubuntu 22.04. Por lo tanto, siga los pasos indicados a continuación para instalar Zsh en Ubuntu. Tras completar la instalación de Zsh, le guiaremos en la instalación de Oh My Zsh en Ubuntu 22.04 y en cómo comenzar a utilizar este entorno de shell mejorado.

Comencemos la instalación de Oh My Zsh en Ubuntu 22.04.

Instalar Zsh en Ubuntu 22.04

Para instalar Zsh en Ubuntu, siga los pasos a continuación:

Paso 1: Actualizar los repositorios Apt de Ubuntu
Antes de instalar Zsh en Ubuntu, es esencial actualizar los repositorios de software. Abra la terminal y ejecute el siguiente comando:

$ sudo apt update

Después de instalar las actualizaciones, configure las dependencias necesarias para instalar Zsh en Ubuntu 22.04:

$ sudo apt install build-essential curl file git

Paso 2: Instalar Zsh desde los repositorios oficiales de Ubuntu
Para instalar Zsh en Ubuntu usando los repositorios apt, ejecute:

$ sudo apt install -y zsh

En el comando anterior, la opción "-y" acepta automáticamente todas las confirmaciones de instalación.

Paso 3: Verificar la instalación de Zsh
Una vez instalado Zsh, puede verificar la instalación mostrando la versión instalada:

$ zsh --version

El comando anterior mostrará la versión de Zsh instalada en su servidor.

También puede verificar la instalación comprobando la ruta del binario:

$ which zsh

El comando debería mostrar la ruta “usr/bin/zsh.”

También puede usar:

$ whereis zsh

El comando “whereis” muestra la ubicación de un programa o script del sistema. En este caso, indica la ruta específica de Zsh.

Paso 4: Establecer Zsh como shell predeterminada
Ahora que Zsh está instalado, puede configurarlo como shell predeterminada usando chsh. Especifique la ruta del binario con la opción "-s":

$ sudo chsh -s /usr/bin/zsh

Este comando modifica el archivo del usuario en “/etc/passwd” para cargar Zsh como shell predeterminada en las sesiones de terminal. Tras reiniciar la terminal, confirme el cambio mostrando la shell actual:

echo $SHELL

Enhorabuena, ha instalado correctamente Zsh en Ubuntu y lo ha establecido como shell predeterminada.

Instalar Oh My Zsh en Ubuntu 22.04 (Instalación de Oh My Zsh Ubuntu)

Oh My Zsh es un framework de código abierto diseñado para ampliar la funcionalidad y las capacidades de Z Shell, con el objetivo de mejorar la productividad y la experiencia en la línea de comandos. Este framework ofrece una instalación sencilla y una gestión eficiente de una amplia variedad de temas, plugins y scripts.

Paso 1: Instalar Curl o Wget
La instalación de Oh My Zsh en Ubuntu tarda solo unos segundos. Primero instale curl o wget:

$ sudo apt install curl

Paso 2: Instalación de Oh My Zsh en Ubuntu
Aunque ya haya cambiado a Zsh como shell predeterminada, la experiencia aún puede no diferir mucho de Bash. En lugar de construir Zsh desde cero, es más eficaz aprovechar el ecosistema de Oh My Zsh.

Esto le permite explorar las numerosas herramientas y configuraciones desarrolladas por la comunidad, proporcionando una experiencia más fluida y enriquecida.

Puede instalar Oh My Zsh con:

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

La ejecución de este comando establecerá Zsh como shell predeterminada para el usuario. No se requiere reinicio ni cierre de sesión. Simplemente introduzca “Y” y pulse “Enter”.

Configurar los plugins de Oh My Zsh

Un plugin de Zsh consiste en un conjunto de alias y funciones diseñadas para mejorar la productividad en la línea de comandos. Oh My Zsh incluye más de 300 plugins preconfigurados.

Por defecto están desactivados. Puede encontrarlos en:

~/.oh-my-zsh/plugins

Para activar plugins, edite la línea plugins en el archivo .zshrc:

plugins=(plugin_1 plugin_2 plugin_3 …)

Ejemplo para activar Python pip:

plugins=(python pip)

Guarde con Ctrl-O, salga con Ctrl-X y recargue:

source ~/.zshrc

Configurar el tema de Oh My Zsh

La personalización del tema es sencilla. El directorio predeterminado es:

~/.oh-my-zsh/themes/

Al seleccionar un tema, evite aquellos con colores del arcoíris o combinaciones de colores difíciles de leer. Los temas con palabras blancas o claras sobre fondo negro pueden no ser adecuados para usuarios con discapacidad visual o en servidores sin monitor.

Abra el archivo:

sudo nano ~/.zshrc

Cambie el tema:

ZSH_THEME="agnoster"

Tema aleatorio:

ZSH_THEME="random"

Lista de candidatos:

ZSH_THEME_RANDOM_CANDIDATES=("agnoster" "grml" "robbyrussell")

Recargue:

source ~/.zshrc

Configurar el plugin de Auto-Sugerencias

Active el plugin de auto-sugerencias para recibir recomendaciones de comandos basadas en el historial de comandos de Zsh. Esto ahorra tiempo y facilita la realización de tareas diarias, especialmente cuando se utilizan comandos con frecuencia. Siga los pasos a continuación para activar las auto-sugerencias:

Comience añadiendo el repositorio del plugin de auto-sugerencias. Clone el repositorio con el siguiente comando:

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

Abra el archivo de configuración .zshrc con un editor de texto:

nano ~/.zshrc

En la sección de plugins del archivo, habilite el plugin de auto-sugerencias añadiéndolo a la lista de plugins, como se muestra a continuación:

plugins=(git zsh-autosuggestions)

Guarde los cambios y cierre el editor de texto.

Reinicie la terminal y ejecute Zsh para activar el plugin de auto-sugerencias.

Ahora, al escribir un comando, use la tecla de flecha derecha para aceptar la sugerencia y completar el comando fácilmente.

Activar el resaltado de sintaxis

El resaltado de sintaxis ofrece varias ventajas, como una mejor legibilidad del código, detección de errores, reconocimiento del lenguaje, mayor productividad y mejor estética. Siga los pasos a continuación para integrar el resaltado de sintaxis en Zsh:

Clone el repositorio del plugin con el siguiente comando:

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

Abra el archivo .zshrc:

nano ~/.zshrc

Vaya a la sección de plugins e incluya zsh-syntax-highlighting en la lista.

Guarde los cambios y cierre el archivo.

Reinicie la terminal y ejecute Zsh para activar el resaltado de sintaxis. Por ejemplo, al escribir un comando con un error tipográfico se resaltará en rojo, mientras que un comando correcto aparecerá en verde.

En el ejemplo proporcionado, demostramos el funcionamiento del resaltado utilizando el comando “echo”.

Configurar el plugin JSON Tools

Dado que JSON se ha adoptado ampliamente como el estándar de datos por defecto en el desarrollo web, es posible que con frecuencia necesite interactuar con él directamente desde la terminal, especialmente durante las pruebas de nuevas llamadas a API. El plugin JSON Tools mejora esta experiencia proporcionando una forma más cómoda de trabajar con JSON. Para probarlo, incorpore el plugin en su archivo de configuración de Zsh:

plugins=(... jsontools)

Con este plugin activado, puede canalizar fácilmente sus datos JSON hacia la herramienta JSON correspondiente. Por ejemplo, un volcado JSON estándar puede resultar difícil de leer. Obtengamos información sobre un chiste aleatorio de Chuck Norris desde la API de Chuck Norris Jokes:

curl https://api.chucknorris.io/jokes/random

Ahora pasemos este volcado JSON por la herramienta de formato JSON:

curl https://api.chucknorris.io/jokes/random | pp_json

Como se demuestra, la salida ahora está formateada para facilitar la lectura humana. El plugin JSON Tools mejora significativamente la claridad de los datos JSON en su terminal.

Configurar las actualizaciones automáticas de Oh My Zsh

Por defecto, OH-MY-ZSH se actualiza automáticamente cada dos semanas. Para desactivar esta función, descomente la línea DISABLE_AUTO_UPDATE en el archivo ~/.zshrc y establezca el parámetro DISABLE_AUTO_UPDATE en "true".

sudo nano ~/.zshrc

DISABLE_AUTO_UPDATE="true"

Si prefiere personalizar la frecuencia de actualización, puede establecer el número de días para la comprobación. Por ejemplo, para omitir la actualización automática diaria, establezca el parámetro UPDATE_ZSH_DAYS en 1.

UPDATE_ZSH_DAYS=1

Guarde los cambios con “Ctrl-O”, luego presione “Enter” y salga con “Ctrl-X”. Después, recargue el plugin de Oh My ZSH ejecutando:

source ~/.zshrc

También puede ejecutar la actualización manualmente con el siguiente comando:

omz update

Como alternativa, puede usar el comando extendido:

omz update command

Finalmente, para aplicar los cambios, reinicie su sistema:

sudo reboot now

Esto concluye la instalación y configuración de Oh My Zsh en Ubuntu 22.04. Siguiendo las guías anteriores, ha configurado correctamente los ajustes de actualización automática según sus preferencias.

Configurar el plugin Dirhistory

Este plugin mejora la navegación por directorios basándose en el concepto del historial de acceso a directorios. Introduce atajos de teclado prácticos que facilitan aún más moverse por el historial de carpetas. Para habilitar esta función, agregue "dirhistory" a su archivo de configuración:

plugins=(... dirhistory)

Una vez añadido, guarde el archivo y recargue la configuración de Zsh:

source ~/.zshrc

Ahora puede usar las siguientes combinaciones de teclas para navegar por el historial de directorios:
ALT + LEFT para ir al directorio anterior,
ALT + RIGHT para ir al siguiente,
ALT + UP para entrar al directorio padre,
ALT + DOWN para ir al primer subdirectorio.

Este plugin añade una capa adicional de eficiencia a la exploración de directorios.

Autocompletado con TAB en Zsh

Otra característica destacada de Zsh es su avanzado sistema de autocompletado con TAB. Esta funcionalidad sugiere de forma inteligente los comandos disponibles según el contexto de la línea de comandos, incluidos scripts, variables de entorno, comandos y sus opciones.

Para probarlo, escriba system y presione TAB para recibir una lista de sugerencias. Al presionar TAB nuevamente, podrá navegar por los programas disponibles usando TAB o las flechas.

De forma similar, al escribir systemctl, añadir un espacio y presionar TAB, obtendrá una lista de comandos systemctl disponibles con sus descripciones. Puede navegar por la lista con TAB o las flechas.

Si introduce systemctl - y presiona TAB varias veces, podrá desplazarse por una lista de opciones disponibles de systemctl con sus descripciones:

command options autocomplete

Para un efecto aún más útil, escriba systemctl stop, añada un espacio y presione TAB para ver la lista de procesos Linux en ejecución que pueden ser detenidos con el comando “systemctl stop”:

target processes autocomplete

Adoptar el autocompletado avanzado con TAB es sencillo y proporciona un importante aumento de productividad. Incorpórelo a su flujo de trabajo para obtener una experiencia más potente y eficiente.

Búsqueda inversa en el historial

Tradicionalmente, la búsqueda inversa del historial se realiza con “CTRL + R”, lo que permite buscar cualquier palabra dentro del historial de comandos. Presione “CTRL + R” e introduzca una subcadena, como “system”, para localizar el último comando que contenga dicha palabra.

Siga presionando “CTRL + R” para moverse hacia atrás en el historial, o use “CTRL + S” para avanzar.

Zsh introduce una mejora sutil en esta funcionalidad. Si recuerda el inicio de un comando, escríbalo y utilice las teclas UP y DOWN para recorrer el historial filtrado por esa subcadena. Por ejemplo, escriba “apt” y presione UP para encontrar el último comando que comienza con ese texto.

Configurar el plugin History

Dentro de Oh My Zsh, muchos plugins son en realidad colecciones de alias prácticos creados por administradores experimentados. El plugin History ofrece un conjunto de alias útiles para el comando history. Actívelo modificando el archivo de configuración de Zsh:

plugins=(... history)

Una vez activado, tendrá acceso a los siguientes alias:

h (history): muestra el historial de comandos.
hs (history | grep): usa grep para buscar en el historial.
his (history | grep -i): busca en el historial sin distinguir mayúsculas y minúsculas.

Activar marcas de tiempo en el historial

Otra función útil es la inclusión de marcas de tiempo para cada comando del historial. Para activarla, descomente la siguiente línea en su archivo de configuración y seleccione el formato de fecha preferido:

HIST_STAMPS="yyyy-mm-dd"

Al activar esta opción, cada comando mostrado por history incluirá una marca temporal, proporcionando un registro cronológico de su actividad.

Activar el plugin Colored Man Pages

¿Con qué frecuencia consulta las páginas de ayuda de las utilidades de línea de comandos? El plugin Colored Man Pages mejora la velocidad de lectura resaltando los comandos y sus argumentos, haciéndolos más visibles en la documentación. Actívelo modificando el archivo de configuración de Zsh:

plugins=(... colored-man-pages)

Si necesita desinstalar Oh My Zsh, junto con sus plugins y temas, de Ubuntu 22.04, puede hacerlo eliminando el paquete “oh-my-zsh”. Ejecute el siguiente comando en su terminal:

$ sudo uninstall oh_my_zsh

Personalizar su tema de Oh My Zsh es sencillo. El directorio por defecto de los temas se encuentra en ~/.oh-my-zsh/themes/. Puede explorar todos los temas disponibles allí.

$ sudo apt --purge remove zsh

Este comando eliminará todos los archivos y carpetas asociados con Oh My Zsh, restaurando el servidor a su estado previo a la instalación.

Cambiar de Zsh a Bash

Cambie la shell predeterminada de nuevo a Bash (o cualquier otra shell preferida) usando el siguiente comando:

$ chsh -s $(which bash)

Después de ejecutar este comando, cierre la terminal actual y abra una nueva sesión para que los cambios surtan efecto.
Para hosting Linux en un VPS, puede instalar y utilizar la shell Zsh en su servidor Ubuntu.

Conclusión

Esta guía demostró la instalación y configuración de Oh My Zsh en Ubuntu 22.04. Aunque Bash sigue siendo ampliamente utilizado y es la shell predeterminada en muchas distribuciones Linux, Zsh ha ganado popularidad gracias a sus numerosas ventajas.

Tiene la flexibilidad de personalizar aún más su entorno Zsh e incorporar ajustes propios. Instalar Zsh en Ubuntu va más allá de una simple shell, ya que también funciona como un potente lenguaje de scripting.

Si desea profundizar en la personalización, explore los amplios recursos disponibles en la documentación oficial de Zsh.

Blog