当前位置: 首页 > news >正文

[x-cmd] Windows 安装和使用 x-cmd 的方法

Windows 安装和使用 x-cmd 的方法

🎯 本文档介绍如何在 Windows 系统的 WSLGit-BashCygwinMingw 环境中安装 x-cmd 和使用 x-cmd.bat 脚本。

安装成功后, 欢迎阅读我们的 入门指南 ~ 该指南将引导您快速掌握 x-cmd 的核心功能,包括自动补全、主题定制、模块管理和包管理,助您快速上手。

在 WSL, Git-Bash(Git-For-Windows), Cygwin, MinGw 安装 x-cmd

WSL2 上安装 x-cmd 的方式与 Linux 上的安装方式相同,运行以下任意一条命令即可:

eval "$(curl https://get.x-cmd.com)"
eval "$(wget -O- https://get.x-cmd.com)"
  • 尽管 x-cmd 可在 WSL1 运行,但 WSL1 的开发已停滞, 且 x-cmd 的 PKG 体系未针对 WSL1 进行适配。因此我们不建议在 WSL1 上使用 x-cmd
  • x-cmd 针对 Git-Bash 进行了性能优化,但由于它本身机制,与 WSL2 相比,仍存在一定的性能差异。

使用 x-cmd.bat 脚本安装 x-cmd

x-cmd.bat 是专为 Windows 用户准备的批处理脚本。无需管理员权限。它被设计成一个启动脚本, 在启动过程中按需安装 Git-Bashx-cmd

  1. x-cmd 官网中 下载 x-cmd.bat 脚本。
  2. 双击 x-cmd.bat 脚本文件,并等待完成安装。

我们建议用户可以将 x-cmd.bat 文件放在桌面上, 作为 x-cmd 的快捷启动方式。

:::info 关于 windows screen 的警告

  • 从 Windows 系统设计者的角度来看,直接下载并执行外部脚本文件存在安全风险。因此,Windows 引入了 Screen 机制,用于拦截未知来源的内容,这是一种负责任的安全措施。
  • 直接从 x-cmd 官网(通过 HTTPS 安全访问)下载的 x-cmd.bat 文件。该脚本代码开源并托管于 GitHub,脚本行为描述详见后文。
  • 我们正在积极寻求通过 Windows Screen 认证的方法(例如尝试提交文件校验和),在此之前,用户需要手动允许 x-cmd.bat 绕过 Screen 拦截。具体步骤可以查看视频演示。
    :::

x-cmd.bat 脚本流程解析:

  1. 检查环境是否有 Git-Bash。如果没有,则从官方源下载一个最新版本的 Git-Bash;在中国地区, 为了提升下载速度, 将从中国地区的镜像源下载。
  2. 检测环境是否有 x-cmd。如果没有,则使用 Git-Bash 安装 x-cmd,并配置启动 Git-Bash 时加载 x-cmd
  3. 打开 Git-Bash 终端窗口,并加载 x-cmd

配置 powershell 启动时加载 x-cmd

安装成功后, 用户可以通过如下命令, 使用 powershell 启动时自动加载 x-cmd

x pwsh --setup

该脚本会在 powershell PROFILE 文件中添加一行启动代码:

if (Test-Path "$Home\.x-cmd.root\local\data\pwsh\_index.ps1") { Set-ExecutionPolicy Bypass -Scope Process; . "$Home\.x-cmd.root\local\data\pwsh\_index.ps1" };  # boot up x-cmd.

如果你想进一步了解 x-cmd 在 powershell 的使用说明 (例如配置主题, 通过别名调用 LLM) 以及原理介绍, 请参考我们的 Powershell 专题文档。

直接使用 Powershell 脚本安装 x-cmd

用户在 Powershell 环境下输入以下命令, 即可开始 x-cmd 安装并在 powershell 激活 x-cmd.
该命令下载了一个采用 Powershell 编写的脚本, 该脚本托管在 https://get.x-cmd.com/x-cmd.ps1

[System.Text.Encoding]::GetEncoding("utf-8").GetString($(Invoke-WebRequest -Uri "https://get.x-cmd.com/x-cmd.ps1").RawContentStream.ToArray()) | Invoke-Expression

该脚本将从 x-cmd 官网下载 x-cmd.bat, 并执行该文件按需安装 git-bash 与 x-cmd; 在安装成功后, 脚本将自动执行 x pwsh --setup 以让 powershell 启动时加载 x-cmd。因此, 用户不需要手动调用 x pwsh --setup 进行配置.

如果你想进一步了解 x-cmd 在 powershell 的使用说明 (例如配置主题, 通过别名调用 LLM) 以及原理介绍, 请参考我们的 Powershell 专题文档。

:::info 注意:

  • 为了执行 PowerShell 脚本,您可能需要调整 PowerShell 的执行策略。
  • 默认情况下,PowerShell 的执行策略被设置为 Restricted – 这意味着不允许运行任何 Powershell 脚本,包括用户的配置文件脚本 Microsoft.PowerShell_profile.ps1
  • 您可以使用如下命令查看并修改策略:
    • 查看当前策略: Get-ExecutionPolicy -List
    • 修改执行策略以允许运行脚本: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  • 更多信息,请参考以下来自微软官方的技术文档: PowerShell 执行策略 和 Set-ExecutionPolicy 文档。
    :::

