weekly icon indicating copy to clipboard operation
weekly copied to clipboard

【开源自荐】x-cmd -- 命令行下工具管理器以及增强扩展

Open edwinjhlee opened this issue 6 months ago • 1 comments

网站: https://x-cmd.com

自述:

  • 一句话: [ ash, dash, bash, zsh ] * ( asdf + oh-my-zsh + tldr + gh/gt/gl client + ... )

  • 安装:

    • eval "$(curl https://get.x-cmd.com)"
    • eval "$(wget -O- https://get.x-cmd.com)"
    • https://cn.x-cmd.com/
    • https://cn.x-cmd.com/start
  • x-cmd 用 shell 和 awk 开发,适用在 posix shell 环境(除了 ksh,确定不支持 ksh 93,但其它版本会在日后测试支持)

  • x-cmd 对环境的 侵入性 极低,虽然现在逐步靠 pkg 加持来 增强,得益于当前计算机性能强大,很多强大的模块,都是原生用 shell 来实现。例如 现在 已经 在 我们团队 不可或缺的 c 命令,以及 theme 模块,没有依赖外部二进制实现。这使得,在 alpine/busybox 这种简陋的 容器环境,x-cmd 也能跑起来,显著改进用户的命令行体验。

  • 模块:

    • x-cmd 充分利用 原生 shell 和 awk 的轻便 以及 流式并发 优势,以 模块 方式,提供了 各项功能。
    • 模块(mod)即依赖 原生系统的二进制,也会按需下载一些 外部的 二进制,而这是由 x-cmd 的 pkg 体系提供支持的。
    • x-cmd 其中的一个目标是:以近乎一致的参数方式,一致的 TUI 方式,提供近乎一致的命令行体验。
    • 有很多模块,其中,api 服务为核心的模块,现在提供了 gh(github)/ gt( gitee) / gl (gitlab),云厂的 client 比较多,会在 日后 逐步提供。
    • 如果大家安装了,可以先试试 x theme, x tldr。可以参考并使用 theme 模块, tldr, zuz,等 其它在 模块 列出 的模块。
    • 现在 推荐的 模块还比较少,主要是因为 测试 以及 用户体验设计工作 需要逐步跟进,另外也要观察支撑这些 模块的 底层模块 是否有 进一步 重构 和优化 的需要,所以也未来三个内,我们会非常谨慎地限制了发布模块的数量,优先保证质量和稳定性。
  • 包(pkg):

    • x-cmd 以 pkg,提供了常用工具的 portable 350+ 个工具下载 -- 日后会更多,我们团队会不断 筛选 成熟稳定高质量的 pkg;另外,也在学习过程中,以 1min 方式 让 大家快速入门和了解这些新工具。
    • 为了简化使用,我们 引入 env 模块,来安装 pkg。当然用户也能 通过 pkg 模块 直接安装 pkg。
  • 充分考虑中国用户的使用体验:

    • x-cmd 的资源 托管在 github 上,但同时也托管在 gitcode 上,以保证 中国用户 的使用体验。
    • 自研的模块 的帮助文档 也是 中英 双版。内置的 TUI 也已经 尽力 支持 UTF-8 的中文显示( SHELL 和 AWK 的版本 很多,奇葩细节很多,我们在尽力做好 )。
  • 性能:

    • 现在的启动时间 是 尚可接受(还有很多优化还没做),在 交互环境下,启动 shell 大约 增加 50ms 的时间(在 macbook m1),而这里面有 30ms 都是 completion 的注册。
    • 相比 oh-my-zsh
    • pkg 上我们与 asdf 的实现 类似(shim 机制),但是启动时间上,他们安装后的 每个软件,软件启动时间要额外增加 100 ms 以上,x-cmd 大约是 3-5ms,大约是一个 shell 进程的启动时间;对于追求极致用户,我们还能利用 function shim 来抹掉这个时间。
    • 之所以三年前将之前 x-cmd 推倒(每一版是 typescript 版,后面有 go 版本 和 bash 版本),重新设计,摸索 posix shell 和 awk 的方案。是因为 只有 posix shell 和 awk 方案能够 保证 启动速度 以及 必要的广泛程度,以及 保持 轻便的 体积。
  • 其它:

    • 作者 x-cmd 这个项目 已经渐渐 摸索了 三年时间,由于项目涉及内容庞大,所以现在 尚未到正式版:
      • 在写这个 issue 时,仍处于 alpha 版。但当前的 alpha 版已经比较稳定。
      • 我们争取 在 春节前 发布 beta 版
      • 仍未发布的功能虽然很多,但相比之下,更重要的是 稳定性 和 质量。以之为前提,x-cmd 会想办法 寻求资源 来加速研发。
    • x-cmd 可用的模块还有很多,不过当前文档还需要组织,才能讲清楚如何使用。后面我们会逐步给出 教程 和 介绍。欢迎大家 留意官网。如果日后能在 weekly 上给 大家介绍,也非常荣幸。

edwinjhlee avatar Jan 15 '24 06:01 edwinjhlee