【基础】Windows开发设置入门1:各种终端比较

前言

大家熟悉的docker、Python,但对于Windows上有一套开配合开发的相对底层的环境设置,包括powershell、winget、WSL、还有开发驱动器什么的,我准备系统学一下,不然地基不牢,也盖不起冲天高楼~

正文

(一)什么是控制台、终端和Shell之间的区别

一、三个核心概念解析

  1. 控制台(Console)

    • 原指:早期计算机的物理键盘+显示器(像老式打字机)
    • 现代含义:系统内置的文本交互界面(如Windows的安全模式界面)
    • 比喻:相当于电脑自带的"原始操作窗口"
  2. 终端(Terminal)

    • 本质:运行shell的软件程序(即命令行界面)
    • 举例:Windows的CMD/PowerShell、macOS的Terminal、Linux的GNOME Terminal
    • 比喻:像连接电脑内部的"虚拟电话亭"
  3. Shell

    • 功能:接收用户输入的命令并执行的程序
    • 常见类型:
      • Windows:PowerShell(现代)、CMD(旧版)
      • Linux/macOS:Bash/Zsh(类Unix系统)
    • 比喻:扮演"人机翻译官"的角色

二、三者关系比喻

想象你要给银行打电话办理业务:

  • 控制台 = 银行大厅的实体电话机(直接连通银行系统)
  • 终端 = 你手机里的银行APP(模拟电话亭功能)
  • Shell = 接电话的客服人员(真正执行操作的人)

三、跨平台差异

操作系统典型终端程序默认Shell
WindowsCMD、PowerShellPowerShell/CMD
macOSTerminal、iTerm2Zsh(v5+)
LinuxGNOME Terminal、KonsoleBash/Zsh

四、实用建议

  1. 新手推荐:
    • Windows:使用Windows Terminal + PowerShell
    • macOS/Linux:保留默认终端 + 升级到Zsh

 (二)Windows 终端PowerShellDOS 的详细介绍及对比分析:

一、DOS(MS-DOS)

定义
  • MS-DOS(Microsoft Disk Operating System)是一款 纯字符界面 的 独立操作系统,诞生于 1981 年,曾作为 IBM PC 的核心操作系统。
  • 它支持单任务、16 位程序运行,完全基于命令行操作,通过键盘输入指令完成文件管理、软件安装等任务。
历史背景
  • 在 Windows 95 推出前,MS-DOS 是个人计算机的主要操作系统。
  • 后期 Windows 逐步图形化(如 Windows 95/98),但仍需 DOS 作为底层基础。
  • Windows XP 及之后版本 已不再直接依赖 MS-DOS,但保留了 命令行工具(即 cmd.exe)。
特点
  • 单任务处理:同一时间只能运行一个程序。
  • 依赖磁盘操作:需手动加载程序和驱动。
  • 命令简单:如 dir(目录)、cd(切换路径)、copy(复制)。
  • 无多用户支持:无权限分级和网络功能。
现状
  • MS-DOS 已停止更新,仅作为历史遗迹存在。
  • 现代计算机通过虚拟机(如 DOSBox)运行经典 DOS 程序。

二、CMD(命令提示符)

定义
  • CMD(Command Prompt)是 Windows 的命令行解释器,并非真正的 DOS,但兼容其常用命令。
  • 它运行在 Windows 图形界面下(Windows NT 内核),支持 32/64 位系统
核心功能
  • 执行本地命令(如 ipconfig 网络配置、ping 测试)、批处理脚本(.bat 文件)。
  • 无法直接访问 Windows API 或 .NET 对象,功能受限。
局限性
  • 文本流处理:仅处理字符串,无法操作结构化数据(如 JSON、XML)。
  • 脚本逻辑简单:不支持现代编程特性(如循环优化、异常处理)。
  • 兼容性问题:部分新功能需管理员权限或特定环境变量配置。
典型用途
  • 快速执行简单命令(如网络诊断、文件操作)。
  • 运行旧版批处理脚本(企业遗留系统中仍常见)。

三、PowerShell

定义
  • PowerShell 是微软推出的一体化 任务自动化和配置管理平台,包含命令行 shell 和脚本语言。
  • 支持 面向对象 的命令(cmdlet),可直接调用 .NET Framework、WMI(Windows Management Instrumentation)等 API。
核心功能
  • 管道操作:输出结果为对象(非纯文本),如 Get-Service | Where-Object Status -eq "Running"
  • 深度系统控制:修改注册表、管理系统服务、处理事件日志。
  • 跨平台:支持 Windows、Linux、macOS(自 PowerShell Core 6.x 起)。
  • 脚本能力:支持函数、类、模块、远程执行等复杂逻辑,适合自动化运维。
优势
  • 灵活性:结合 .NET 框架,可调用 C# 代码。
  • 兼容性:支持调用 cmd 命令和外部程序(如 Python)。
  • 安全性:支持脚本签名验证和执行策略(Set-ExecutionPolicy)。
典型用途
  • 自动化运维(如批量创建用户、备份系统)。
  • 系统故障诊断(抓取日志、分析进程)。
  • DevOps 场景(持续集成/部署流水线)。

四、Windows 终端(Windows Terminal)

定义
  • Windows Terminal 是微软推出的现代 终端多标签客户端(开源项目,GitHub 仓库维护),发布于 2019 年。
  • 支持运行多种 shell:PowerShellCMDWSL(Windows Subsystem for Linux)、SSH 远程会话 等。
