51

Lleva tu terminal al siguiente nivel

49906Puntos

hace 5 años

Mientras tú tienes una terminal que solamente contiene tu nombre de usuario, el de la máquina que usas y el directorio. Habrás notado que el de varios profesores de Platzi suele indicar mucho más que eso, por ejemplo:

  • La rama actual de Git.
  • Su último commit.
  • Si hay algún cambio pendiente.
  • La cantidad de memoria RAM que se está utilizando.

Todo esto no sucede por arte de magia. Lo primero que debes entender es que en Linux por defecto tu terminal viene con Bash (Bourne-again shell), y si bien es bastante práctico para el día a día, la forma en que lleves tu terminal a un nuevo nivel es con Z Shell o simplemente Zsh.

Zsh: un Bash con superpoderes

Zsh puede verse como un Bash con superpoderes ya que la característica de autocompletado y otras funcionalidades las mejora bastante.

Autocompletado

Dentro de las teclas que utilizas en tu terminal, una de ellas es TAB. Supongamos que te encuentras en Home y que contiene las carpetas de Documents y Downloads, pero tú quieres navegar a Downloads.

Mientras que en Bash escribes el comando cd Do y al teclear TAB te va a mostrar un listado de las distintas opciones, en este caso Documents y Downloads, y hasta que escribas cd Dow el TAB te va a completar cd Downloads. En Zsh simplemente escribes Do y tecleas TAB hasta llegar a la opción que quieres, sin necesidad de escribir cd. Automáticamente Zsh te dirige a la carpeta que elijas.

Si eres un amante de la automatización y tienes varios scripts con Bash que temes perder por migrar a Zsh déjame darte la gran noticia de que Zsh fue pensado para ser compatible con Bash.

Instalando Zsh

En Linux, para instalar Zsh simplemente debemos correr el comando según sea tu distribución, en caso de no aparecer puedes encontrar más información en aquí:

sudo apt-get install zsh   (para basadas en Ubuntu)
sudo pacman -S zsh         (para Arch Linux)
sudo yum install zsh       (para basadas en Red Hat)
sudo dnf install zsh       (para Fedora)

Para verificar que fue instalado correctamente debes correr el comando:

zsh --version

Para indicarle a tu terminal que Zsh va a ser la shell por defecto debemos correr el comando chsh indicando la dirección de Zsh:

chsh -s $(which zsh)

Cerramos y volvemos a abrir nuestra terminal para efectuar los cambios y listo, tenemos Zsh instalado, pero aún nos falta darle el verdadero sazón a Zsh.

Oh My Zsh

Gracias al framework Oh My Zsh va a ser muy sencillo configurar nuestra terminal para mejorarla 10x, es más, podemos llevarla hasta un nivel de poder de 9000.

Su instalación es muy rápida y sencilla, tan solo debes correr el siguiente comando:

// En caso de que tengas curl
curl -L http://install.ohmyz.sh | sh// En caso de que tengas wget
wget --no-check-certificate http://install.ohmyz.sh -O - | sh

Una vez instalado tendremos un archivo oculto en nuestra carpeta de Home llamado .zshrc que es donde sucede toda la magia de configuración. Para poder configurar nuestra terminal debemos modificar este archivo, puedes usar el editor de código que prefieras:

// Modificar con Vim
vim ~/.zshrc// Modificar con Visual Studio Codecode ~/.zshrc

Te recomiendo añadir un alias a tu consola para acceder de manera rápida al archivo de configuración:

// Usando Vimalias zshconfig="vim ~/.zshrc"// Usando Visual Studio Codealias zshconfig="code ~/.zshrc"

Una vez estamos dentro del archivo solamente debes buscar la línea donde se encuentra la variable ZSH_THEME, por defecto va a tener el valor de “robbyrussell”. Existe una gran cantidad de temas, puedes ir buscando tu tema ideal en la documentación de Oh My Zsh, tienen un listado enorme.

También puedes añadir varios temas a la variable ZSH_THEME_RANDOM_CANDIDATES y a la variable ZSH_THEME darle el valor de “random” para que en cada ocasión que abras la terminal elija un tema diferente y vayas probando cual te acomoda mejor.

Por último, pero no menos importante, si migraste de Bash y tenías varias direcciones añadidas a la variable $PATH vas a tener que copiar el valor de la variable desde Bash y pegarlo en el archivo .zshrc:

// Cambiamos el shell a Bashexec bash

// Imprimimos el valor de nuestra variable PATH para copiarlo
echo $PATH

// Corremos nuestro alias para configurar el archivo .zshrc
zshconfig

Una vez tenemos el valor de $PATH y el archivo .zshrc abierto, pegamos el valor de PATH en la línea que exporte PATH.

