¿Qué es lsof -i | grep -E "(ESCUCHAR | ESTABLECIDO)" compuesto de?

2

Recibí consejos para verificar si una aplicación de iTunes envía datos a la nube usando esta línea de comandos

lsof -i | grep -E "(LISTEN|ESTABLISHED)"

¿Alguien puede explicar cómo funciona esto? ¿Cómo funciona la tubería aquí?

    
pregunta Elad Benda 12.12.2013 - 09:05

1 respuesta

6

Se ejecuta el primer lsof :

lsof - list open files

con la opción -i:

  

-i [i] selecciona la lista de archivos de cualquier dirección de Internet                   coincide con la dirección especificada en i. Si no hay una dirección específica                   Fied, esta opción selecciona la lista de todo Internet y x.25                   (HP-UX) archivos de red.

Para obtener una lista similar a esta:

Safari      252 pfitz   33u  IPv4 0x1052718d4b4f54ef      0t0  TCP localhost:49289->localhost:6263 (ESTABLISHED)
Safari      252 pfitz   36u  IPv4 0x1052718d4b4f54ef      0t0  TCP localhost:49289->localhost:6263 (ESTABLISHED)
iTunes      254 pfitz   28u  IPv4 0x1052718d460f9d07      0t0  TCP *:49196 (LISTEN)
iTunes      254 pfitz   30u  IPv4 0x1052718d460fb4ef      0t0  TCP *:daap (LISTEN)
iTunes      254 pfitz   31u  IPv6 0x1052718d37b6b627      0t0  TCP *:daap (LISTEN)

con muchas más entradas. Para filtrar las entradas se usa grep :

  

La utilidad grep busca cualquier archivo de entrada dado, seleccionando líneas que   emparejar uno o más patrones Por defecto, un patrón coincide con una entrada.   línea si        la expresión regular (RE) en el patrón coincide con la línea de entrada sin su nueva línea final. Una expresión vacía coincide con cada línea.   Cada        la línea de entrada que coincide con al menos uno de los patrones se escribe en la salida estándar.

     

grep se utiliza para patrones simples y expresiones regulares básicas (BRE); egrep puede manejar expresiones regulares extendidas (ERE). Ver   re_format (7) para        Más información sobre expresiones regulares. fgrep es más rápido que grep y egrep, pero solo puede manejar patrones fijos (es decir, lo hace   no interpretar        expresiones regulares). Los patrones pueden constar de una o más líneas, lo que permite que cualquiera de las líneas del patrón coincida con una parte de la entrada.

y la opción -E hace lo siguiente:

  

-E, --extended-regexp

     

Interpreta el patrón como una expresión regular extendida (es decir, obliga a grep a comportarse como   egrep).

La expresión regular en este caso es "(LISTEN|ESTABLISHED)" , lo que significa simplemente imprimir las líneas con escucha o establecida.

Conclusión

  1. lsof crea una lista con todas las conexiones a Internet.
  2. Para ser útil, debe ser filtrado con grep
  3. Entonces se filtra con la expresión regular que busca LISTEN o ESTABLISHED
respondido por el Pfitz 12.12.2013 - 09:41

Lea otras preguntas en las etiquetas