• Windows 基础(一):深入理解Windows,掌握命令行与Shell


    Windows 基础(一)


    声明

    笔记内容参考了B站UP主 泷羽sec 的学习视频,如有侵权,将立即删除。
    本笔记旨在促进网络安全学习,任何不当使用均与作者无关,请勿逾越法律红线,否则后果自负。
    希望这些内容能对各位师傅有所帮助,欢迎您的点赞和评论!


    导语

    在计算机操作系统的领域,Windows 和 Linux 作为最主流的两大平台,各自拥有独特的特点和功能。本文将重点探讨 Windows 系统的基本构架,并介绍不同类型的命令行工具和 Shell。此外,我们还将介绍一些常用的 Windows 命令,旨在帮助用户掌握 Windows 操作系统的基础知识和实用技巧。


    一、Windows 和 Linux 的区别

    特点WindowsLinux
    用户界面主要使用图形用户界面(GUI),也提供命令行界面(CLI)主要通过命令行界面(CLI)操作,也有 GUI 选项
    文件系统NTFS、FAT32、exFAText3、ext4、Btrfs、XFS、FAT32 等
    开源与闭源大部分是闭源软件大部分是开源软件
    软件安装常通过安装程序和微软商店通过包管理器(如 apt、yum、dnf)
    权限管理用户账户控制(UAC)基于用户和组的权限管理
    开发环境.NET Framework、Visual StudioGCC、Python、Java、各种开发工具
    命令行工具PowerShell、CMD、Windows TerminalBash、Zsh、Fish 等
    默认 ShellCMD(命令提示符)Bash(大多数发行版)
    系统更新通过 Windows Update通过包管理器或命令行更新
    硬件兼容性支持更广泛的硬件一些硬件可能需要额外的驱动支持
    安全性病毒和恶意软件风险较多由于开源和权限管理,安全性较高
    路径格式使用反斜杠(\),如 C:\Users\User (不区分大小写)使用斜杠(/),如 /home/user (区分大小写)
    系统配置配置文件通常存储在注册表或特定目录配置文件通常为文本文件,位于 /etc 目录等

    补充知识:

    1. 文件系统
    • Linux 文件系统:遵循“一切皆文件”原则。块设备(如硬盘分区)会挂载到目录结构中的某个位置。
    • Windows 文件系统:通过驱动器盘符(如 C:\、D:\)来标识磁盘分区,同时也支持将分区挂载到目录。

    二、Windows 的Shell

    Windows 提供了多种命令行工具和环境,包括 CMD 和 PowerShell(这两个是 Shell),以及 Windows Terminal 和 WSL(分别是终端程序和兼容环境)。每种工具都有其独特的特点和用途。在正式介绍这些工具之前,我们先来了解一下 Shell 和终端的区别。

    Shell 和 终端 的区别

    Shell 和 终端 是计算机系统中两种相关但不同的概念:

    Shell:

    • Shell 是一种命令解释器,提供了用户与操作系统核心(内核)交互的界面。
    • 它接受用户输入的命令,将其传递给操作系统执行,然后返回结果。
    • Shell 可以是文本界面的(如 Bash、CMD、PowerShell)或图形界面的。
    • 不同操作系统提供了不同类型的 Shell,比如 Windows 的 CMD 和 PowerShell,Linux 的 Bash 和 Zsh。

    终端:

    • 终端是一个运行 Shell 或其他程序的接口或窗口。
    • 现代的终端应用程序通常支持多个 Shell,可以在同一个终端窗口内运行不同的 Shell 实例。
    • 终端负责显示 Shell 的输出,并传递用户的输入到 Shell,但它本身不直接解释命令。
    • 终端可以管理多个会话、支持分屏、并提供个性化设置,如配色方案和快捷键。

    简言之,Shell 是处理命令的程序,负责解释和执行命令;终端则是提供一个窗口或界面,让用户可以与 Shell 互动。

    1. 命令提示符(CMD)

    • 简介:命令提示符是 Windows 的传统命令行界面,用户可以通过输入命令来执行各种操作。
    • 特点:
      • 提供基本的文件和系统管理命令。
      • 支持批处理文件(.bat),可以编写简单脚本。
      • 命令格式相对简单,但功能有限。
    • 常用命令:dir、cd、copy、del 等。

    2. Windows PowerShell

    • 简介:PowerShell 是一个功能强大的命令行和脚本环境,结合了命令行和编程功能,支持访问 .NET 对象。
    • 特点:
      • 提供丰富的命令和功能,支持复杂的自动化任务。
      • 支持管道功能,允许将一个命令的输出作为另一个命令的输入。
      • 支持对象而非文本,提供强大的数据操作能力。
      • 可以通过 cmdlet 执行特定操作。
    • 常用命令:Get-Command、Get-Help、Set-ExecutionPolicy、Get-Service 等。

    3. Windows Terminal

    • 简介:Windows Terminal 是一个现代化的终端应用程序,支持多个选项卡和多个 Shell,如 CMD、PowerShell 和 WSL。
    • 特点:
      • 提供丰富的自定义选项,如主题、配色方案和字体设置。
      • 支持同时运行多个 Shell,可以在不同选项卡中操作。
      • 提供 GPU 加速的文本渲染,提高了性能和视觉效果。
      • 支持 Unicode 和 UTF-8,适应多种语言和字符集。

    4. Windows Subsystem for Linux (WSL)

    • 简介:WSL 允许用户在 Windows 上运行 Linux 发行版,提供一个与 Linux 命令行相似的环境。
    • 特点:
      • 支持 Linux 命令和工具,用户可以运行大多数 Linux 应用程序。
      • 可以与 Windows 文件系统交互,轻松访问 Windows 文件。
      • 提供原生的 Linux 体验,适合开发者和系统管理员。
      • 支持安装多个 Linux 发行版(如 Ubuntu、Debian、Fedora 等)。

    三、Windows 常用命令

    由于 PowerShell 在红队场景中较少使用,这里主要介绍 CMD 中的常用命令。但需要注意的是,大多数 CMD 命令在 PowerShell 中也能兼容(PowerShell 通过别名处理实现兼容)。

    1. 文件与目录操作

    命令描述
    dir显示目录内容
    cd切换当前目录
    md/mkdir创建新目录
    rd删除目录(空或非空,加参数)
    ren/rename重命名文件或目录
    move移动或重命名文件/目录
    copy复制文件
    del删除文件
    attrib设置文件属性

    2. 文本处理

    文本处理命令可以查看、查找和比较文本内容,常用于文件管理和脚本任务中。

    命令描述
    type显示文本文件内容
    more分屏显示文本内容
    find在文件中查找字符串
    fc比较文件内容差异
    echo显示消息或将文本写入文件

    3. 系统与网络管理

    Windows 提供了多种系统和网络管理命令,帮助用户查询网络配置、监控系统任务以及管理环境变量。

    命令描述
    ipconfig查看当前网络接口的配置
    ping测试到指定目标的网络连接
    netstat查看网络连接和端口状态
    tasklist列出当前运行的进程或任务
    taskkill终止特定的进程或任务
    set显示或设置当前环境变量
    for执行循环操作(批量处理)
    sort对文本内容进行排序
    tree以树状结构显示目录和子目录
    systeminfo显示操作系统的详细信息
    msinfo32打开系统信息窗口,显示详细信息

    结语

    在本文中,我们深入介绍了Windows 系统与LInux系统的不同之处以及终端命令行工具的使用,这些都是红队不可或缺的知识(不同系统下文件路径的区别等细微知识点尤其值得关注)。同时,需要强调的是,命令需要多敲多练,方可熟能生巧。

    最后,再次感谢您阅读本篇文章,如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流!您的点赞和分享将是我继续创作的动力。

  • 相关阅读:
    Problem C: 算法2-23:一元多项式加法
    【数据结构】深入了解队列
    零束科技打通智驾全域数据闭环,加速智驾场景规模化量产落地!
    数组的赋值
    昇思 MindSpore 安装教程
    document.getElementByclassName()方法
    机器视觉的试卷批改系统 - opencv python 视觉识别 计算机竞赛
    质量管理PPAP说明
    m分别通过matlab和FPGA实现基于高阶循环谱的信号载波调制识别(四阶循环累量)仿真
    论文笔记:TMN: Trajectory Matching Networks for PredictingSimilarity
  • 原文地址:https://blog.csdn.net/2301_79518550/article/details/143439428