DEV Community

Cover image for ZSH, tu shell DevOps en Ubuntu y Windows Subsystem for Linux
Julián Mulet
Julián Mulet

Posted on

ZSH, tu shell DevOps en Ubuntu y Windows Subsystem for Linux

Basado en este articulo: Fuente DRA.


Introducción

El software libre hace tiempo que se ha convertido en la mejor opción para crear servicios y aplicaciones.

Este es el motivo por el cual muchos utilizamos la consola de Linux.

Si además tienes el perfil DevOps, usarás tanto herramientas de desarrollador: git, npm, pip, etc. como otras más propias de sysadmin: docker, kubectl, systemctl, ssh, etc.

Las CLI más habituales

NOTA: No pretendo que esta sea una lista cerrada que cubra todos los casos pero son algunas de las más habituales hoy en día.

  • git: control de versiones.
  • npm: gestor de paquetes Node.js.
  • yarn: gestor de paquetes Node.js alternativo muy popular.
  • nvm: gestor de entornos virtuales de Node.js.
  • pip: gestor de paquetes de Python.
  • docker: gestor de contenedores e imágenes.
  • docker-compose: gestor de manifiestos de Docker.
  • kubectl: consola de Kubernetes.
  • helm: gestor de despliegue de aplicaciones de Kubernetes.

ZSH, tu asistente personal

Manejar todo esto es complejo y aquí es donde entra zsh, un shell personalizable con infinidad de plugins.

Esta es una receta que se puede adaptar fácilmente a las necesidades de cada uno y al final del post encontrarás los links para que puedas explorar esta posibilidad.

Ayudas visuales

  • Carpeta actual y estado del repositorio git:
    image

  • Tiempo y estado de ejecución del comando anterior:
    image

  • Colores que mejoran la legibilidad:
    image
    image
    image

Otras ayudas

  • Autocompletado de comandos:
    image

  • Copiar contenido de un fichero al portapapeles:
    image

  • Comandos recursivos utilizando el doble operador **:
    image

  • Búsqueda dentro del historial de comandos introduciendo los primeros caracteres y usando los cursores
    image

Instalación

Lo primero que haremos es instalar en el sistema la fuente Nerd Font FiraCode por ser compatible con vscode, related issue:

git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git /tmp/nerd-fonts
Enter fullscreen mode Exit fullscreen mode

sólo para Windows: Pincha para ver.

Seguimos con la instalación de la fuente, abre la consola Powershell como administrador e introduce estos comandos:

# excluir la seguridad de WSL Ubuntu
wsl -l -v
powershell -ExecutionPolicy Bypass -File .\excludeWSL.ps1
powershell -ExecutionPolicy Bypass -File \tmp\nerd-fonts\install.ps1 FiraCode
Set-ExecutionPolicy Default
Remove-Item -Recurse -Force -Path \tmp\nerd-fonts\
Enter fullscreen mode Exit fullscreen mode

Ahora instala el soporte para las notificaciones:

Install-Module -Name BurntToast
Enter fullscreen mode Exit fullscreen mode

sólo para Linux: Pincha para ver.

Seguimos con la instalación de la fuente, abre la consola e introduce este comando:

/tmp/nerd-fonts/install.sh FiraCode
Enter fullscreen mode Exit fullscreen mode

Ahora instala el soporte para copiar al portapapeles desde el cli:

sudo apt install --no-install-recommends xclip
Enter fullscreen mode Exit fullscreen mode

Y continuamos con el terminal kitty:

sudo apt install kitty
Enter fullscreen mode Exit fullscreen mode

Ábrelo y pulsa ctrl+shift+f2 para generar el fichero de configuración y por último cambia el tema de color con este comando:

bash -c "$(wget -qO- https://raw.githubusercontent.com/Mayccoll/Gogh/master/themes/symphonic.sh)" 
Enter fullscreen mode Exit fullscreen mode

Instalar dependencias

sudo apt update
sudo apt upgrade
sudo apt install python-is-python3
sudo apt install python3-pip
sudo apt install powerline
sudo apt install zsh
sudo apt install zplug
sudo apt install fzf
sudo apt install imagemagick
sudo apt install grc
sudo apt install bat
sudo snap install lsd
sudo -H pip3 install Pygments
[ `echo $0` != `which zsh` ] && chsh -s `which zsh`
Enter fullscreen mode Exit fullscreen mode

notify-send

https://codelearn.me/2019/01/13/wsl-windows-toast.html

Mi repo dotfiles:

Recursos de personalización

Aquí encontrarás información para personalizar tu shell.

Más fuentes Nerd Fonts

Iconos de la fuente Nerd Font

Terminal kitty

Temas de color para el terminal

Añade color a comandos genéricos con grc

Sustituto de ls lsd

Sustituto de cat bat

Sustituto de top Bpytop, para cambiar el tema de color pulsa shift+m y elige flat-remix.

Top comments (0)