WSL,Power shell 和CMD, Git bash的区别

在 Windows 系统中,WSLPowerShellCMDGit BashGit Bash(管理员) 是不同的命令行工具和环境,它们各自有不同的用途和特点。以下是它们的详细关系和区别:

1. WSL(Windows Subsystem for Linux)

  • 定义:WSL 是 Windows 系统中的一个子系统,允许用户在 Windows 上运行 Linux 环境。

  • 特点

    • 支持运行 Linux 命令和工具(如 bashgrepsed 等)。

    • 可以直接访问 Windows 文件系统(通过 /mnt/c 等路径)。

    • 支持 WSL 1 和 WSL 2 两种版本,WSL 2 提供了完整的 Linux 内核和更好的性能。

  • 使用场景

    • 开发需要在 Linux 环境中运行的应用。

    • 使用 Linux 工具链(如 GCC、Python、Ruby 等)。

    • 运行 Docker 容器(需要 WSL 2)。


2. PowerShell

  • 定义:PowerShell 是 Windows 提供的一种强大的命令行工具和脚本语言。

  • 特点

    • 支持面向对象的脚本语言,功能比 CMD 更强大。

    • 可以调用 .NET 框架和 COM 对象。

    • 支持模块化和扩展性。

  • 使用场景

    • 系统管理和自动化任务。

    • 编写复杂的脚本。

    • 调用 Windows API 和系统功能。

3. PowerShell(管理员)

  • 定义:以管理员权限运行的 PowerShell。

  • 特点

    • 具有系统管理员权限,可以执行需要提升权限的操作(如修改系统文件、安装软件、更改系统配置等)。

    • 功能与普通 PowerShell 完全相同,但权限更高。

  • 使用场景

    • 修改系统级别的配置(如注册表、系统服务等)。

    • 安装或卸载软件。

    • 执行需要管理员权限的脚本或命令。

如何打开 PowerShell(管理员):
  1. Win + X,选择 Windows PowerShell(管理员)

  2. 或者在开始菜单中搜索 PowerShell,右键点击并选择 以管理员身份运行

示例:

powershell

复制代码
# 修改系统环境变量
[System.Environment]::SetEnvironmentVariable("PATH", "C:\NewPath", [System.EnvironmentVariableTarget]::Machine)

4. CMD(命令提示符)

  • 定义:CMD 是 Windows 的传统命令行工具,基于 DOS 命令。

  • 特点

    • 支持基本的命令行操作(如 dircdcopy 等)。

    • 功能相对简单,适合执行简单的任务。

  • 使用场景

    • 执行简单的文件操作。

    • 运行批处理脚本(.bat 文件)。

5. CMD(管理员)

  • 定义:以管理员权限运行的命令提示符(CMD)。

  • 特点

    • 具有系统管理员权限,可以执行需要提升权限的操作。

    • 功能与普通 CMD 完全相同,但权限更高。

  • 使用场景

    • 执行需要管理员权限的文件操作(如删除系统文件)。

    • 运行需要管理员权限的批处理脚本(.bat 文件)。

    • 修改系统配置(如网络设置、服务管理等)。

如何打开 CMD(管理员):
  1. Win + X,选择 命令提示符(管理员)

  2. 或者在开始菜单中搜索 cmd,右键点击并选择 以管理员身份运行

示例:

cmd

删除系统文件 del C:\Windows\Temp\*.* /f /s /q


6. Git Bash

  • 定义:Git Bash 是 Git for Windows 提供的一个命令行工具,模拟了 Linux 的 Bash 环境。

  • 特点

    • 提供了 Linux 风格的命令行工具(如 lsgrepssh 等)。

    • 集成了 Git 工具,方便版本控制操作。

    • 基于 MinGW(Minimalist GNU for Windows),不是完整的 Linux 环境。

  • 使用场景

    • 使用 Git 进行版本控制。

    • 运行简单的 Linux 命令。


7. Git Bash(管理员)

  • 定义:Git Bash(管理员)是以管理员权限运行的 Git Bash。

  • 特点

    • 与普通 Git Bash 功能相同,但具有管理员权限。

    • 可以执行需要管理员权限的操作(如修改系统文件、安装软件等)。

  • 使用场景

    • 执行需要管理员权限的 Git 操作。

    • 修改系统级别的配置。


8. 它们之间的关系