在 Non-Posix Shell ( Elvish, Nushell, Xonsh ) 上使用 x-cmd

我们建议你采用上述任一方法安装 x-cmd, 然后在 git-bash 或者 powershell 上配置对该 shell 的支持。

配置代码如下:

x nu --setup        # nushell
x onsh --setup      # xonsh
x elv --setup       # elvish

我们为非Posix Shell 准备了专题文档, 详情请参考:

  • elvish
  • nushell
  • xonsh

官方、第三方包管理命令的用户体验增强

除了 x-cmd 提供的通过 pkg 包管理工具, 以及集成的一系列跨平台软件管理工具 pixi, asdf; x-cmd 还特别实现如下模块, 以改善相应工具的使用体验.

  • x scoop: 由 scoop 社区支持的开源工具管理器; 用户输入 x scoop 即能触按需下载并启用, 除此之外, x-cmd 提供了软件快速搜索功能以及代理/镜像配置功能. 请参考scoop 模块文档 中。
  • x choco: 老牌的 windows 软件工具管理器。
  • x winget: 微软官方提供的软件工具管理器。 x-cmd 提供了软件快速搜索功能以及代理/镜像配置功能。

wsl2 使用体验增强

在 WSL 环境中与 Windows 更好交互

WSL 的到来让我们的工作变得简单。该情况等同于 Linux,但在此之上我们还是结合环境做了一些工作,以让用户在 WSL 上能够更好与 Windows 体系交互:

  1. 如果识别到 WSL,桌面应用方面行为会使用 Windows GUI 应用: x open <file|url>, x browse <file|url> 是会打开 Windows 的默认浏览器
  2. pwsh模块 使用 PowerShell 来实现一些主机信息的获取和管理

引入 wslxwslr 直接调用 wsl 环境中的命令

从 v0.5.10 开始, 我们提供了 wslxwslr 以及 wsl模块 改善 wsl 的使用:

# 在 wsl 环境中运行 x ls
wslx ls# 在 wsl 环境中运行 jq 功能, 与 `wsl jq` 不同, wslr 会加载 wsl 默认用户空间下的 binpath, 因此可以调用 wsl 默认用户目录下安装的来自 pixi asdf pip npm 等软件
wslr jq

总述: 在 Windows 上的努力

windows 虽然不是一个 Posix 兼容的系统, 但在 msys 以及 WSL 加持, x-cmd 仍可发挥巨大的作用.

  1. 尽管 Git-Bash 有点效率问题, 但 x-cmd 已经在 theme 等模块上做了一些适配,最大限度地保证了用户体验。
  2. 使用 Windows 的 WSL2 提供了近乎完美的 Linux 体验,就如同在原生 Linux 系统上一样,x-cmd 在上面的运作效率良好。
  3. 虽然我们的产品主要是为了 Linux 和 Unix 体系系统设计,但是,我们也尽力地为 Windows 用户提供不少提高效率的模块。例如与 powershell 的互操作模块 pwsh,并提供了 scoop,winget,choco 模块。

值得注意是, 当前 x-cmd 并不能直接在Busybox-For-Windows 运行.

  • busybox for windows 缺乏对部分系统文件的模拟
  • 如果我们进行兼容,将会导致过度复杂的内部设计,从而降低工程质量
  • 考虑用户的实际使用场景,以及 WSL2 已逐渐普及,因此暂时不作此技术方向上的开发。
http://www.dtcms.com/a/392033.html

相关文章:

  • 17.渗透-.Linux基础命令(九)-Linux权限管理(chmod修改文件权限)
  • 测量交流电压,测量直流电压,兼容,ADC采样转换计算有效值
  • 红黑树封装实现map set
  • EMQX和MQTTX的安装
  • AI 大模型入门 四:检索增强生成(RAG),自动生成精准用例!
  • EDR与MITRE ATTCK 详解
  • 特征值和特征向量
  • Gridview:让 HPC 作业管理真正“看得见、点得着、跑得快”
  • C++/初识
  • 进一步理解自适应卡尔曼滤波(AKF)
  • 反馈循环的跨领域智慧:从控制工程到Pix2Pix
  • AI智能体如何开发工作流及注意事项
  • 电视插座工程量计算-图形识别秒计量
  • 1.1 进程与内存知识点总结
  • 深度学习-神经网络(下篇)
  • 检查 Nginx 是否启动的几种方法
  • CSS 创建漂亮的文字肖像
  • 37、RAG系统架构与实现:知识增强型AI的完整构建
  • 当贝桌面 4.1.6 | 支持文件快传(电脑传到TV),内存清理,海量4K壁纸,自定义应用和功能
  • 30-39、大模型实战构建完整技术手册:从0到1的工程化实现体系
  • 【Python】Tkinter库实现GUI界面计算器
  • 茶叶在线销售与文化交流平台的设计与实现(java)
  • 中电金信 :MCP在智能体应用中的挑战与对策
  • AI智能体开发目前主要基于哪些方面?
  • 8.2-spring 事务-声明式事务(@Transactional原理)
  • 数据分类分级:数据安全与治理的核心框架
  • STM32---看门狗
  • 标签肽V5 tag,V5 Tag Peptide
  • Hello Robot Stretch 3 技术解析(上):极简结构与全身力感知如何加速科研?
  • FPGA学习