1. 基本概念
Windows默认文件系统:NTFS
Note: Windows文件系统通常是不区分大小写的。
1.1 常用说明
(1)~
不是Windows系统原生支持的路径表示方法
具体来说,在PS终端中无法使用内置的原生命令解析或输出"~"符号对应的绝对路径。
(2)Windows PowerShell 仍然支持使用~
来表示用户目录
例如,可以使用以下命令输出本机的SSH密钥:
cat ~/.ssh/id_rsa.pub
2. 安装Windows
2.1 启动盘制作工具:UltraISO软碟通
南溪: 软碟通不要从腾讯电脑管家的软件市场下载,因为里面给出的是旧版本,可以直接从软碟通的官网下载安装。
3. 快捷键
Key | Description |
---|---|
win+I | 打开系统设置 |
ctrl+shift+S | 打开截图功能 |
ctrl+shift+F | 在微软拼音输入法中切换简/繁体 |
Note
在Parsec远程会话中,win无法被发送至客户端,所以使用win的快捷键无法生效。
3. 硬件信息
3.1 查看硬件信息
电脑管家:设备管理中心 ⇒ 设备硬件信息
3.2 硬盘速度测试:winsat disk
使用管理员权限运行PowerShell,
# 测试系统分区读写速度
winsat disk
# 测试指定分区的读写速度
winsat disk -drive e
4. 系统设置
6.1 系统更新
Note
Windows更新时,有可能出现重启之后,电脑一直卡在“正在重新启动(Load…)”的载入界面;再咨询了Windows支持人员之后,他们说“如果是系统更新的重新启动,在载入界面停留一个小时左右不动的情况下,就可以进行强制重启了。”
6.2 存储管理
设置默认多媒体用户空间为数据分区文件夹
更改多媒体文件默认保存位置:使用win + I
打开系统设置 → 系统 → 存储选项卡 → 更改新内容的保存位置;
开启存储感知:自动清理临时文件
操作方式:右键开始图标(左下角)➡ 系统 ➡ 存储 ➡ 打开存储感知
清理conda缓存文件
Conda的缓存文件也会占用大量的硬盘空间,如果系统空间不足时,可以尝试清理:
conda clean -a
系统分区扩容:(傲梅)分区助手
分区助手软件可以直接在腾讯软件管理中下载;
Note:
在进行分区操作之前,注意退出腾讯电脑管家,因为防护软件可能会拦截某些关键的数据迁移操作而导致整个分区丢失等问题。(Win10自带杀毒软件 Windows Defender可不用关闭)
6.2 网络连接
查询本机IP地址
步骤:右下角WiFi图标 → 打开“网络和 Internet设置”
→ 当前网络连接下面选择属性
→ 鼠标滚轮拖到最下方可以看到IPv4地址
;
Step 1:点击WiFi图标,
6.3 开发人员模式:for developers
微软官方教程:Enable your device for development - Windows apps | Microsoft Learn
在Cortana搜索框中输入for developers
打开开发人员模式,则可以使用mklink
命令了;
5. 终端工具
3.1 常见术语
Command Prompt:就是命令行终端。
3.2 常用语法
3.2.1 续行:接续换行
PowerShell:位于键盘左上角的反引号符(通常与波浪符号~
共用一个键)
line1 | `
line2 | `
...
3.3 PowerShell
3.2.1 PS快捷键
Key | Description |
---|---|
esc | 清空当前命令行 |
Note:关于在PS终端里获得所有快捷键,可以输入命令PSReadLineKeyHandler
。
Note:关于PS快捷键汇总的博文,请参考《Powershell 快捷键》。
3.3 终端设置
3.3.1 改变终端标题
CMD
title MyTerminal
3.4 文件管理
切换分区:disk_id:
Note:需要加上引号才行。
查看当前目录下的内容(ls):dir
3.5 代理设置
# Pig
set HTTP_PROXY=http://127.0.0.1:15732
set HTTPS_PROXY=http://127.0.0.1:15732
Set命令设置代理
set HTTP_PROXY=http://user:password@proxy.domain.com:port
3.3.2 判断是否成功连接Internet
PowerShell
Test-NetConnection www.google.com -Port 443
如果无法连接,可能会返回如下信息:
PS:
警告: TCP connect to (172.217.160.100 : 443) failed
警告: Ping to 172.217.160.100 failed with status: TimedOut
ComputerName : www.google.com
RemoteAddress : 172.217.160.100
RemotePort : 443
InterfaceAlias : WLAN
SourceAddress : 192.168.50.30
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False
使用curl判断是否成功连接Internet
curl -v google.com
curl英文全称:Command line tool and library for transferring data with URLs
3.5 软链接(symbolic link)
3.5.1 New-Item
:在PowerShell中创建软链接
Win文档:Example 7: Create a symbolic link to a file or folder | New-Item
软链接代码模板:(PowerShell需要开启管理员权限)
New-Item -ItemType SymbolicLink -Path "linkAbsolutePath" -Target "absolutePathFolder"
3.5.2 mklink
:在CMD终端下创建软链接
格式:mklink target source
终端:仅支持CMD终端,不支持PowerShell终端。
微软教程:mklink | Microsoft Learn
其中target是目标位置,source是源位置,文件路径字符串可以加上""
防止字符转义带来的问题;
关于mklink
命令对文件和文件夹建立软链接的教程,请参考博文《windows软链接》
文件夹建立软链接:mklink /j
使用mklink /j
建立软链接不需要管理员权限,并且删除链接之后也不会对源文件夹造成任何影响;
3.6 程序设置
查看程序的绝对路径
Get-Command program | Select-Object -ExpandProperty Path
3.7 常见命令
@echo off
:关闭脚本中所有命令的回显
执行以后,后面所有的命令均不显示,包括本条命令。
关于@echo off
命令的说明和代码测试,请参考博文《Windows下的bat文件的@echo off 作用》
3.8 运维脚本
3.8.1 脚本模板
CMD
@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
cd /d D:\
cmd /k
3.8.2 执行脚本并开启命令行窗口(CMD)
cmd /k
3.8.3 Windows终端不支持.bash | .sh
脚本
ChatGPT4:
.bash | .sh
文件是 Bash shell 脚本,通常只能在 Linux 和 Unix 系统(包括 macOS)上运行。Windows 系统默认不支持 Bash shell,也就是说,Windows 本身的命令提示符(CMD)或 PowerShell(PS)不直接支持运行.bash
脚本。
Troubleshooting
(1)打开PS终端出现红色提示:无法加载文件 C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1
在重装系统后,打开PS终端,会出现红色的提示信息:
无法加载文件 C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,
需要在管理员终端中执行以下命令:
Set-ExecutionPolicy RemoteSigned
(此解决方案参考自博文《PowerShell报错:无法加载文件C:\Users\server\Documents\windowsPowerShell\profile.ps1…》)
(2)打开PS终端在第一个提示符之前出现提示:“无法将“xxxxxx”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”
这是我在学习安装ROS2时遇到的一个问题,当时的错误信息是:
C:\dev\ros2_humble\local_setup.ps1 : 无法将“C:\dev\ros2_humble\local_setup.ps1”项识别为 cmdlet、函数、
脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 C:\Users\songyucheng\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1:2 字符: 1
+ C:\dev\ros2_humble\local_setup.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\dev\ros2_humble\local_setup.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
加载个人及系统配置文件用了 1020 毫秒。
PS C:\Users\songyucheng>
请教了GPT4,他提到:
这个错误信息表明,Powershell 试图运行你的
Microsoft.PowerShell_profile.ps1
文件中的一行命令,这行命令试图运行C:\dev\ros2_humble\local_setup.ps1
,但是这个文件不再存在。
Microsoft.PowerShell_profile.ps1
是一个特殊的脚本,它在每次启动 Powershell 时都会被运行。它通常被用来设置环境变量,以及定义函数和别名。在你的情况下,我猜测它被用来设置 ROS2 的环境。
因为你现在已经将 ROS2 从ros2_humble
升级到了ros2_iron
,所以C:\dev\ros2_humble\local_setup.ps1
这个文件已经不存在了。
所以需要在Microsoft.PowerShell_profile.ps1
文件中将错误的脚本删除;
6. Python自动化运维
Troubleshooting
(1)对于shell命令,os.system()
可以正常执行,而使用subprocess.run()
则会报错"FileNotFoundError: [WinError 2] 系统找不到指定的文件"
Traceback (most recent call last):
...
File "C:\Users\songyuc\mambaforge\envs\conda-general\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\songyuc\mambaforge\envs\conda-general\Lib\subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\songyuc\mambaforge\envs\conda-general\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
Process finished with exit code 1
原因一:这个shell命令是.cmd
脚本
ChatGPT4:
- Windows有一个文件关联机制,可以根据文件扩展名自动选择适当的程序来打开或执行文件。但是,这种机制通常在命令行界面(如CMD或PowerShell)中有效,而在Python的
subprocess.run()
中,如果没有使用shell(shell=False
),这种自动关联可能不会生效。- 对于在Windows系统中使用
subprocess.run()
执行脚本时是否必须总是加上.cmd
需要根据是否通过shell执行命令以及命令的具体格式来具体判断。在实践中,如果不确定,可以先尝试不带扩展名的形式,如果遇到问题,再考虑是否需要指定完整的文件名。
对于查看命令是否是.cmd
脚本,可以通过where command
来确定。
7. 软件管理
7.1 软件卸载
7.1.1 若Win10遇到后台进程无法关闭,使用Win官方修复工具
8. 进程管理
8.1 任务管理器:管理应用程序、进程和服务
【进程】:不会列出所有进程
【详细信息】:所有正在运行进程的详细信息
8. Win开发配置
8.1 MSVC VS C++ x64 生成工具
MSVC v143 - VS 2022 C++ 生成工具是Visual Studio 2022中用于开发C++代码的编译器和工具集。它支持x86、x64、ARM和ARM64架构,以及Windows桌面、UWP、Linux、Android和iOS平台。它也支持CMake和MSBuild等构建系统。
G++是GNU项目的C++编译器,它是GCC(GNU Compiler Collection)的一部分。它支持多种操作系统和硬件平台,以及多种C++标准。它也支持Makefile等构建系统。
于是,可以将 MSVC v143 - VS 2022 C++ 生成工具类比于G++,因为它们都是用于编译和链接C++代码的工具。但是,它们也有一些区别,例如:
- MSVC v143 - VS 2022 C++ 生成工具只能在Windows上运行,而G++可以在多种操作系统上运行。
- MSVC v143 - VS 2022 C++ 生成工具只能与 Visual Studio 2022 配合使用,而G++可以与多种IDE或编辑器配合使用。
- MSVC v143 - VS 2022 C++ 生成工具和G++可能有不同的语法、选项、扩展和兼容性。
9. Chocolatey:包管理工具
升级Chocolatey
choco upgrade chocolatey
10. 桌面设置
选择显示的桌面图标
桌面图标设置:在桌面空白处右键 → 点击个性化 → 选择主题 → 选择桌面图标设置;
3. 窗口贴靠
关于窗口贴靠的详细介绍,请参见博文《WIN11这个(分屏)功能悄悄升级了,简直太好用》
3.1 交互式分屏
可以右键点击全屏化(还原)按钮(或将光标移动到上面稍作停留),便可触发分屏机制。
3.2 窗口贴靠快捷键
Win+← 或 Win+→
将所选窗口贴靠到屏幕左半(或右半)部分1/2,同时预览其它已经打开的应用窗口,可选择某一个窗口可自动贴靠到右半(或左半)部分。
11. 关闭使用较少的Windows服务
服务设置:鼠标右键点击左下角Win图标 → 点击计算机管理 → 选择服务和应用程序 → 选择服务;
10.1 Connected User Experiences and Telemetry(收集用户诊断信息已改进Windows)
该服务在低配置电脑上可能会影响电脑的运行速度,所以在低配置电脑上禁用;
12. Edge浏览器
8.1 突破复制限制
使用SuperCopy插件
点击破解禁止复制后,即可复制文字;
Note
可以用来复制知乎中的文字。
Edge地址框加read:
有时在线文档中的文字右键无法直接复制,可以打开Edge阅读器模式,然后就可以复制文字了,
打开方式:read:http_url
(“read:”后面没有空格)
8.2 ChatGPT辅助插件
MarkDownload:以Markdown格式复制网页内容
复制之后,就可以粘贴到ChatGPT中作为提示材料;
13. 磁盘管理
9.1 分区空间
9.1.1 清理C盘
清理系统文件
操作路径:右键单击【本地磁盘(C:)】 ⇒ 右键菜单中选择【属性】 ⇒ 点击磁盘清理 ⇒ 清理系统文件
9.1.2 使用傲梅分区助手扩容C盘
如果在Win11中使用了开启了“设备加密”,则在分区助手中分区会显示为无法直接操作的状态,这时需要先关闭“设备加密”功能,再对C盘进行扩容。
9.2 交换盘符:磁盘管理
我们可以使用磁盘管理功能来交换盘符,例如:
引入一个第三的盘符做容器(类似于C++中swap的原理):
D ⇒ F;
E ⇒ D;
F ⇒ E;
14. 更新显卡驱动:GeForce Experience
我们使用 GeForce Experience 自动检测显卡并更新驱动;
15. 网络连接
15.1 Ncat: Windows上nc
的替换工具
【nmap.org】:
Ncat is integrated with Nmap and is available in the standard Nmap download packages (including source code and Linux, Windows, and Mac binaries) available from the Nmap download page.
断开连接:Ctrl + C
16. 实用工具
Flameshot:截图工具 [download]
- 点击托盘图标开始截图
- 可以添加序号图标
17. Troubleshooting
(1)微软拼音输入法的文字突然变成了繁体,(之前可能使用过JetBrains的IDE)
这是因为JetBrains的套件默认使用ctrl+shift+F作为文件中搜索的快捷键,于是就会误触输入法的简繁体切换;
快捷方案
再次按下ctrl+shift+F,切换回简体文字;
推荐方案
在Win系统中关闭简繁体切换的快捷键,具体操作可以参考博文《win10自带输入法突然变成了繁体,輸入法怎麼成繁體了?》
(2)从内置存储剪切文件夹到移动硬盘时,操作时进度条一直是在0%的位置,并且超过10分钟进度条没有变化,处于卡死状态
原因分析一:之前使用了 Win-symbolic-link,并且链接失效了;
之前我们在学习 Paddle_oriented_reppoints 时,曾经使用软链接将放在其它位置的数据集文件夹链接到代码目录中,所以导致了这个错误;
排除这个故障需要观察文件传输窗口给出的信息,比如传输窗口卡在了“data”位置,那这个“data”很可能就是一个软链接
,需要手动处理或者删除;
也可以将源目录中的文件一个个单独进行剪切,用来排查是哪些个文件夹中包含了软链接阻止了系统进行数据传输;