Hace 14 años | Por --6352-- a emezeta.com
Publicado hace 14 años por --6352-- a emezeta.com

Un one-line command (o comando de una sola línea) es una secuencia de varios comandos encadenados entre sí, de forma que la salida de un comando, es la entrada del siguiente. Es muy común la construcción de comandos one-line en lenguajes y/o herramientas como Perl, AWK o entornos de sistemas operativos. En este pequeño manual veremos 10 comandos one-line, especialmente indicado para administradores web que trabajan y manipulan registros de acceso y logs en servidores.

Comentarios

albandy

#2 Si te contara las veces que he tenido que reparar la configuración de un servidor porque el típico lumbreras ha hecho copy paste sin saber lo que hacía...

Y si te preguntas quien puede ser tan estúpido para hacer eso, por desgracia, en el mundo en el que me muevo hay mucho informático de PCWORLD, el típico que no tiene la culpa de nada, que va de que sabe de todo, y al final después de analizar la secuencia de comandos ves las animaladas que ha hecho y te dice que eso lo ha leído en el blog de menganito.

Por eso es importante poner lo que hace cada cosa, no solo porque sea importante saber lo que haces, si no porque entre los scripts se puede ofuscar código que aparentemente hace otra cosa y podrías meter tranquilamente instrucciones en el cron con unos cuantas secuencias de escape.

Ojo, que no digo que los scripts del artículo no estén bien.

albandy

Aunque al final del artículo se hacen referencias a secuencias de comandos, si pones esto:
cat access_log | cut -d" " -f10,7 | sort -n | uniq -c | awk '' | sort -n | tail -35

Hay que explicar que hace cada comando, un usuario que copie y pegue comandos sin saber lo que hacen es un irresponsable.

cat: lista el contenido de un fichero por pantalla.
| Tubería que captura la salida estándar y la redirige al argumento siguiente.
cut permite fraccionar el contenido de una línea de texto definiendo un caracter separador y un desplazamiento.
sort: en este caso ordena numéricamente el contenido recibido por la entrada estándar.
uniq: elimina duplicados, en este caso el orden dependerá del número de entradas repetidas.
awk: en si mismo es un lenguaje de análisis de patrones, printf funciona muy similar a C.
tail: muestra las últimas lineas de un fichero o en este caso de la entrada estándar.

De todas formas, te voto la noticia porque es interesante que la gente sepa lo que se puede hacer a nivel de consola, pero hay que detallar un poquito más.

D

#1 Dudo que el público objetivo del artículo no conozca la mayoría de comandos que aparecen entre los pipes roll

k

Aunque recuerdo algunos comandos, de la época en que era estudiante, y ahora estoy más volcado en el diseño de plug-ins para aplicaciones gráficas, no viene mal recordarlos. Gracias!