本文介绍Windows平台上命令行开发相关工具,由于涉及软件众多,只做简介,不去深究。
1. 原生工具
Windows下有三个命令行工具:Command Prompt(cmd)、PowerShell和WSL Bash。
cmd历史悠久,虽然有诸多不足,但胜在启动快,各种命令也比较熟悉。
PowerShell功能强大,目前发展良好,但是启动偏慢,而且许多命令变化较大。
WSL Bash暂未用过,有文章说它有性能问题,但是我估计make和find这种初级应用应该没有影响,最大困难是要启动WSL,硬盘空间吃不消。
综合下来,还是cmd最常用。
2. 扩展工具
cmd很难配置。更改默认字体异常困难,唯一可用的是等距更纱黑体,效果也一般, 字体的宽度问题还会导致一些DOS窗口绘图出现偏差。更改主题颜色就更是难以实现,因为它不支持256色。
市面上已经有丰富的扩展工具。
(1)ConEmu
这是我每天在使用的工具,所以放在第一个介绍。
它相当于一个cmd的外壳,提供了外观美化、窗口管理、快捷键等多方面的增强。使用它能够很轻松的实现多个cmd平铺展开。
(2)cmder
它打包了ConEmu,FAR Manager,Clink等多个优秀工具,界面美观,功能强大,实现了一站式的cmd增强替代方案。 但是启动速度稍慢。
(3)Alacritty
它是Rust语言写的工具,Rust编的工具通常都很快,并且使用了GPU加速,显示效果上比较细腻。 现在还处于项目早期,感觉功能有限。
(4)Console2, ConsoleZ
早年间Console2是一个知名的cmd外壳,后来停止更新,ConsoleZ是它的继任者。
(5)Terminus, Hyper
这两个都是Web技术(Node.js)实现的工具,界面异常美观。追求炫酷的用户,它们非常适合。
(1)-(5)这些工具都只是一个外壳,后台可以调用cmd,powershell或bash等各种Shell。
(6)msys2, mingw, git-bash
它们都实现了一个小型Linux操作环境,可以获得类似Linux的使用体验。安装后会获得一个命令行窗口,后台调用bash。从我的使用体验上讲,bash的操作体验要优于cmd,但是又说不清哪里好。
(7)cygwin
cygwin是msys/mingw类似的工具套件,安装后也会获得有一个bash。
(8)MobaXTerm
它是一个基于cygwin的终端,功能很多,甚至包含一堆DOS游戏 😂,其中最让我心仪的是它支持串口通信!可以一边make程序,一边观察串口输出。
(9)Babun
它也是基于cygwin的一个工具套件,功能很丰富,但是已经停止更新几年了,作者在官网上很幽怨的说大家只想拿来用,现在想转手项目却找不到人。
(6)-(9)这些工具都是基于bash+mintty,彻底脱离了cmd。开发过程中用到的命令行工具,一部分兼容二者,另一些只在一种上好使。从开发角度,系统里安装一个msys2或cygwin总是必要的。
(10) vim, emacs, sublime_text, vscode
这几个工具自己内置shell,或通过扩展添加一个内部shell,当需要处理大量代码文件时候,在编辑器中开个shell更方便,避免来回跳转。
3. 辅助工具
我们使用命令行的时候常用操作可以总结为:
- 目录的创建、查看、跳转、删除、复制、重命名、搜索
- 文本的创建、查看、编辑、删除、复制、重命名、搜索
- 文本内容搜索
- 查看系统信息
mkdir/md | 创建文件夹 |
rm/del/rmdir | 删除文件、文件夹 |
cd | 目录跳转 |
dir/ls | 打印文件(夹)列表 |
find | 搜索文件、文件夹 |
grep | 搜索文件内容 |
diff/fc | 比较文件内容 |
echo/cat | 打印和读取 |
where/which | 获取某命令路径 |
cp/mv/ren | 复制、移动、重命名 |
path/env | 打印环境变量 |
我们在Windows上的大多数操作,都可以简化成这些命令或其组合。
以上命令中,有些是Windows命令,比如where,有些是Linux命令,比如为which,如果我们安装配置了msys2,则可以通用。
推荐安装一些辅助工具来提供工作效率,它们是:
- clink:自动补全命令
- far:资源管理器
- fd:find增强版
- fzf:find增强版,但是与fd用途不同
- rg/ag:grep增强版
- vim/gvim:无需赘言
其中clink一定要安装,没有clink的cmd是没有灵魂的。
4. 右键菜单
假如你也选择ConEmu,安装配置好以后,最好添加一个右键菜单“Open ConEmu Here”,这样就可以在当前文件夹打开ConEmu。
可以通过修改注册表完成。
(1)选中文件夹的右键菜单
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\ConEmu Here]
@="Open ConEmu"
"Icon"="C:\\Program Files\\ConEmu\\ConEmu64.exe,0"
[HKEY_CLASSES_ROOT\Directory\shell\ConEmu Here\command]
@="\"C:\\Program Files\\ConEmu\\ConEmu64.exe\" -here -dir \"%1\" -run {cmd} -cur_console:n"
(2)文件夹空白处的右键菜单
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\ConEmu Here]
@="Open ConEmu"
"Icon"="C:\\Program Files\\ConEmu\\ConEmu64.exe,0"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\Background\shell\ConEmu Here\command]
@="\"C:\\Program Files\\ConEmu\\ConEmu64.exe\" -here -dir \"%V\" -run {cmd} -cur_console:n"
(完)