Pimp my Terminal: una introducción a Oh My Zsh

En esta guía introductoria, sentaremos las bases para usar Oh My Zsh para mejorar y personalizar su terminal UNIX.

Introducción

Usar una terminal puede ser una experiencia un poco intimidante al principio, pero una vez que te acostumbras, puede aumentar tu productividad de maneras que no podías imaginar y puede convertirse en una experiencia bastante placentera.

Esa es probablemente la parte más adictiva de usar la terminal a diario. Siempre está buscando las mejores formas de realizar ciertas tareas de manera más eficiente, con la menor cantidad de clics posible.

Ese hambre insaciable por una mayor eficiencia, que posiblemente sea una de las razones por las que Homo Sapiens llegó a la cima, probablemente hará que considere profundizar en la configuración de su terminal, incluso si está comenzando a usar su terminal. viaje.

Tal vez hayas visto a alguien usando una terminal atractiva con una gran cantidad de información útil claramente mostrada y te preguntaste cómo una terminal puede verse tan atractiva y elegante.

Tal vez se veía algo así como:

powerlevel10k theme

De cualquier manera, la respuesta a la mayoría de sus preguntas sobre el uso avanzado de terminales probablemente sea el Zsh shell con el Oh My Zsh framework instalado encima.

En términos simples, Zsh es una alternativa al shell Bash que implementa muchas características agradables que aumentan su productividad y mejoran su flujo de trabajo. Con ese fin, Oh My Zsh es un marco ligero de código abierto para administrar esas funciones agradables de Zsh: temas, complementos, alias...

En esta guía, cubriremos algunas de las razones por las que puede considerar usar Oh My Zsh. En primer lugar, nos familiarizaremos con Zsh shell y luego profundizaremos en Oh My Zsh, antes de profundizar en la configuración de Oh My Zsh en sí.

Esta guía está destinada a servir como punto de partida para su viaje Oh My Zsh. Al final, debe comprender los conceptos básicos de la configuración de Zsh con la ayuda de Oh My Zsh, estar al tanto de las alternativas y estar listo para continuar explorando cosas nuevas sobre la configuración del shell Zsh.

¡Empecemos con lo básico!

¿Qué es Zsh?

Zsh, también conocido como Z shell, es otro shell para sistemas basados ​​en UNIX, frecuentemente utilizado como alternativa a Bash, el shell predeterminado en muchos sistemas basados ​​en UNIX. Aunque Zsh se creó en la década de 1990, ha ganado mucha popularidad en los últimos años, especialmente desde que Apple anunció que usarán Zsh como shell predeterminado en todos sus nuevos sistemas que ejecutan macOS.

Tanto Bash como Zsh se crearon casi al mismo tiempo y ambos se basan en el Bourne shell, el shell predeterminado de UNIX en ese momento. Es por eso que la mayoría de los usuarios ocasionales de Bash a menudo dudan en cambiar a Zsh, aunque Zsh tiene algunas funciones avanzadas que hacen que valga la pena considerarlo.

