• consola
  • terminal

Mi viaje por la consola

November 23, 2019

En un principio llegué a Bash, la shell eterna, instalada por defecto en la gran mayoría de distribuciones. Poco a poco le fui cogiendo el gusto a la línea de comandos, ciertas cosas me costaban mucho menos hacer por consola que tirando de ratón e interfaces gráficas, el historial era mi amigo, hasta me tuneé el promt para tener uno más útil:

PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]" PS1="$PS1 \`if [ \$? = 0 ]; then echo -e '\[\033[01;32m\]:-)';" PS1="$PS1 else echo -e '\[\033[01;31m\]:-(' \$?; fi\`\[\033[00m\]" PS1="$PS1 \$(__git_ps1 \"(%s)\") \$ "

Empecé a hacer pequeños scripts para automatizar mi trabajo de forma autodidacta, pero me di cuenta de que me faltaba base y aproveché un curso de Bash que me abrió nuevas puertas.

Expect por ejemplo fue todo un descubrimiento, para automatizar no ya solo comandos shell si no también la entrada a aplicaciones, por ejemplo podía lanzar comandos a conexiones ssh o serie, muy interesante para desarrollo de sistemas empotrados.

También descubrí usos curiosos de algunas utilidades de GNU, concretamente Make, que tiene una potencia inesperada.

También os dejo un tutorial muy completo sobre Bash, para profundizar.

El cambio a Zsh

Pero cuando pensaba que ya dominaba la terminal al máximo y le había sacado todo el partido descubrí Zsh y Oh My Zsh, una shell modular que se ha extendido para hacernos la vida aún más fácil.

sudo apt install git zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Estuve toqueteando el archivo de configuración

nano ~/.zshrc

Y acabé con este tema y estos plugins:

ZSH_THEME="agnoster"
plugins=(git history per-directory-history pip sudo zsh-completions zsh-autosuggestions) autoload -U compinit && compinit

Y finalmente me cambié a Zsh:

chsh -s $(which zsh)

Reinicié la sesión y me sumergí en esta shell por descubrir. Y aquí sigo, descubriendo cada día nuevas formas de hacer mi trabajo más eficientemente. La shell es un mundo más profundo de lo que en un principio podría parecer.


Profile picture

Carlos Sanmartín Bustos

Desarrollador de software embebido comprometido con el software libre. Progresista y antiautoritario.