什么是 CLI?

命令行界面(CLI)是一种用于使用键盘与操作系统交互的软件机制。另一种机制是图形用户界面(GUI),如今 GUI 在所有应用程序和软件系统中得到广泛使用。可以使用 GUI 进行可视化导航,然后单击相关图标和图像执行操作。但是,GUI 对于系统管理任务来说效率低下,尤其是在虚拟或远程环境的情况下。在命令行界面中,可以输入文本命令以在任何服务器或计算机系统上配置、导航或运行程序。所有操作系统(包括 Linux、macOS 和 Windows)均提供加快系统交互的 CLI。

CLI 有哪些优点?

命令行界面(CLI)提供诸多优点。

效率

可以使用 CLI 在一条文本命令中对多个文件执行操作,而不浪费时间查找和单击每个文件。如果您熟悉这些命令,则可以快速浏览系统并与之交互。还可以创建脚本,在 CLI 中执行多条命令,以自动执行单调或重复的任务。

远程访问

与图形应用程序相比,CLI 应用程序占用的网络资源通常更少。这使得 CLI 应用程序适用于硬件功能有限的系统或远程服务器环境。

即使连接带宽较低,也可以通过安全 Shell 提交命令来远程管理服务器。这是管理服务器和云实例的首选方法,尤其是在没有图形界面的无头环境中。

故障排除

对于开发人员和系统管理员来说,命令行界面的使用是一项极具价值的技能,可以鼓励他们更深入地了解底层系统。借助 CLI,您可以更加精通各种工具和实用程序,同时改善错误管理。

例如,可以使用 CLI 查看系统日志,快速找到全面的错误消息和调试信息。基于文本的命令也可轻松记录。这有助于确保重现任务,也便于将来对步骤进行故障排除。

CLI 有哪些使用案例?

由于命令行界面(CLI)具备多功能性,可以在许多使用案例中使用它。例如,如果您是系统管理员、软件工程师、数据科学家或技术用户,则可以使用 CLI 获得更多控制权。下面提供一些示例。

系统管理

系统管理员使用 CLI 修复系统相关问题,检查操作系统配置,以及更改或更新远程计算机上的配置。他们可以大规模运行命令和控制系统。

软件开发

软件开发人员经常使用 CLI 工具节省时间并简化工作流程。例如,他们在工作期间频繁访问第三方库。如果软件开发人员使用 CLI 添加对这些库的引用,则可以利用一条插入命令来完成操作,而不必编写指令来使用 GUI 搜索库。这种方法可为开发人员以及未来与系统交互的用户节省时间。

云计算

在云环境中,CLI 是管理虚拟机、容器、云服务和服务器配置的关键要素。开发人员和管理员使用 CLI 与云提供商的 API 进行交互,自动预置资源并部署应用程序。

网络管理

网络管理员使用 CLI 配置路由器、交换机、防火墙和其他联网设备。如果想要监控网络流量、排查连接问题和实施安全策略,CLI 工具就可提供帮助。渗透测试人员还使用命令行工具进行漏洞扫描、网络侦测和事件分析。

CLI 是如何工作的?

命令行界面(CLI)是基于文本的界面,可以在其中输入与计算机操作系统交互的命令。CLI 在默认 Shell 的帮助下运行,该 Shell 位于操作系统和用户之间。 

CLI Shell

Shell 是指在用户和操作系统之间起中介作用的程序。示例包括 Bash、cmd.exe、PowerShell 以及其他用于更具体功能的示例。

Shell 负责处理各种任务,例如命令解析、环境管理和流程执行。Shell 还支持以下功能:

  • 命令历史记录,可以在其中使用箭头键或其他快捷键访问以前输入的命令
  • 输入和输出重定向
  • Piping(将一条命令的输出作为另一条命令的输入)和环境变量管理

此外,还可以自定义 Shell 环境。为此,可以设置环境变量、定义别名(较长命令的快捷方式)以及为自动化或重复任务创建 Shell 脚本。

命令的工作原理

在 CLI 中输入命令时,系统会执行以下步骤: 

  1. Shell 命令行解释器解析输入的命令以了解其结构,并且分离命令名称、选项和参数。
  2. Shell 在其可用命令列表中查找命令名称。命令名称代表用户希望操作系统执行的操作。
  3. Shell 搜索系统的 PATH 变量(系统文件所在的目录列表),以查找与该命令关联的相应文件。
  4. CLI Shell 会调用相应的文件,并且传递任何指定的选项和参数作为输入。
  5. 操作系统执行所需的操作。
  6. 此操作可能会生成输出,例如信息性消息、错误消息、请求的数据或操作结果。
  7. CLI Shell 会显示输出,因此可以看到命令的结果。

