基本概念
终端是一个文本界面,用于执行基于文本的程序。
果你正在运行任何用于 web 开发的工具,你一定需要打开命令行并运行一些命令来使用你所选择的工具 (这样的工具被称为CLI 工具也就是命令行接口工具)。
命令行接口工具 (CLI 工具) 是什么?
CLI 工具是通过命令行界面与用户交互的程序。它们允许用户通过输入命令来执行特定的任务或操作。这些工具通常用于自动化、开发、系统管理和其他需要精确控制的任务。
终端、命令行与 CLI 工具的关系:
- 终端:是一个显示和输入命令的窗口。
- 命令行:是终端中实际执行命令的地方。
- CLI 工具:是通过命令行执行的具体工具或程序。
Windows 和 Linux 系统上都有各种终端工具可以选择使用。
1. Windows 系统上的终端
- 命令提示符(Command Prompt, CMD):
- Windows 系统自带的终端工具。
- 提供基本的命令行功能。
- 适用于简单的文件操作和系统管理任务。
- 启动方法:按
Win + R
,输入cmd
,然后按回车。
- PowerShell:
- 是 Windows 系统的高级命令行工具和脚本环境。
- 提供更强大的功能和更丰富的命令集,支持脚本编写。
- 适用于系统管理、自动化任务和高级操作。
- 支持部分常用的 Linux 命令
- 启动方法:按
Win + R
,输入powershell
,然后按回车。
- Windows Subsystem for Linux (WSL):
- 允许在 Windows 上运行 Linux 发行版(如 Ubuntu、Debian)。
- 提供了一个完整的 Linux 终端环境,适用于开发和系统管理。
- 启动方法:安装 WSL 后,通过独立的 WSL 终端应用启动。
安装 WSL
2. Linux 系统上的终端
- GNOME Terminal:
- GNOME 桌面环境的默认终端仿真器。
- 提供基本的终端功能和一些高级特性(如标签页、分屏)。
- 常见于 Ubuntu 和其他使用 GNOME 桌面环境的发行版。
- Konsole:
- KDE 桌面环境的默认终端仿真器。
- 提供丰富的功能和高度的可定制性。
- 常见于 Kubuntu 和其他使用 KDE 桌面环境的发行版。
- Xfce Terminal:
- Xfce 桌面环境的默认终端仿真器。
- 轻量级,适用于资源有限的系统。
- 常见于 Xubuntu 和其他使用 Xfce 桌面环境的发行版。
- LXTerminal:
- LXDE 桌面环境的默认终端仿真器。
- 轻量级,适用于低资源消耗的系统。
- 常见于 Lubuntu 和其他使用 LXDE 桌面环境的发行版。
- Tilix:
- 一个高级的终端仿真器,支持分屏、多标签页等功能。
- 提供丰富的自定义选项和高级功能。
- 可以在多种 Linux 发行版上安装和使用。
必须使用终端吗
如果使用的工具是这样像 Visual Studio Code,有大量的扩展可以作为代理使用终端命令,而不需要直接使用终端。
基本的内置终端命令
无论是在 Windows (指的是cmd)还是 Linux 系统上,终端命令都是进行系统管理和操作的重要工具。以下是一些常见的基本内置终端命令:
- 文件和目录操作命令:如
ls
、cd
、mkdir
、cp
、mv
和rm
。 - 文件内容查看命令:如
cat
、more
、less
、head
和tail
。 - 系统信息和状态查看命令:如
pwd
、date
、ps
、top
、df
和du
。 - 网络相关命令:如
ipconfig
、ifconfig
、ping
、tracert
和netstat
。 - 帮助和手册命令:如
--help
和man
。
1. 文件和目录操作命令
- 列出目录内容
- Windows:
dir
- Linux:
ls
-l
选项显示更多信息
- Windows:
- 更改目录
- Windows:
cd [目录名]
- Linux:
cd [目录名]
- Windows:
# 进入上一级目录
cd ..
# 进入上一级目录
cd ...
# 当前目录的src文件夹
cd ./src
- 创建目录
- Windows:
mkdir [目录名]
- Linux:
mkdir [目录名]
- Windows:
- 删除目录
- Windows:
rmdir [目录名]
- Linux:
rmdir [目录名]
或rm -r [目录名]
- Windows:
- 创建文件
- Windows:如
echo. > filename.txt
、type nul > filename.txt
和copy con filename.txt
。 - **Linux **:如
touch filename.txt
、echo "" > filename.txt
、cat > filename.txt
和> filename.txt
。
- Windows:如
- 复制文件
- Windows:
copy [源文件] [目标文件]
- Linux:
cp [源文件] [目标文件]
- Windows:
- 移动或重命名文件
- Windows:
move [源文件] [目标文件]
- Linux:
mv [源文件] [目标文件]
- Windows:
- 删除文件
- Windows:
del [文件名]
- Linux:
rm [文件名]
- Windows:
2. 文件内容查看命令
- 显示文件内容
- Windows:
type [文件名]
- Linux:
cat [文件名]
- Windows:
- 分页显示文件内容
- Windows:
more [文件名]
- Linux:
more [文件名]
或less [文件名]
- Windows:
- 显示文件开头部分
- Windows: 无直接命令(可以使用 PowerShell 的
Get-Content [文件名] -Head [行数]
) - Linux:
head [文件名]
- Windows: 无直接命令(可以使用 PowerShell 的
- 显示文件结尾部分
- Windows: 无直接命令(可以使用 PowerShell 的
Get-Content [文件名] -Tail [行数]
) - Linux:
tail [文件名]
- Windows: 无直接命令(可以使用 PowerShell 的
3. 系统信息和状态查看命令
- 显示当前路径
- Windows:
cd
或chdir
- Linux:
pwd
- Windows:
- 查看系统时间和日期
- Windows:
time
和date
- Linux:
date
- Windows:
- 查看系统进程
- Windows:
tasklist
- Linux:
ps
或top
- Windows:
- 查看磁盘使用情况
- Windows:
dir
或chkdsk
- Linux:
df
和du
- Windows:
4. 网络相关命令
- 查看网络配置
- Windows:
ipconfig
- Linux:
ifconfig
或ip a
- Windows:
- 测试网络连接
- Windows:
ping [地址]
- Linux:
ping [地址]
- Windows:
- 显示路由信息
- Windows:
tracert [地址]
- Linux:
traceroute [地址]
- Windows:
- 显示网络状态
- Windows:
netstat
- Linux:
netstat
- Windows:
5. 帮助和手册命令
- 查看命令帮助信息
- Windows:
[命令] /?
- Linux:
[命令] --help
- Windows:
- 查看手册页
- Windows: 无直接命令(可以使用 PowerShell 的
Get-Help [命令]
) - Linux:
man [命令]
- Windows: 无直接命令(可以使用 PowerShell 的
管道命令
管道命令(Pipeline)是命令行中的一种强大工具,用于将一个命令的输出直接作为下一个命令的输入。这使得可以将多个命令组合起来,进行复杂的数据处理和操作。管道命令在 Unix/Linux 系统和 Windows 系统的 PowerShell 中都非常常见。
1. Unix/Linux 系统中的管道命令
在 Unix/Linux 系统中,管道符号是 |
,用于连接两个或多个命令。
- 列出当前目录中的文件并过滤包含特定字符串的文件
ls -l | grep "pattern"
- 显示文件内容并分页显示
cat filename.txt | less
- 统计文件中的行数、单词数和字符数
cat filename.txt | wc
- 查找文件中包含特定字符串的行并排序
grep "pattern" filename.txt | sort
2. Windows PowerShell 中的管道命令
在 Windows PowerShell 中,管道符号同样是 |
,用于连接两个或多个命令。
- 列出当前目录中的文件并过滤包含特定字符串的文件
Get-ChildItem | Where-Object { $_.Name -like "*pattern*" }
- 显示文件内容并分页显示
Get-Content filename.txt | Out-Host -Paging
- 统计文件中的行数
Get-Content filename.txt | Measure-Object -Line
- 查找文件中包含特定字符串的行并排序
Select-String -Path filename.txt -Pattern "pattern" | Sort-Object LineNumber
添加第三方 CLI 工具
上面那些都是系统自带的一些内置命令,让我们看看如何安装和使用第三方 CLI 工具。
第三方 CLI 工具是指那些由外部开发者或组织创建的命令行工具,它们通常用于特定任务,如版本控制、包管理、构建和部署等。以下是一些常见的第三方 CLI 工具及其使用方法。
npm - Node.js 包管理工具
npm(Node Package Manager)是 Node.js 的包管理工具。它是一个命令行工具,用于安装、管理和发布 Node.js 包(模块)。
npm 通常与 Node.js 一起安装。可以从 Node.js官网 下载并安装 Node.js。
Node.js — Download Node.js®
window操作系统上直接下载安装就可以,需要注意的就是可能需要配置环境变量。
基本命令
npm init # 初始化一个新的 Node.js 项目
npm install [包名] # 安装一个包
npm install -g [包名] # 全局安装一个包
npm update # 更新所有依赖包
npm uninstall [包名] # 卸载一个包
包的全局安装与项目安装
在使用包管理工具(如 npm)时,通常有两种安装模式:全局安装和项目安装。了解这两种安装模式的区别及其适用场景非常重要。
软件包管理
使用 prettier 工具
Prettier 是一款专门为前端开发人员设计的代码格式化工具,专注于基于 javascript 的语言,并增加了对 HTML、CSS、SCSS、JSON 等的支持。Prettier 能够:
- 代码一致性: Prettier 会根据预定义的规则自动格式化代码,从而确保团队成员编写的代码风格一致。这样可以减少代码审查时的争论,并使代码库更易于维护。
- 提高可读性: 通过统一的代码风格,Prettier 使代码更易于阅读和理解。格式化后的代码具有一致的缩进、换行和空格使用,使得开发者在阅读代码时不必适应不同的编写风格。
- 节省时间: 开发者不再需要手动调整代码格式,从而节省了时间和精力。Prettier 可以在保存文件时自动格式化代码,使得开发者可以专注于编码逻辑,而不是代码样式。
- 减少错误: 统一的代码风格可以减少由于格式问题引发的错误。例如,Prettier 会自动添加缺失的分号或修正多余的空格,这有助于减少语法错误。
- 方便代码审查: 由于所有代码都按照相同的格式进行书写,代码审查时可以更专注于代码的逻辑和功能,而不是代码样式问题。
- 与其他工具集成: Prettier 可以与 ESLint、TSLint 等工具集成使用,从而同时实现代码风格和代码质量的统一管理。此外,Prettier 还可以与 Git hooks(如 Husky)结合,在提交代码前自动格式化代码,确保代码库中的代码始终符合规范。
What is Prettier? · Prettier
安装 Prettier
- 使用 npm 安装:
npm install --global prettier
命令运行完成后,Prettier 工具现在可以在终端中的文件系统中的任何位置使用。
在试试这个
prettier
输出应该是这样的:
在命令行中使用 Prettier
- 格式化单个文件:
prettier --write src/index.js
- 格式化整个项目:
prettier --write .
与编辑器集成:
在项目中创建配置文件: 创建 .prettierrc
文件来配置 Prettier。例如:
{
"semi": false,
"singleQuote": true,
"printWidth": 80
}
VS Code插件使用
安装 Prettier 插件,并在设置中启用自动格式化。