(1)功能对比
工具 环境类型 支持的命令 权限管理 主要用途
WSL Linux 子系统 Linux 命令 普通/管理员 运行 Linux 应用和工具
PowerShell Windows 命令行 PowerShell 命令 普通/管理员 系统管理、脚本编写
PowerShell(管理员) Windows 命令行 PowerShell 命令 管理员权限 修改系统配置、安装软件
CMD Windows 命令行 DOS 命令 普通/管理员 简单文件操作、批处理脚本
CMD(管理员) Windows 命令行 DOS 命令 管理员权限 删除系统文件、修改系统配置
Git Bash 模拟 Linux Linux/Git 命令 普通 Git 操作、简单 Linux 命令
Git Bash(管理员) 模拟 Linux Linux/Git 命令 管理员 需要管理员权限的 Git 操作

(2) 权限对比

  • 普通权限:适用于大多数日常操作,如文件操作、运行脚本等。

  • 管理员权限:适用于需要修改系统配置或访问受保护资源的操作。

(3)适用场景对比
  • WSL:适合需要在 Windows 上运行完整 Linux 环境的用户。

  • PowerShell:适合系统管理员和开发者,用于自动化任务和脚本编写。

  • CMD:适合执行简单的文件操作和批处理脚本。

  • Git Bash:适合使用 Git 和简单 Linux 命令的用户。

  • Git Bash(管理员):适合需要管理员权限的 Git 操作。


9. 如何选择工具?

  • 如果你需要运行 Linux 命令或工具:选择 WSL。

  • 如果你需要编写复杂的脚本或管理系统:选择 PowerShell。

  • 如果你只需要执行简单的文件操作:选择 CMD。

  • 如果你主要使用 Git 和简单 Linux 命令:选择 Git Bash。

  • 如果你需要管理员权限的 Git 操作:选择 Git Bash(管理员)。

  • 如果你需要执行系统级别的任务

    • 使用 PowerShell(管理员)CMD(管理员)
  • 如果你需要编写复杂的脚本

    • 使用 PowerShell(普通或管理员权限)。
  • 如果你只需要执行简单的文件操作

    • 使用 CMD(普通或管理员权限)。

10. 示例

(1)在 WSL 中运行 Linux 命令

bash

wsl ls /home

(2)在 PowerShell 中编写脚本

powershell

Get-ChildItem C:\ | ForEach-Object { Write-Output $_.Name }

(3)在 CMD 中执行文件操作

cmd

dir C:\ copy file1.txt file2.txt

(4)在 Git Bash 中使用 Git

bash

git status git add . git commit -m "Update"

(5)在 Git Bash(管理员)中修改系统文件

bash

sudo nano /etc/hosts

(6)修改系统环境变量
  • PowerShell(管理员)

    powershell

    [System.Environment]::SetEnvironmentVariable("PATH", "C:\NewPath", [System.EnvironmentVariableTarget]::Machine)

  • CMD(管理员)

    cmd

    setx PATH "C:\NewPath" /M

(7)删除系统文件
  • PowerShell(管理员)

    powershell

    Remove-Item C:\Windows\Temp\* -Recurse -Force

  • CMD(管理员)

    cmd

    del C:\Windows\Temp\*.* /f /s /q


总结

  • WSL 提供了完整的 Linux 环境。

  • PowerShell 是功能强大的 Windows 命令行工具。

  • CMD 是传统的 Windows 命令行工具。

  • Git Bash 是模拟 Linux 环境的 Git 工具。

  • Git Bash(管理员) 是具有管理员权限的 Git Bash。

  • PowerShell(管理员)CMD(管理员) 是以管理员权限运行的工具,适合执行系统级别的任务。

相关推荐
Matlab仿真实验室2 分钟前
基于Matlab实现倒立摆仿真程序
开发语言·matlab·倒立摆仿真程序
笨鸟先飞的橘猫7 分钟前
lua学习(一)
开发语言·学习·lua
程序员JerrySUN11 分钟前
从底层驱动到 OpenCV:深入解析 Linux 摄像头完整技术栈
linux·服务器·开发语言·人工智能·opencv·计算机视觉
yzj23112813 分钟前
如何安装vm 和centos
开发语言
magic 24528 分钟前
深入理解Java多线程编程:从基础到高级应用
java·开发语言·线程
刘小炮吖i31 分钟前
【面试】Java 之 String 系列 -- String 为什么不可变?
java·开发语言·面试
遥逖1 小时前
C++的多态
开发语言·c++
yinshuilan2 小时前
今日运维之-Mac笔记本python环境问题
运维·git·python·brew
小贾要学习2 小时前
【C++】模板
c语言·开发语言·c++
阿巴~阿巴~2 小时前
穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路
开发语言·c++·算法·蓝桥杯·深度优先·剪枝·宽度优先