【计算机常识:Windows】--CMD命令详解
摘要
基本知识简介:
分类 | 操作/命令 | 说明/示例 |
---|---|---|
基础操作 | 打开CMD | Win + R → 输入cmd → 回车 |
直接运行命令 | cmd /c 命令 (执行后关闭窗口)cmd /k 命令 (执行后保留窗口) | |
复制内容 | 右键 → 标记 → 选中内容 → 右键(或回车) | |
粘贴内容 | 右键 → 粘贴 | |
快速打开当前目录CMD | 文件夹空白处 Shift + 右键 → 选择“在此处打开命令行窗口”(Win10前)或“PowerShell”(Win10后) | |
命令技巧 | 路径规则 | 使用反斜杠 \ (如 del d:\test\file.txt ) |
路径含空格 | 用双引号包裹(如 del "d:\program files\file.txt" ) | |
禁用字符 | 文件名/目录名中不能包含:\ / : * ? " < > | | |
历史命令 | 按 ↑/↓ 方向键翻看 | |
Tab补全 | 自动补全路径或文件名 | |
批处理注释 | rem | 注释内容会显示(示例:rem 这是注释 ) |
:: | 注释内容不显示(示例::: 这是静默注释 ) | |
标号(Label) | 有效标号::label (goto 可跳转)无效标号: :: (可替代注释) | |
注意事项 | 选择模式阻塞 | Win10中鼠标左键拖动会暂停命令 → 按 回车 恢复 |
特殊符号转义 | 路径含空格或& 等时,用双引号包裹(如 cd "C:\My Docs" ) | |
管理员权限 | 右键CMD → 选择“以管理员身份运行” |
Cmd和PowerShell的区别
这么久了才知道这两个东西不是一回事!!!
对比项 | PowerShell(终端) | CMD(命令提示符) |
---|---|---|
开发背景 | 基于.NET框架的现代化脚本环境,面向对象设计(2006年推出) | 传统DOS命令行工具(1981年延续至今) |
脚本语言能力 | 支持完整的脚本语言(.ps1文件),可编写复杂逻辑、函数、模块 | 仅支持简单批处理(.bat/.cmd文件),功能有限 |
命令类型 | Cmdlet(如Get-Process )和原生命令,统一命名规范(动词-名词结构) | 传统DOS命令(如dir 、copy )和部分Win32命令 |
对象处理 | 管道传递对象(可直接操作属性、方法) | 管道传递文本(需手动解析输出) |
功能扩展性 | 支持模块化扩展(如Install-Module 安装第三方模块) | 仅支持有限的外部程序调用 |
系统管理能力 | 深度集成Windows管理框架(如WMI、CIM、注册表、服务管理) | 基础系统操作(文件管理、网络配置等) |
跨平台支持 | 支持Linux/macOS(PowerShell Core版) | 仅限Windows |
默认权限要求 | 部分操作需管理员权限(默认执行策略限制脚本运行) | 多数基础命令无需特权 |
典型应用场景 | 自动化运维、批量任务、系统配置管理、云服务(如Azure) | 快速文件操作、遗留脚本兼容、低级系统维护 |
界面与用户体验 | 支持语法高亮、自动补全(Tab键)、命令历史搜索(类似Linux Shell) | 传统命令行界面,功能简单 |
总结:感觉就是powershell是cmd的一个升级,大部分原始的cmd命令,powershell都能运行(少部分系统级命令不行)
目录
摘要
Cmd和PowerShell的区别
1.查看命令
2.文件/目录
2.1.cd 切换目录
2.2.dir 显示目录中的内容
2.3. tree 显示目录结构
2.4.ren 文件或目录重命名
2.5.md&&rd 创建目录
2.6.copy 复制文件
2.7.move 移动文件
2.8.del 删除文件
2.9.attrib 查看文件属性
2.10.type 显示文件内容
3.注册表命令
4.磁盘系统命令
4.1.chkdsk 检查磁盘错误
4.2.format 格式化磁盘或分区
4.3.diskpart 磁盘分区管理
4.4.fsutil 管理文件系统
5.网络管理类命令
5.1.ipconfig 显示当前计算机的网络配置信息
5.2.ping 测试网络连通性
5.3.tracert 追踪数据包路由
5.4.netstat 显示网络连接
5.5.nslookup 查询域名系统(DNS)信息
5.6.route 查看和操作 IP 路由表
5.7.arp ARP缓存表
5.8.netsh 网络配置
6.进程管理
6.1.tasklist 正在运行的进程信息
6.3.wmic 系统管理功能
7.系统信息查看类命令
7.1.systeminfo 计算机及其操作系统
7.2.winver Windows 操作系统
7.3.set 环境变量
8.软件安装与管理类命令
9.系统服务管理类命令
10.注册表操作类命令
11.系统性能监测类命令
12.压缩与解压缩类命令
13.文本处理类命令
14.远程管理类命令
14.1.ssh远程连接
1.查看命令
这个可以查看所有的命令:
command
中断命令执行:Ctrl + Z
2.文件/目录
2.1.cd 切换目录
cd 切换目录例:cd // 显示当前目录例:cd .. // 进入父目录例:cd /d d: // 进入上次d盘所在的目录(或在直接输入:d:)例:cd /d d:\src // 进入d:\src目录例:cd prj\src\view // 进入当前目录下的prj\src\view文件夹
2.2.dir 显示目录中的内容
dir 显示目录中的内容例:dir // 显示当前目录中的子文件夹与文件
2.3. tree 显示目录结构
tree 显示目录结构例:tree d:\myfiles // 显示d:\myfiles目录结构
2.4.ren 文件或目录重命名
ren 文件或目录重命名例:ren rec.txt rec.ini // 将当前目录下的rec.txt文件重命名为rec.ini例:ren c:\test test_01 // 将c盘下的test文件夹重命名为test_01
2.5.md&&rd 创建目录
md 创建目录例:md movie music // 在当前目录中创建名为movie和music的文件夹例:md d:\test\movie // 创建d:\test\movie目录rd 删除目录例:rd movie // 删除当前目录下的movie空文件夹例:rd /s /q d:\test // 使用安静模式删除d:\test(除目录本身外,还将删除指定目录下的所有子目录和文件)
2.6.copy 复制文件
copy 拷贝文件例:copy key.txt c:\doc // 将当前目录下的key.txt拷贝到c:\doc下
例:copy jobs c:\doc // 将当前目录下jobs文件夹中文件(不递归子目录)拷贝到c:\doc下xcopy 更强大的复制命令例:xcopy c:\bat\hai d:\hello\ /y /h /e /f /c // 将c:\bat\hai中的所有内容拷贝到d:\hello中 注意:需要在hello后加上\ 表示hello为一个目录,否则xcopy会询问hello是F,还是D例:xcopy c:\bat\hai d:\hello\ /d:12-29-2010 // 将c:\bat\hai中的2010年12月29日后更改的文件拷贝到d:\hello中robocopy 更强大的复制命令例:robocopy .\Plugins .\PluginsDest /MIR /xd Intermediate Binaries // 将当前目录下Plugins中所有内容(排除名为Intermediate和Binaries的文件夹)保留目录结构拷贝到当前目录下的PluginsDest中(PluginsDest不存在会自动创建)例:robocopy c:\test d:\test2 /MIR /xd Intermediate /xf UE4Editor-SGame-Win64-DebugGame.dll *.pdb // 将c:\test中所有内容(排除名为UE4Editor-SGame-Win64-DebugGame.dll和pdb后缀的文件)保留目录结构拷贝到d:\test2中(d:\test2不存在会自动创建)
2.7.move 移动文件
move 移动文件例:move *.png test // 将当前目录下的png图片移动到当前目录下test文件夹中 (若test中也存在同名的png图片,会询问是否覆盖)例:move /Y *.png test // 将当前目录下的png图片移动到当前目录下test文件夹中 (不询问,直接覆盖写)
2.8.del 删除文件
del 删除文件 注意:目录及子目录都不会删除例:del test // 删除当前目录下的test文件夹中的所有非只读文件(子目录下的文件不删除;删除前会进行确认;等价于del test\*)例:del /f test // 删除当前目录下的test文件夹中的所有文件(含只读文件;子目录下的文件不删除;删除前会进行确认;等价于del /f test\*)
2.9.attrib 查看文件属性
attrib 查看或修改文件或目录的属性 【A:存档 R:只读 S:系统 H:隐藏】例:attrib 1.txt // 查看当前目录下1.txt的属性例:attrib -R 1.txt // 去掉1.txt的只读属性例:attrib +H movie // 隐藏movie文件夹
2.10.type 显示文件内容
type 显示文本文件内容例:type c:\11.txt // 显示c盘中11.txt的文本内容例:type conf.ini // 显示当前目录下conf.ini的文本内容例:type c:\11.txt | more // 分页显示c盘中11.txt的文本内容more 逐屏的显示文本文件内容例:more conf.ini // 逐屏的显示当前目录下conf.ini的文本内容 【空格:下一屏 q:退出 】
3.注册表命令
reg 注册表相关操作
参数说明:
KeyName [\Machine]FullKey
Machine为远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY+SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选ROOTKEY下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
/t RegKey 数据类型
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
如果忽略,则采用 REG_SZ
/s 指定一个在 REG_MULTI_SZ 数据字符串中
用作分隔符的字符;如果忽略,则将""用作分隔符
/d 要分配给添加的注册表ValueName的数据
/f 不提示,强行改写现有注册表项
例:reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /t REG_SZ /d "c:\tools\myapp.exe" /f // 强制添加一条开机启动c:\tools\myapp.exe程序的注册表项例:reg add "HKLM\SOFTWARE\ScmClient" /v AgreementConfirmed /t REG_SZ /d 1 /f // 解决32位xp打开ioa后,弹出的框关不掉问题例:reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f // 强制添加一条加速关闭应用程序的注册表项例:reg add "hkcu\software\Unity Technologies\Unity Editor 4.x" /v JdkPath_h4127442381 /t REG_SZ /f // 将JdkPath_h4127442381设置为空例:reg add "HKCR\*\shell\WinDbg\command" /t REG_SZ /d "\"D:\Program Files (x86)\windbg\windbg.exe\" -z \"%1\" " /f // 强制添加windbg打开dump文件到右键菜单的注册表项(不指明/v,键值将写入默认值名中)例:reg add "HKCR\*\shell\WinHex\command" /t REG_SZ /d "\"D:\software-setup\system\winhex\winhex.exe\" \"%1\" " /f // 强制添加winhex到右键菜单的注册表项(不指明/v,键值将写入默认值名中)注册表中%1 %2 %3 %4的含义:
-- %1表示文件列表,%2表示默认打印机,%3表示驱动器,%4表示端口
4.磁盘系统命令
4.1.chkdsk 检查磁盘错误
chkdsk C:
检查 C 盘的文件系统错误。在执行过程中,会扫描磁盘的文件系统结构,查找并尝试修复诸如坏扇区、文件系统不一致等问题。如果发现错误,会提示用户是否进行修复操作,并且在修复某些问题时可能需要重启计算机才能完成。
表示磁盘检查未发现问题。如果磁盘存在问题,可能会看到类似 “Found errors. CHKDSK cannot continue in read-only mode.” 的提示,此时可以使用 /f 参数来强制修复,如 chkdsk C: /f,但要注意在修复过程中可能会导致数据丢失,建议在操作前备份重要数据。
4.2.format 格式化磁盘或分区
format C: /fs:NTFS /q
快速格式化 C 盘为 NTFS 文件系统。格式化操作会清除磁盘上的所有数据,因此在执行前务必确认磁盘上没有重要数据或已完成数据备份。/fs:NTFS 参数指定了要创建的文件系统类型为 NTFS,NTFS 是 Windows 常用的文件系统,具有较好的安全性和性能。/q 参数表示快速格式化,只清除文件分配表等关键信息,而不进行全面的磁盘扫描,所以格式化速度较快,但对于可能存在磁盘错误的情况,可能需要使用不带 /q 参数的完整格式化来确保磁盘的完整性。
4.3.diskpart 磁盘分区管理
diskpart #进入 diskpart 命令行环境。list disk #列出系统中所有的磁盘信息select disk 0 #选择 Disk 0 作为当前操作的磁盘。之后的操作都将针对所选磁盘进行。create partition primary size=30000 # 在所选磁盘上创建一个大小为 30000MB(约 30GB)的主分区。format fs=NTFS quick #快速格式化刚创建的分区为 NTFS 文件系统。assign letter=D #为该分区分配驱动器号 D。
*****注意******,diskpart 命令操作具有一定危险性,如果误操作可能导致数据丢失或磁盘分区混乱,在使用前应充分了解相关操作知识并谨慎操作。
4.4.fsutil 管理文件系统
查询 C 盘的文件系统配额设置情况。文件系统配额可以限制用户或组在磁盘上使用的空间大小,防止某个用户或进程过度占用磁盘资源:
fsutil quota query C:
Volume C: (\\?\Volume{12345678-9abc-def0-1234-56789abcdef0})
NTFS Volume Serial Number : 9876543210
Version : 3.1
Number of quota entries : 0
Quota system is off.
表示 C 盘当前未启用文件系统配额。如果要启用配额并设置相关限制,可以使用其他 fsutil quota 命令,如 fsutil quota enable C:
先启用配额,然后使用 fsutil quota modify
命令设置具体的配额限制。
5.网络管理类命令
5.1.ipconfig 显示当前计算机的网络配置信息
ipconfig
这里显示了计算机上以太网适配器和无线局域网适配器的网络配置信息,包括各自的 IP 地址、子网掩码、默认网关以及链路本地 IPv6 地址等。
ipconfig /all
显示更详细的网络配置信息,除了基本信息外,还包括 DNS 服务器地址、DHCP 服务器地址、物理地址(MAC 地址)等。
5.2.ping 测试网络连通性
通过发送 ICMP 回显请求数据包并等待目标主机的回显应答来判断网络连接是否正常。
ping 8.8.8.8
向 IP 地址为 8.8.8.8 的主机(通常是谷歌的 DNS 服务器)发送 ICMP 回显请求数据包。如果网络连通,会收到目标主机返回的回显应答数据包,并显示响应时间等信息,例如:
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=10ms TTL=128
Reply from 8.8.8.8: bytes=32 time=12ms TTL=128
Reply from 8.8.8.8: bytes=32 time=15ms TTL=128
Reply from 8.8.8.8: bytes=32 time=13ms TTL=128Ping statistics for 8.8.8.8:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:Minimum = 10ms, Maximum = 15ms, Average = 12ms
ping -t www.baidu.com
一直发送
5.3.tracert 追踪数据包路由
tracert www.example.com
上述输出展示了数据包经过的 22个网络节点,每个节点都显示了往返时间,并且在第一列显示了跃点序号,最后一列是节点的 IP 地址,部分节点还显示了对应的主机名(如第一跳的本地。通过 tracert 命令可以排查网络故障时确定数据包在哪个环节出现问题,例如,如果在某个跃点出现超时或异常的高延迟,可能表示该网络节点存在故障或网络拥塞。
5.4.netstat 显示网络连接
显示所有的网络连接信息,包括 TCP、UDP 连接,以及处于监听状态的端口等:
netstat -a
显示内核路由表信息,包括目标网络、网关、子网掩码、标志等,可用于查看网络流量的路由走向。例如:
netstat -rn
5.5.nslookup 查询域名系统(DNS)信息
查询 www.google.com
的 IP 地址,返回类似如下信息:
显示了查询使用的 DNS 服务器地址(这里是本地网络的 DNS 服务器 192.168.1.1
)以及域名对应的 IP 地址。
nslookup www.google.com
5.6.route 查看和操作 IP 路由表
route print
显示当前系统的路由表信息,与 netstat -rn
类似,但输出格式略有不同
添加一条到 192.168.2.0/24
网络的静态路由,通过网关 192.168.1.254
转发流量。注意,手动添加的静态路由在系统重启后可能会丢失,如需持久化,可能需要在注册表或其他网络配置工具中进行设置。
route add 192.168.2.0 mask 255.255.255.0 192.168.1.254
5.7.arp ARP缓存表
arp -a
这里显示了本地计算机已知的 IP 地址与对应的 MAC 地址映射关系,以及该映射的类型(动态表示是通过 ARP 协议自动学习到的)。
删除 ARP 缓存中关于 192.168.1.200
的映射记录。在某些网络故障排查场景中,如怀疑 ARP 缓存中的错误信息导致网络连接问题,可以先删除相关记录,然后让系统重新学习正确的 ARP 映射。
5.8.netsh 网络配置
一个功能强大的网络配置命令行工具,可用于配置网络接口、防火墙、路由、代理等多种网络设置。
netsh interface ip set address "Ethernet" static 192.168.1.200 255.255.255.0 192.168.1.1
将名为 “Ethernet” 的网络接口设置为静态 IP 地址 192.168.1.200
,子网掩码 255.255.255.0
,默认网关 192.168.1.1
。这是一种替代在网络连接属性中手动设置 IP 地址的命令行方式,在批量配置计算机网络或远程配置网络时非常有用。
禁止防火墙:
netsh firewall set opmode disable
在本地计算机上设置端口转发,将访问本地 8080
端口的流量转发到 192.168.1.100
的 80
端口,常用于在本地开发环境中访问局域网内其他计算机上的服务。
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.1.100 connectport=80
6.进程管理
6.1.tasklist 正在运行的进程信息
显示当前系统中正在运行的进程信息,包括进程名、进程 ID(PID)、会话名、内存使用等。
tasklist
更详细:
tasklist /v
6.2. taskkill 终止一个或多个任务(进程)
根据进程 ID(PID)为 1234 的进程发送终止信号,尝试结束该进程。如果进程无法正常终止,可以使用 /f
参数强制终止,例如:
taskkill /f /pid 1234taskkill /im notepad.exe
可以直接使用:kill
6.3.wmic 系统管理功能
以简洁格式列出系统中所有进程的信息,包括进程名、进程 ID、父进程 ID 等。例如:
wmic process list brief
通过查询进程名是 notepad.exe 的进程,并调用 terminate 方法来终止这些进程。这是一种更灵活的终止进程方式,可以结合条件查询来精确控制要终止的进程。
wmic process where "name='notepad.exe'" call terminate
7.系统信息查看类命令
7.1.systeminfo 计算机及其操作系统
systeminfo
这里涵盖了从计算机硬件到操作系统设置,再到网络配置的全面信息,有助于全面了解系统的整体情况,在系统故障排查、性能分析、软件兼容性检查等方面都有重要作用。
7.2.winver Windows 操作系统
ver
winver
7.3.set 环境变量
显示当前环境变量的设置情况。环境变量包含了系统和用户定义的各种变量,用于配置系统运行环境、应用程序路径等信息。
8.软件安装与管理类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
wusa | 安装/卸载 Windows 更新补丁(.msu) | wusa KB12345678.msu /quiet /norestart | /quiet 静默安装,/norestart 不重启 |
msiexec | 管理 MSI 安装包(安装/卸载/修复) | msiexec /i MyApp.msi | /i 安装,/x 卸载,/f 修复 |
appwiz.cpl | 图形化程序管理(卸载/更改) | appwiz.cpl | 无参数,打开控制面板 |
9.系统服务管理类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
sc | 服务控制(创建/启动/停止/查询) | sc start MyService | start/stop/query/create |
net start | 查看/启动服务 | net start MyService | 仅支持基础操作 |
net stop | 停止服务 | net stop MyService | 与sc stop 功能类似 |
10.注册表操作类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
regedit | 图形化注册表编辑器 | regedit | 无参数,直接打开 |
reg add | 添加注册表键值 | reg add "HKLM\Software\MyApp" /v Key /t REG_SZ /d Value | /v 键名,/t 类型,/d 数据 |
reg query | 查询注册表信息 | reg query "HKLM\Software\Microsoft" | 无参数,显示子项和值 |
11.系统性能监测类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
perfmon | 图形化性能监视器 | perfmon | 支持自定义计数器 |
taskmgr | 任务管理器(进程/性能/启动项) | taskmgr | 无参数,直接打开 |
wmic cpu | 获取 CPU 负载 | wmic cpu get loadpercentage | 返回百分比数值 |
12.压缩与解压缩类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
expand | 解压 .cab 文件 | expand MyApp.cab -F:* C:\Target | -F:* 解压所有文件 |
makecab | 创建 .cab 压缩包 | makecab C:\Files\*.* C:\Archive.cab | 支持压缩算法参数 |
tar | 打包/解压文件(支持 gzip/bzip2) | tar -czvf MyFiles.tar.gz C:\MyFiles | -c 创建,-z gzip,-x 解压 |
13.文本处理类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
findstr | 搜索文本(支持正则表达式) | findstr "error" log.txt | /r 启用正则 |
more | 分页显示文本内容 | more longfile.txt | 空格翻页,Q 退出 |
echo | 输出文本或写入文件 | echo "Hello" > file.txt | > 覆盖,>> 追加 |
14.远程管理类命令
命令 | 功能描述 | 示例(简化版) | 关键参数说明 |
---|---|---|---|
mstsc | 远程桌面连接 | mstsc | 无参数,图形化配置 |
psexec | 远程执行命令(需 PsTools) | psexec \\RemotePC cmd | -u 用户名,-p 密码 |
robocopy | 高性能文件复制(支持远程) | robocopy C:\Src \\Remote\Dest /E | /E 包含子目录,/LOG 记录日志 |
14.1.ssh远程连接
命令/参数 | 功能描述 | 使用示例 | 适用场景 |
---|---|---|---|
基础连接 | 通过用户名和IP连接远程服务器 | ssh user@192.168.1.100 | 首次登录或常规远程管理 |
-p | 指定SSH服务端口(非默认22) | ssh -p 2222 user@example.com | 服务器使用自定义SSH端口时 |
-i | 使用私钥文件认证 | ssh -i ~/.ssh/id_rsa user@host | 免密登录或自动化脚本 |
-L (本地端口转发) | 将本地端口映射到远程服务 | ssh -L 8080:localhost:80 user@host | 访问远程内网服务(如数据库、Web) |
-R (远程端口转发) | 将远程端口映射到本地服务 | ssh -R 3306:localhost:3306 user@host | 暴露本地服务到外网 |
-D (动态端口转发) | 创建SOCKS代理隧道 | ssh -D 1080 user@host | 安全浏览或绕过网络限制 |
非交互式执行命令 | 连接后执行命令并退出 | ssh user@host "df -h" | 批量任务或监控脚本 |
-v/-vv/-vvv | 输出详细调试信息(多级冗余) | ssh -vv user@host | 排查连接失败或认证问题 |
-o | 自定义SSH配置参数 | ssh -o "StrictHostKeyChecking=no" user@host | 临时跳过主机密钥验证(不安全,仅测试用) |
-N | 仅建立连接不执行命令 | ssh -N -L 3306:localhost:3306 user@host | 纯端口转发场景 |