Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: [u]nsigned en 24 Julio 2010, 09:09 am



Título: interactuar con shell
Publicado por: [u]nsigned en 24 Julio 2010, 09:09 am
hola..tengo una duda:

como se podria interactuar con una shell? me re fiero q que por ejemplo hay dos tipos de programas: los que se ejecutan de comienzo a fin y producen su salida sin esperar ninguna intervencion del user, ej

Código
  1. cat /etc/resolv.conf

pero por otro lado tenemos programas "interactivos", es decir que esperan que el use haga algo para actuar(o dejar de hacerlo) como less o top. queria saber por ejemplo si hay alguna forma de llamar a top,capturar a este en cierto tiempo (capturar la terminal como texto o directamente la info en binario) y luego esperar unos 15 seundosy volver a hacerlo..es posible?  :huh:

Saludos


Título: Re: interactuar con shell
Publicado por: [u]nsigned en 25 Julio 2010, 23:44 pm
NADIE?  :-X :P :-\

Deberia reformular mi pregunta..no se ha entendido..nadie que me tire un cable de tantos linuxeros que hay en el foro?  :P

Saludos


Título: Re: interactuar con shell
Publicado por: Fayre en 30 Julio 2010, 23:38 pm
Perdón por revivir el post pero solo es de 4 días asique, alomejor ya lo has solucionado, nose si te he entendido muy bien que quieres que el programa te pregunte que hacer y conforme lo que le indiques haga una cosa o otra?. Para que guarde lo que le escribas seria:

read variable

donde variable será el contenedor de lo que le pongas luego esto se puede pasar por un if para saber que has puesto. Si no era esta tu pregunta por favor digalo.

Salu2


Título: Re: interactuar con shell
Publicado por: [u]nsigned en 30 Julio 2010, 23:49 pm
Gracias por responder, pero lo que quiero es un especie de curl pero para manejar demonios (osu frontend n version mando binario, como por ejemplo "top"..vamos, me refiero al los comandos orientados a eventos del usuario, no a aprametros o sucesos..se entiende?..me gustaria  una especie de framwok para la terminal linux y en especial este tipo de programas..

Saludos


Título: Re: interactuar con shell
Publicado por: Zazú en 30 Julio 2010, 23:54 pm
Te ayudaria pero la verdad no te entendí mucho, trata de reformular la pregunta siendo mas especifico  :¬¬


Título: Re: interactuar con shell
Publicado por: [u]nsigned en 31 Julio 2010, 00:19 am
A ver, voy a dar un ejemplo de lo que quiero hacer.

lanzo top y a su vez registro lamarca timestamp en que lo lance (seria de la creacion del proceso). luego esperar, digamos unos 5 segundos, y capturar toda la pantalla, no en una imagen, sino literalmtente capturar la pantalla como lo que es..un array bidimensional de caracteres (obiamente hablo de una CLI). Registrar esa "captura" (guardarla en una variable en momeria o un archivo (en linux seria lo mismo  :xD) y tambien guardale en tiempo en que la hice...y asi digamos hacer una captura automaticamente cada 10 segundos. No me sirve cron o algo de ese tipo, necesito que sea un programa el que manipule el comportamiento( cada cuanto capturar)..bien eso seria lomas basico..lo que no sabria sera capturar la pantalla.

Luego si ya me gustaria algomas complejo como enviarle ordenes (parametros) a dicha terminal corriendo top, por ejemplo cambiar de asc a desc, el criterio de listado ec..., y sacarle capturas tambien.

Saludos


Título: Re: interactuar con shell
Publicado por: luinuz en 31 Julio 2010, 02:30 am
En vez de top no seria mejor que usaras ps?
Te pongo un par de ejemplos, uno con top y otro con ps. No se si te valdran pero creo que se aproxima a lo que buscas;

Ejemplo con ps;
Código:
while true; do
    timestamp=$(date +%Y%m%d-%H%M)
    pa aux > captura_${timestamp}.txt
    sleep 5
done

Ejemplo con top;
Código:
while true; do
    timestamp=$(date +%Y%m%d-%H%M)
    top > captura_${timestamp}.txt
    killall -9 top
    sleep 5
done

Para hacer capturas de pantalla mirate este sencillo screenshooter en bash
http://luinuz.comze.com/mi_web/shell_scripts.php#9
http://luinuz.x10hosting.com/mi_web/shell_scripts.php#9

Saludos.