admin 管理员组

文章数量: 1184232

1️⃣ CMD(1987 → 至今)

  • 身世:MS-DOS 的直系后裔,纯 16/32 位 Windows 自带。

  • 定位:最小兼容层,只做“最老派”的 Windows 操作。

  • 特点

    • 单线程、无管道对象、脚本功能 ≈ 0。

    • 只能调用 .bat/.cmd,语法 30 年没变。

  • 典型命令

    dir /s *.txt
    copy a.txt d:\backup\
    ping 127.0.0.1

2️⃣ PowerShell(2006 → 至今)

  • 身世:微软“下一代 Shell”,基于 .NET 对象而非文本。

  • 定位:系统管理员的“瑞士军刀”——Windows 自动化、云原生、DevOps 事实标准。

  • 特点

    • 对象管道ls | Where Length -gt 1mb 直接过滤文件对象。

    • cmdlet 动词-名词风格:Get-ProcessStop-Service

    • 跨平台:Windows / Linux / macOS 均可跑 PowerShell 7+。

  • 典型命令

    Get-ChildItem -Recurse -Filter *.log | Select Name,Length
    Invoke-WebRequest https://example -OutFile index.html

3️⃣ Git-Bash(2009 → 至今)

  • 身世:Git for Windows 附带,本质是 “精简版 MinGW Bash”

  • 定位:让 Windows 用户零成本享受 Unix 命令行体验。

  • 特点

    • 打包了 100+ 个 GNU 核心工具(grep, awk, ssh, vim…)。

    • 兼容 Bash 语法,可直接跑 .sh 脚本。

    • 是完整 Linux 子系统,只是“翻译层”。

  • 典型命令

    find . -name "*.py" | xargs grep -n "TODO"
    ssh user@remote
    tar -czf backup.tgz ./data

4️⃣ 为什么会有这么多?一张表看懂

维度CMDPowerShellGit-Bash
诞生目的兼容 DOS 老脚本现代化系统管理给 Windows 送 Unix 工具
脚本风格.bat 批处理.ps1 面向对象.sh Bash
管道数据类型纯文本.NET 对象纯文本
跨平台❌ 仅 Windows✅ Win/Linux/macOS✅ 借助 MinGW
适合场景最简任务、老脚本维护运维自动化、Azure/AWS前端/算法同学想用 grepssh
  • “.NET 对象” = PowerShell 里传递的“带属性的数据包”,比纯文本更聪明;

  • “纯文本” = 传统命令行里只能传递“一行字符串”;。

NET 对象 vs 纯文本(用快递比喻)

维度纯文本(CMD/Git-Bash).NET 对象(PowerShell)
快递包裹一张纸条: "file.txt 1024"一个盒子: {Name: "file.txt", Length: 1024, LastWriteTime: ...}
能直接拆开用吗?❌ 只能先剪字符串✅ 直接点属性 .Length
举例`dirfind "txt"``Get-ChildItemWhere Length -gt 1MB`

一句话

纯文本像“只能读纸条”,.NET 对象像“拿到真正的快递盒,带说明书”。


一句话选型

  • 纯 Windows 老脚本 → CMD

  • 系统/云/自动化 → PowerShell

  • grepsshmake 一把梭 → Git-Bash

再往上,还有 WSL2(真 Linux 内核)和 Docker Shell,那是另一场“跨平台革命”了。

第一:terminal和cmd是什么关系

一句话先答:
Terminal 是“容器”,cmd 是“里面的程序”;就像电视机(Terminal)和电视台频道(cmd)的关系。


1. 概念拆解

名称本质作用
Terminal(终端)一个“窗口”或“标签页”负责显示字符接收键盘输入
cmd.exe一种 Shell(命令解释器)负责解释你输入的命令并调用操作系统干活

2. 类比帮助记忆

  • Terminal = 电视机

  • cmd.exe = CCTV-1 频道

  • PowerShell = CCTV-2 频道

  • Bash = 湖南卫视
    在同一台电视机里,你可以随时换频道;同理,在同一个 Terminal 程序里,你可以把默认 Shell 换成 cmd、PowerShell、Git-Bash……


3. 在 Windows 下的常见组合

场景终端程序(窗口)实际 Shell
开始菜单 → “命令提示符”conhost.execmd.exe
开始菜单 → “PowerShell”Windows Terminal 或 conhost.exepowershell.exe
PyCharm 底部 TerminalJetBrains 自己的终端窗口你设置的 cmd/powershell/bash
VS Code 内部 TerminalVS Code 的终端面板你选择的默认 Shell

