终端命令行|CLI工具|CMD|PowerShell

基本概念

终端是一个文本界面,用于执行基于文本的程序。
果你正在运行任何用于 web 开发的工具,你一定需要打开命令行并运行一些命令来使用你所选择的工具 (这样的工具被称为CLI 工具也就是命令行接口工具)。
命令行接口工具 (CLI 工具) 是什么?
CLI 工具是通过命令行界面与用户交互的程序。它们允许用户通过输入命令来执行特定的任务或操作。这些工具通常用于自动化、开发、系统管理和其他需要精确控制的任务。
终端、命令行与 CLI 工具的关系:

  • 终端:是一个显示和输入命令的窗口。
  • 命令行:是终端中实际执行命令的地方。
  • CLI 工具:是通过命令行执行的具体工具或程序。

Windows 和 Linux 系统上都有各种终端工具可以选择使用。

1. Windows 系统上的终端

  • 命令提示符(Command Prompt, CMD)
    • Windows 系统自带的终端工具。
    • 提供基本的命令行功能。
    • 适用于简单的文件操作和系统管理任务。
    • 启动方法:按 Win + R,输入 cmd,然后按回车。

image.png

  • PowerShell
    • 是 Windows 系统的高级命令行工具和脚本环境。
    • 提供更强大的功能和更丰富的命令集,支持脚本编写。
    • 适用于系统管理、自动化任务和高级操作。
    • 支持部分常用的 Linux 命令
    • 启动方法:按 Win + R,输入 powershell,然后按回车。

image.png

  • 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,有大量的扩展可以作为代理使用终端命令,而不需要直接使用终端。
image.png

基本的内置终端命令

无论是在 Windows (指的是cmd)还是 Linux 系统上,终端命令都是进行系统管理和操作的重要工具。以下是一些常见的基本内置终端命令:

  • 文件和目录操作命令:如 lscdmkdircpmvrm
  • 文件内容查看命令:如 catmorelessheadtail
  • 系统信息和状态查看命令:如 pwddatepstopdfdu
  • 网络相关命令:如 ipconfigifconfigpingtracertnetstat
  • 帮助和手册命令:如 --helpman
1. 文件和目录操作命令
  • 列出目录内容
    • Windows: dir
    • Linux: ls
      • -l 选项显示更多信息
  • 更改目录
    • Windows: cd [目录名]
    • Linux: cd [目录名]
# 进入上一级目录
cd ..

# 进入上一级目录
cd ...

# 当前目录的src文件夹
cd ./src

  • 创建目录
    • Windows: mkdir [目录名]
    • Linux: mkdir [目录名]
  • 删除目录
    • Windows: rmdir [目录名]
    • Linux: rmdir [目录名]rm -r [目录名]
  • 创建文件
    • Windows:如 echo. > filename.txttype nul > filename.txtcopy con filename.txt
    • **Linux **:如 touch filename.txtecho "" > filename.txtcat > filename.txt> filename.txt
  • 复制文件
    • Windows: copy [源文件] [目标文件]
    • Linux: cp [源文件] [目标文件]
  • 移动或重命名文件
    • Windows: move [源文件] [目标文件]
    • Linux: mv [源文件] [目标文件]
  • 删除文件
    • Windows: del [文件名]
    • Linux: rm [文件名]
2. 文件内容查看命令
  • 显示文件内容
    • Windows: type [文件名]
    • Linux: cat [文件名]
  • 分页显示文件内容
    • Windows: more [文件名]
    • Linux: more [文件名]less [文件名]
  • 显示文件开头部分
    • Windows: 无直接命令(可以使用 PowerShell 的 Get-Content [文件名] -Head [行数]
    • Linux: head [文件名]
  • 显示文件结尾部分
    • Windows: 无直接命令(可以使用 PowerShell 的 Get-Content [文件名] -Tail [行数]
    • Linux: tail [文件名]
3. 系统信息和状态查看命令
  • 显示当前路径
    • Windows: cdchdir
    • Linux: pwd
  • 查看系统时间和日期
    • Windows: timedate
    • Linux: date
  • 查看系统进程
    • Windows: tasklist
    • Linux: pstop
  • 查看磁盘使用情况
    • Windows: dirchkdsk
    • Linux: dfdu
4. 网络相关命令
  • 查看网络配置
    • Windows: ipconfig
    • Linux: ifconfigip a
  • 测试网络连接
    • Windows: ping [地址]
    • Linux: ping [地址]
  • 显示路由信息
    • Windows: tracert [地址]
    • Linux: traceroute [地址]
  • 显示网络状态
    • Windows: netstat
    • Linux: netstat
5. 帮助和手册命令
  • 查看命令帮助信息
    • Windows: [命令] /?
    • Linux: [命令] --help
  • 查看手册页
    • Windows: 无直接命令(可以使用 PowerShell 的 Get-Help [命令]
    • Linux: man [命令]

管道命令

管道命令(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

输出应该是这样的:
image.png
在命令行中使用 Prettier

  • 格式化单个文件:
prettier --write src/index.js
  • 格式化整个项目:
prettier --write .

与编辑器集成
在项目中创建配置文件: 创建 .prettierrc 文件来配置 Prettier。例如:

{
  "semi": false,
  "singleQuote": true,
  "printWidth": 80
}

VS Code插件使用
安装 Prettier 插件,并在设置中启用自动格式化。
image.png

  • 33
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值