基本上我想做一个几乎像键盘记录器的程序。问题是,作为网络管理员,有时我不记得我在某些情况下对机器做了什么,或者同时我为 linux 制作了 howto 和教程。我想记录我做了什么。 所以基本上这个程序的想法是: 你输入程序的名称,(我暂时称它为 rat)

$ rat 
Welcome everything from now on will be recorded 
recording $ ls 
file1 file2 file3 
recording $ quit 
Bye bye 

您所做的一切都会输出到一个 xml 文件中。像这样

<?xml version='1.0' encoding='UTF-8' ?> 
<rat> 
 <command> 
   <input>ls</input> 
   <output>file1 file2 file3</output> 
   <err><err> 
 </command> 
</rat> 

我正在用 fp_in = popen( input, "w"); 做一些测试 和 system,但首先使用 popen 我无法更改目录,使用“系统我无法正确管理输入和输出。

我也在检查是否可以像插件一样对 bash 做些什么,但没有找到任何信息。

在某些时候,如果感觉合适,我应该创建另一个 shell(这远远超出了我目前的能力)或 fork bash sh。但这应该是那么复杂吧。 我愿意接受从哪里开始的建议。 我对 C 生疏了,所以我又读了很多基础的东西。

有了 xml 文件,后来我在考虑制作一个程序来存储这些数据和/或编辑这些数据,以便我可以创建教程和操作方法。

我可以想出很多方法将其扩展到使用 printscreen,这样所有存储的图像都会转到一个文件,您可以将其上传到服务器(目前我很高兴存储数据)。它可能是一个有用的工具。

附言。我知道这也可以用于邪恶的事情。

请您参考如下方法:

已经存在 script命令,它将所有输入和输出记录到终端中,并将其写入脚本。我建议只使用它,除非您有它不满足的特殊需求。实际上,我见过的最好的 script 版本是 NetBSD version ,所以如果 Linux 版本不能满足您的需求,您可能需要调查一下。

如果您想自己编写,而不是使用 system,我建议您使用 fork/exec创建一个 shell 进程,将所有输入和输出复制到该进程中。要了解其工作原理,我建议查看 an existing version of script 的源代码.


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!