CLI Shell 循环运行,等待输入另一条命令。当您与 CLI shell 交互时,命令输入、解析、执行和输出显示的过程会重复。这为基于命令的交互提供连续的接口。

如何在系统上打开命令行界面?

每种主流操作系统访问命令行界面(CLI)的方式略有不同。

Windows

以下是在 Windows 8 或更高版本的 Windows 中打开 CLI 的方式:

  1. 同时按下 Windows 键和“S”
  2. 在搜索栏中输入“cmd”
  3. 右键单击“命令提示符”,然后选择“以管理员身份运行”
  4. 现在可以输入命令提示符

Mac

以下是在 Mac 上打开 CLI 的方式:

  1. 找到 Finder 应用程序,它通常位于工具栏上
  2. 浏览/应用程序/实用工具
  3. 选择“终端”
  4. 现在可以输入命令提示符

Linux

Linux 提供一种简单的方法来访问 CLI:使用快捷方式 CTRL+ALT+T。

或者,可以使用 ALT+F2,然后输入“gnome-terminal”。

有哪些常见的命令行界面命令?

命令行界面(CLI)为不同类型的任务提供了许多不同的命令。不同操作系统的此类命令略有区别。接下来给出几个不同的命令示例。

文件系统命令

CLI 命令

Windows

Linux

更改目录

cd

cd

最近的文件

dir

ls

创建目录

mkdir

mkdir

移除目录

rmdir

rmdir

复制文件

copy

cp

移动文件

举措

mv

重命名文件

ren

mv

显示文件

类型

cat

删除文件

del

rm

更改权限

cacls/chmod

chmod

网络命令

CLI 命令

Windows

Linux

Ping

ping

ping

追踪路由

tracert

traceroute

网络配置

ipconf

ifconfig

路由表

route

route

DNS 查询

nslookup

nslookup

网络诊断

netsh

netstat

信息命令

CLI 命令

Windows

Linux

列出进程

tasklist

ps

结束进程

taskkill

kill

系统信息

systeminfo

uname -a

磁盘使用情况

wmic/fsutil

df

系统监控

perfmon

top/htop

有哪些 CLI 最佳实践?

虽然命令行界面(CLI)很有用,并且可以提供远程访问,但它要求您精确输入并了解正确的命令。理解输入的命令将确保获得所需的结果。如果您不熟悉某个命令,则应在将其输入到 CLI 之前研究其作用。同样,请确保在输入命令时没有任何变体或拼写错误。

另一项重要实践是限制所有非特权用户使用 CLI。仅向可信方授予管理员权限,这样可限制不必要的系统交互。可以防止未经授权访问关键资源。 

应该考虑的另一项安全措施是使系统保持最新状态。更新版本错误修复、性能改进,以及重要的安全补丁。让 CLI 保持最新状态可确保系统尽可能安全。最后,最好记录所有 CLI 活动,以便检测更改、发现可疑行为并在出现问题时进行排查。

什么是 AWS 命令行界面?

AWS 命令行界面(AWS CLI)是 Amazon Web Services(AWS)推出的开源工具。可以通过命令行 Shell 中的命令,使用 CLI 与 AWS 服务进行交互。

只需最少量的配置,就可以使用 AWS CLI 执行与浏览器式 AWS 管理控制台提供的功能相当的命令。以下是可以在终端程序的命令提示符下执行的操作:

  • 使用 Bash、zsh 和 tcsh 等常见的 Linus Shell 程序在 Linux 或 macOS 中运行命令。
  • 在 Windows 上通过 Windows 命令提示符或 PowerShell 运行命令。
  • 通过 PuTTY、SSH 等远程终端程序或使用 AWS Systems Manager,在 Amazon Elastic Compute Cloud(Amazon EC2)实例上远程运行命令。

AWS CloudShell 是基于浏览器的 Shell,可以使用该工具通过 AWS CLI 快速运行脚本,通过服务 API 进行试验,以及使用其他工具来提高生产力。CloudShell 的图标显示在可使用 CloudShell 的 AWS 区域中。

立即创建账户,开始使用 AWS CLI。

AWS 上的后续步骤

查看其他与产品相关的资源
查看开发人员工具服务 
注册免费账户

立即享受 AWS 免费套餐。

注册 
开始在控制台中构建

在 AWS 管理控制台中开始构建。

登录