2022年 11月 9日

【Python CLI】第一章 CLI 应用程序介绍

系列文章目录

【Python CLI】第一章 CLI 应用程序介绍
【Python CLI】第二章 命令解析
【Python CLI】第三章 格式化输出
【Python CLI】第四章 程序控制台


文章目录

  • 系列文章目录
  • 前言
  • 一、命令行、终端、控制台、shell
  • 二、CLI 应用程序
    • 1. 命令解析
    • 2. 命令行输出
    • 3. 控制台(console)
  • 总结

前言

CLI(command-line interface,命令行接口)是指应用程序提供的在 命令行 用户进行交互的接口。它通常 不支持鼠标 ,用户通过键盘输入命令,程序接收到命令后,依据命令的 选项参数 控制程序执行。


一、命令行、终端、控制台、shell

  • 命令行界面 (CLI) 是 使用文本命令进行交互的用户界面。
  • 终端 (Terminal) = TTY, 终端是 文本输入/输出环境; 终端只是一种用于与计算机进行交互的输入输出设备,其本身并不提供运算处理功能。
  • 控制台 (Console) 是 一种特殊的终端,每一个 CLI 都可以实现属于应用程序的控制台。
  • shell :操作系统提供给 用户界面的应用程序 被叫做 shell,shell可以调用系统 API 执行用户输入的命令并返回结果。

梳理一下:shell 是系统应用,提供了命令行界面,并且可以调用系统API完成命令的执行。终端是命令行界面的包装,控制台是可以由每一个应用程序自己实现的,控制程序功能的特殊终端。

开启命令行界面:

  • window :按下 Windows 徽标键和 R 键 输入 cmd 按下回车键开启
  • Mac OS:打开 终端(terminal)APP即可
  • Linux:
    • 方式1:Linux发行版启动后通常会进入默认的图形界面,和 Mac OS 类似的,会有终端对应的软件。
    • 方式2:调整配置,进入命令行模式

二、CLI 应用程序

CLI 应用程序是通过 命令 + 选项 + 参数 的方式来与用户进行交互,控制程序的运行的,并且程序运行的结果也需要在命令行中显示出来,所以,CLI 应用程序除了完成程序的核心功能之外,还需要来完成 命令的解析 以及在 命令行进行输出 的功能。

除此之外,部分 CLI 应用程序也需要一个控制台来和用户进行交互,控制程序的运行。

下面我们对这三部分进行简单的介绍。

1. 命令解析

一般 CLI 应用程序命令的格式如下:

·命令 [选项] [参数]

为了区分选项和参数,约定通常使用 - 做选项的前缀。

使用一个 - + 单个字母 的选项 被称为短选项。
使用两个 - + 单词 的选项被称之为长选项。

长短选项可以对应存在或者单独存在。同时,选项也可以消耗命令行中的参数。

CLI 应用程序通常都有 -h/--help 这组命令用来显示帮助信息,帮助用户了解应用程序的使用方式。

这里对 CLI 应用程序使用方式中的符号做简单说明:

  • 尖括号: <> 表示括号内的内容是必选的,不能忽略,使用时没有尖括号。
  • 方括号: [] 表示里面的元素(参数、值或信息)是可选的,0个、1个或者多个。
  • 花括号: {} 表示参数必须是里面的其中一个值
  • 省略号: 表示当前的参数可以重复。

2. 命令行输出

命令行输入不单单是使用 print 函数进行打印,而是程序获取终端的宽度和高度之后经过计算来格式化的输出内容,使命令行中的输出美观易读。

同时,可以使用不同的高亮和颜色来在命令行进行输出。
可以使用 ANSI 色彩代码来进行高亮和颜色的控制

ANSI 色彩代码

前景(3开头) 背景(4开头) 颜色 ANSI控制码(结束标识\E[0m)
30 40 0黑色 \E[30m\E[0m,\E[40m\E[0m
31 41 1红色 \E[31m\E[0m,\E[41m\E[0m
32 42 2绿色 \E[32m\E[0m,\E[42m\E[0m
33 43 3黄色 \E[33m\E[0m,\E[43m\E[0m
34 44 4蓝色 \E[34m\E[0m,\E[44m\E[0m
35 45 5紫色 \E[35m\E[0m,\E[45m\E[0m
36 46 6天蓝 \E[36m\E[0m,\E[46m\E[0m
37 47 7白色 \E[37m\E[0m,\E[47m\E[0m

ANSI 其它控制码

控制码 说明
\033[0m 关闭所有属性,即属性结束标识
\033[01m 设置高亮度,即字体加粗、文体强调
\033[03m 设置倾斜
\033[04m 下划线
\033[05m 闪烁
\033[07m 反显
\033[08m 消隐
\033[09m 文字中划线
\033[3nm 设置前景色(0 ≤ n ≤ 7)
\033[4nm 设置背景色(0 ≤ n ≤ 7)
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH 设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

3. 控制台(console)

控制台是 CLI 应用程序控制的特殊终端,只有部分CLI应用程序有。
控制台其实就是一个循环:等待用户输入 -> 解析用户输入 -> 应用程序执行 -> 展示执行结果 -> 等待用户输入
当用户按下 Ctrl – D 或者 Ctrl -C 又或者是输入退出的命令之后结束应用程序。


总结

以上就是这一章的主要内容,主要介绍了 CLI 应用程序部分必知必会的内容。