4. 一句话总结

Terminal 只是“壳”,用来显示和输入;cmd、PowerShell、Bash 才是“芯”,用来解析命令。
换 Terminal 不影响命令本身;换 Shell 才会影响可用命令和语法。

第二:Anaconda PowerShell Prompt和Windows PowerShell (x86)的区别是什么,他们又和cmd是什么关系

一句话总结:
Anaconda Prompt = “带 conda 的 cmd”(扩展的)
Anaconda PowerShell Prompt = “带 conda 的 PowerShell”
它们都只是启动脚本不同,本质还是 cmd.exepowershell.exe。 

名称底层程序启动时做了什么优缺点
cmdC:\Windows\System32\cmd.exe什么都不做,原生系统命令行无法直接 conda activate,无 lspwd 等
PowerShell / PowerShell (x86)powershell.exe什么都不做,原生系统高级命令行支持 lspwd、脚本,但默认找不到 conda
Anaconda Promptcmd.exe + 启动脚本自动 activate base,把 conda 路径加到 PATH能用 conda,但只具备 cmd 功能
Anaconda PowerShell Promptpowershell.exe + 启动脚本自动 conda activate base 并加载 PowerShell 版 conda hook既能用 conda,又能用 PowerShell 的全部命令和脚本功能

2. 关系图

系统级
├─ cmd.exe
│   └─ Anaconda Prompt(cmd.exe + conda 初始化脚本)
└─ powershell.exe
    └─ Anaconda PowerShell Prompt(powershell.exe + conda 初始化脚本)
  • 它们共享同一套 Anaconda 安装目录,只是入口脚本不同

  • 双击哪个图标,就会启动对应解释器,并自动帮你 conda activate base(或你上次退出时的环境)。

  • 日常用 Anaconda PowerShell Prompt 最舒服:既能 conda 又能 lspwd,脚本功能也更强。


3. 我该选哪个?

  • 只要 conda 命令、习惯传统命令行 → 用 Anaconda Prompt

  • 想要 lspwd、脚本、远程管理等高级功能 → 用 Anaconda PowerShell Prompt

  • 纯系统命令,不碰 conda → 用 cmdPowerShell 即可

配置完成后,三者都可以手动 conda activate 环境名,实际效果一致。

pycharm中的teminal

在 PyCharm 的「Terminal」窗口里,你看到的其实就是 PyCharm 帮你启动的一个「系统终端」(cmd 或 PowerShell)

属于windows powershell

3:conda和对应的知识点

conda 是一个「跨平台软件/环境/包」三合一的管理器——既能像「应用商店」一样装软件,又能像「虚拟机」一样隔离环境,还能像「pip」一样管理 Python 包。


1. 把 conda 想成“瑞士军刀”

功能比喻对应命令
软件仓库应用商店conda install git ffmpeg
隔离环境独立房间conda create -n py39 python=3.9
包管理升级/卸载库conda update numpy

2. 为什么需要 conda(痛点对比)

痛点原生 pipconda 解决方式
安装 C/C++ 依赖容易失败需要本地编译conda 提供预编译二进制
多项目 Python 版本冲突全局只有一个解释器每个环境独立 Python
非 Python 软件(如 gcc)pip 装不了conda 一键装

3. 两种发行版

名称内容适合人群
Anacondaconda + 1500+ 科学包(500 MB+)新手/数据科学
Miniconda仅 conda + 最简 Python(50 MB)老手/嵌入式/CI

4. 常用 6 条命令速记

conda --version          # 查版本
conda env list           # 看所有环境
conda create -n ai python=3.10 numpy
conda activate ai        # 进入环境
conda install pandas -c conda-forge
conda deactivate         # 退出

5. 一句话总结

conda 就是「应用商店 + 隔离环境 + 包管理」的合体,让“装软件、切 Python、跑项目”不再踩坑。

pip
 └── 只管理 Python 包
conda
 ├── 管理 Python 包
 ├── 管理非 Python 包(ffmpeg, git…)
 └── 创建隔离环境
Anaconda
 ├── 自带 conda
 ├── 自带 1500+ 科学库(numpy, pandas, jupyter…)
 └── 自带图形界面(Anaconda Navigator)

安装包内容体积适合人群
Minicondaconda + 最简 Python~50 MB想自己按需装包的老手
AnacondaMiniconda + 1500+ 库~500 MB+新人/数据科学一步到位
pip已随 Python 自带0 MB任何 Python 环境都能用

本文标签: 管理知识 命令行 操作系统 环境