我如何从头开始构建基本的终端
我在网上查找了包括在一些建议或指针的stackoverflow,但我发现的任何东西都是压倒性的,我不确定从哪里开始。 如果我忽略了某些明显的道歉,我深表歉意。
我想了解一个终端是如何工作的,我希望从头开始构建一个终端,我会喜欢任何关于终端所需概念和功能的建议或建议,但我不仅仅希望链接到源代码。 我发现了很多开源项目,但是我发现它们令人难以置信。
我想理想的是建立我自己的终端,可以在OS X,Linux和/或Windows上运行(我可能会使用Java,但会考虑其他语言),并最终有一个Web界面(希望在我的浏览器中有我的控制台)我知道这已经完成,但我想自己做,所以我可以详细了解它是如何工作的,只是有一个项目要做。
我真正想要的是阅读材料/教程给我一些指导的起点。 如果这意味着退后一步,终端更加基础,我很乐意做到这一点,一旦我有一些实际的计划,这将使我朝着主要目标前进
终端背后的想法是一个解释和执行每个命令的无限循环。 这里是Perl中的一个例子:
use strict;
use warnings;
while(<>) {
system($_);
}
exit 0;
我知道Perl并不是最简单的阅读语言(但它确实是写得最快的语言),但这是您理解上述程序所需的全部内容:
<>
从标准输入读取。
system($_)
执行命令(其中$_
是一个特殊的Perl变量,它在循环中工作,并表示当前评估的项目,因此在我们的例子中为给定的命令)。
您可以尝试运行上述程序,将其保存在您的计算机上作为foo.pl
,打开终端并执行perl foo.pl
所以,这是基本的想法。 我认为每种语言都实现了一个相同的命令system
(名称可能会改变,但它可能也是一样的)。 你可以看一下man system
,看看这个命令在C
是如何工作的。 我不了解Java,但我确信你必须搜索类似的东西。 从这个起点,我认为你可以开始建立自己的终端。
创建到目标计算机的套接字连接,[从中读取数据,显示],[等待用户输入,显示并将其发送到套接字],重复。 你有基本的终端。
链接地址: http://www.djcxy.com/p/12407.html