Variable PATH

Dirección MAC


Ya con esto tienes lista tu terminal para poder experimentar e ir mejorando tu productividad con el tema que mejor te quede, en lo personal me gusta mucho el tema PowerLevel9k. Si quieres mejorar todas herramientas de desarrollo te invito a que mires el Curso de Prework: Buenas Prácticas y Entorno de Desarrollo.

Demian
Demian
demian

49906Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
3
5778Puntos

Excelente articulo demian, aunque yo personalmente prefiero usar fish shell, que es en mi opinion como un zsh con “esteroides” especialmente cuando lo usas con oh-my-fish.
Si no lo has usado te lo recomiendo mucho!!! Un saludo.

2
13810Puntos
5 años

Que diferencias hay entre fish shell y oh-my-zsh, por favor.

Muchas gracias

3
49906Puntos
5 años

Hola @BrysonFlorez, Oh My Zsh es el framework para configurar de manera sencilla tu terminal con Zsh.

Fish Shell es otra shell así como Bash o Zsh, pero trae muchas ventajas según veo en su web como auto sugerencia, coloreado de sintaxis y una mejor sintaxis para hacer Scripts. Su única desventaja es que tus scripts de Bash no son compatibles, tocaría volver a escribirlos.

2
3040Puntos

En lo particular no me han gustado estos añadidos en la terminal por dos razones:

1.- Te vuelven flojo para aprender correctamente los comandos
2.- Una empresa no permitiría que instalaran estos extras, y mira que he conocido gente que los instala en un servidor productivo, por que sin ellos no saben navegar por la terminal.

3
5778Puntos
5 años

Hola Brujo, con todo respeto no estoy de acuerdo con los 2 puntos que expones.

  1. El que realmente quiere aprender los comandos (y lo que realmente hacen), los aprenderá use el shell que use. Y lo digo porque conozco gente que usa comandos porque se los aprendieron de memoria pero sin conocer suficientemente su potencial.

  2. A nivel empresarial es tal vez donde más ventajas brinda usar herramientas como ZSH o Fish, porque lo que permiten es agilizar tareas repetitivas que solo consumen tiempo (es cuestión de productividad). Ahora, las políticas que tenga cada empresa a la hora de instalar herramientas de trabajo eso si ya es otra historia.

2
3040Puntos
5 años

Eso es precisamente a lo que voy, ningún curso debería valerse de extras para enseñar la terminal, o peor aún, un lenguaje de programación. No dudo de su efectividad, yo mismo uso IDE’s para el desarrollo. Pero también aprendí a escribir mi código, compilarlo y ejecutarlo, todo fuera de cualquier IDE.

Es siempre importante saber como funcionan las cosas y como echarlas a andar sin depender de algún extra, una vez que lo dominas, entonces ahora si bienvenidos todas las herramientas que te ayuden a tus tareas.

2
7855Puntos
5 años

Estoy de acuerdo con ambos, y a como exponen sus ideas, lo más recomendable cuando inicias en el uso de la terminal (bash, sh, zsh, etc.) sin ningún añadido y posteriormente ya que tengas el conocimiento, probar las diferentes herramientas que permitan ser más eficiente y eficaz en tu trabajo.

1
12571Puntos

Agregar rutas al PATH de forma Permanente

add to path request.png

para los que no tenemos mucha experiencia y nos hemos encontrado con un mensaje como el anterior y luego de googlear un poco hacemos algo
como

export PATH=/usr/local/bin:$PATH

Solo para encontrar que el problema persiste al abrir una nueva terminal, una solucion es modificar nuevamente el archivo ~/.zshrc con cualquiera de los editores expuestos en este post y agregar la linea

export PATH='substituir-por-nueva-ruta':$PATH

al final del documento.
de esta forma cada ves que abramos una nueva terminal, zsh-shell leera la configuración y agregará la nueva ruta al PATH

1
20414Puntos

Me gusto más esta explicación que la del video 😃, buen blog

1
5785Puntos

¿esto jala en MacOS?

1
6955Puntos
5 años

Si, funciona perfectamente en MacOS

1
13810Puntos

Para poder tener la terminal como el profesor Leonidas en el curso de Git y GitHub que debo hacer?.

Muchas gracias

1
19865Puntos

Voy a experimentar si sirven en modo tty

1
9796Puntos

Excelente Post! Felicitaciones!

1
20726Puntos

¿Que es curl y wget?

1
22484Puntos
4 años

aqui especifican que es cada uno:

1
17295Puntos

Realmente el curso es un poco difícil de llevar sin poder hacer mucho tuve que googlear para pode adaptar problemas que el curso no resuelve de por sí.