Mi viaje por la consola

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.

Tab en la consola

El tabulador es una de esas teclas que en principio no le encuentras mucho sentido pero luego empiezas a darte cuenta de todos los usos que le puedes dar (Aunque por mas que lo intento aún no me a dado ningún refresco). El ultimo que le encontré me a sido de lo mas útil, cuando estoy escribiendo algo en la consola, por ejemplo un archivo con el nombre muy largo podemos empezar a escribir y cuando ya tengamos bastantes para que no se confunda con ningún otro archivo de la carpeta apretamos el Tab y se completará el archivo. También podemos usarlo con comandos. Descubrir esto a marcado un antes y un después en mi relación con linux 😉 .