PreguntasLinux

Versión Completa: Guardar todo lo que pasa en bash
Actualmente estas viendo una versión simplificada de nuestro contenido. Para ver la versión completa en el formato correcto, dale click aquí
Hola,

Queria hacer un pequeño programa en C++ que registre los comandos que se ingresa en un shell tipo bash y tambien el output. Si se de bash history, estuve revisando la documentación, sobretodo del comando history, pero se que por ahi no es porque quiero guardar los resultados. Quisiera guardar esto a un archivo xml.
Aqui va un ejemplo de lo que quiero hacer:
digamos que se llama guardar el programa

Código:
$guardar
$ls -al
...
drw-------  2 jdc  jdc     48 Oct 24 18:41 .ssh
drwx------  4 jdc  jdc     96 Oct 26 09:25 .thumbnails
drwxr-xr-x  2 jdc  jdc     80 Oct 25 20:36 .xine
-rw-------  1 jdc  jdc  15784 Oct 28 14:07 .xsession-errors
drwx------  3 jdc  jdc    536 Oct 28 13:29 Desktop

justo despues de ejecutar guardar, me guarda lo que puse ls -al y luego el output que seria lo que viene despues.

No tengo mucha idea por donde comenzar sobretodo para guardar el output.

¿redireccionando la salida standard? stdout en PL.O

También es muy útil el comando tee, que puedes ver la salida además de direccionarla a un archivo, luego usando grep, sed o el lenguaje awk puedes hacer lo que se te ocurra. Entubando de una o versionando.
ls |tee arch.lst
Hay alguna forma además de system() para mandar comandos. Porque la unica forma que he encontrado para recoger los datos de un parametro es system("ls -al > datos.txt"), osea escribiendo a un archivo. Pero digamos que quiero ver que usuario esta usando esto system("echo $USER"), como recojo los valores de las variables de entorno sin escribir todo a un archivo.
URLs de Referencia