¿Por qué usar Zsh sobre Bash? {#por qué se estremece}

Obviamente, no hay una forma clara de decidir qué shell es mejor en última instancia y debe usarse todo el tiempo. Definitivamente hay algunas ventajas y desventajas de elegir cualquiera de los dos y su preferencia personal probablemente jugará un papel importante en la decisión.

En esta sección, cubriremos algunas ventajas de usar Zsh.

Como hemos dicho antes, tanto Zsh como Bash se desarrollan a partir del mismo shell y tienen muchas características similares. Más específicamente, Zsh puede ejecutar muchos scripts Bash sin ningún problema. Además de eso, Zsh viene con muchas buenas capacidades que podrían convertirlo en una mejor opción que Bash, como:

  • Mejor autocompletar - Zsh podría decirse que tiene mucho mejor autocompletado que Bash. Navegar a través de sugerencias de autocompletar es mucho más fácil de usar e intuitivo.
  • Corrección automática incorporada: si tiende a escribir rápido y comete muchos errores tipográficos en el camino, Zsh los arreglará por usted, sin la molestia de ejecutar scripts externos o instalar complementos adicionales.
  • Automático cd - no hay necesidad de escribir cd cada vez que desee cambiar un directorio, simplemente escriba la ruta al directorio deseado.
  • Expansión de ruta recursiva: tampoco es necesario escribir la ruta completa, por ejemplo, cd us/b/l se expandirá a cd user/bin/lin.
  • Más fácil de personalizar: probablemente una de las características más exclusivas de Zsh es su capacidad de personalización. Hay un montón de temas y complementos que están hechos para satisfacer la mayoría de las necesidades que pueda tener. Por lo general, son administrados por el marco Oh My Zsh, pero también hay otros marcos.

Cómo instalar y configurar Zsh

Si ha decidido probar Oh My Zsh, lo primero que debe hacer es instalar y configurar Zsh en su sistema.

Esto es tan simple como escribir lo siguiente en tu terminal:

1
2
$ sudo apt update
$ sudo apt install zsh

Ahora, hagamos que Zsh sea el shell predeterminado en nuestro sistema ejecutando el siguiente comando:

1
$ chsh -s $(which zsh)

¡Eso debería hacer el truco! Instalamos Zsh y lo configuramos como shell predeterminado. Ahora podemos centrarnos en personalizarlo usando Oh My Zsh.

¿Qué es "Oh My Zsh"?

Zsh tiene muchos temas y complementos y, si decide usarlos, deben instalarse y administrarse de manera adecuada. Si es un principiante, lo más probable es que no pueda realizar un seguimiento de la configuración de Zsh correctamente por sí mismo.

¡Ahí es donde entra Oh My Zsh! Es el marco más popular para administrar la configuración, los complementos y los temas de Zsh. Le ayudará a pasar de usar su shell actual a Zsh de la manera más fácil posible.

Aunque Oh My Zsh puede hacer muchas otras cosas, es el más famoso por su capacidad para administrar fácilmente una tonelada de temas y complementos. Eso es especialmente útil porque los temas de Oh My Zsh no son solo esquemas de color simples, sino mecanismos que nos brindan una gran cantidad de información útil que se muestra claramente, como:

  1. Rama actual de git
  2. Estado Git
  3. Estado de la batería
  4. Tamaño de la carpeta actual
  5. Información de rendimiento del comando

Por otro lado, los complementos están hechos para ampliar las capacidades de Zsh, algunos de ellos solo agregan nuevos alias para los comandos de uso común y algunos agregan algunas características más avanzadas.

En esta guía, nos centraremos principalmente en mostrar las funcionalidades de algunos temas y complementos interesantes.

Cómo instalar Oh My Zsh

La documentación oficial recomienda que instalemos Oh My Zsh usando curl o wget. Todo lo que tenemos que hacer es ejecutar el instalador automático ejecutando uno de los dos comandos siguientes:

1
2
3
4
5
# Run the following command to install Oh My Zsh using `curl`
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Run the following command to install Oh My Zsh using `wget`
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Tu terminal no se verá diferente hasta que lo reinicies. Solo entonces aplicará una configuración diferente, pero aún se verá similar al estado original.

La apariencia del terminal se basa en el tema que estamos usando actualmente y los complementos que están instalados. El tema predeterminado es bastante similar a lo que probablemente ya estés acostumbrado.

Cambiemos el tema y veamos cómo podemos administrar complementos con Oh My Zsh.

Cómo usar Oh My Zsh

Durante la instalación, Oh My Zsh toma el control del archivo de configuración de Zsh llamado .zshrc. Ese es un archivo en su directorio de inicio en el que Zsh almacena todos sus parámetros de configuración. Oh My Zsh realiza una copia de seguridad del archivo .zshrc original y simplemente crea uno nuevo, por lo que si alguna vez desea deshabilitar Oh My Zsh, puede volver a su configuración original de Zsh fácilmente.

Hay muchos ajustes y cambios que podrías hacer en el archivo .zshrc, pero nos centraremos en los más comunes.

Abramos el archivo .zshrc y echemos un vistazo a su estructura:

1
$ nano ~/.zshrc

Esta línea abrirá el archivo .zshrc desde el directorio de inicio usando el editor nano. Puede abrirlo con cualquier otro editor, como Visual Studio Code, Vim, Emacs, etc.

Lo primero que verá después de abrir el archivo de configuración .zshrc es un montón de contenido comentado. Ese contenido está ahí para que pueda habilitar fácilmente algunas de las funciones más utilizadas con solo descomentar el comando correspondiente en el archivo .zshrc.

Además, el archivo sigue una estructura de secciones muy simple:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Section 1 - PATH variables & path to Oh My Zsh installation
export ZSH="/home/stamd/.oh-my-zsh"

# Section 2 - Theme settings
# robbyrussel is the default Oh My Zsh theme
ZSH_THEME="robbyrussel"

# Section 3 - General zsh settings
...

# Secton 4 - Plugin settings
plugins=(git zsh-autosuggestions sudo)

# Section 5 - Other user settings
...

# Section 6 - User-defined aliases
# Aliases defined here will override any other alias
alias home="cd ~"
# Now, when you type `home` in the terminal, you will
# be navigated to the home directory
...

Nos centraremos en las secciones 2, 4 y 6. Al hacerlo, ilustraremos los casos de uso más comunes de Oh My Zsh, primero instalando un tema simple y un par de complementos útiles. Después de eso, veremos cómo definir algunos alias personalizados.

Cómo instalar Oh My Zsh Themes

El directorio oficial de temas contiene más de 150 temas Zsh fáciles de instalar. Instalar uno de estos temas es la forma más sencilla de personalizar el aspecto de su terminal Zsh.

Los temas son esencialmente conjuntos de configuración que otras personas han creado. Puede crear sus propios temas personalizados jugando con las configuraciones manualmente, pero es mucho más fácil comenzar con los temas existentes.

Para instalar un tema, solo necesita encontrar el nombre del tema en el directorio oficial y agregar ese nombre a la sección de temas del archivo .zshrc.

Por ejemplo, si desea instalar el tema llamado "simple", todo lo que tenemos que hacer es reemplazar el valor actual de la variable ZSH_THEME en el archivo .zshrc con el nombre del tema:

1
ZSH_THEME="simple"

Después de guardar el archivo .zshrc y reiniciar el terminal, debería verse así:

Oh My Zsh - Tema \"simple\"

Como puede ver, este es aparentemente un tema muy simple, sin embargo, tiene algunas características interesantes:

  • Cambia la forma en que se muestra la ruta al directorio de trabajo, oculta el nombre de usuario actual del aviso.
  • Muestra el nombre de la rama actual de git si el directorio de trabajo está en un repositorio de Git.
  • Además, muestra el símbolo si el directorio actual tiene algunos cambios sin seguimiento, y el símbolo si el directorio actual está actualizado.

Este tema es un buen punto de partida ya que no es demasiado diferente a lo que ya podría estar acostumbrado, pero aún ofrece algunos beneficios.

Si no puede elegir un solo tema que le guste más, puede configurar Oh My Zsh para cambiar aleatoriamente el tema cada vez que enciende una nueva terminal. Para lograr ese comportamiento, deberá descomentar la variable ZSH_THEME_RANDOM_CANDIDATES de la sección del tema en el archivo .zshrc y establecer la variable ZSH_THEME en consecuencia:

1
2
3
ZSH_THEME=random

ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" "simple" )

Ahora, Oh My Zsh elegirá aleatoriamente uno de los tres temas enumerados en la variable ZSH_THEME_RANDOM_CANDIDATES.

Un tema popular es el Tema Powerlevel10k:

1
ZSH_THEME="powerlevel10k/powerlevel10k"

Tema Powerlevel9k

Cómo instalar los complementos oficiales de Oh My Zsh

Con el tema instalado, el siguiente paso obvio es personalizar aún más su nuevo terminal atractivo instalando algunos complementos interesantes.

Oh My Zsh viene con más de 270 complementos oficiales, así como muchos complementos de terceros que se pueden instalar. Su complejidad varía desde complementos simples que simplemente agregarán algunos alias nuevos a su configuración, hasta complementos más complejos que realizan resaltado de sintaxis, finalización de comandos y algunas otras funciones avanzadas.

Echemos un vistazo a cómo instalar algunos de los complementos más populares de Oh My Zsh y expliquemos para qué se usan. Para instalar un complemento enviado con el marco Oh My Zsh, solo necesita encontrar su nombre en la [lista oficial de complementos] (https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins) y agregarlo a la lista de complementos almacenados en la variable plugins del archivo .zshrc.

Instalemos los complementos llamados git, z y sudo, navegando y editando el archivo .zshrc para que la variable plugins contenga una lista de nombres de complementos mencionados:

1
plugins = (git z sudo)

Eso es todo, hemos habilitado nuestros complementos deseados y podemos usar sus funciones después de reiniciar nuestra terminal. Si desea habilitar cualquier otro complemento oficial, solo necesita agregar su nombre a la lista de complementos.

Nota: que los elementos en la matriz Zsh están separados con caracteres de espacio en blanco, separarlos con una coma resultará en un error.

Expliquemos los casos de uso de nuestros complementos recién instalados:

  • Git - en esencia, este complemento es un paquete de alias predefinidos que lo ayuda a acelerar el uso de Git en una terminal. En lugar de git status puedes escribir gst, en lugar de git add puedes escribir ga, etc. Echa un vistazo a [la lista de todos los alias](https://github.com /ohmyzsh/ohmyzsh/tree/master/plugins/git#aliases) para tener una idea de los atajos.
  • sudo - un complemento muy útil que le permite agregar sudo como prefijo al actual o anterior comando, simplemente presionando ESC dos veces.
  • z - este complemento tiene como objetivo aumentar su productividad al permitirle navegar a través de directorios con la menor cantidad de clics posible . Realiza un seguimiento de los directorios más visitados y le permite navegar hasta ellos escribiendo solo unos pocos caracteres de la ruta del directorio deseado.

Por ejemplo, supongamos que hemos visitado el directorio /usr/share/media-player-info. Para acceder a él la próxima vez, basta con ejecutar el comando z med.

Cómo instalar complementos Oh My Zsh de terceros

Ahora que hemos explicado cómo habilitar complementos enviados con Oh My Zsh, consideremos algunos complementos de terceros interesantes.

Sin embargo, habilitarlos no es tan sencillo como habilitar los complementos oficiales, ya que cada complemento tiene su propio procedimiento de instalación. Especialmente dado el hecho de que estos procedimientos pueden cambiar con el tiempo, lo mejor que podemos hacer es indicarle la documentación oficial, donde puede seguir los pasos descritos para habilitar los complementos.

Algunos de algunos complementos de terceros interesantes son:

  • zsh-resaltado de sintaxis - este complemento resalta los comandos que está escribiendo actualmente en función de la corrección de los comandos escritos . El comando es rojo si se escribe mal, verde si se escribe bien, subrayado si es el nombre de la carpeta existente.
  • zsh-autosugerencias - este complemento sugiere el final del comando que está escribiendo actualmente en función de los comandos que ha ejecutado previamente.

Creación de alias {#creación de alias}

Si usa algún comando más de unas pocas veces al día, probablemente sea una buena idea definir un alias para ese comando.

Un "alias" es solo un nombre alternativo para un comando. Por lo general, definirá alias más cortos que los comandos mismos y los usará como accesos directos.

Por ejemplo, gaa podría ser el alias del comando git add all. Si escribe el alias en la terminal, el sistema ejecutará el comando original, lo que a menudo puede ser un gran ahorro de tiempo.

Oh My Zsh viene con algunos alias predefinidos, la mayoría de los cuales están relacionados con Git. No los cubriremos en esta guía, pero puedes leer la lista completa de alias predefinidos de Oh My Zsh en la página oficial de Oh My Zsh.

El primer tipo de alias de Zsh es el alias simple. Estos alias se definen en el archivo .zshrc así:

1
2
# alias my-alias="command"
# Examples:alias gaa="git add all"alias lsla="ls -la"...

Los alias simples se utilizan para sustituir el comando largo por el alias más corto. En esencia, están reduciendo la cantidad de pulsaciones de teclas necesarias para ejecutar ciertos comandos de uso frecuente.

El otro tipo de alias de Zsh que vamos a cubrir es el alias de sufijo. Definimos este tipo de alias usando el indicador -s:

1
2
# alias -s extension=name-of-the-tool
# Examples:alias -s py=codealias -s js=codealias -s {css,html}=code...

Los alias de sufijo se utilizan para definir qué herramienta se utilizará para abrir todos los archivos con la extensión indicada. Por ejemplo, alias -s py=code hará que todos los comandos, incluidos los nombres de archivo de Python, se abran con el editor de código.

Por ejemplo, el comando example.py se transformará en code example.py, lo que dará como resultado que el archivo example.py se abra con Visual Studio Code, suponiendo que Visual Studio Code esté instalado.

Hay tres tipos más de alias Zsh, alias globales, alias específicos del sistema operativo y funciones para alias con parámetros, estos son el tema de una próxima Guía de alias Zsh (¡próximamente! )

Para crear un alias, simplemente modifique el archivo .zshrc siguiendo la sintaxis estándar:

1
alias ct="{print -z Current time is $(date)}"

Una vez que el alias se guarda en el archivo, puede hacer referencia a él desde la terminal como:

1
2
$ ct
Current time is Fri Jul 23 15:56:02 CEST 2021

Cuando se ejecutó en la terminal estilizada, se vería así:

custom oh my zsh alias

O incluso puede crear un alias en la terminal, sobre la marcha, sin modificar el archivo en absoluto:

1
2
3
~ alias ct="print -z Current time is $(date)"
~ ct                                         
~ Current time is Fri Jul 23 15:59:08 CEST 2021

Conclusión

Como probablemente hayas adivinado, el objetivo más importante de Oh My Zsh es la facilidad de uso. No es absolutamente necesario usarlo para administrar su configuración de Zsh, por supuesto, todo podría lograrse sin la ayuda de Oh My Zsh.

La advertencia es que administrar la configuración sin ella podría ser un poco difícil para un usuario nuevo e inexperto.

Con ese fin, podemos definir Oh My Zsh como la herramienta para aplanar la curva de aprendizaje al cambiar al shell Zsh.

Con todo, Oh My Zsh ayudará a que usar la terminal sea una experiencia cómoda. Hay una gran cantidad de hermosos temas para elegir, así como una tonelada de complementos útiles creados para aumentar su productividad. Además de eso, el shell Zsh en sí mismo es mucho más rápido de ejecutar que la mayoría de los shells alternativos, lo que lo hace ideal para su uso.

Por supuesto, el shell Bash tiene el marco análogo al Oh My Zsh llamado Bash-it. Si duda en cambiar de Bash a Zsh, Bash-it podría ser una alternativa factible a Oh My Zsh.

Esta guía pretende ser una descripción general de las capacidades básicas del marco Oh My Zsh y tiene como objetivo brindarle algunos conocimientos iniciales y alentarlo a profundizar en los detalles de la configuración de Zsh.