用于现代 Web 开发的强大终端和命令行 (CLI) 工具
已发表: 2022-03-10许多现代程序员,包括前端和全栈开发人员,每天都使用命令行工作。 即使是那些对 Web 开发相对较新的人,也很早就掌握了命令行技能,并找到了实用的工具和实用程序来提高他们在终端中的工作效率。
这篇文章列出了我个人在过去几年中发现的许多命令行应用程序的分类列表。 其中一些相对较新,另一些已经存在了一段时间。 因此,我希望本综述中的某些内容能引起您的兴趣,并帮助您在终端工作时完成工作。
您可以使用以下导航跳转到一个类别:
- 终端应用程序
- 终端实用程序和增强功能
- 命令行脚本和框架
- 终端的生产力工具
终端应用程序
本节介绍终端、多路复用器、控制台模拟器、移动终端和命令行工作区,您可以使用它们来替换系统上的默认终端应用程序。
tmux
tmux
是用于类 Unix 操作系统的流行终端多路复用器,可让您在单个终端中轻松切换多个程序,能够“分离”会话(同时仍在后台运行)或“重新附加”到不同的终端。
iTerm2
iTerm2
是 iTerm 的继任者,是 macOS 上终端的替代品,包括拆分窗格、强大的搜索、自动完成、即时重播等功能,以及一系列配置选项。
莫什
Mosh 是一个用于交互式 SSH 使用的远程终端应用程序(或移动外壳),它包括一些有用的功能,适用于需要通过弱 WiFi、蜂窝网络或其他不太可靠的连接执行基于终端的任务的人。
泽利伊
Zellij 是一个终端工作区,具有终端多路复用器的基本功能(类似于 tmux),但包含允许用户扩展它并通过窗格/选项卡和插件创建个性化环境的功能。
超
Hyper 是一款基于 Electron 的 Mac、Windows 或 Linux 终端应用程序,采用 Web 技术 (HTML/CSS/JS) 构建。 包括数十个主题和插件,并建立在速度和稳定性之上。
cmder
cmder
是一个适用于 Windows 的便携式控制台仿真器,由于在这方面对 Windows 用户缺乏一个好的选择而构建。
如地狱
a-Shell 是一款 iOS 应用程序,它提供了一个“口袋里的终端”,具有文件/目录控制、与 Apple 快捷方式的兼容性、多个窗口等等。
永恒的终点站
Eternal Terminal 是另一个受其他类似的流行项目启发的远程终端应用程序。
十手
Ten Hands 是一个适用于 Mac、Linux 和 Windows 的终端应用程序,被称为组织和运行命令行任务的最简单方式,对于在多个项目中运行类似日常任务的人很有用。
eDEX-用户界面
eDEX-UI 是一个全屏、跨平台的终端仿真器和系统监视器,其灵感来自科幻电影 UI,尤其是《创世纪:遗产》电影。
虎斑猫
Tabby,以前称为“Terminus”,是一个可定制的跨平台终端应用程序,用于本地 shell、SSH、串行和 Telnet 连接,包括对拆分窗格、智能选项卡、可定制热键等功能的支持。
鱼壳
Fish Shell 是 Linux、macOS 和 Windows 命令行 shell 的另一种选择,包括自动建议、制表符补全、24 位颜色、基于 Web 的配置、语法突出显示以及其他实用功能。
终端实用程序和增强功能
获得主工作区后,您将希望使用各种工具、实用程序、主题等对其进行增强。 本节包含一些有用的工具,可让您的终端体验更加愉快。
哦,我的Zsh
Oh My Zsh 是一个开源、社区驱动的框架,用于管理 Z Shell(或 Zsh,一种流行的 Unix shell)的配置。 它捆绑了数千个有用的功能、助手、300 多个插件、140 多个主题等等。 在 macOS 或 Linux 上效果最好,但也可以在 Windows 上使用 Cygwin 或 WSL2 之类的东西。
无花果
Fig 将 VSCode 样式的自动完成添加到您现有的终端,并包括对现有 CLI 工具的支持,如 Git、npm、Kubernetes、Docker、AWS、Google Cloud 等。
fzf
fzf
是一个快速、便携的命令行模糊查找器,可让您使用全面的功能集运行模糊搜索查询。
壳牌历史
Shell History(不是免费的)是一个 macOS 应用程序,它与 Bash、Zsh 或 Fish 集成,允许您通过 iCloud 轻松备份和同步,并在“笔记本”中组织您的 shell 历史记录。
htop
htop
是一个交互式进程查看器,最初仅适用于 Linux,但现在是跨平台的,旨在通过在查看正在运行的进程时提供额外的功能来改进 Linux top
命令。
GitHub CLI
GitHub CLI,如果你错过了,它是 GitHub 的官方跨平台命令行界面,将拉取请求、问题和其他与 GitHub 相关的任务带到你的终端。
流小屋
Streamhut 让您无需安装任何东西即可实时共享您的终端。 只需运行两个命令之一(取决于您的设置),这对于团队协作、面试或教学中的实时终端会话很有用。
icdiff
icdiff
是一个基于终端的文件比较工具,它充分利用颜色以更实用、更直观的方式呈现差异。
>\_TerminalSplash
TerminalSplash
,顾名思义,类似于 Unsplash,但用于终端主题。 从 200 多个用户提交的主题中选择或提交您自己的主题。
终端器
Terminalizer 是一个可定制的跨平台终端记录器,可让您记录终端会话,然后将它们作为动画 GIF 或通过网络播放器共享。
阿西涅马
Asciinema 是另一个流行的终端录制和共享选项,但不适用于 Windows。 这个很酷的一点是,录制的输出不是视频,而是终端会话的纯文本动画,这意味着您可以从录制中选择和复制/粘贴项目。
gtop
gtop
是top
命令的另一个增强功能,它为您的终端提供了一个系统监控仪表板。 需要 Node.js 并包括在 Windows 上的部分支持。
DevDash
DevDash
是面向开发人员和创建者的高度可配置的终端仪表板。 您可以对其进行自定义以显示来自 Google Analytics、GitHub、Feedly、shell 命令输出等来源的信息。
荣誉奖:
-
ora
优雅的终端微调器。 -
tiny-care-terminal
一个小仪表板,在您使用终端时试图照顾您。 -
theme.sh
一个 shell 脚本,可让您设置包含 270 多个预加载主题的终端主题。
命令行脚本和框架
一些众多的库和框架允许您构建和维护自己的命令行应用程序和实用程序。 您将在下面找到一些用于 Bash、JavaScript 等的内容。
命令与征服 (cac)
命令与征服,也称为 cac,是用于构建命令行应用程序的轻量级 JavaScript 框架。 例如,它已被用于构建几个基于 Node.js 的脚手架工具。
zx
zx
是 Google 工程师提供的一种流行的 Bash 替代方案,它允许您使用 JavaScript 编写命令行应用程序,并提供易于使用的 API,允许您调用可执行文件并获取其输出、处理错误等。
present
present
是一个基于 Markdown 的终端演示工具,包括颜色和效果,并允许您将预先录制的可播放代码块作为幻灯片播放。
巴赫
Bach 是一个 Bash 测试框架,可用于测试包含危险命令(如rm -rf /
)的脚本,还包括用于模拟命令的 API(例如@mock
、 @ignore
、 @mockallto
等)。
CLUI
CLUI
是一个带有实用程序的 JavaScript API,允许您在应用程序(即用户与之交互的类似终端的应用程序)中构建具有上下文感知自动完成功能的命令行界面。
ShellCheck
ShellCheck
是一个 shell 扩展,可帮助您查找 shell 脚本中的错误。
荣誉奖
Basho
让您可以使用纯 JavaScript 编写复杂的 shell 任务,并且可以与 shell 命令和脚本很好地混合。-
import
用于 Bash 和其他 Unix shell 的快速且易于使用的模块系统。 -
Bash Infinity
一个模块化的轻量级库和样板框架,用于使用 Bash 编写工具。
终端的生产力工具
最后,这个类别汇集了一小部分命令行实用程序和程序,这些实用程序和程序有助于完成各种与生产力相关的任务,例如整理东西、共享文件等。
冲刺冲刺
Dash Dash 是一个在线文档站点,它以更易于接受的格式提供 Unix 手册页(即手册页),以帮助那些不太熟悉终端的人学习使用命令行。
nb
nb
是一个命令行工具,其功能包括本地网络笔记、书签、存档和加密。 存储是纯文本的,包括基于 Git 的版本控制、wiki 样式的链接、颜色主题等等。
Rclone
Rclone
是一个开源命令行程序,可让您管理 40 多种云存储服务(Amazon S3、Dropbox、Google Drive、Azure 等)上的文件。 它包括熟悉的 Unix 命令和其他功能的云等效项。
navi
navi
是您终端的交互式备忘单工具。 除了其他功能外,您还可以浏览备忘单存储库、导入备忘单或添加您自己的备忘单。
任务簿
Taskbook 是一个快速的命令行工具,可让您在终端中组织任务、板和笔记,具有搜索/过滤器、自定义存储位置和简单且用户友好的语法等功能。
项目浏览器
Project Explorer 是一个 CLI 工具,可让您构建任何项目的树形可视化。 这在引入新团队成员或继承新项目时会派上用场。
transfer.sh
transfer.sh
是一个快速且易于使用的应用程序,用于通过命令行共享文件。 包括对 Amazon S3、Google Drive、Storj 和本地文件系统等服务的支持。
荣誉奖
ack
一种代码搜索工具,类似于 grep,但针对搜索大型源代码树的程序员进行了优化。-
goto
具有自动完成支持的 shell 实用程序,可导航到别名目录。 -
bashupload
通过命令行上传文件(最大 50GB),以便在服务器、台式机和移动设备之间轻松共享。 -
copyfiles
一个命令行实用程序,它为在终端中复制文件添加了额外的功能。
你最喜欢的命令行工具是什么?
如前所述,这并不是一个详尽的列表,而只是我个人在过去几年中遇到的大量相关命令行应用程序和实用程序。
如果您自己构建了一些东西,或者如果有一个您经常使用的可以增强您的终端体验的东西,请随时将其放在评论中!