为什么还需要 CMD
你可能会说:现在有 PowerShell、Windows Terminal、WSL,CMD 还有什么用?
现实中,CMD 在以下场景仍然不可替代:
- 老旧的 .bat 脚本仍然依赖 CMD 的解析;
- 某些系统命令(如
systeminfo、sc)只在 CMD 下行为稳定; - 一些远程工具只允许调用 CMD;
- 老项目的 README 里写的"在 CMD 里运行"。
所以——CMD 仍然会用,但用 Clink 把它变得顺手。
Clink 是什么
Clink 是一个开源的 CMD 增强工具,本质是一个 DLL,通过 cmd /K clink_init.cmd 或注入到 CMD 进程里。它提供的核心能力包括:
- 命令和路径自动补全(
Tab); - 历史记录搜索(
Ctrl + R、Ctrl + S); - 行编辑增强(
Ctrl + A到行首、Ctrl + K删到行尾); - 语法着色:命令、参数、路径不同颜色;
- 可扩展补全:通过 Lua 脚本添加对 git、npm、python 等命令的智能补全。
它不修改 CMD 本身,只是"挂"在 CMD 上,输入体验立刻现代化。
安装
从 GitHub Releases 下载最新安装包(clink_x64.exe 或 MSI 安装包)。
运行安装包,默认选项即可:
- 勾选"Add Clink to CMD.exe autorun"——让 CMD 启动时自动加载 Clink;
- 勾选"Add to PATH"——命令行可调用
clink相关工具。
安装完成后再打开 CMD,第一次会在底部看到一行 Clink X.Y.Z (built ...)——这就是 Clink 加载成功的标志。
核心快捷键(立刻上手)
装好 Clink 后,立刻就能用的几个键位:
| 快捷键 | 作用 |
|---|---|
Tab | 补全路径/命令;多次按循环候选项 |
Ctrl + R | 反向搜索历史(输入关键词即可过滤) |
Ctrl + S | 正向搜索历史 |
Ctrl + A / Ctrl + E | 跳到行首 / 行尾 |
Ctrl + K / Ctrl + U | 删到行尾 / 行首 |
Ctrl + W | 删一个词 |
Alt + B / Alt + F | 按词向左 / 向右移动光标 |
Up / Down | 在历史里上下翻(支持按前缀过滤) |
最常用的是 Tab 和 Ctrl + R——前者省去敲路径,后者省去翻历史。
可扩展补全:clink-completions
官方提供了 clink-completions 项目,给各种命令(git、npm、yarn、pip、docker、kubectl 等)加上智能补全。
安装方式:
- 从 GitHub clone 或下载 ZIP;
- 把里面的所有 Lua 文件复制到
%LOCALAPPDATA%\clink目录; - 重启 CMD 即可。
装好之后,输入 git che 按 Tab,会自动补全到 checkout;输入 npm in 会列出 install、init、install-test 等候选项。
历史记录的妙用
Clink 把历史记录保存在 %LOCALAPPDATA%\clink\clink_history,可以跨会话保留。
几个高级用法:
history命令:列出所有历史(可加数字限定条数);!n:执行历史中第 n 条命令;!!:执行上一条命令;!str:执行最近一条以str开头的命令。
很多人不知道的是,Clink 历史可以跨 CMD 窗口共享。在多个标签里同时操作时非常方便。
配置:clink 设置文件
Clink 的设置存在 %LOCALAPPDATA%\clink\settings 里。可以用 clink set 命令查看和修改:
clink set echo_off 0
clink set exec_match_style unambiguous
clink set autosuggest_enable true
常用设置项:
exec_match_style:补全匹配风格(prefix/contains/fuzzy);history_file_lines:历史保留条数;color_scheme:配色方案;autosuggest_enable:开启历史命令灰字提示(类似 Fish Shell);prompt_prefix / prompt_suffix:自定义提示符。
执行 clink set 不带参数会列出所有可配置项。
自定义提示符:让 CMD 像 Linux
默认 CMD 提示符是 C:\Users\xxx>,Clink 提供了更丰富的提示符变量:
clink set prompt_prefix "{green}{cwd}{reset} $ "
支持的颜色变量:{red} {green} {blue} {yellow} {cyan} {magenta} {reset};路径变量:{cwd}、{user}、{host}、{git}(需 git 集成 Lua 脚本)等。
配好之后,CMD 提示符立刻"现代化"。
和 Windows Terminal 配合
Clink 不影响 Windows Terminal 的使用。在 Windows Terminal 里把 CMD 作为一个 profile,启动后自动加载 Clink,体验直接起飞。
推荐 Windows Terminal 的 CMD 配置:
- 字体:Cascadia Code 或 JetBrains Mono;
- 背景:深色(深灰/纯黑);
- 光标:竖线;
- 配色:One Half Dark 或 Tango Dark。
这样组合出来的 CMD,既保留了原生兼容,又拥有了现代终端的体验。
常见问题
Q:装完 Clink 后 CMD 还是没有变化?
A:检查是否勾选了"Add Clink to CMD.exe autorun"。如果忘记勾选,可以手动执行 clink autorun install。
Q:会不会和 PowerShell 冲突?
A:不会。Clink 只作用于 CMD 进程,PowerShell 是另一个程序。
Q:占用资源大吗?
A:基本可忽略,运行时内存占用 < 10MB。
总结
Clink 是一个零学习成本就能立刻提升 CMD 体验的工具。装好之后,路径补全、历史搜索、行编辑这些"本来就应该有"的功能就都到位了——它不改变 CMD 的行为,只是把它变得人性化。
如果你的工作流里仍然会出现 CMD(比如一些脚本、一些老工具),强烈建议装一个 Clink,再配合 Windows Terminal 使用。整套体验比"裸 CMD + cmd.exe"好上不止一个等级。