Consola-Terminal para Front Ends que no saben usarla No 2

Feliz año (al menos cuando hice este post), continuamos con el semi-tutorial para hacernos másters en la terminal, o al menos para que no nos chamaqueen:

Alias

Los alias en la terminal son como una variable-comando que contiene comandos y flags. Éstos son personalizables: puedes hacer poquito, mucho o muchote. Para listar los alias que actualmente tienes cargados en la terminal escribe (en la terminal ¬¬) alias . La lista, dependiendo del S.O., será grande o pequeña o compleja, por ejemplo la mac viene... sin nada (¬¬) mientras que en opensuse tendrás un alias para casi todo como ..='cd ..' sí, es para cambiar de carpeta hacia arriba escribiendo sólo .. (dos puntos).

Para crear un alias tendremos que darle un nombre (el que vamos a escribir a cada rato), y tenemos que tener el comando completo a la mano.

Vamos a "listar los archivos, en forma de lista, acomodados por la fecha de modificación y de forma inversa" (je) para esto tenemos que escribir el siguiente comando ls -l -t -r pero nos da pereza escribir lo mismo porque la tarea que estemos haciendo nos demanda escribirla a cada rato. Tons lo que tenemos que hacer es darle un nombre corto como lr (algo así para acordarnos de “listar en reversa” los archivos). Finalmente lo creamos escribiendo alias lr="ls -l -t -r" y damos enter.
Ahora si: cada vez que escribamos lr en la terminal van a aparecer los archivos listados acomodados en reversa por fecha.

Pero eso no es todo, también puedes mezclar varios comandos con && (algo así como “comando1 YY comando2”); por ejemplo aquellos que usan git siempre hacen los siguientes comandos para guardar sus cambios:
git status

git add .

git commit -m “primer commit”

Puedes escribir un alias que haga lo mismo tecleando menos:

gc='git status && git add . && git commit -m'

El uso de este alias sería:
gc “segundo commit”

Alias SSH

Y ya que estamos clavados con los alias veremos los alias de ssh; estos sirven (como los de arriba) para escribir menos haciendo lo mismo:
para el ejemplo nos conectaremos vía remota a un servidor inventado de la forma:
ssh becario@servidorinventado.com , en donde el usuario es el becario (¬¬, cuidado). Pero resulta que el becario copia y pega a cada rato la contraseña de un block de notas porque es una cosa de tipo “"_{WvdkY*g`7@Vqe y no se la logra aprender, poniendo en hack nuestro servidor etc.

Para no estar escribiendo la contraseña a cada rato, podemos generar un par de claves en las computadoras para que se identifiquen entre ellas:
antes de hacer cualquier cosa vete a la carpeta ~/.ssh/ , y fíjate si hay dos archivos (id_rsa); si ya existen pues ya no hay que generarlos verdad, por que ya existen ¬¬.

Si no existen puedes generar las claves en la computadora tecleamos el siguiente comando
ssh-keygen -t rsa -b 4096 -C "your@email.com"
las claves se generan la carpeta ~/.ssh/
Ahora sí para emparejar las claves del servidor y de la computadora en la que está trabajando el becario escribimos :
ssh-copy-id becario@servidorinventado.com te va a pedir contraseña (ok, va a ser la única vez),
y ahora sí: el becario puede acceder sin escribir la contraseña a los servidores.
escribiendo sólo ssh becario@servidorinventado.com.

La mayoría de los becarios deja hasta allí el trabajo, pero el alias no está creado todavía (lamento emocionarte). Para añadir un alias al ssh nos vamos a la carpeta ~/.ssh/ (donde según yo estábamos antes) en la carpeta creamos un archivo que se llame config
Vamos a poner las siguientes líneas al archivo:
..='cd ..' y guardamos: creo que es bastante claro pero igual explico:

  • La primera línea Host becario : es el nombre el alias.
  • La segunda línea el nombre del host , también pueden poner la ip del servidor.

  • La tercera línea el usuario que se va a conectar

  • La cuarta línea la llave que creamos para identificarnos:

¿Y todo este choro para qué?

Para usar el ssh de arriba escribimos sólo
ssh becario y ya se conecta al servidor indicado con las credenciales indicadas

¿Nomas pá eso?

No. Cuando copiamos archivos al servidor con el scp [^n] podemos usarlo también:
scp archivo.txt becario:/misarchivos/archivo.txt incluso sirve para rellenar el nombre del archivo del servidor remoto: (escribimos)

scp becario:/misarchivos/basededatosdeclientes (apretamos tabulador para rellenar)

scp becario:/misarchivos/basededatosdeclientes_dia_mes_anio.csv

nos rellena el nombre del archivo; también sirve para el rsync.

Feliz año nuevo.