核心功能
  • 多标签页:同时运行多个 shell 实例。
  • GPU 加速渲染:支持丰富的 Unicode 字符、表情符号(Emojis)和 TrueType 字体(默认使用 Cascadia Code)。
  • 分屏功能:横向/纵向分割终端窗口,对比不同命令输出。
  • 自定义配置:通过 JSON 文件调整主题、快捷键、启动项等。
对比旧版控制台
  • 旧版命令提示符窗口(由 conhost.exe 驱动)功能单一、界面僵化,仅支持基础文本显示。
  • Windows Terminal 完全独立于 shell,提供统一且现代化的前端体验。
典型用途
  • 开发者调试(切换 PowerShell、WSL、Linux 环境)。
  • 多任务操作(并行执行多个脚本)。
  • 跨平台协作(通过 SSH 访问远程服务器)。

五、综合对比

特性DOSCMDPowerShellWindows Terminal
定位独立操作系统命令行解释器任务自动化框架终端客户端(前端)
发布时间1981 年1987 年(NT 3.1)2006 年2019 年
脚本能力基础批处理(.bat)基础批处理强大(函数、模块、远程控制)不支持直接执行脚本
对象模型支持 .NET 对象
兼容性仅旧版软件Windows 全系支持Windows 7 SP3+ / Linux / macOSWindows 10+
界面交互黑底白字命令行单色/单窗格多色文本、结构化输出多标签、分屏、富文本渲染
适用场景遗留系统调试简单命令执行系统管理、自动化运维多环境开发、多任务操作

六、总结与选择建议

  1. DOS

    • 仅用于运行极少数需要 DOS 环境的老旧软件(如游戏或工业控制程序),日常已无必要使用。
  2. CMD

    • 适合快速执行简单命令(如网络诊断),或维护无需复杂脚本的场景。
  3. PowerShell

    • 系统管理员和开发者的首选工具,支持复杂自动化任务和深度系统交互。
  4. Windows Terminal

    • 现代开发者的统一终端解决方案,尤其适合需要多 shell 环境(如混合 Windows 和 Linux 开发)的用户。

关联性说明

  • Windows Terminal 是前端,可承载 CMD、PowerShell 等 shell。
  • PowerShell 并非 CMD 的升级版替代(两者并存),而是功能更强大的扩展工具。
  • DOS 已被历史化,但其命令语法对 CMD 和 PowerShell 的设计有深远影响。

 (三)conhost

conhost.exe(控制台窗口主机)是Windows系统中用于管理和控制命令行窗口(如CMD或PowerShell)的系统进程,主要功能包括:承载控制台窗口、处理输入输出、管理窗口行为,并提升安全性。

conhost.exe 的作用
  • 全称:Console Window Host(控制台窗口宿主)
  • 核心功能
    • 负责渲染和管理 Windows 命令行界面(CMD/PowerShell)的窗口。
    • 处理键盘输入、文本输出、窗口大小调整等交互逻辑。
    • 隔离控制台应用程序与系统核心进程(如 csrss.exe),提升安全性。
  • 触发条件
    • 每当用户启动 CMD、PowerShell 或运行依赖控制台的应用程序(如批处理脚本)时自动启动。
  • 安全验证
    • 正常路径:C:\Windows\System32\conhost.exe
    • 若发现异常路径或高 CPU 占用,需排查恶意软件(如伪装的病毒进程)。

Windows 系统常见关键进程总结

进程名称核心功能是否可禁用注意事项
explorer.exe桌面环境管理器(任务栏、文件资源管理器、快捷方式图标)终止会导致桌面消失,需重启资源管理器
svchost.exe系统服务宿主(多个系统服务共享此进程)高 CPU 占用需具体分析子服务
dwm.exeDesktop Window Manager(管理 Aero 透明效果和窗口合成)禁用后桌面效果降级,不影响基础功能
csrss.exeClient/Server Runtime Subsystem(管理控制台程序核心逻辑)关键系统进程,终止会导致蓝屏
smss.exeSession Manager Subsystem(初始化用户会话和加载注册表)系统启动关键进程,不可终止
wininit.exeWindows 初始化进程(启动安全子系统和系统配置管理器)核心系统进程,终止会导致崩溃
spoolsv.exe打印后台处理服务(管理打印队列和打印机驱动)可选禁用后无法打印,但不影响其他功能
taskhostw.exe托管临时系统任务(如更新安装、计划任务执行)动态临时进程,结束后自动退出

关键技术提示

  1. 进程监控工具

    • 使用任务管理器(Ctrl+Shift+Esc)或 Process Explorer(微软 Sysinternals 工具)查看进程属性,验证数字签名和文件路径。
  2. 安全验证步骤

    • 右键任务管理器中的进程 → 打开文件位置 → 检查是否位于 C:\Windows\System32 目录。
    • 使用命令行工具 sigcheck(需安装 Sysinternals)验证文件哈希与微软签名匹配。
  3. 资源占用优化

    • 对于 svchost.exe 的高 CPU 问题,可通过 Task Manager → Details 标签页 定位具体服务组,或使用 sc queryex type=service 查询关联服务。
  4. 异常行为特征

    • conhost.exe 单独运行且无 CMD/PS 窗口时,可能为恶意程序伪装。
    • 非系统路径的同名进程(如 C:\Users\XXX\AppData\Local\Temp\conhost.exe)需彻底查杀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正经教主

有钱捧个钱场,没钱捧个人场👌

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值