关于如何编写扩展终端基本功能的程序有什么快速的想法吗?我想做终端所做的一切,但还对用户在我的终端衍生产品上输入的任何内容进行一些自定义处理。
答案1
下载 gnome-terminal 源代码,添加自定义处理并重新编译。来源位于https://git.gnome.org/browse/gnome-terminal/ 从您最初的问题来看,不清楚“自定义处理”意味着什么。
答案2
如果您不需要“实时”数据,您可以通过读取man bash
,使用 per-PID$HISTFILE
并稍后将保存的命令发送到互联网。编写脚本而不是源修改的简单问题。然而,不合作的用户可能会破坏这种方法。
我的回答之一询问Ubuntu讨论该方法的第一部分。~/.bash_logout
(man bash
再次)剩下的可以做。
答案3
从您对想要实现的目标的描述来看,听起来您想要扩展的与其说是终端,不如说是您的 shell(从您的标签判断是 bash)。
方法就是修改源码,你可以在项目的主页。
实现您想要的效果的另一种方法可能是确保每个用户的 shell 都在内部运行script
,该程序保存每个命令的输入和输出(对于提供不断变化的输出(如进度条)的命令,输出可能很难阅读)。您可能需要编写某种包装器,使命令适合放入/etc/passwd
并保存在唯一命名的文件中(我建议使用 uid 和时间的组合)。如果使用该选项-f
,则每次写入 stdout/stderr 后都会写入该文件。确定输入内容和输出内容绝对是一项不简单的任务,但实现令人满意的结果可能仍然比修改 bash 更简单。