Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

阿里云教程13小时前发布
2 0 0

大家好!我是瓜哥,前互联网技术总监,目前AI编程这条路上持续探索和分享。

Gemini 3 来了,现有多个入口可以使用和感受它强劲的能力!

这几天高强度用 Gemini 3 的过程里,我蹦出一个想法,能不能在 Gemini CLI 的终端里 “造” 一个终端出来。

于是,说干就干…

01 调研可行性

我先找 Gemini 网页版 讨论了下可行性。这实际上是一个超级适合展示Gemini 前端技术能力的经典项目—— Web Terminal (网页终端模拟器)。

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

浏览器( Chrome / Safari )出于安全思考,禁止网页直接访问用户的本地系统底层。

所以,我们并不能真的通过 HTML / JS 直接运行系统的 ifconfig 来看网卡信息,或者用真正的 ping 去发 ICMP 数据包。

我们能做的是: 全真模拟一个操作系统的终端出来!

02 打磨提示词

可行性已确定,紧接着跟 Gemini 几轮的提示词沟通优化,很愉快的输出了结果。

Gemini 提议使用英文提示词,对大模型来说理解需求会更准确些。

Role: Senior Frontend Developer Task: Create a single-file HTML/CSS/JS application that simulates a MacOS Terminal (CLI). Tech Stack: Vanilla HTML, CSS, JavaScript (No external libraries).

1. Visual Design (CSS):
Theme: MacOS Dark Mode (Black background #1e1e1e, Text #f0f0f0).
Font: Monospace font (Menlo, Monaco, or Courier New).
Layout: Full-screen or centered window with standard MacOS traffic light buttons (Red/Yellow/Green) at the top left.
Cursor: A blinking block cursor at the end of the input line.

2. Core Functionality (JavaScript):
Virtual File System (VFS): Use a JSON object to simulate a directory structure (e.g., ~, ~/projects, ~/documents).
Command Parser: Parse user input on Enter key.
Auto-scroll: Always scroll to the bottom when new output is added.

3. Supported Commands (Simulation):
help: List all available commands.
clear: Clear the terminal screen.
ls: List contents of the current directory from the VFS.
cd [dir]: Change current directory (support .. to go back).
pwd: Show current working directory.
whoami: Return "guest" or a custom user name.
cat [file]: Display content of a simulated text file.

Network Simulation:
ping [host]: Simulate network latency with setTimeout loop (3-4 lines of output).
ifconfig: Display a fake static network configuration (en0, inet 192.168.1.x).
nslookup [domain]: Return a fake IP address resolution.

4. Constraints:
Code must be contained in a single index.html file.
Handle basic error messages (e.g., "command not found", "no such directory").

03 进入开发

把英文提示词丢到 Gemini CLI 里去执行

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

执行速度很快,耗时 3 分钟。开发完成后并自动启动了服务

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

04 测试体验

回到浏览器,输入 http://localhost:3000/

哇,效果很惊艳啊!既有虚化的桌面背景,同时终端窗口已经打开,还有待输入的闪烁光标。

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

常用的 pwd 、 ls 、 cd 、 cat 等命令都可以正常执行,效果最好的是 ping 的数据包返回效果,简直以假乱真啊。

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

05 实现细节

  1. 实现全真模拟

通过前端模拟一个 MacOS 下终端应用,用一个轻量的网页直接来展示和体验。

模拟文件系统: 在 JS 里定义一个 JSON 对象当作“硬盘”, ls 就读取这个 JSON , cd 就在 JSON 节点间穿梭。

模拟网络命令: ping google.com 不是真去 ping ,而是用 JS 定时器输出模拟的延迟数据。

最终的效果太像一个真正的终端了, 超级的惊艳

  1. 开发与架构设计

为了让这个 “Mac 终端” 逼真,设计上有以下考量:

A. 视觉还原 ( UI / UX )

配色: 经典的黑底白字(或黑客绿),半透明背景。

字体: 必须是等宽字体,如 Menlo , Monaco , 或 Fira Code 。

光标: 闪烁的块状光标 (| 或 ■)。

提示符: 模拟 Mac 的提示符,如 user@MacBook-Pro ~ % 。

B. 构建核心功能逻

解析器 : 把用户输入的字符串拆分成 命令 + 参数。

虚拟文件系统 : 用 JSON 树结构模拟目录。

JavaScript

const vfs = {
  "home": {
    "user": {
      "projects": { "readme.txt": "Hello World" },
      "photos": {}
    }
  }
};

C. 命令处理器 :

ls: 遍历当前 VFS 节点的 key 。

cd: 修改当前路径变量。

clear: 清空屏幕 DOM 。

echo: 输出文本。

D. 命令执行模拟:

ping / nslookup ,使用 setTimeout 模拟网络延迟,随机生成看起来很真的 IP 地址和毫秒数。

06 小结

虽然大家都在说 Gemini 3 的前端开发能力爆表,我自己上手做了这个小应用后,我的结论四个字:名不虚传!

如何发挥更大的价值?还得结合到自身日常的工作和生活里,借助 Gemini 3 强劲的前端开发能力,把许多以前很难解释的事,都可以快速通过可视化的方式去优化。

每挖到 AI 新的落地价值,又是美好的一天!


我是AI编程瓜哥,觉得内容不错?点个 ‘关注’ 和 ‘转发’ ,就是对我最大的支持!

福利领取

关注我,私信 “gemini” ,快速从0到1掌握核心技巧,保姆级喂饭教程,所有步骤、技巧、截图都打包好了,免费获取!!

Gemini CLI 里玩“套娃” ?在终端里手搓一个“终端”,以假乱真!

加入AI探索者社区

别再一个人摸索了!私信“入群”,与 100+ AI编程高手交流、获取最新AI 编程资源。

阅读更多(点我头像)

Gemini 3 重磅发布!3大入口覆盖你的AI全场景(含:9个创意案例)

Cursor 受限,Claude 遭“封”?这个 8W+ Star 的 AI 编程神器,才是国区“版本答案”!

平替 Cursor ?我实测了字节 Trae Solo 3.0,并不能…

那些吹“美团”刚发布的AI编程工具-CatPaw的朋友们,我劝你们先停一停!!

这款开源神器,让Claude Code一键丝滑切换Kimi、Minimax

© 版权声明

相关文章

暂无评论

none
暂无评论...