{"id":995,"date":"2019-12-12T16:34:51","date_gmt":"2019-12-12T21:34:51","guid":{"rendered":"https:\/\/v3.ricardoromo.co\/?p=995"},"modified":"2020-01-09T07:34:43","modified_gmt":"2020-01-09T12:34:43","slug":"comandos-de-consola","status":"publish","type":"post","link":"https:\/\/v3.ricardoromo.co\/2019\/comandos-de-consola\/","title":{"rendered":"Ahorra tiempo programando con comandos de consola"},"content":{"rendered":"\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Creando el archivo<\/a><\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Ejecutando el Script<\/a><\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Otros usos<\/a><\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Casos de uso<\/a><\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Ahorra tiempo programando, con comandos de consola<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t

12 de Diciembre de 2019<\/h4>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\tDificultad<\/span>\n\t\t\n\t\t
\n\t\t\t
\n\t\t\t\tConocimiento de C<\/span>\n\t\t\t\t\t\t\t\t\t10%<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\"banner_resultado\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Muchas veces en nuestro dia como programadores accedemos a la consola para introducir algunos comandos, sea para compilar, hacer un commit o alguna secuencia espec\u00edfica que tiene requiera nuestro trabajo. Un ejemplo es a la hora de hacer un commit:<\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
git add .\ngit commit - m \"<nombre del commit>\"\ngit push origin master\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Solo introducir esta secuencia de comandos nos tomar\u00eda de 15 a 20 segundos. Si tenemos en cuenta que un programador com\u00fan realiza de 5 a 15 commits en el dia. Sacando las cuentas, el tiempo que invertimos al a\u00f1o, solo escribiendo estos comandos es el siguiente:\u00a0 \u00a0
\u00a0 \u00a0 - En una semana 5 minutos\u00a0 \u00a0
\u00a0 \u00a0 - En un mes 20 minutos\n\u00a0 \u00a0 - En un a\u00f1o 4 horas\n\nSi reducimos esos comandos a uno solo tardaremos solo 5 segundos.<\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
gp \"<nombre del commit>\"\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Pero c\u00f3mo hacemos esto, el comando \u201cgp\u201d no existe por default, pero lo podemos crear, con una herramienta del int\u00e9rprete de comandos llamado, Alias. \nLos 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.<\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Personalizando un alias<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Dependiendo de tu shell o int\u00e9rprete de consola, iras a un archivo dentro de tu carpeta personal:\u00a0
\u00a0 \u00a0 - .bashrc en el caso de que tengas BASH como int\u00e9rprete por defecto\u00a0\u00a0
\u00a0 \u00a0 - .zshrc en el caso de que tengas ZSH como int\u00e9rprete por defecto\nCon el comando \u201cecho $SHELL\u201d sabr\u00e1s cual tienes\n<\/pre>
\u00a0<\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\"\"<\/a><\/figure>

Yo uso ZSH como mi int\u00e9rprete por defecto<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t

\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

1. Creando el archivo<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Nos dirigimos a la carpeta personal y abrimos una terminal y copiamos los siguientes comandos:\u00a0\u00a0<\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
touch git_commands.sh\nnano git_commands.sh\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Se abrir\u00e1 una ventana de nano donde estaremos editando el archivo git_commands.sh<\/b>, pegamos los siguientes comandos de git.\u00a0<\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
git add .\ngit commit -m $1\ngit push origin master\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Ahora guardamos el archivo con los accesos directos\u00a0\u00a0
\u00a0 \u00a0- Ctrl+O (guardar)\u00a0 \u00a0\u00a0
\u00a0 \u00a0- Enter (confirma el nombre del archivo)\u00a0\u00a0<\/pre>
\u00a0 \u00a0- Ctrl+X (salir)\n<\/pre>
Ya teniendo el archivo de comandos tenemos que hacer un alias del archivo dentro del bash, dentro de la misma consola ingresamos lo siguiente:<\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
echo \"alias gp=\\\"source ~\/git_commands.sh\\\"\" >> ~\/.bashrc \n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
o en el caso de ZSH<\/span><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
echo \"alias gp=\\\"source ~\/git_commands.sh\\\"\" >> ~\/.zshrc\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Lo que hace este comando es decirle al interprete que busque el archivo .bashrc o .zshrc y agregue una linea al final.\u00a0<\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

2. Ejecutando el script<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Cerramos la consola y listo, ya nuestro script de consola est\u00e1 listo. Lo que hace este script es condensar en una sola l\u00ednea la rutina de agregar al worker directory, hacer un commit y hacer un push al repositorio remoto.<\/div>
El modo de uso seria de esta manera:<\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
gp \"<nombre del commit>\"\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

3. Otros usos<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Ya has aprendido a encapsular una rutina de 3 l\u00edneas en una sola, ahora puedes hacer tus propios scripts para tu propia rutina, lo \u00fanico que tienes que hacer es crear el archivo .sh y referenciarlo con un alias en el bash.\u00a0<\/div>
\u00a0<\/div>
Aqu\u00ed tienes una pagina con todos los comandos que puedes usar para construir tus propios scripts https:\/\/devhints.io\/bash<\/div>
Recuerda que este archivo .bashrc se ejecuta al inicio del sistema, entonces puedes automatizar tareas al inicio tambi\u00e9n agregando tus propias l\u00edneas.<\/div><\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t

4. Casos de uso<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Yo personalmente tengo 2 scripts que me ayudan mucho en la tarea de programar, sobretodo C y microcontroladores.<\/div><\/div><\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
mrcompiler.sh<\/h5>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Me ayuda a compilar y ejecutar codigo C, guardando los binarios en una carpeta output<\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
echo \"**MrRomo Compiler**\"\n\nfile=$1\nfilec=\"${file\/\/.c\/ }\"\n\nif [ -e $file ]\nthen\n    echo \"Compilando $file\"\n    if [ -d output ] \n    then\n        echo \"el directorio output existe\"\n    else\n        echo \"el directorio output NO existe\"\n        mkdir output\n    fi\n    if [ \"$2\" -eq 0 ]\n        then\n\t    gcc -o  output\/$filec -lm $file  # Try to compile\n        else\n\t    gcc -o output\/$filec -lm $file -l$2 # Try to compile\n    fi\n    if [[ \"$?\" -ne 0 ]]; then\n        echo \"ERROR\"\n    else\n    echo \"NO HAY ERROR\"\n    .\/output\/$filec $3\n    fi\nelse\n    echo \"ERROR\"\n    echo \"El archivo $file no existe\"\nfi\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
mrrtos.sh<\/h5>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
Es un script para trabajar con la ESP32, con el cual subo el c\u00f3digo del framework ESP-IDF, me ayuda adem\u00e1s de compilar, tambi\u00e9n limpia los binarios previamente compilados, flashea y abre la terminal serial para ver el c\u00f3digo ejecut\u00e1ndose en la ESP32<\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
echo \"**MrRomo FREE RTOS Manager**\"\n\nif [ \"$1\" = \"build\" ]; then\n    echo \"Compiling the code\"\n    make clean\n    make all -j8\nfi\nif [ \"$1\" = \"flash\" ]; then\n    echo \"Compiling and uploading the code\"\n    make all -j8\n    sudo chmod 777 \/dev\/ttyUSB0\n    make flash\n    sudo putty -load \"USB0\"\nfi\nif [ \"$1\" = \"clean\" ]; then\n    echo \"Delete all compiled code\"\n    make clean\nfi\nif [ \"$1\" = \"monitor\" ]; then\n    echo \"Open USB0 Serial Monitor\"\n    sudo putty -load \"USB0\"\nfi\n<\/code><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n
\n
\n
\n
\n
Si es una tarea repetitiva, siempre se puede expresar en c\u00f3digo, no importa que tomes mucho tiempo en hacer el script, una vez lo tengas hecho te ahorraras mucho tiempo en tu trabajo y ser\u00e1s m\u00e1s productivo.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\t\t
\n\t\t

Deja una respuesta Cancelar la respuesta<\/a><\/small><\/h3>

Tu direcci\u00f3n de correo electr\u00f3nico no ser\u00e1 publicada.<\/span> Los campos obligatorios est\u00e1n marcados con *<\/span><\/p>