BASH TRICKS BOYS – Agilidad en la shell

Estos son unos buenos consejos que puedes tener en cuenta a la hora de utilizar una consola con bash. No son todos los que existen desde luego pero si una recopilación de algunos bastante interesantes y de gran utilidad. Espero les guste.

 


1. Dolores de muñeca
2. Borrar la pantalla
3. Moverse entre 2 directorios
4. Repetir el último comando
5. Repetir un último comando con sus argumentos
6. Ver los últimos argumentos
7. Arreglar y repetir el último comando
8. Autocompletado
9. Moverse por el historial
10. Buscar en el historial
11. Historial con fecha
12. Alterar el historial
13. No dejar huella como la lejía estrella
14. Los alias son buena cosa
15. Desactivar un alias temporalmente
16. Putona y atún
17. Cerrar sesión
18. Vivir en Segundo y primer plano
19. Algunas combinaciones para editar texto
20. Cortar un proceso
21. Las benditas llaves. Expansión con llaves
22. Usar screen para operaciones de riesgo
23. Gzip en los dump de bases de datos
24. Scp para pobres

 


1. Dolores de muñeca


A lo largo del día dándole a la santa tecla nos puede doler la muñeca. Normalmente dolerá más a quienes tiran mucho de ratón mientras que quienes se han agenciado un buen teclado serán los reyes del mambo por más tiempo.
Sí podemos evitar el uso del ratón lo máximo posible ganaremos velocidad en la línea de comandos. Separar una mano del teclado es perder productividad algunas veces.
Obligarse a usar solamente el teclado durante semanas será suficiente para aprender la mayoría de los trucos que hacen que ganes en productividad. El ratón no es malo pero tampoco es bueno en la línea de comandos.
Si eres capaz de hacer la prueba con el tiempo lo agradecerás. Tu muñeca lo agradecerá. Nada es para siempre y lo sabes. Cuida tu muñeca y aprende a hacer las cosas con menos teclear y sin tanto ratón.

 

2. Borrar la pantalla


Puedes borrar la pantalla usando clear o mucho más rápido con la combinación de teclas Control+l. Esto es uno de esos atajos que hacen ganar mucho tiempo a quienes usan bastante el borrado de pantalla. Funcionará también en la consola de mysql.

 

3. Moverse entre 2 directorios


Para movernos entre 2 directorios podemos usar cd así:

cd -

Para hacer la prueba primero entramos en un directorio, luego en otro y luego lo usamos.

 

4. Repetir el último comando


Repetir el último comando escrito es sencillo. Podemos hacer esto usando la tecla de «arriba» de los cursores no obstante podemos hacer esto también escribiendo lo siguiente:

 

!!

 

Si por ejemplo nuestro último comando era un ls eso repetirá ese último comando. En algunos entornos es de gran utilidad.

 

5. Repetir un último comando con sus argumentos


Es posible que nos interese repetir la última vez que utilizamos un determinado comando. Es posible que nos interese simplemente llamar al comando y que los argumentos que le pasamos en su momento se pasen de nuevo sin que tengamos que escribirlos.
Veamos un ejemplo:

 

!ls

 

Si nuestro último comando ejecutando ls era así: ls -la entonces repetirá eso mismo. Así con cualquier comando. Esto es de utilidad si por ejemplo solemos usar determinados comandos con bastantes argumentos y queremos llamarlos rápidamente sin tener que escribirlos de nuevo.

Otro ejemplo:

 

!ps

 

Eso ejecutará el último comando ps que hemos escrito con sus argumentos.
Otra cosa buena es repetir solamente una parte del comando, por ejemplo este:

hola mundo mundial

Escribiendo !:2 repetirá solamente mundo que esta en la segunda posición.

 

6. Ver los últimos argumentos


Esto es con ESC+. (Escape + punto). Es maravilloso.

 

7. Arreglar y repetir el último comando


