终端的小黑窗可以说是与程序员打交道最多的程序之一了。如果你以为终端只能是一个如此“古老”的小黑窗可就错了,如今,各个平台下都有着更为现代、功能强大的终端替代软件。

Bash on Windows

原作者帖子在这里

Windows 作为桌面操作系统界的霸主在编程方面有一些一言难尽的硬伤,对 Windows 用户而言开发环境的选择一般有:纯 Windows、Windows+ 虚拟机和 Windows+ 双系统。

纯 Windows 环境往往会增加折腾过程的难度,同时 Windows 老旧的命令行界面和 Windows 独自的命令集也让人不那么提得起劲。后两种虽然能够体验最纯粹的 GNU/Linux 环境,但虚拟机的启动等待和系统的切换等待让这一过程显得不那么顺滑。而一个即插即用的终端软件,能够顺滑高效地体验终端的魅力,在多年需求之下,终于有了 Microsoft 官方的支持: Windows Terminal

Why Terminal ?

Microsoft 的 Windows Terminal是一个很现代的终端工具,集成了 powershell, cmd, WSL,可以同一个窗口中顺滑地使用不同的环境与工具。

How Terminal ?

Terminal 安装过程十分简单,只需要在电脑上打开 Microsoft Store,搜索 Terminal 并安装即可。安装完启动,便可以愉快地玩耍啦!

当然为了能在 Windows 使用 Linux 命令强烈推荐跟着官方教程一步一步安装 WSL

Easier Coding

其实现在的编辑器(如 VSCode)和 IDE(如 JetBrains 系列)都在编辑器里内置了 Terminal 方便运行代码,让 Terminal 互通也很简单。

如 VSCode,在拓展中下载 Remote - WSL,然后打开 Terminal ,输入 cd 命令(默认)进入 $HOME 目录,输入:

code .

等待完成初始化就可以在 VSCode 里使用 Terminal 并且编辑代码了。更多配置可以参考官方文档

Anything else

对于开发人员来说,能够有一个全平台一致的 CLI (Command Line Interface)工具还是挺有必要的,但上面一通 Terminal 配置似乎还是有点繁琐,害怕出现意想不到的 bug,有没有更简单的终端可以练手呢?

git 的 bash.exe 或许是一个不错的选择,只要安装了 git 就可以点击运行,也可以在编辑器选择默认 Terminal 为 bash.exe,能看到在对应的 /usr/bin 目录中下常用的命令行工具如 ssh nano curl wget cat ls mv mkdir ... 都已经内置了。非常方便。

macOS 终端神器 iTerm2

iTerm2 可以号称 macOS 平台下的第一终端了。相比于自带的终端和 Windows 平台终端,iTerm2 的功能强大到难以想象。官网本身已有非常好的介绍,这里做一个简单的讲解,吸引一下你的眼球。先说几个基础功能:

考虑到部分同学不会科学上网,官网访问较慢,这里给一个南大 box 下载连接

  1. 窗口管理:本身集成了 tmux,可以非常方便地把多窗口并列。

    splitpanes

  2. 命令提示和历史命令补全:终端层面就有着命令提示和历史命令补全功能,按下 Cmd+; 即可看到命令提示,Shift+Cmd+; 可看到历史命令。

    autocomplete

  3. 鼠标与剪贴板体验:鼠标双击、三击分别选中词和句子。按住 Cmd 使用鼠标单击文件名/URL,即可打开相应的文件或网页。 Shift+Cmd+H 可以查看剪贴板历史。

接下来是十分惊艳的功能:

  1. 回放(Instant Replay):终端输出过多,已经被刷掉看不到了?Option+Cmd+B 即可打开一个进度条,倒退到这个窗口之前的快照。

  2. 触发器(Trigger):Tigger 功能可以自定义一个正则表达式,当终端捕捉到能够匹配这一模式的输出时就做相应操作。例如,一个非常实用的 Trigger:匹配到什么什么报错 **Error 时,将文字标红。这样一旦程序输出错误信息,一眼就能看到。还能够进行部分输出的单独捕获等等。

    trigger

  3. 密码管理(Password Manager):对于一些不方便用 SSH key 而需要用密码的场合,有个密码管理器实在是太好了。

  4. Shell 集成(Shell Intergration):功能强大。一个单独的脚本,可以在所有其它服务器上也安装(无需安装 iTerm2)。之后便可做到:
    • 光标快速在命令位置之间移动。
    • 将这一脚本放置在远程服务器,即可右键下载服务器上的文件。
    • 跑一个很长的程序,希望结束时提示自己?按下 Option+Cmd+A,启动 Alert,命令一结束就会给你发通知了。
    • 使用 imgcat 命令直接在终端内显示图片缩略图。 inline_image
    • 使用 it2ul 快速将许多文件上传到服务器。
  5. 注释(Annotations) 和标记(Mark) 功能。为汇编代码加上注释也不是不行。

更多功能欢迎你自己继续探索。

Linux

等待你来贡献!