fbpx
Seleccionar página

En este post os enseñaremos cómo instalar Oh My ZSH en vuestra consola y empezar a disfrutar de una experiencia única, sobre todo si, como nosotros, la usáis muchas horas al día.

 

¿Qué es Oh My ZSH?

Oh My ZSH es un superpack de utilidades, plugins y plantillas para el shell ZSH que te permitirá tener un super terminal lleno de útiles añadidos.

¿Qué es un terminal o consola?

Si alguna vez has usado una consola de terminal, te habrás fijado en el aspecto tan aburrido (normalmente en blanco y negro) que tienen.

Esto está bien para un uso esporádico, pero cuando comenzamos a usar nuestra consola día a día empezamos a echar en falta algunas funciones, o empezamos a copiar y pegar comandos día a día, ahí es cuando uno se plantea si no hay una opción mejor a la que viene por defecto.

 

¿Qué es una Shell?

Una shell es (salvando las distancias) un conjunto de órdenes y comandos, por eso a veces también es llamado “intérprete de comandos“, que nos permiten trabajar con nuestra consola/terminal y realizar acciones o ejecutar programas, así por ejemplo en sistemas basados en unix (Linux/Mac) para ver el contenido de un directorio usaríamos el comando

ls -l

En cambio en Windows para hacer lo mismo usaríamos el comando

dir

Aquí es donde entra ZSH, que es una shell (tal y como bash, o sh) que viene con algunas funciones interesantes.

Instalando ZSH

Antes de poder instalar Oh My ZSH, necesitamos tener instalada y funcionando la shell ZSH, por lo que vamos a proceder a su instalación:

Debian/Ubuntu y derivados

Es tan simple como poner en la consola:

sudo apt-get install git zsh

CentOS y derivados

Igual de simple, copia y pega en tu consola:

sudo yum install git zsh

Mac OS

ZSH ya viene instalado por defecto en Mac, pero a veces la versión es antigua, por lo que te recomendamos instalar la última versión.

Si tenemos homebrew instalado (si no lo tienes, deberías) es tan simple como poner:

brew install git zsh

Windows

Y aquí es donde la cosa se complica, pero no mucho, para poder usar ZSH en Windows primero debes instalar la consola Bash, aunque su instalación apenas lleva unos minutos en Windows 10 se escapa de la finalidad de este tutorial, por lo que te recomendamos que busques en nuestro querido Google donde habrá mil y un tutoriales de cómo hacerlo.

Una vez tengas la consola instalada, tan sólo sigue los pasos para instalarla en Ubuntu y la tendrás lista.

Configurando ZSH como consola por defecto

Una vez que tenemos nuestra nueva y flamante shell vamos a decirle a nuestra consola que siempre que se abra use esta shell por defecto, para ello introducimos el siguiente comando:

chsh -s $(which zsh)

En algunas versiones de CentOS tendremos que usar el siguiente comando:

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

Si te aparece un mensaje similar a:

non-standard shell

Tendrás que añadir la nueva shell a la lista de shells permitidas por el sistema, para ello copia la ruta completa a la shell (que puedes averiguar con el comando which zsh) y pégala en el archivo /etc/shells. Una vez lo hagas, vuelve a ejecutar el comando anterior.

Instalando Oh My ZSH

Y ¡por fin! llegamos a la instalación de Oh My ZSH. ahora que tenemos nuestra shell con ZSH, te habrás dado cuenta que sigue siendo una shell aburrida como contábamos al principio, pero una vez terminemos este paso, tu shell brillará y lucirá de una manera que será la envídia de tus demás colegas.

Como estos tutoriales suelen quedar obsoletos con el tiempo, os dejo las instrucciones de instalación originales aquí. Pero a día de hoy tan sólo necesitamos pegar en la consola el siguiente comando:

Instalar usando curl

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

Instalar usando wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

Y con esto quedaría instalado

Tuneando nuestro Oh My ZSH

Una vez que está instalado os voy a poner una serie de configuraciones, temas y plugin que harán que nuestra shell
luzca y funcione mucho mejor.

Template/Plantilla/Tema

Podéis ver una lista de temas con los que viene Oh My ZSH aquí, yo he escogido el tema agnoster que me gusta bastante.

Para configurarlo hay que editar el archivo ~/.zshrc con nuestro editor de texto favorito y cambiar la variable
ZSH_THEME con nuestro tema elegido.

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
export ZSH=/root/.oh-my-zsh

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"

# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

Plugin Manager Antigen

Este controlador de plugins te permite instalar fácilmente otros plugins, ahorra tiempo de no tener que hacerlo a
mano

Debian/Ubuntu y derivados

apt-get install zsh-antigen

CentOS y otros sistemas Linux

git clone https://github.com/zsh-users/antigen.git $ZSH_CUSTOM/plugins/antigen

Mac OS

brew install antigen

Al finalizar la instalación deberás añadir lo siguiente a tu archivo ~/.zshrc

# Antigen Plugin
source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/antigen/antigen.zsh

Plugin zsh-syntax-highlighting

Este plugin colorea los comandos de diferentes programas para ayudarte a la hora de lanzarlos

Debian/Ubuntu y derivados

apt-get install zsh-syntax-highlighting

CentOS y otros sistemas Linux

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

Mac OS

brew install zsh-syntax-highlighting

Una vez instalado tenemos que editar nuestro archivo e incluir este plugin en la lista de plugins:

# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
    git
    zsh-syntax-highlighting
)

source $ZSH/oh-my-zsh.sh

# User configuration

Y reiniciar nuestro terminal (o cerrar sesión y volver a iniciar)

 

Plugin zsh-autosuggestions

Este plugin busca en el historial tus últimos comandos y te va autocompletando los mismos, ahorra muchísimo tiempo.

Instalar de manera manual

Clona el repositorio en $ZSH_CUSTOM/plugins (por defecto ~/.oh-my-zsh/custom/plugins)

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

Añade el plugin a la lista de plugins (tal y como hicimos en el paso anterior), este plugin debería ir después del
que instalamos anteriormente

plugins=(
    ...
    ...
    zsh-syntax-highlighting
    zsh-autosuggestions)

Reinicia el terminal (o cierra sesión y vuelve a iniciar)

Mac OS

brew install zsh-autosuggestions

Añade lo siguiente a tu archivo .zshrc:

source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh

Otros ajustes

Algunas cosas más que te pueden resultar útiles

Borrar nombre de usuario

Quita el nombre de usuario del principio de la línea de comandos

# Remove user
prompt_context() {
    if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
        prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
    fi
}