命令行界面是用于与计算机交互的基于文本的接口,也称为读取Eval-Print 循环(REPL)。
shell 从键盘获取输入,评估该输入,并将输入作为 shell 命令执行,或为要执行的操作系统提供输入。 大多数 shell 还可以从脚本文件读取命令,并可能包括变量、流控制和函数等编程功能。
终端
终端是一个应用程序,它提供用于托管命令行界面的基于文本的接口。 某些终端设计用于处理特定 shell,而另一些终端可以托管多个 shell。 它们还可以包括高级功能,例如:
- 能够在单个窗口中创建多个窗格
- 能够创建多个选项卡来托管多个 shell
- 能够更改配色方案和字体
- 支持复制和粘贴操作
以下列表包含终端应用程序的一些示例:
- Windows 终端 - 一个可托管多个 shell 的 Windows 的新式终端应用程序。
- Windows 控制台主机 - Windows 上用于基于文本的应用程序的默认主机应用程序。 它还可以托管 Windows Command Shell 或 PowerShell。
- macOS 终端 - 可托管 bash 或 zsh shell 的 macOS 上的默认终端应用程序。
- iTerm2 for macOS - macOS 的热门第三方终端应用程序。
- Azure Cloud Shell - Microsoft Azure 中托管的基于浏览器的终端应用程序。 Azure Cloud shell 提供了使用 bash 或 PowerShell 的选择,并预配置了许多命令行工具来管理 Azure 资源。
常规用途命令 shell
常规用途命令 shell 旨在与操作系统配合使用。 使用这些 shell,可以运行操作系统支持的任何命令。 它们还包括特定于 shell 的命令和编程功能。 以下列表包含常规用途命令 shell 的一些示例:
- PowerShell
- Windows Command Shell
- bash - Linux 上很受欢迎
- zsh - macOS 上很受欢迎
实用工具命令 shell
实用工具命令 shell 旨在与特定应用程序或服务配合使用。 这些 shell 只能运行特定于应用程序或服务的命令。 某些实用工具 shell 支持从脚本文件运行命令,但不包括编程功能。 通常,这些 shell 只能以交互方式使用。
- AI Shell - 一种仅交互式 shell,用于与 Azure OpenAI 等 AI 服务通信。
- netsh - Network shell (netsh) 是一个命令行实用工具,可用于在 Windows 上配置和显示各种网络组件的状态。 它既是命令行工具和命令行界面。 它还支持从脚本文件运行命令。
命令行工具
命令行工具是从命令行界面运行的独立程序。 命令行工具通常设计为执行特定任务,例如管理文件、配置设置或查询信息。 命令行工具可用于支持运行外部程序的任何 shell。
- Azure CLI - 一组命令行工具,用于管理可在任何受支持的 shell 中运行的 Azure 资源。
- Azure PowerShell - 一组 PowerShell 模块,用于管理可在任何受支持的 PowerShell 版本中运行的 Azure 资源。
- OpenSSH for Windows - 命令行客户端以及服务器,用于通过网络进行安全通信。
- Windows 命令 - 内置于 Windows 中的命令行工具的集合。
通常,命令行工具不提供命令行界面(REPL)。 Windows 中的 netsh
命令是一个例外,因为它是命令行工具和交互式命令行命令行工具。