java – 如何从头开始构建基本终端

我已经在线查看了包括stackoverflow的一些建议或指示,但我发现的任何东西都是压倒性的,我不确定从哪里开始.如果我忽略了一些显而易见的事情,请道歉.

我想了解终端是如何工作的,我想从头开始构建一个,我希望能够提供有关终端所需概念和功能的材料的任何建议或建议,但我不仅仅想要链接到源代码.我发现了很多开源项目,但我发现它们势不可挡.

我希望建立一个可以在OS X,Linux和/或Windows上运行的自己的终端(我可能会使用Java但会考虑其他语言)并最终拥有一个Web界面(希望在我的浏览器中安装我的控制台)我知道这已经完成但我想自己做,所以我可以详细了解它是如何工作的,只是为了有一个项目要做.

我真正想要的是阅读材料/教程的起点,给我一些指导.如果这意味着退回到比终端更基本的东西,我很高兴做到这一点,一旦我有一些实际的程序,将使我继续朝着主要目标前进

解决方法

终端背后的想法是一个无限循环,它解释并执行每个命令.以下是Perl中的一个示例:
use strict;
use warnings;

while(<>) {
    system($_);
}

exit 0;

我知道Perl不是最简单的阅读语言(但肯定是写的最快),但这就是了解上述程序所需的全部内容

<>从标准输入读取.

system($_)执行命令(其中$_是一个特殊的Perl变量,它在循环内工作并代表当前计算的项,因此,在我们的例子中,是给定的命令).

您可以尝试运行上述程序将其保存在您的计算机上作为foo.pl,打开终端并执行perl foo.pl.

所以,这是基本的想法.我认为每种语言都实现了一个相同的命令系统(名称可能会改变,但它可能也是一样).您可以查看man系统以了解此命令在C中的工作方式.我不了解Java,但我确信您必须搜索类似的东西.从这个起点开始,我认为你可以开始建立自己的终端了.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...