Comandos útiles para developers

Ivonne C
TechWo
Published in
5 min readAug 9, 2018
Tomado de https://www.youtube.com/watch?v=vt79JcPfZQA

Para esta entrada del blog, quiero compartir algo puedan usar de referencia. Por ejemplo, seguido me encuentro buscando un artículo que escribí sobre cómo montar una máquina virtual para Rails, ya sea porque se me olvida qué es lo que debe llevar el Vagrantfile o tal vez algo falló y reviso cuál de los pasos me faltó.

Entonces les voy a compartir un compilado sobre comandos que les pueden ayudar cuando estén haciendo desarrollo de software.

Tomado de https://www.lynda.com/Web-Design-tutorials/Workflow-Tools-Web-Development/533305-2.html

Git

Si estás en un equipo de desarrollo seguramente estás usando Git, y si es para proyectos personales también deberías estarlo usando. En mi caso, al menos una vez a la semana recurro a uno de estos recursos:

¿Cómo hago checkout de un tag? Tan fácil de escribir y de olvidar a la vez, ahí te va, listas los tags y en seguida haces checkout del tag que necesites:

$ git tag -l$ git checkout tags/<tag_name>

Si no tienes el tag en tu local, ejecuta un git fetch y luego los listas de nuevo.

Enmendar un commit. Ya hice commit y, ¡se me olvidó un archivo!, ¿Cómo lo arregló sin tener que hacer otro commit innecesario? ¡Me equivoqué en el mensaje! ¿Qué hago? Utiliza en amend y listo, con eso arreglas el último commit, ya que se volverá a hacer:

$ git add another/changed/file.txt$ git commit --amend -m "New and correct message"

Renombrar un branch, este es necesario cuando el nombre que le pusimos a nuestro branch local no nos gusta, se nos olvidó añadir el número del ticket, era un bug y le pusimos feature, u otra razón por la que necesitemos renombrar el branch.

Esto solo lo aconsejo cuando no hallan hecho push de su branch porque pueden ocasionar un relajo si un colega ya bajó su branch.

Solo úsenlo cuando todo siga en su local y que nadie tenga porqué enterarse:

$ git branch -m new-name

Y para borrar:

$ git branch -d old-branch

Para borrar cuando el branch tiene cambios y estás bien seguro que ya no los quieres:

$ git branch -D old-branch

Ignorar permisos de los archivos. Que no te dé lata git porque en tu ambiente local tienes todo con 777, ejecuta este comando y olvídate de problemas que Git ignorara que los permisos entre el remoto y el local son diferentes:

$ git config core.filemode false

Múltiples llaves publicas de SSH en GitHub. No puedes usar una misma SSH key para dos cuentas de GitHub, por lo que deberás añadir en tu archivo de configuración de git (~/.ssh/config) cuál llave usa cada una de tus cuentas. Aquí te dejó cómo: https://superuser.com/questions/272465/using-multiple-ssh-public-keys/272613

Markdown. Si necesitas escribir un Readme file, ponerle estilos a tu comentario en Jira, Pivotal u otras aplicaciones que usen Markdown, aquí tienes los puntos básicos para hacerlo.

Tomado de Exponential.io

Linux

De Linux no tengo tantos recursos a los que recurra frecuentemente, seguro es porque siempre tengo problemas muy particulares. Pero estos que les voy a compartir, me han sido muy útiles.

Vi / Vim. Ya sea que estoy en una máquina virtual, o un contenedor de Docker, en algún shell donde necesito editar o ver rápidamente un archivo. Lo más sencillo es usar Vi, el problema es que hay que saberse los comandos, los que yo normalmente necesito son:

  1. :q para salir
  2. ZZ guardar y salir
  3. :q! salir e ignorar cambios
  4. :G ir hasta el final del archive
  5. :d borrar la línea donde está mi cursor
  6. :y copiar
  7. P pegar
  8. /string buscar un texto

Para más comandos comunes, te recomiento este acordión: http://www.lagmonster.org/docs/vi.html

Comprimir y descomprimir archivos. Super útil, sobre todo si vas a transferir archivos de una máquina a otra, por ejemplo de un servidor a tu local.

Para comprimir un directorio a un tar.gz:

$ tar -czvf archivo.tar.gz /usr/local/directorio/a/comprimir

Para descomprimir un tar.gz a un directorio temporal:

$ tar -xzvf archivo.tar.gz -C /tmp
Tomado de https://azure.microsoft.com/en-us/services/mysql/

MySQL

Hacer un dump y restore de una base de datos. Esto no es tan frecuente que lo requieras, pero al menos la primera vez que configuras una aplicación existente lo necesitarás. Si trabajas con un CMS, entonces más de una vez te encontrarás copiando la base de datos.

Dump:

$ mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Restore:

$ mysql -u root -p[root_password] [database_name] < dumpfilename.sql

PostgreSQL

Configurar PostgreSQL no tiene que ser tan complicado, solo hay que recordar los comandos, y bueno ahí está el detalle, verdad?

Instalar en Ubuntu. Crea el archivo:

/etc/apt/sources.list.d/pgdg.list

Agrega esta línea en el archivo que creaste:

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

Ejecuta los siguientes comandos:

techwo@medium:~$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \sudo apt-key add -techwo@medium:~$ sudo apt-get updatetechwo@medium:~$ sudo apt-get install postgresql-10 libpq-dev postgresql-contrib

Para crear un rol o usuario, el usuario será techwo y se asume que ese es el usuario de Ubuntu:

techwo@medium:~$ sudo -u postgres createuser --interactive                    Enter name of role to add: techwo                    Shall the new role be a superuser? (y/n) y

Configura la contraseña de nuevo rol:

techwo@medium:~$ sudo -u postgres psqlpostgres=# \password techwopassword

Salir de PosgreSQL:

postgres=# \q

Y listo, ahora solo es cuestión de ir a tu framework y añadir la contraseña de PostgreSQL, el usuario no es necesario ya que usará el usuario de Linux u OSX que use tu aplicación para correr.

Con eso terminó mi compilado de comandos que uso frecuentemente, espero les sea de utilidad así como lo han sido para mí.

Si tienes duda en algún punto no dudes en poner un comentario.

Si tienes algún comando o recurso de uso frecuente por favor compártenoslo ya que muy probablemente sea algo que nos será muy útil.

Recursos:

https://www.git-tower.com/learn/git/faq/edit-fix-commit-message

https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html

https://www.howtogeek.com/248780/how-to-compress-and-extract-files-using-the-tar-command-on-linux/

https://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

https://www.postgresql.org/download/linux/ubuntu/

--

--

Ivonne C
TechWo
Editor for

Software Engineer, backend developer, business anaylist, drupalist, devops junior, and now business intelligence architect.