Vistas: 431
Tiempo de lectura:4 Minutos, 9 Segundos

Muchas veces en nuestro día como programadores accedemos a la consola para introducir algunos comandos, sea para compilar, hacer un commit o alguna secuencia específica que tiene requiera nuestro trabajo. Un ejemplo es a la hora de hacer un commit:

git add .
git commit - m "<nombre del commit>"
git push origin master

Solo introducir esta secuencia de comando nos tomaría de 15 a 20 segundos. Si tenemos en cuenta que un programador común realiza de 5 a 15 commits en el día. Sacando las cuentas, el tiempo que invertimos al año, solo escribiendo estos comandos es el siguiente:   

  • En una semana 5 minutos     
  • En un mes 20 minutos    
  • En un año 4 horas

Si reducimos esos comandos a uno solo tardaremos solo 5 segundos.

gp "<nombre del commit>"

Pero cómo hacemos esto, el comando “gp” no existe por default, pero lo podemos crear, con una herramienta del intérprete de comandos llamado, Alias.

Los alias son atajos de consola, que pueden contener comandos o conjuntos de otros comandos. Y con los alias podemos encapsular rutinas como la que mencionamos antes.

Personalizando un alias

Dependiendo de tu shell o intérprete de consola, iras a un archivo dentro de tu carpeta personal: 

  • .bashrc en el caso de que tengas BASH como intérprete por defecto  
  • .zshrc en el caso de que tengas ZSH como intérprete por defecto Con el comando “echo $SHELL” sabrás cual tienes

Yo uso ZSH como mi intérprete por defecto

1. Creando el archivo

Nos dirigimos a la carpeta personal y abrimos una terminal y copiamos los siguientes comandos:  

touch git_commands.sh
nano git_commands.sh

Se abrirá la interfaz de nano donde estaremos editando el archivo git_commands.sh, pegamos los siguientes comandos de git. 

git add .
git commit -m $1
git push origin master

Ahora guardamos el archivo con los accesos directos  

  • Ctrl+O (guardar)    
  • Enter (confirma el nombre del archivo)  
  • Ctrl+X (salir)

Ya teniendo el archivo de comandos tenemos que hacer un alias del archivo dentro del bash, dentro de la misma consola ingresamos lo siguiente:

echo "alias gp=\"source ~/git_commands.sh\"" >> ~/.bashrc 

o en el caso de ZSH

echo "alias gp=\"source ~/git_commands.sh\"" >> ~/.zshrc

Lo que hace este comando es decirle al interprete que busque el archivo .bashrc o .zshrc y agregue una linea al final. 

2. Ejecutando el script

Cerramos la consola y listo, ya nuestro script de consola está listo. Lo que hace este script es condensar en una sola línea la rutina de agregar al worker directory, hacer un commit y hacer un push al repositorio remoto.El modo de uso seria de esta manera:

gp "<nombre del commit>"

3. Otros usos

Ya has aprendido a encapsular una rutina de 3 líneas en una sola, ahora puedes hacer tus propios scripts para tu propia rutina, lo único que tienes que hacer es crear el archivo .sh y referenciarlo con un alias en el bash.  Aquí tienes una pagina con todos los comandos que puedes usar para construir tus propios scripts https://devhints.io/bashRecuerda que este archivo .bashrc se ejecuta al inicio del sistema, entonces puedes automatizar tareas al inicio también agregando tus propias líneas.

4. Casos de uso

Yo personalmente tengo 2 scripts que me ayudan mucho en la tarea de programar, sobretodo C y microcontroladores.

mrcompiler.sh

Me ayuda a compilar y ejecutar codigo C, guardando los binarios en una carpeta output

echo "**MrRomo Compiler**"

file=$1
filec="${file//.c/ }"

if [ -e $file ]
then
    echo "Compilando $file"
    if [ -d output ] 
    then
        echo "el directorio output existe"
    else
        echo "el directorio output NO existe"
        mkdir output
    fi
    if [ "$2" -eq 0 ]
        then
	    gcc -o  output/$filec -lm $file  # Try to compile
        else
	    gcc -o output/$filec -lm $file -l$2 # Try to compile
    fi
    if [[ "$?" -ne 0 ]]; then
        echo "ERROR"
    else
    echo "NO HAY ERROR"
    ./output/$filec $3
    fi
else
    echo "ERROR"
    echo "El archivo $file no existe"
fi
mrrtos.sh

Es un script para trabajar con la ESP32, con el cual subo el código del framework ESP-IDF, me ayuda además de compilar, también limpia los binarios previamente compilados, flashea y abre la terminal serial para ver el código ejecutándose en la ESP32

echo "**MrRomo FREE RTOS Manager**"

if [ "$1" = "build" ]; then
    echo "Compiling the code"
    make clean
    make all -j8
fi
if [ "$1" = "flash" ]; then
    echo "Compiling and uploading the code"
    make all -j8
    sudo chmod 777 /dev/ttyUSB0
    make flash
    sudo putty -load "USB0"
fi
if [ "$1" = "clean" ]; then
    echo "Delete all compiled code"
    make clean
fi
if [ "$1" = "monitor" ]; then
    echo "Open USB0 Serial Monitor"
    sudo putty -load "USB0"
fi

Si es una tarea repetitiva, siempre se puede expresar en código, no importa que tomes mucho tiempo en hacer el script, una vez lo tengas hecho te ahorraras mucho tiempo en tu trabajo y serás más productivo.