---
title: CLI
description: 介绍命令行界面 CLI 的基本概念、使用方式和学习命令行工具的入门方向。
---

# CLI

> 本篇仍在编写中，可能存在错误或不完整的地方。

在了解了何为终端之后，来看一下与终端相关的操作方式：命令行界面（*Command-line Interface*，CLI）。

命令行界面是一个基于文本的用户界面，用户通过键盘输入命令来操作计算机。

命令行界面与图形用户界面（*Graphical User Interface*，GUI）相对，图形用户界面是基于图形的用户界面，用户通过鼠标点击图形界面上的图标来操作计算机。


## CLI的基础知识

### 提示符

命令行界面的每一行都是一个命令，每一行的开头都有一个特殊的符号，这个符号就是提示符。

提示符的作用是告诉用户这一行是用来输入命令的，而不是用来显示输出的。

在不同的系统中，提示符的样式可能不同，但是一般来说，提示符都是由一个特殊的字符和一个空格组成。

- 在 Linux 中，提示符的样式一般为 `$` 或 `#`，其中 `$` 表示普通用户，而 `#` 表示超级用户（root 用户）。

```bash
$ 
```

- 在 Windows 中，提示符的样式一般为 `C:\Users\[username]>`，其中 `C:\Users\[username]` 表示当前所在的目录。

```cmd
C:\Users\[username]>
```

> 提示符仅仅是一个特殊的字符，用于提示用户在此输入命令，它并不是命令的一部分，因此在输入命令时不应输入提示符。


### 目录

目录（Directory）是文件系统中的一个概念，它用于组织文件和子目录。

在命令行操作中，相对路径和绝对路径都可以用来指定目录。

- 相对路径是相对于当前所在的目录的路径，例如 `.` 表示当前目录， `..` 表示当前目录的父目录， `./a` 表示当前目录下的 `a` 目录， `../a` 表示当前目录的父目录下的 `a` 目录。
- 绝对路径是从根目录开始的路径，例如 `/` 表示根目录，`/a` 表示根目录下的 `a` 目录，`/a/b` 表示根目录下的 `a` 目录下的 `b` 目录。（在 Windows 中，根目录需要带上盘符，如 C 盘的根目录的路径为 `C:\`）

> 在 Windows 中，目录的分隔符为 `\`，而在 Linux 中，目录的分隔符为 `/`。

大多数情况下，两种路径都可以用来指定目录。仍有一些情况下，只能使用绝对路径。

> 对于路径中有空格的情况，需要使用引号将路径括起来。 <br />
> 例如 `"C:\Program Files\Microsoft"`。

## 基础操作

> *Windows* 中 *PowerShell* 自带了一些基础指令的别名，直接输入 *Linux* / *macOS* 的基础指令也可识别，因此此处仅列出 *Linux* / *macOS* 下的指令。

| 命令 | 说明|
| :--- | :--- |
| `exit` | 退出当前终端 |
| `cd` | 切换当前目录 |
| `ls` | 列出当前目录下的文件和目录 |
| `cp` | 复制文件或目录 |
| `mv` | 移动文件或目录 |
| `rm` | 删除文件或目录 |
| `mkdir` | 创建目录 |
