2

Rice your terminal 🍚 + 💻!

En este curso aprendiste a instalar un sistema Linux dentro de Windows y no, no te voy a enseñar a cocinar algún plato con arroz; pero lo que sí te voy a enseñar a cocinar mi terminal perfecta para que tu aprendas a cocinar la tuya.

¿Por qué deberías personalizar tu terminal?

  1. Como desarrollador vas a pasar mucho tiempo en una terminal. Personalizar tu terminal es como decorar tu escritorio. Te vas a sentir más cómodo y como en casa cuando trabajes en la terminal que tú mismo construiste.

  2. Claridad . Estamos de acuerdo en que la terminal de fondo negro y texto blanco/verde-quema-retinas tiene su aire hacker, pero cuando tienes que leer cientos de líneas de código la cosa cambia.

  3. Es tu lugar de trabajo! No hay límites para lo que puedes cambiar en Linux. Has que se vea como algo que quisieras ver cada día.

¡Comencemos!

Para nuestro ricing vamos a instalar un shell llamado zsh.

Para sistemas basados en Debian (Ubuntu):

sudo apt install zsh

Una vez instalado, debemos cambiar a dicho shell. Ésto lo hacemos escribiendo simplemente:

zsh

Al ser la primera vez que entramos en zsh, nos sugerirá crear un archivo de configuración en ‘~/.zshrc’. Le diremos que sí (Opcion 0):

Ésto nos creará una bonita primera configuración de zsh:

Si has tenido algo de contacto con sistemas Linux, quizá hayas escuchado “En Linux todo son archivos” ¡Es cierto! Por ésto es tan sencillo personalizar nuestras interfaces Linux. Y es precisamente lo único que usaremos. Un archivo:

Puedes abrir este archivo con nano o vim utilizando los siguientes comandos respectivamente:

nano .zshrc
vi .zshrc

Yo utilizaré vim.

El texto que aparece antes del cursor está definido por una variable llamada PS1. Vamos a comenzar con algo muy sencillo. Vamos a mostrar únicamente nuestro usuario %n redefiniendo la variable al final de nuestro .zshrc:

PS1="%n"

Guardamos y podemos ver el resultado si simplemente escribimos el comando:

zsh

(Ésto lo tendremos que hacer cada vez que queramos ver algún cambio que hayamos hecho).

Para utilizar colores dentro de zsh tendremos que agregar esta línea al comienzo de nuestro archivo:

autoload -U colors && colors

Vamos a colorear nuestro nombre de usuario %n agregando %{fg[yellow]%} justo antes:

PS1="%{$fg[yellow]%}%n"

Aunque la sintaxis pueda asustar un poco, si te fijas bien, simplemente es agregar sentencias (n) y modificadores ({$fg[yellow]%}) que deben estar precedidos por %.

¡Agreguemos más cosas! 💪

Vamos a agregar un @ de color blanco despues de nuestro user:

%{$fg[white]%}@

Y luego el nombre de nuestro host %M en color azul %{$fg[blue]%}:

%{$fg[blue]%}%M

Tu PS1 debería lucir así:

PS1="%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[blue]%}%M"

Y tu prompt debería lucir así:

A continuación agregaremos una información muy importante: Nuestro working directory ~ Justo al final de todo en color magenta %{$fg[magenta]%}. Puedes agregarle un espacio antes para que se vea mejor:

 %{$fg[magenta]%}%~

PS1:

PS1="%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~"

Prompt:

Ya nos acercamos al final de nuestro terminal ricing.

Vamos a encerrar todo nuestro prompt en estos paréntesis [ ] y les vamos a dar un color rojo %{$fg[red]%}:

PS1="%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]"

Para finalizar vamos a irnos de cherry-pick Para ponerle precisamente eso, la cereza sobre el pastel a esta terminal que acabamos de cocinar.

Vamos a crear una función arriba de nuestra definición:

function git_branch_name()
{
  branch=$(git symbolic-ref HEAD 2> /dev/null | awk 'BEGIN{FS="/"} {print $NF}')
  if [[ $branch == "" ]];
  then
    :
  else
    echo '('$branch')'
  fi
}

Vamos a llamar esta pequeña función $(git_branch_name) justo al final de lo que ya hemos construido, de color magenta {$fg[magenta]%} y vamos a agregar un $ del color por defecto de la terminal %{$fg[reset-color]%} para indicar el tipo de usuario que la está usando:

PS1="%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[magenta]%} $(git_branch_name)%{$reset_color%}$"

Finalmente podemos hacer que nuestro promt se vea en negrita agregando %B al inicio y %b al final para que los comandos que escribamos ya no se vean en negrita seguido de un espacio:

PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[magenta]%} $(git_branch_name) %{$reset_color%}$%b "

Resultado final:

Aquí agregaré un gráfico para que te quede aún mas clara las estructura de nuestra PS1:

¡Felicidades 🥳! ¡Has terminado tu primer Linux🐧 Ricing 🍚!

La personalización de nuestras herramientas no es tan solo un pasatiempo divertido del que puedes aprender muchísimo. Es también un poderosísimo recurso que tenemos a nuestra disposicion para potenciar nuestra productividad y mejorar nuestro estado de ánimo mientras trabajamos. Espero que te haya gustado este tutorial junto con el resultado que conseguimos y que este sea el comienzo de un camino sin fin de crear tu ambiente de trabajo ideal.

Ya viste mi terminal perfecta ¡Ahora a mi me encantaría ver cómo luce la tuya! 👋

Escribe tu comentario
+ 2