Combinación de comandos útiles para Linux
En este post voy a ir agregando comandos útiles que vamos encontrando entre los conocidos (y los que aporten), que permiten realizar tareas desde la consola sin tener que recurrir a programas sofisticados.
Confirmar todas las acciones que pregunte un programa interactivo.
$ yes | programa |
devuelve una «y» cada vez que el programa quiere leer de la entrada estandar
$ yes s | programa |
devuelve una «s» cada vez que el programa quiere leer de la entrada estandar
Encontrar archivos duplicados y conservar uno.
$ yes 1 | fdupes -d ./ |
fdupes encuentra mediante md5 archivos duplicados en la carpeta indicada. El parámetro d, le dice que borre el resto conservando el que le indiquemos. Mediante «yes 1» le decimos que conserve el primero que encuentra. Cuidado con md5 ;-).
Generar un PDF con varias páginas en una sola partiendo de otro PDF.
$ pdfnup salida.pdf --nup 2x5 --orient portrait --frame true |
Dai me contó acerca de una aplicación llamada pdfnup. Permite hacer lo que uno quiera con un PDF, como recortarlo (cortarle los márgenes excesivos), agrupar en disposición de tabla varias páginas dentro de cada una (para poder imprimir por ejemplo 2×3 páginas or carilla). Tiene muchas opciones, pero a la vez configuradas por defecto para no necesitar agregar muchas cosas. El archivo de salida se llamará igual que el de entrada más la disposición, por ejemplo «salida-2×5.pdf».
Recortar varias imágenes y convertirlas en PDF (una por página).
$ convert -crop '750x350+110+200' +repage resp?/*.png salida.pdf |
convert es una de las aplicaciones de ImageMagick. Conserva los originales, permitiendo mientras convertimos de formato, modificarle brillo, contraste, recortarla, rotarla, y muchos etcéteras. Si quisieramos que convierta cada imagen en un archivo separado, bastaría con combinarlo con
$ find ./ -iname '*.png' -exec convert '{}' '{}.pdf' ';' |
donde {} representa el nombre del archivo y ‘;’ finaliza el comando.
Daiana
que bueno el post… bien por lo de pdfnup, me encanta esa herramienta. Ideal para imprimir varias transparencias por hoja, así no gastamos tanto en impresión que cada vez sale más caro.
Lucas-----
Si había algo estúpido que podías hacer para hacer quedar mal a linux era este post. Si querés defenderlo hacé una lista de aplicaciones útiles, no una lista de comandos por consola. Ya de por sí el linux en muchos sentidos apesta, a eso sumale la delicadeza que tuviste de mostrar su lado más «complejo» en lo que respecta al usuario y ¡taran! un verdadero desastre…
nacho
Hola. Me viene muy bien tu comentario para comentar 3 cosas:
* La vez que intenté hacer algo así en otros Sistema Operativo perdí un montón de tiempo buscando herramientas que me lo permitieran hacer. Y cuando las encontré, no hacían exactamente lo que quería y además eran versiones Trial (que si hubiese querido continuar usando debería haber pagado bastante).
* «Recortar varias imágenes y convertirlas en PDF (una por página).» ¿XNVIEW quizá? Sí, podría hacerlo, pero usando además varios pasos y cosas cuando con este comando es ultra sencillo y potente. No veo la complejidad de esto o de leer un manual cortito lleno de ejemplos 😀
* Tu blog, tu «lema». Yo también quiero cobrar por cada línea o punto y coma. Nada te impide eso en el mundo del Open Source. ¡Unite a alguna de las charlas de cualquier LUG y verás la Luz!
Saludos!
Milton Pividori
Lo mejor es moderar los comentarios Nacho. Ni te gastes en responder cosas así: no hay ninguna intensión de la otra parte en escuchar y discutir, sino solo opinar.
Lucas-----
Vos no verás la complejidad de la linea de comandos, pero la idea es pensar en el usuario/cliente, no en uno mismo. Falta que digas: «Pero, compilar el kernel es facil».
En cuanto al «lema» de mi blog: Cobro por cada punto y coma en mi código, pero en un ejecutable. Una de las principales diferencias entre la ideología del open source y la privativa es que la primera vende el código y regala el ejecutable, y la segunda vende el ejecutable y el código por un valor de ejecutable*10 mínimo.
A eso me refiero con que quiero que me paguen por cada punto y coma en mi código, a que se valorize verdaderamente mi trabajo intelectual.
nacho
* El Kernel de Linux no es fácil de compilar.
* Siempre podés cobrar por el diferencial que hagas vos y no por el que uses. Y alguien siempre va a poder basarse en lo tuyo para avanzar. Y tu cliente será libre de contratar a otro si sos malo (si sos bueno, tenga o no código en mano seguirá siendo tu cliente). Y.. y.. y…
* Tu trabajo intelectual. Obviamente, eso es lo que se debe cobrar :-D. Diste en la tecla.
Y te agradezco los comentarios, veo que aún no hay mucha luz en el asunto de desarrollar y ganar dinero utilizando un modelo de código abierto (y/o libre). Quizá haga un post un día de estos cuando tenga tiempo, y si querés ahí la seguimos.
Happy coding!
Nacho
En el siguiente link al blog de PowerShell, pueden ver como se volvió más potente la consola en Windows.
Ahora si uno se puede desatar de la interfaz para hacer cosas más avanzadas (que a veces no se pueden mediante la interfaz). No es muchas veces que los programas no sean potentes, pero a través de una Interfaz Gráfica generalmente no se exponen todos los servicios. Incluso no se puede combinar la potencia de varios programas a la vez, como sí se puede con el pipe.
Pronto agrego más comandos útiles que necesité estos días.
Daiana
Un comando interesante para saber los 10 comandos más usados:
history | awk ‘{print $2}’ | sort | uniq -c | sort -rn | head -10
link: http://usemoslinux.blogspot.com/2010/09/como-descubrir-cuales-son-los-10.html
Daiana
Muy bueno!!
A Nacho le dio este resultado:
192 cd
149 hg
110 sudo
101 ls
60 grep
31 php
31 cake
30 vim
22 hgtk
20 meld
Milton Pividori
Fa, las conclusiones que se pueden sacar con ese comando. Mi lista de los diez más tipeados:
209 cd
137 ls
128 hg
81 vim
41 hgtk
37 mq
31 sudo
25 mono
23 ssh
20 duplicity
Saludos!