Command Line Ninjitsu en Maldito Nerd

Necesitás un listado detallado de cuanto ocupa cada directorio en Linux, y lo necesitás ordenado de mayor a menor. ¿Como? Facil:

root@floyd:~# du /home/pink --max-depth=1 | sort -nr | cut -f2 | xargs -d '\n' du -sh

Que te dará por resultado algo como esto:

  65G     /home/pink
  23G     /home/pink/Descargas
  15G     /home/pink/Documentos
  9,0G    /home/pink/Imágenes
  7,9G    /home/pink/ordenar
  6,6G    /home/pink/videos
  4,0G    /home/pink/Música

Actualización – 13/02/2012: Nitsuga en los comentarios de este post se materializó con una idea bastante mejorcita que combina du con sort únicamente y obtiene el mismo resultado final:

du /home/pink/ --max-depth=1 -h | sort -rh

¡Un aplauso para Nitsuga, che!

Ahora si, a continuación, la explicación de como funciona el método largo e inmemorizable.

¿Como funciona?

Se usa du para obtener el espacio ocupado por cada directorio contenido dentro del que se especificó con un máximo de profundidad de 1 nivel (por lo de –max-depth=1) y se le pasa el resultado al comando sort por medio de un pipe.

Sort se encargará de ordenar numéricamente (por lo de –n) y de forma inversa, es decir de mayor a menor (por lo de –r) el resultado obtenido, que se le pasa al comando cut por medio de otro pipe.

Cut deja solamente el contenido del segundo campo y se deshace del resto (por lo de –f2), es decir, ahora que ya está ordenado, se deshace del número y deja solamente el nombre del directorio o archivo en cuestión.

Otro pipe de por medio, xargs va ejecutando du –sh sobre cada uno de los directorios pre ordenados y mostrando el resultado en pantalla usando para delimitar un un argumento de otro el el salto de línea, (por lo de –d ‘\n’).

¿Lo entendiste?

Si lo entendiste te felicito, yo lo tuve que pensar bastante cuando lo ví usar por primera vez (No, no es de mi autoría).

Si no lo entendiste y no tenes ganas o tiempo de entenderlo ya mismo, acordate: Lo viste en Maldito Nerd, o agendate esta página en tus bookmarks, que si te pasa como a mi, lo vas a necesitar un par de veces al año y no te vas a acordar de como carajo era todo el comando.

¿Y si uso Windows en vez de Linux pero igualmente quiero hacerlo por consola?

Bueno, no se puede logar exactamente el mismo resultado pero algo muy parecido se obtiene ejecutando:

dir /S /O-S

Si, así de cortito. Eso demuestra a las claras la superioridad de Windows sobre Linux. No necesito mas pruebas. (Cualquier parecido entre las opciones que le paso al comando dir y la llamada internacional de auxilio es pura coincidencia).

En Linux, se pueden recuperar comandos tipeados con anterioridad haciendo uso por ejemplo de las flechas de cursor hacia arriba y hacia abajo o si tu /etc/inputrc contiene:

"\e[5~": history-search-backward

"\e[6~": history-search-backward

Tipeando parte del comando y presionando Page-Up o Page-Down para ir recuperando todos los comandos que tipeaste en otras oportunidades que coincidan con lo que llevás escrito hasta el momento.

Por ejemplo, para recuperar todos los comandos tipeados que comiencen con “nano”, bastaría escribir “nano” y usar Page Up y Down para ir conmutando en el historial entre todos los comandos que coincidan con el criterio de búsqueda. (Y de paso, anidé un tip dentro de otro tip).

Olvidémonos de que a veces uno anda haciendo chanchadas y vayamos al ejemplo mas típico: Necesitás tipear un comando que contiene información sensible, el nombre de un archivo, un nombre de dominio o una contraseña que preferirías mantener en secreto.

ninja

Necesitás tipear un comando que no quede registrado en el historial de comandos para que no lo lea alguien mas.

Este alguien mas podría ser un compañero de trabajo, otro proveedor o programador que usa tu mismo login o tiene la contraseña o key de root o para los mas paranoicos, un hacker que comprometió el sistema.

¿Como hacer para ejecutar el comando sin dejar rastros/registros?

Continúa leyendo

Otro título sugerido: “j0hn, Cuevana y yo, nosotros, que nos queremos tanto…”

Lectores y lectoras del hilachento: Se que no parece, que cuando me borro por unos días da la impresión de que dejo el blog tirado, abandonado a su no siempre buena suerte, a la deriva soportando los embates de una horda de Cuevaneros enardecidos que no pueden bajar películas o subtítulos a la vieja usanza.

La página de la discordia pero que tantas horas de nuestras vidas gratamente nos ha hecho perder.

La página de la discordia pero que tantas horas de nuestras vidas gratamente nos ha hecho perder.

Sepan que leo todos y cada uno de los comentarios que van dejando en el este Blog (me llegan al teléfono instantáneamente, de hecho) y si no los contesto es simplemente por que quiso la evolución natural que tuviéramos solamente dos dos hemisferios cerebrales, dos pulgares oponibles y escribir con los pies no me sale. (Si, alguna vez intenté, ¿Quién no?…).

Continúa leyendo

Esto tiene tantos usos distintos que me he detenido dos minutos a pensarlo y no sé por donde empezar pero hay una premisa básica:

En Linux tenés que tener un MTA configurado SI O SI. Cuando Linux necesite hacerte saber algo, ponerte al corriente de algún incidente, la mayoría de las veces intentará mandarte un mail. Si nunca te llegó uno de estos mails seguramente es por que te olvidaste de especificar a quien debería llegarle la información pertinente con lo que el dueño de la casilla user en el dominio example.com se entera por ejemplo, que tu fail2ban acaba de banear al tercer intento a un bot sudafricano probando root:god, o que tu microprocesador está trabajando 50 grados por encima de la temperatura de régimen.

Hoy hablando con un amigo, me preguntó:

“¿Y como hacés?”

…Yo le contaba que mis PC y servidores se comunican conmigo usando cuentas de Gmail y prometí escribir al respecto, para explicarle a él, para que me sirva de ayuda memoria en caso de Alzheimer (lo he hecho tantas veces que casi podría tipear todo el setup de memoria, pero uno nunca sabe…) y para toda la posteridad que quiera habitar esta tierra de nadie.

Así que acá esta: Como hacer de una cuenta de Gmail el MTA por defecto de tu Linux para poder enviar mail usando el comando mail (valga la redundancia):

Hay varias formas distintas de poner en marcha un MTA para tu Linux y dependiendo de la complejidad del escenario hasta podrías necesitar de algo como Postfix, Qmail, Sendmail o Exim pero para el caso que nos compete en donde solo necesitamos que nuestra PC nos pueda enviar mails automáticamente desde una cuenta predefinida, con msmtp basta y sobra.

sendmail

Continúa leyendo