Algunas veces la gente se confunde. Somos humanos y esas cosas. Por ejemplo cuando vas a realizar un echo «hola mundo» así:

eco "hola mundo"

Eso dará error salvo que tengamos en el sistema algún programa llamado eco. Para arreglarlo y que se ejecute de nuevo podemos hacerlo así:

 

^eco^echo^

 

Ahora tendremos la salida de hola mundo. Esto lo cierto es que no tiene mucho sentido en líneas cortas pero si puede ser de utilidad en un momento dado para cambiar una cadena del último comando por otra y que se repita.

Veamos otro ejemplo:

 

ping -c 1 google.com

Eso realizará un ping a google.com transmitiendo solamente un paquete. Si deseamos realizar el ping a otro host podemos hacerlo así:

 

^google.com^duckduckgo.com^

Eso cambiará la cadena google.com por duckduckgo.com y relanzará el ping pero esta vez contra ese nuevo host.

 

Como ves esto sirve para apañar un error en algún comando o para cambiar algún valor de algún comando que hemos realizado previamente.

 

8. Autocompletado

Esta es un clásico que cuando ves que alguien no lo utiliza te tiras de los pelos. La tecla tabulador para autocompletar mientras trabajas en la línea de comandos es crema buena.

 

Por ejemplo quieres entrar a etc/apache2 . Puedes hacer esto:

 

• Escribes cd metes un espacio y escribes la letra e
• Presionas tabulador 2 veces si hace falta. Si todo va bien te autocompletará etc
• Sigues escribiendo, en este caso solamente apa y pulsas tabulador para que autocomplete.
Con esto se ahorra escribir mucho. Si existen varias opciones nos las mostrará. Mucha gente utiliza esto para rápidamente ver si existen varios archivos con nombres que empiezan igual.

 

9. Moverse por el historial


 

Moverse por el historial podemos hacerlo con las flechas de arriba y abajo. Es muy sencillo y no tiene mucho misterio.

 

10. Buscar en el historial


 

Con la combinación de teclas Control+r rápidamente podemos hacer una búsqueda en el historial y dar con lo que queremos.

 

Esto es crema de la buena y hace que ganemos muchísimo tiempo a la hora de trabajar y que no tengamos que recordar miles de opciones en comandos largos y específicos para tareas determinadas.

 

11. Historial con fecha


 

Es importante muchas veces saber cuando se ejecutó un determinado comando. Para que esto pase podemos añadir en el .bashrc de un usuario lo siguiente:

 

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Abrimos una sesión de bash nueva (escribiendo bash) y miramos el historial escribiendo history.

 

Ahora ya veremos la fecha de cuando ejecutamos las cosas.

 

12. Alterar el historial


 

Alterar el historial es buena cosa. Nos puede interesar para por ejemplo apañar un comando que no pusimos bien y que es largo. Para esto se puede usar el comando fc.

 

fc

 

Ejecutando solamente fc entraremos en el editor que tengamos configurado por defecto (vi,nano,emacs, …) y podremos editar la última orden que hemos mandado a la línea de comandos.

 

fc -l

Esto es buena cosa. Veremos que nos muestra un número de los últimos 10 comandos. Si queremos editar uno determinado usaremos esto:

 

fc 44

Una vez editado si buscamos en el historial este estará alterado y reflejará los nuevos cambios.
Editando el archivo .bash history de nuestro usuario también podemos hacer lo mismo (aunque mola menos).

 

13. No dejar huella como la lejía estrella

 

Si no deseamos dejar huella (como la lejía estrella) en el historial hemos de meter un espacio antes del comando. Este no quedará registrado.

 

14. Los alias son buena cosa

 

Crear un alias de un comando largo es buena cosa. Esto nos permitirá ser más rápidos a la hora de trabajar. Para probar un alias podemos hacerlo así:

 

alias hola='ls -la'

