标签: Windows

  • Windows 系统使用 Robocopy 高效备份文件夹

    如果你想快速又稳定地复制电脑里的某个文件夹(比如 D 盘中的某个目录)到另一个位置,那么 Windows 自带的 Robocopy 工具会是你的得力助手。它比你平时拖动复制文件强大得多,能够处理各种细节,让备份变得更加高效、省心。

    一、设置命令行编码

    在使用 Robocopy 命令之前,建议你先在命令行窗口运行以下命令:

    chcp 65001

    这会将当前命令行窗口的字符编码设置为 UTF-8,避免中文路径或文件名出现乱码问题。

    二、完整保留文件权限的复制命令

    要镜像复制一个文件夹并保留所有文件元数据(包括权限信息),可以使用这个命令:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DATS /R:3 /W:5 /MT:8

    这个命令会将 D:\AAA 文件夹完整镜像复制E:\AAA-backup,确保目标文件夹是源文件夹的精确副本,包含安全信息。

    参数解析:

    使用 /COPY:DATS 通常需要管理员权限才能成功复制权限。否则,可能会出现权限复制失败的情况。

    • "D:\AAA":这是源目录,即你要复制的原始文件夹。
    • "E:\AAA-backup":这是目标目录,文件将复制到这里。
    • /MIR:启用镜像模式。目标目录将与源目录保持完全一致——包括新增、修改和删除的内容。请注意:此参数可能会删除目标目录中存在但源目录中没有的文件,务必小心使用。
    • /COPY:DATS:指定要复制的内容包括:
      • D:数据(文件内容)
      • A:属性(如只读、隐藏等)
      • T:时间戳(创建、修改时间)
      • S:安全信息(即 NTFS 权限)
    • /R:3:失败时最多重试 3 次。
    • /W:5:每次重试之间等待 5 秒。
    • /MT:8:启用 8 线程并发复制,可以显著提升性能,尤其是在处理大量小文件或大文件时。

    三、无需复制权限的轻量级备份命令

    如果你不需要保留文件权限,可以使用一个更轻量级的命令:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8

    参数解析:

    使用 /COPY:DAT 通常不需要管理员权限,兼容性更好,适合普通用户。

    • "D:\AAA":你的源目录
    • "E:\AAA-backup":你的目标目录
    • /MIR:启用镜像模式,使目标目录与源目录精确匹配。同样需要注意,这可能会删除目标目录中不存在于源目录的文件。
    • /COPY:DAT:指定要复制的内容包括:
      • D:数据(文件内容)
      • A:属性
      • T:时间戳
    • /R:3:失败时最多重试 3 次。
    • /W:5:每次重试之间等待 5 秒。
    • /MT:8:启用 8 线程并发复制,以提高性能。

    四、如何选择 /COPY:DATS 还是 /COPY:DAT

    你的选择取决于你的具体需求:

    • 选择 /COPY:DATS(完整权限,需要管理员权限),适用于:
      • 备份包含重要权限设置的文件(如服务器配置文件、用户资料、共享目录)。
      • 需要在目标目录中完全还原访问控制的场景。
    • 选择 /COPY:DAT(不保留权限,适用于一般用户),适用于:
      • 个人数据备份、日常同步。
      • 不关心权限保留,只关注文件内容和属性。
      • 在权限不足无法复制 ACL(访问控制列表)的环境中。

    五、生成日志,方便备份追踪与排错

    如果希望保留哪些文件被复制、跳过或出错,可以使用下面这个更推荐的写法:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG:"E:\backup-log.txt"

    如果希望保留所有历史记录,并且实时查看输出信息,可以使用下面这个更推荐的写法:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG+:"E:\backup-log.txt" /TEE /NP

    常用日志参数说明:

    • /LOG:"路径":将输出写入指定的日志文件(覆盖原内容)。
    • /LOG+:"路径":将输出追加到现有日志文件中,避免覆盖历史记录。
    • /TEE:在命令行中显示的同时写入日志文件,便于观察进度。
    • /NP:不显示进度百分比,使日志更简洁易读。
  • Windows安装配置 Apache Maven 教程

    Apache Maven 是一个用于 Java 项目的构建管理工具,它通过统一的项目结构、生命周期机制和依赖管理系统,帮助开发者自动完成编译、打包、测试和部署等流程。使用 Maven,可以大幅简化项目构建的复杂度,提高开发效率和团队协作一致性。

    一、下载安装包

    访问官方网站: 打开 Apache Maven 项目的官方下载页面:https://maven.apache.org/download.cgi

    选择并下载: 在页面中找到 “Binary zip archive” 部分,选择 .zip 格式的链接进行下载。
    例如 apache-maven-3.9.10-bin.zip

    二、解压并放置目录

    下载完成后,将压缩包解压到一个稳定且不含中文或空格的路径。这个路径将作为 Maven 的主目录,也就是我们接下来要设置的 MAVEN_HOME
    例如:

    C:\apache-maven-3.9.10

    三、配置环境变量

    配置环境变量可以让你在任意命令行窗口中直接运行 Maven 命令。

    1. 打开环境变量设置
    • 右键点击 “此电脑” → 选择 “属性”。
    • 点击 “高级系统设置”,然后点击 “环境变量” 按钮。
    2. 设置 MAVEN_HOME
    • 在下方的 “系统变量” 区域,点击【新建】。
    • 变量名MAVEN_HOME
    • 变量值C:\apache-maven-3.9.10
    3. 配置 Path 变量
    • 在 “系统变量” 列表中找到 Path,选中后点击【编辑】。
    • 在弹出的窗口中,点击【新建】,并输入以下内容:
    %MAVEN_HOME%\bin
    • 操作建议:点击【上移】,将该条目尽量移到列表顶部,可以减少因其他程序环境变量冲突导致问题的概率。
    • 最后,点击所有窗口的【确定】按钮以保存设置。

    四、验证安装是否成功

    按下 Win + R 输入 cmd 打开命令提示符,执行:

    mvn -version

    如果安装无误,将看到类似以下输出:

    Apache Maven 3.9.10 (5f519b97e944483d878815739f519b2eade0a91d)
    Maven home: C:\apache-maven-3.9.10
    Java version: 22.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-22
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "windows server 2022", version: "10.0", arch: "amd64", family: "windows"

  • Chromedriver 安装全平台指南

    Chromedriver 是用于驱动 Chrome 浏览器的 WebDriver,广泛用于自动化测试与网页数据抓取。本文提供各操作系统下安装 Chromedriver 的步骤。

    一、 各版本下载地址

    你可以在该页面查找与你本地 Chrome 浏览器版本对应的 chromedriver

    https://googlechromelabs.github.io/chrome-for-testing/#stable

    macOS安装

    # 下载Chromedriver
    curl -O https://storage.googleapis.com/chrome-for-testing-public/136.0.7103.114/mac-x64/chromedriver-mac-x64.zip
    
    # 解压
    unzip chromedriver-mac-x64.zip
    
    # 安装到系统路径
    sudo cp chromedriver /usr/local/bin/
    
    # 设置可执行权限
    sudo chmod +x /usr/local/bin/chromedriver
    
    # 验证安装是否成功
    chromedriver --version

    Windows x64安装

    # 下载 Chromedriver:
    https://storage.googleapis.com/chrome-for-testing-public/136.0.7103.94/win64/chromedriver-win64.zip
    
    # 解压 chromedriver-win64.zip 至任意目录,例如:
    C:\tools\chromedriver
    
    # 添加环境变量:
    将 chromedriver.exe 所在目录添加至系统环境变量 Path。
    
    操作路径:
    此电脑 → 属性 → 高级系统设置 → 环境变量 → 编辑 Path
    
    # 验证是否安装成功:
    打开命令提示符(Win + R,输入 cmd)后执行:
    
    chromedriver --version

    Linux 安装

    # 下载Chromedriver
    
    wget https://storage.googleapis.com/chrome-for-testing-public/136.0.7103.94/linux64/chromedriver-linux64.zip
    
    # 解压
    unzip chromedriver-linux64.zip
    
    # 安装到系统路径
    sudo cp chromedriver /usr/local/bin/
    
    # 设置可执行权限
    sudo chmod +x /usr/local/bin/chromedriver
    
    # 验证安装是否成功
    chromedriver --version
  • Windows 文件文本搜索:PowerShell 与 findstr

    在Windows操作系统中,常常需要快速查找文件中的指定文本内容。这可以帮助我们在处理日志文件、源代码或其他大型文件时,迅速定位到关键信息。Windows系统提供了几种方法来完成这项任务,最常用的包括使用PowerShell的Select-String命令和命令提示符中的findstr工具。

    具体选择哪个工具,取决于你对功能的需求:

    • 如果你需要更强大的正则表达式支持和更详细的输出,PowerShell的Select-String是更好的选择。
    • 如果你需要快速搜索,并且只对简单的文本匹配感兴趣,findstr则更为高效和便捷。

    1. 使用PowerShell进行文本搜索

    PowerShell是Windows自带的命令行脚本环境,它功能强大,能够执行多种任务,尤其适合处理文件内容。通过Select-String命令,用户可以轻松地在文件中查找指定的文本。

    示例:使用PowerShell的Select-String

    假设你有一个名为large_file.txt的文本文件,想要在其中查找字符串search_string。可以使用以下命令:

    Get-Content "large_file.txt" | Select-String "search_string"

    命令解释:

    • Get-Content "large_file.txt":读取文件内容。
    • Select-String "search_string":搜索并显示包含search_string的所有行。

    该命令会返回所有匹配的行,及其对应的行号,便于用户快速定位到相关内容。

    使用正则表达式进行高级搜索

    Select-String命令支持正则表达式,允许用户进行更复杂的文本匹配。例如,如果你想匹配以“log”开头的字符串,可以使用如下命令:

    Get-Content "large_file.txt" | Select-String "^log"

    这将查找所有以”log”开头的行。

    显示上下文

    如果你希望在匹配的行前后显示几行上下文,可以使用-Context参数:

    Get-Content "large_file.txt" | Select-String "search_string" -Context 2,2

    这将显示匹配行的前后各2行内容,帮助你更好地理解匹配的上下文。

    2. 使用命令提示符中的findstr

    findstr是Windows命令提示符中的一个文本搜索工具,适用于快速查找文件中的指定字符串。尽管它不像PowerShell的Select-String那么强大,但它对于简单的文本搜索来说非常高效。

    示例:使用findstr命令

    在命令提示符下,你可以使用如下命令来搜索文件large_file.txt中的search_string

    findstr "search_string" large_file.txt

    命令解释:

    • "search_string":指定你要查找的文本。
    • large_file.txt:指定要搜索的文件。

    findstr会输出包含匹配文本的所有行,并显示相应的行号。

    忽略大小写

    如果你想在搜索时忽略大小写,可以使用/i选项:

    findstr /i "search_string" large_file.txt

    这将忽略大小写进行匹配。

    显示行号

    要显示匹配文本所在的行号,可以使用/n选项:

    findstr /n "search_string" large_file.txt

    这将输出匹配文本及其所在的行号。

    PowerShell与findstr的对比

    特性PowerShell (Select-String)findstr
    正则表达式支持完全支持复杂正则表达式支持简单正则表达式
    功能丰富提供更详细的输出信息,如上下文、匹配行数等输出较为简洁,仅显示匹配行
    易用性更适合有一定脚本经验的用户,功能强大简单快速,适合快速操作
    性能处理大型文件时可能稍慢,但支持流式数据适用于快速搜索小文件
  • 使用 opkssh 实现 OpenID 身份验证与 SSH 连接

    opkssh 是一个结合 OpenID 身份验证和 SSH 连接的工具,它能简化 SSH 密钥的管理,并提升 SSH 连接的安全性。与传统的 SSH 密钥验证方式不同,opkssh 通过 OpenID 身份验证来生成 SSH 密钥,使得用户的身份验证更加灵活与安全。

    1. 安装 opkssh

    opkssh 可以在 Windows、macOS 和 Linux 系统上使用。下面是详细的安装步骤:

    在 Windows 上安装 opkssh

    1. 打开 PowerShell 或命令提示符。
    2. 执行以下命令,下载并安装 opkssh
    curl https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-windows-amd64.exe -o opkssh.exe
    1. 下载完成后,你将获得 opkssh.exe 文件。你可以将它放在任何你想要的目录下,并通过命令行运行它。

    在 macOS 上安装 opkssh

    1. 打开终端。
    2. 执行以下命令,下载并安装 opkssh
    curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-osx-amd64 -o opkssh; chmod +x opkssh
    1. 这将下载 opkssh 文件并授予执行权限。你可以将其移动到 /usr/local/bin/ 目录,方便在终端中全局使用。

    在 Linux 上安装 opkssh

    Linux 系统支持多种架构。根据你的系统架构(x86_64 或 ARM64),选择相应的安装命令。

    • 对于 x86_64 架构的 Linux 系统
    curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-linux-amd64 -o opkssh; chmod +x opkssh
    • 对于 ARM64 架构的 Linux 系统
    curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-linux-arm64 -o opkssh; chmod +x opkssh

    安装完成后,你可以将 opkssh 文件移动到 /usr/local/bin/ 目录,或将其保留在当前目录。

    2. 使用 opkssh 进行身份验证与 SSH 登录

    安装完成后,你可以开始使用 opkssh 进行身份验证和 SSH 连接。

    登录并生成 SSH 密钥

    1. 在终端或命令行中运行以下命令:
    opkssh login
    1. 该命令将打开一个浏览器窗口,要求你选择一个 OpenID 提供商并完成身份验证。你可以选择 Google、GitHub 等常见的 OpenID 提供商来进行登录。
    2. 登录成功后,opkssh 会在你的本地系统中生成一个 SSH 公钥文件,默认位置是 ~/.ssh/id_ecdsa。这个密钥对应的是你的 OpenID Token,凭此可以通过 SSH 连接到服务器。

    默认 SSH 密钥过期时间

    生成的 SSH 密钥默认会在 24 小时后过期。到期后,你需要重新运行 opkssh login 来生成新的密钥。

    使用 SSH 登录

    一旦密钥生成成功,你可以像使用传统 SSH 密钥一样使用它来登录到远程服务器。执行以下命令:

    ssh [email protected]

    使用 SFTP 进行文件传输

    你还可以使用 opkssh 生成的 SSH 密钥进行 SFTP 文件传输:

    sftp [email protected]

    3. 自定义 SSH 密钥名称

    opkssh 允许你为生成的密钥指定自定义名称,方便管理。

    登录时指定自定义密钥名称

    如果你希望使用特定名称的密钥,可以在执行 opkssh login 时指定密钥名称:

    opkssh login -i opkssh_server_group1

    使用自定义密钥进行 SSH 连接

    在使用 SSH 时,你可以通过 -i 参数指定自定义的密钥文件。假设你使用了 opkssh_server_group1 作为密钥名称,可以执行以下命令:

    ssh -o "IdentitiesOnly=yes" -i ~/.ssh/opkssh_server_group1.pub -i ~/.ssh/opkssh_server_group1 [email protected]

    这里的 -o "IdentitiesOnly=yes" 参数会确保 SSH 仅使用指定的密钥进行身份验证,避免使用其他默认密钥进行干扰。

    4. 在服务器端安装和配置 opkssh

    为了让你的服务器支持使用 opkssh 进行身份验证,你需要在服务器上安装并配置它。

    安装 opkssh 在服务器上

    1. 登录到你的服务器。
    2. 使用以下命令安装 opkssh
    wget -qO- "https://raw.githubusercontent.com/openpubkey/opkssh/main/scripts/install-linux.sh" | sudo bash

    这条命令会自动下载并安装 opkssh,并将其放置在 /usr/local/bin/ 目录中,同时配置 SSH 服务以支持 opkssh 作为附加的身份验证机制。

    允许单个用户使用 opkssh 登录

    如果你想允许某个用户(例如 [email protected])通过 OpenID 进行身份验证并作为 root 登录到服务器,可以执行以下命令:

    sudo opkssh add root [email protected] google

    允许用户组使用 opkssh 登录

    如果你希望允许某个用户组(例如 ssh-users)中的所有成员通过 OpenID 进行身份验证并作为 root 登录,可以使用以下命令:

    sudo opkssh add root oidc:groups:ssh-users google
  • Intel Mac上安装windows11的方案

    由于 Windows 10 将在半年后终止支持,为了增加系统的可靠性,我们需要安装 Windows 11。

    Windows 10 终止支持信息:

    • Windows 10 将在 2025 年 10 月 14 日终止支持。
    • 当前版本 22H2 将是 Windows 10 的最终版本,所有版本在该日期前仍受支持,以获取每月安全更新。
    • 超过该日期后,现有 LTSC 版本将继续接收更新,具体取决于其特定的生命周期。

    准备工作:

    • Windows 镜像下载:
    • 根据您需要的语言,从以下链接下载 Windows 镜像:
    Windows 10:
    https://www.microsoft.com/en-us/software-download/windows10
    Windows 11:
    https://www.microsoft.com/en-us/software-download/windows11
    • 驱动下载:
    • 使用 macOS 的“启动转换助理”下载驱动。
    • U 盘准备:
    • 将下载好的文件复制到 U 盘中备用。
    • U 盘格式:NTFS、FAT32、exFAT 均可。

    安装步骤:

    由于“启动转换助理”目前仅支持 Windows 10 镜像,不支持 Windows 11 镜像,我们采用升级的方式进行安装。

    1. 在 Mac 上通过“启动转换助理”安装 Windows 10:
      • 设置分区大小,载入 Windows 10 镜像进行安装。
    2. 安装 Windows 11:
      • 在 Windows 10 系统中升级 Windows 11。
      • 由于 Mac 不支持 Windows 11,我们需要跳过 CPU 检测,强制安装。
      • 解压下载好的 Windows 11 镜像,执行以下命令跳过 CPU 检测:
    ./sources/setupprep.exe /product server
    • 保留文件,进行升级安装。
    • 等待安装完成。

    提示:

    • 全新安装会丢失驱动,需要通过扩展坞连接键盘鼠标进行安装。
    • 驱动需要从 macOS 的“启动转换助理”下载,复制到 Windows 中运行。
    • 请耐心等待安装完成。