Feb 24 2010

Generar passwords aleatorios desde la consola

tatai

Seguro que alguna vez has necesitado una contraseña de estas complicadas y no sabías que poner. Pues bien, de las millones de posibilidades que tienes para generar una, yo tengo esta que la verdad, me parece sencilla y rápida:

cat /dev/urandom | tr -dc "a-zA-Z0-9-_\.\!\$\?" | fold -w 10 | head -n 1

Ok, explicación:

  • /dev/urandom: fuente aleatorio de información
  • tr -dc “a-zA-Z0-9-_\.\!\$\?”: elimina cualquier caracter que no sea una letra, un dígito o alguno de los símbolos – _ . ! $ ?
  • fold -w 10: obliga a que el tamaño sea de 10 caracteres
  • head -n 1: mostrar una contraseña

Así pues, si quieres que tu contraseña tenga x caracteres, cambia el 10 del comando fold por ese valor y si quieres obtener más de una contraseña, indicalo cambiando el 1 de head por tantas como quieras. Por supuesto, si quieres cambiar los caracteres válidos, modifica la expresión de tr.


Feb 23 2010

Buscando ejecutables en el path

tatai

No es la primera vez que me encuentro con una cara de alegría cuando enseño uno de estos comandos con lo que lo voy a dejar por aquí escrito, por si puedo alegrar unas cuantas caras más.

Básicamente consiste en sacar el path completo donde se encuentra un ejecutable en nuestro sistema. Si queremos, por ejemplo, buscar donde está el comando ls, escribimos:

$ which ls

o bien

$ whereis ls

El resultado de ambos es muy parecido: /bin/ls

¿Dónde está la diferencia? Pues which acepta por ejemplo el parámetro -a con el que se muestran todas las coincidencias (no únicamente la primera) o el parámetro -p que retorna 1 si ha encontrado el ejecutable o 0 si no (útil para scripts).

Mucho ojo, estos dos comandos únicamente buscan en aquellos paths definidos en $PATH. Si necesitas buscar fuera de los paths las dos opciones más comunes son:

$ locate ls

O más “a lo bruto”:

$ find / -name 'ls' -type f

Hay que tener en cuenta que locate requiere que se haya indexado el contenido en el disco duro. Por esto, es posible que alguna vez os haya ocurrido que el ejecutable no aparecía, quizás ejecutásteis el comando demasiado pronto.


Ene 3 2010

Trabajar con ficheros a partir de una fecha y hora

tatai

Al hilo del post de ayer sobre date, hace poco tuve que realizar un sencillo script que borrase todos aquellos ficheros más viejos que una determinada fecha (en particular, ayer a las 6.30h).

Seguramente habrás pensado que la mejor opción es un find con -atime (o -mtime o -amin o -cmin, etc) y posteriormente con un -exec. Bien, es una buena idea aunque yo quería que fuese a partir de un determinado momento exactamente, sin calcular. Para esto, también usé find, pero me apoyé en date y en touch y quedó algo así:

#!/bin/bash
# La fecha y hora de ayer a las 6.30h
FECHA=$( date +-d "06:30 yesterday" +"%Y/%m/%d %H:%M:%S" )
# Fichero temporal
POINT=$( tempfile -p "point" )
# Cambiamos la fecha del fichero temporal
touch -d "${FECHA}" ${POINT}
# Buscamos ficheros más viejos que ${POINT} y los borramos
find /path/al/destino -not -newer ${POINT} -exec rm {} \;
# Borramos basura
rm ${POINT}

Es posible que sea algo más lioso, pero sin tener que calcular nada (por ejemplo la diferencia de tiempo entre cuando ejecutemos el fichero y nuestra hora objetivo), hacemos el trabajo rápidamente. Y también podemos cambiar la hora de una forma muy cómoda.

Más info

Este “más info” va a ser un claro RTFM ;)

  • man find
  • man date
  • man touch

Mar 17 2009

Las 11 mejores razones por las que elegir LINUX como tu sistema operativo

tatai

Las 11 razones no me las he inventado yo, aunque estoy muy de acuerdo en todas ellas. Traducido directamente desde Tech Toggle, son las siguientes:

  1. Linux es gratis
  2. No hay virus en Linux
  3. Soporte gratuito e ilimitado
  4. No es necesario reinstalar una y otra vez por la degradación del sistema
  5. Linux ya introdujo los efectos 3D en el escritorio antes que ningún otro, con requerimientos mucho más bajos
  6. No es necesario defragmentar el disco duro
  7. No es necesario instalar clientes de mensajería instantánea de forma separada. Usa programas como pidgin (que, por suerte, ha sido portado a otros sistemas)
  8. Linux no necesita drivers, ya están en el kernel
  9. No te pierdas, usa los distintos escritorio, tienes más de uno!
  10. Linux es más estable y no tiene “pantallazo azul”
  11. No necesitarás actualizar tu hardware por culpa del sistema operativo

Creo que poco se puede rebatir. Y pese a que el número 7, programas como pidgin ha sido portados y se puede usar no sólo en Linux, desde un comienzo pudimos contar con un programa que nos permitiera el tan ansiado multi-protocolo sin liarnos a abrir distintos programas.

A todo esto, también hay que añadir la facilidad con la que podemos instalar nuevos programas, la gran mayoría de ellos gratuitos, gracias a comandos como apt-get, aptitude, o programas para entorno gráfico como synaptics. Y por no hablar de que podemos actualizar nuestras versiones de los programas de forma sencilla y gratuita también!


Mar 30 2008

Todo lo que necesitas saber sobre particiones en Linux

tatai

Interesantísima guía escrita por la gente de fentlinux.com sobre particiones en Linux.

De un plumazo tendremos información sobre qué son, qué tipos hay, qué programas y comandos podemos usar para modificarlas, crearlas y borrarlasy hasta sugerencias de cómo particionar nuestros discos duros.

Muy muy recomendable.