No ser guardará para la siguiente sesión pero si queremos que se graben podemos hacerlo en el archivo .bashrc

 

15. Desactivar un alias temporalmente

 

Es posible que no queramos usar un alias en un momento dato. Supongamos que tenemos este alias para usar links2:

 

alias links2="links -g"

Cuando escribimos links2 siempre nos abre el modo «gráfico» de este navegador. Si no lo queremos en un momento dado lo ejecutaremos así:

 

\links2 elbinario.net

Ejecutará links2 sin la opción -g añadida en el alias.

 

16. Putona y atún

 

Recordar las opciones de netstat es más sencillo cuando forman una palabra que podemos recordar.
Unas opciones son estas:

 

netstat -atun
netstat -atunp
netstat -putona
netstat -puton
netstat -putan

 

Siempre que podamos formar con los argumentos una palabra es bueno hacerlo. Será más sencillo recordarlo.

 

17. Cerrar sesión

 

Cerrar la sesión escribiendo exit es cansino. Puedes hacerlo con Control+d e ir saltando de maquina en maquina. Es una maravilla y nunca más usarás exit para salir salvo que sea necesario.

 

18. Vivir en Segundo y primer plano

 

Supongamos que tenemos instalado el programa htop o simplemente top. Para dejarlo en segundo plano usaremos Control+z y nos mostrará el ID de ese trabajo en segundo plano.
Podemos probar a abrir htop varias veces y dejarlo en background con Control+z.
Para restaurarlo usaremos fg y el número. Para ver los trabajos que hemos dejado en segundo plano podemos usar el comando *jobs.

jobs

 

19. Algunas combinaciones para editar texto

 

Es buena cosa en la línea de comandos movernos cuando estamos escribiendo algunos comandos largos. Una opción es ir con los cursores dándole a la tecla izquierda o derecha para moverse, el caso es que eso es lento.
Pongamos de ejemplo que estamos escribiendo este comando y queremos ir al inicio ya que nos hemos confundido y en vez de cp queremos usar mv:

 

cp archivo1.txt /var/www/mierda/

Usaremos control+a para irnos al principio de la línea y cambiar el comando cp por mv. Para ir al final de la línea podemos usar control+e.
TRUCO DEL ALMENDRUCO: Para recordar que letra es para ir al principio o a el final hemos de recordarlo tal que así:
• Control+a – a de alprincipio
• Control+e – e de elfinal
¿Buena cosa verdad?.
Si quieres moverte rápido puedes pulsar control a la vez que le das a las flechas izquierda o derecha e irás saltando de palabra en palabra.
Otra cosa buena es para los que sufren en mayor o menor grado disortografía o quienes se confunden de vez en cuando. Un ejemplo:

 

