平时用 Windows 基本都是鼠标点,可真到要写脚本、要批量处理一堆文件的时候,还是命令行顺手。这份把 Windows 常用的命令整理了一下,同样按「想干什么」来排,不按命令名硬背。
它和 Linux 命令行版 是一套思路的分身——很多命令其实是同一个道理,这边会了那边几乎不用重学。
先提醒一句:Windows 现在有两套命令行。CMD 是旧的、默认开出来那个黑窗口;PowerShell 是新的、更强,用 powershell 或 pwsh 打开。这篇以 CMD 为主,PowerShell 不一样的地方我会单独标出来。
目录
- 基础概念
- 获取帮助
- 文件与目录
- 查看文件内容
- 搜索与查找
- 通配符
- 属性与权限
- 用户与提权
- 环境变量
- 进程管理
- 磁盘
- 网络
- 压缩与打包
- 管道与重定向
- 文本处理
- 包管理(winget)
- 系统信息
- 编辑器
- 批处理与 PowerShell 脚本入门
- 定时任务
- 服务管理
- 其他实用命令
- 快捷键与技巧
- 推荐学习路线
1. 基础概念
- CMD:Windows 自带的命令行解释器(Command ),就是你按
Win+R → 输 cmd → 回车出来的黑窗口。
- 提示符:
C:\Users\你> —— 前面是当前所在路径,> 就相当于 Linux 的 $。
- 命令结构:
命令 [选项] [参数],例如 dir /w C:\(/w 是选项,C:\ 是参数)。Windows 选项用 / 开头(不像 Linux 用 -)。
1 2 3 4 5
| :: 记住:Windows 的注释用 :: 或 rem dir :: 列出当前目录内容 cd :: 显示当前路径 echo hi :: 输出字符串 cls :: 清屏(对应 Linux 的 clear / Ctrl+L)
|
2. 获取帮助
1 2 3 4
| dir /? :: 查看命令用法(几乎每个命令都支持 /?) help dir :: 另一种看帮助的方式 where ipconfig :: 看命令的实际路径(对应 Linux 的 which) ver :: 查看 Windows 版本
|
PowerShell 里帮助更强:
1 2
| Get-Help Get-Process Get-Command *
|
3. 文件与目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| ## 列出 dir :: 当前目录 dir /a :: 含隐藏文件(对应 Linux ls -a) dir /s :: 含子目录递归列出(对应 ls -R) dir /w :: 宽格显示,只看文件名 dir /o:d :: 按修改时间排序
## 切换 cd C:\Users :: 切目录 cd .. :: 上一级(对应 Linux cd ..) cd \ :: 回盘符根目录 cd :: 显示当前路径 d: :: 切到 D 盘(直接输盘符+冒号)
## 新建与复制 mkdir mydir :: 新建目录(也可用 md) mkdir a\b\c :: 递归创建多级目录 copy a.txt b.txt :: 复制文件 copy a.txt backup\ :: 复制到指定目录 xcopy dir1 dir2 /e :: 递归复制目录(对应 Linux cp -r)
## 移动与重命名 move a.txt b.txt :: 移动 ren a.txt b.txt :: 重命名(对应 Linux mv 的改名用法)
## 删除 del file.txt :: 删除文件 del *.tmp :: 删除一类文件 rmdir dir :: 删空目录(也可用 rd) rmdir /s dir :: 递归删除目录 rmdir /s /q dir :: 静默递归删除(危险!对应 Linux rm -rf)
|
⚠️ CMD 的 del / rmdir 默认不进回收站,删了不可恢复,rmdir /s /q 更要小心。
4. 查看文件内容
1 2 3
| type file.txt :: 一次性打印整个文件(对应 Linux cat) more < file.txt :: 分页查看(空格翻页,q 退出,对应 Linux less) dir | more :: 把命令输出分页
|
PowerShell 里更顺手:
1 2
| Get-Content file.txt Get-Content file.txt -Tail 10
|
看日志用 Get-Content log.txt -Follow(相当于 Linux 的 tail -f)。
5. 搜索与查找
1 2 3 4 5 6 7 8
| findstr "关键词" file.txt :: 在文件里搜(对应 Linux grep) findstr /i "hello" file :: 忽略大小写 findstr /n "hello" file :: 显示行号 findstr /s "关键词" *.txt :: 递归搜子目录
:: 找文件:根目录下按名字找 dir /s /b *.pdf :: 列出所有 pdf 的完整路径 where notepad :: 找 notepad 在哪
|
PowerShell 搜内容:
1
| Select-String -Path *.log -Pattern "error" -i
|
6. 通配符
1 2 3 4
| dir *.txt :: * 匹配任意多个字符 dir file?.txt :: ? 匹配单个字符 dir file[1-3].txt :: [] 匹配字符集合(对应 Linux 同款) del *.log :: 删除所有日志
|
通配符和 Linux 几乎一样:* 任意多个、? 一个、[] 集合。
7. 属性与权限
1 2 3
| attrib file.txt :: 查看文件属性(R只读 H隐藏 S系统 A存档) attrib +h secret.txt :: 给文件加"隐藏"属性 attrib -h secret.txt :: 去掉隐藏
|
Windows 的”权限”和 Linux 的 rwx 体系完全不同,日常更靠”隐藏属性”和 NTFS 权限(右键-属性-安全)。
8. 用户与提权
1 2 3 4
| whoami :: 当前用户名 whoami /groups :: 当前所属组 net user :: 列出所有用户 net user 用户名 密码 :: 改密码
|
以管理员运行(对应 Linux sudo):
- 方法一:在开始菜单搜
cmd → 右键 → 以管理员身份运行。
- 方法二:
Win + X → 选「终端(管理员)」。
PowerShell 里临时提升:
1
| Start-Process powershell -Verb RunAs
|
9. 环境变量
1 2 3 4 5 6 7 8
| echo %PATH% :: 查看 PATH(命令搜索路径,按 ; 分隔,对应 Linux $PATH) echo %USERPROFILE% :: 用户目录 set :: 查看所有环境变量 set MYNAME=value :: 设置(仅当前窗口生效)
:: 想永久生效(写入用户环境变量) setx MYNAME value setx PATH "%PATH%;C:\newpath" :: 往 PATH 里加一个目录
|
装完命令行工具发现「命令找不到」,十有八九是它的目录不在 %PATH% 里(setx 加进去,重开终端才生效)。
PowerShell 里:
1 2
| $env:PATH $env:MYNAME = "value"
|
10. 进程管理
1 2 3 4 5 6
| tasklist :: 列出所有进程(对应 Linux ps) tasklist | findstr python :: 找特定进程
taskkill /im notepad.exe :: 按名字结束进程(对应 Linux pkill) taskkill /f /im notepad.exe :: 强制结束 taskkill /pid 1234 :: 按 PID 结束
|
PowerShell 更直观:
1 2
| Get-Process Stop-Process -Name notepad
|
11. 磁盘
1 2 3 4
| wmic logicaldisk get name,freespace,size :: 查看各盘符容量 wmic diskdrive get model,size :: 查看物理硬盘
chkdsk C: :: 检查并修复磁盘错误(常需要管理员)
|
图形化看磁盘:Win + X → 磁盘管理。命令行里用得最多的是查盘符剩余空间,用 wmic。
12. 网络
1 2 3 4 5 6 7
| ipconfig :: 查看本机 IP(对应 Linux ip addr) ping baidu.com :: 测连通(Ctrl+C 停) tracert baidu.com :: 路由追踪(对应 Linux traceroute) nslookup baidu.com :: 查 DNS 解析 netstat -ano :: 看监听端口和对应进程 PID(对应 Linux ss -ltnp)
curl http://example.com :: 发 HTTP 请求(Win10+ 自带,对应 Linux curl)
|
想找出「哪个进程占了某个端口」:netstat -ano | findstr :8080,再用 tasklist | findstr 对应的PID。
13. 压缩与打包
1 2 3 4
| :: Win10 1803+ 自带 tar,和 Linux 很像 tar -czf a.tar.gz dir\ :: 打包压缩 tar -xzf a.tar.gz :: 解压 tar -xzf a.tar.gz -C C:\tmp :: 解压到指定目录
|
1 2
| Compress-Archive -Path dir\* -DestinationPath a.zip Expand-Archive -Path a.zip -DestinationPath dir
|
右键也能压缩;命令行用 tar(现代)或 PowerShell 的 Compress-Archive。
14. 管道与重定向
和 Linux 思路完全一致:把上一个命令的输出接到下一个。
1 2 3 4 5 6 7 8 9 10 11 12
| :: 管道 | tasklist | findstr python | more
:: 重定向 命令 > file.txt :: 覆盖写入 命令 >> file.txt :: 追加写入 命令 < input.txt :: 从文件读入 命令 2> err.txt :: 只重定向错误输出
:: 组合符 cmd1 && cmd2 :: cmd1 成功才执行 cmd2 cmd1 || cmd2 :: cmd1 失败才执行 cmd2
|
|、>、>> 和 Linux 一模一样,这是命令行的通用语言。
15. 文本处理
Windows 文本处理工具比 Linux 少,但基本够用:
1 2 3 4 5
| sort file.txt :: 排序 sort /r file.txt :: 倒序 findstr /i "a" file.txt :: 过滤(代替 grep)
:: 去重:CMD 没有 uniq,用 PowerShell
|
PowerShell 里强大很多(接近 Linux 的 sed/awk):
1 2 3
| Get-Content file.txt | Sort-Object -Unique Get-Content file.txt | Where-Object {$_ -match "error"} Get-Content file.txt | Select-Object -First 10
|
16. 包管理(winget)
Windows 10/11 自带 winget,一键装软件,相当于 Linux 的 apt:
1 2 3 4 5
| winget search vim :: 搜索软件 winget install vim :: 安装 winget upgrade :: 升级已装软件 winget list :: 列出已装软件 winget uninstall vim :: 卸载
|
其它包管理器:choco(Chocolatey)、scoop(绿色免打扰,推荐开发者)。
17. 系统信息
1 2 3 4 5
| systeminfo :: 系统详细信息(系统版本、内存、BIOS 等) hostname :: 主机名 ver :: Windows 版本 date :: 当前日期 time :: 当前时间
|
18. 编辑器
1
| notepad file.txt :: 记事本打开
|
开发建议装 VS Code:
1
| code file.txt :: 用 VS Code 打开(需先安装并勾选添加到 PATH)
|
命令行里先能用 notepad;写代码、看大文件强烈建议装 VS Code。
19. 批处理与 PowerShell 脚本入门
.bat 批处理(把一串命令写进 .bat 文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @echo off :: 变量 set name=world echo hello %name%
:: 判断 if exist file.txt ( echo 文件存在 ) else ( echo 文件不存在 )
:: 循环 for %%i in (1 2 3) do ( echo 第 %%i 次 )
|
PowerShell 脚本(.ps1)
1 2 3 4 5 6 7 8 9 10 11 12 13
| $name = "world" Write-Host "hello $name"
if (Test-Path "file.txt") { Write-Host "文件存在" }
foreach ($i in 1..3) { Write-Host "第 $i 次" }
|
运行 .ps1 前若提示禁止执行脚本:Set-ExecutionPolicy -Scope CurrentUser RemoteSigned(以管理员运行 PowerShell)。
20. 定时任务
1 2 3 4 5 6
| schtasks /create /tn 任务名 /tr "C:\path\script.bat" /sc daily /st 09:00 schtasks /query :: 查看所有任务 schtasks /delete /tn 任务名 /f :: 删除任务
:: 每分钟运行 schtasks /create /tn 任务名 /tr "echo hi >> C:\log.txt" /sc minute /mo 1
|
图形化:Win + R → 输 taskschd.msc(任务计划程序)。
21. 服务管理
1 2 3 4 5 6 7
| sc query :: 列出所有服务 sc query sshd :: 查看某个服务 net start sshd :: 启动服务 net stop sshd :: 停止服务
:: 图形化 services.msc :: Win+R 打开服务管理器
|
net start/net stop 是 CMD 传统做法;新用 sc 或 PowerShell Get-Service / Start-Service。
22. 其他实用命令
1 2 3 4 5 6 7
| where python :: 找命令的实际路径 clip :: 把输出复制到剪贴板(如 dir | clip) shutdown /s /t 60 :: 60 秒后关机(/r 重启 /s 关机) shutdown /a :: 取消关机 tree :: 树状显示目录结构 fc a.txt b.txt :: 对比两个文件差异(对应 Linux diff) start file.txt :: 用默认程序打开文件
|
23. 快捷键与技巧
| 快捷键 |
作用 |
Tab |
自动补全文件名 |
Ctrl+C |
中断当前命令 |
Ctrl+V |
在 CMD 里粘贴 |
Ctrl+H |
在 CMD 里退格 |
↑ / ↓ |
翻历史命令 |
F7 |
弹出历史命令列表 |
F3 |
重复上一条命令 |
F8 |
搜索历史命令 |
Win+R |
快速打开运行框 |
Win+X |
快捷菜单(管理员终端等) |
1 2 3 4
| :: 小技巧 cd /d D:\data :: 跨盘符切目录必须加 /d dir /b | clip :: 把文件名列表复制到剪贴板 magic :: 新建一个全局目录,方便快速 cd(配合 setx 和 PATH)
|
常用 d: 和 cd /d 的组合:在 D 盘和 C 盘之间切,CMD 里跨盘符切目录要加 /d。
24. 推荐学习路线
- 先练熟高频命令:
dir / cd / mkdir / copy / move / del / type / findstr / tasklist / taskkill / ipconfig / ping / systeminfo。
- 搞懂管道和重定向(
| > >>),和 Linux 是同一个思想。
- 装 winget 包管理器,装 VS Code、装 git,把这些命令用起来。
- PowerShell 值得学:它比 CMD 强太多,很多 Linux 的用法(
Sort-Object、Where-Object)在 PowerShell 里都有对应。
- 和 Linux 对照着学:同一件事,
ls↔dir、cp↔copy、mv↔move、rm↔del、grep↔findstr、ps↔tasklist,一一对应着记最快。
学习原则:不要死记,多用 命令 /? 查;不知道命令就 where 找,记不住就 F7 翻历史。两套系统对照学,事半功倍。