Aprende a crear comandos bash personalizados en menos de 4 minutos

Henry, 09 Jul 2018

En este artículo te enseñaré como crear atajos personalizados (aliases) para comandos bash, y también como correr múltiples comandos usando uno solo.

#Control de versiones
alias gs="git status"
alias gd="git add ."
alias gp="git push -u origin master"

#Directorios
alias diskusage="df -h"
alias folderusage="du -ch"
alias totalfolderusage="du -sh"

#Varios
alias opencustomaliases="code ~/.custom_aliases"
alias updatecustomaliases="source ~/.custom_aliases"
alias updatethenupgrade="sudo apt-get update && sudo apt-get upgrade"

El mundo de los programadores.

Como programadores, a menudo el mismo comando en bash muchas veces, como cd .., ls -l o pwd en todo proyecto de desarrollo. Corriendo estos comandos una vez a la semana no afecta nuestra eficiencia. Pero dos veces todos los dias lo hace en una perspectiva a largo plazo.

Algunos comandos bash son cortos, y otros son largos. Algunos de ellos son difíciles de recordar, y otros no. El punto es incrementar el flujo de trabajo (eficiencia), lo que significa que puedes crear comandos declarativos (código legible), eso es fácil de recordar y rápido de escribir.

Recuerda que la idea no es crear aliases para cada comando del terminal, sino para los que usas repetidamente. Y también, ten cuidado que algunos aliases pueden ser palabras reservadas, así que pruébalos, antes que por error sobrescribas un comando crítico.

Comandos Git más cortos.

Hice una simple prueba solo para ilustrar cuanto tiempo requiere hacer push de los cambios a Github. En promedio, toma entre 20-25 segundos al programador promedio hacer push de los cambios a github.com.

#Prueba
git add .
git commit -m "minos changes"
git push -u origin master

Digamos que haces por lo menos 15 git push en una semana, y el tiempo total para hacer push de los cambios toma 20 segundos.

  • Una semana tomaría 5 minutos.
  • Un mes tomaría 20 minutos.
  • Un año tomaría 4 horas.

Y si reemplazamos estos tres comandos con un alias perezoso "cambios menores", reducimos 20 segundos a 5.

  • Una semana tomaría 1,25 minutos.
  • Un mes tomaría 5 minutos.
  • Un año tomaría 1 hora.

En general, incrementamos el rendimiento en 75%. Este fue solo un simple ejemplo, pero imagina cuanto tiempo podemos ahorrar, por ejemplo si corremos comandos como run apache server && run tests && report data && close o gcc project-source-code.c -o executable-file-name de 15-30 veces por día.

Antes de crear aliases.

Para crear aliases, usualmente los colocamos en el archivo ~/.bashrc, este es un archivo oculto en tu directorio home, al cual puedes acceder desde cualquier parte del terminal. Sin embargo, una buena practica es mantener separados los archivos del sistema de los casos de uso personal. Por esta razón, crearemos un nuevo archivo llamado ~/.custom_aliases y colocaremos todos los aliases ahí. También ten en cuenta que cada que añadas un nuevo alias, debes correr source ~/.custom_aliases de otro modo los aliases no funcionarán.

Paso 1 - Crear el archivo custom_aliases

Todos los aliases que crees, debe ser almacenada en este archivo.

#crear archivo
touch ~/.custom_aliases

Paso 2 - Abrir el archivo custom_aliases

Abrir el archivo a través de un editor de texto, ya sea por gedit o code (Visual Studio Code), o cualquiera que prefieras.

Visual Studio Code (si está instalado)

# Abrir archvio
code ~/.custom_aliases

Gedit

# Abrir archvio
gedit ~/.custom_aliases

Paso 3 - Crear un alias

Vamos a crear un simple alias que imprima “Bienvenido Fulano Detal” cuando escribimos bienvenido en el terminal de bash.

alias bienvenido='echo "Bienvenido $USER."'

Paso 4 - Actualizar cambios

Antes que puedas utilizar el comando recién creado, debes actualizar el archivo custom_aliases.

# Actualizar archivo
source ~/.custom_aliases

Paso 5 - Ejecutar el nuevo comando bash

Escribe lo siguiente en tu linea de comandos favorita:

# Linea de Comandos
bienvenido
>Bienvenido Fulano Detal

Bien hecho! Has creado un archivo personalizado para colocar aliases, vamos a ver que tipo de comandos puedes crear.

Aliases personalizados para comandos bash (personal)

Aquí unos cuantos comandos bash que he estado usando para mejorar mi flujo de trabajo.

Tip: Para mantener una estructura al añadir aliases, organizalos por secciones usando comentarios, como se muestra en el ejemplo de abajo.

#Control de versiones
alias gs="git status"
alias gd="git add ."
alias gp="git push -u origin master"

#Directorios
alias diskusage="df -h"
alias folderusage="du -ch"
alias totalfolderusage="du -sh"

#Varios
alias opencustomaliases="code ~/.custom_aliases"
alias updatecustomaliases="source ~/.custom_aliases"
alias updatethenupgrade="sudo apt-get update && sudo apt-get upgrade"

Ten en cuenta que en diferentes sistemas operativos los comandos pueden cambiar. Asegurate de correr cada comando en tu terminal antes de añadirlos al archivo custom_aliases

Corriendo múltiples comandos

También puedes hacer un comando bash que corra múltiples comandos. Hay dos formas de lograrlo, ya sea creando una función o creando un alias.

Ejemplo 1 - Creando una función.

#Multiples comandos

function perezoso() {
  git add .
  git commit -a -m "$1"
  git push -u origin master
}

Ejemplo 2 - Creando un alias

# Multiples comandos

alias perezoso="git add . && git commit -a -m '$i' && git push -u origin master"

Recuerda actualizar el archivo custom_aliases corriendo source ~/.custom_aliases, y después escribir perezoso "Primer commit".

Gracias por Leer. Espero que te haya sido útil.

Este post es una traducción adaptada de Learn how to create custom bash commands in less than 4 minutes