sl /var/www/*

Nuestra intención era usar el comando ls pero por error pusimos sl. Esto se arregla colocándonos en medio de la s y la l y pulsando Control+t. Veremos como se cambia de posición la l por la s y la s por la l.
Algunos otros:
• Cortar hasta el principio desde nuestra posición – Control + u
• Cortar hasta el final desde nuestra posición – Control + k
• Pegar – Control + y
Copiar y pegar con el botón del medio del ratón:

Esto es simplemente seleccionar con el clic izquierdo y te vas a otro lado y pegas con el botón del medio del ratón. ¿No lo sabías?

 

20. Cortar un proceso

 

Para cortarlo usaremos control+c. Otra cosa es matarlo sabiendo su PID con kill. Un ejemplo es cortar un ping:

 

ping elbinario.net

Mientras se esta realizando el ping podemos cortarlo con Control+c

 

21. Las benditas llaves. Expansión con llaves

 

La vida con corchetes es mejor dicen las malas lenguas. Pongamos un ejemplo usando corchetes:

 

echo archivo{1,2,3,4,5,6,7,8}

Eso mostrará una salida así: archivo1 archivo2 archivo3 …

En vez de echo usamos el comando touch podemos crear todos esos archivos así:

 

touch archivo{1,2,3}

Eso generará 3 archivos vacíos llamados: archivo1 archivo2 archivo3 .

 

Sí quisiéramos añadirle una extensión al crearlos podríamos hacerlo así:

 

touch archivo{1,2,3}.txt

Eso generaría los 3 archivos sin nada dentro pero con la extensión .txt
Para copiar por ejemplo un archivo de forma rápida lo que podemos hacer es esto:

 

cp hola.txt{,.bk}

Eso copiará hola.txt como hola.txt.bk y se escribe menos que usando el comando normal:

 

cp hola.txt hola.txt.bk

Ahora podemos probar algo más molón creando 14 archivos de prueba:

 

touch imagen{1,2,3,4,5,6,7,8,9,10,11,12,13,14}.jpg

Y solamente queremos realizar algo contra la imagen5 hasta la imagen10. Por ejemplo ver información sobre que tipo de archivo es:

 

file imagen{5..10}.jpg
du -ha imagen{5..10}.jpg

Si nos fijamos estamos usando .. para indicar un rango.

 

22. Usar screen para operaciones de riesgo


Screen es buena cosa. Cuando se va a realizar por ejemplo el dump o la importación de una base de datos es bueno antes acceder a una sesión de screen. De esta forma si perdiésemos la conexión la tarea seguiría realizándose.
En debian se puede instalar screen así:

 

apt-get install screen

 

23. Gzip en los dump de bases de datos

 

Una forma de realizar un dump de una base de datos mariadb o mysql en general es con mysqldump así:

 

mysqldump -u usuario -p nombrebasededatos > dump-nombrebasededatos.sql

Eso es una mierda que nos puede hacer perder tiempo y dinero. Una copia de una base de datos de 6Gb lo mismo se nos queda en 400Mb y a la hora de moverla ganaremos tiempo.
La forma es esta:

 

mysqldump -u usuario -p --opt nombrebasededatos | gzip > dump-nombrebasededatos.sql.gz

 

Para luego descomprimir en el destino usaremos esto:

 

gzip -d nombrebasededatos.sql.gz

 

Nos quedará sin el .gz y ocupará un montón más.

 

24. Scp para pobres

 

Copiar con cp esta bien pero copiar con scp es mucho mejor. Con scp copiamos de forma segura y permite copiar de una maquina a otra.

 

Para copiar en la misma maquina un archivo lo usaremos como normalmente con cp. Un ejemplo:

 

scp archivodeunapelicula.ogv /home/benito/camelas/peliculas/

Eso copiará archivodeunapelicula.ogv del directorio actual a otro que hemos indicado.
Copiar a otra maquina en la que tenemos un usuario con el mismo nombre que en nuestra maquina.

 

scp archivo.txt direccionservidor.com:

Como en nuestro equipo tenemos el mismo usuario que en el equipo al que queremos copiar el archivo no hemos de indicar el nombre del usuario. Como no hemos indicado una ruta y solamente hemos puesto los : pues se copiará en el home del usuario.

 

Como el servidor al que vamos a copiar tiene el servicio sshd en el puerto 22 no indicamos puerto.
La versión larga de esto que usa mucha gente es esta:

 

scp -P 22 archivo.txt usuario@direccionservidor.com:/home/usuario/

Es un poco rollo escribir tanto si podemos no hacerlo si se cumplen las condiciones.

 

Por otro lado cuando copiamos con scp ocupamos todo el ancho de banda a tope con la cope.
Los limites en scp podemos indicarlos con -l 400 (para limitar a 50).  Esto es bueno para no ocupar
todo el ancho de banda disponible

 

¿Le ha gustado el contenido?

Si le ha gustado y le ha sido de utilidad puede donar aquí https://paypal.me/mierdatv .  
También puede escribir un comentario si lo considera oportuno.  
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *