本文分享一些常用的windows命令。根据功能的不同,大致可分为以下几个方面,一是文件操作命令,二是进程相关命令,三是磁盘相关命令,四是网络相关命令,五是其他命令。
1.文件操作命令
**dir:**显示当前目录中的文件和子目录。
cd: 改变当前目录。
bash
cd hello 将当前目录更改为 "hello" 文件夹。
cd .. 返回上一级目录。
cd / 或 cd \ 切换到根目录。
**copy:**复制一个或多个文件到另一个位置。
xcopy: xcopy
命令功能与copy
类似,但提供了更多选项来控制复制过程,并且可以递归复制整个目录结构。
bash
copy file1.txt D:\目录 将 file1.txt 复制到 D:\目录 中。
copy *.txt D:\Folder 复制当前目录下所有的 .txt 文件到 D:\Folder 中。
copy folder1\*.* E:\Folder 复制 folder1 目录下所有文件到 E:\Folder 中。
xcopy C:\Folder1 D:\up /s /e /i:递归复制 C:\Folder1 及其子目录到 D:\up,保留目录结构。
xcopy *.txt E:\Files /m:复制当前目录下所有 .txt 文件到 E:\Files,仅复制新的或更改过的文件。
/s 用于复制子目录,/e 用于包括空目录,
/i 在确认文件为目标或目录时,不会提示。
**move:**用于移动文件或目录到新的位置,以及用来重命名文件或目录。
bash
move file1.txt D:\目录 将 file1.txt 移动到 D:\目录 中。
move *.txt D:\Folder 将当前目录下所有的 .txt 文件移动到 D:\Folder 中。
move folder1\*.* E:\Folder 将 folder1 目录下所有文件移动到 E:\Folder 中。
move oldfile.txt newfile.txt 将 oldfile.txt 重命名为 newfile.txt。
使用 move
命令移动文件时,源文件会被删除,只有在移动到的目标位置确保没有同名文件时,才会成功移动。
**del:**删除一个或多个文件。
bash
del file1.txt 删除当前目录下的 file1.txt 文件。
del *.txt 删除当前目录下所有的 .txt 文件。
del folder1\*.* 删除 folder1 目录下所有的文件。
del /p file.txt 删除文件前会提示确认。
del /f /q *.txt 强制删除当前目录下所有 .txt 文件,并且不显示确认信息。
mkdir(md): 创建新的目录。
bash
mkdir NewFolder 在当前目录下创建一个名为 NewFolder 的新目录。
mkdir D:\Folder\Folder1 在指定路径下创建一个名为Folder的新目录。
mkdir C:\Folder\Folder1\Folder2 创建一个名为Folder2的目录,它位于Folder1目录下,而Folder1则位于 Folder目录下。
**rmdir(rd):**删除空目录。
bash
rmdir Folder:删除当前目录下名为Folder的空目录。
rmdir /s D:\Folder\Folder1:删除指定路径下名为Folder1的目录及其所有内容。
使用 /s 参数可以删除目录及其所有子目录和文件。
**ren:**重命名文件或目录。
bash
ren File1.txt File2.txt:将当前目录下的File1.txt文件重命名为File2.txt。
ren Folder1 Folder2:将当前目录下的Folder1目录重命名为Folder2。
**type:**显示文本文件的内容。
bash
type file.txt:显示当前目录下file.txt 文件的内容。
**find:**用于在指定的文件中查找包含特定字符串的行。
**findstr:**与find命令作用类似但比find命令更加强大,支持正则表达式和更多的搜索选项,适合在需要复杂条件或大量文件中进行搜索。
bash
find "hello" log.txt:在 log.txt 文件中查找包含字符串"hello"的所有行。
findstr /c:"hello" /i *.txt:在所有 .txt 文件中查找包含"hello"字符串的行,不区分大小写。
findstr /r "^hello" *.txt:在所有 .txt 文件中查找以 "hello" 开头的行,使用正则表达式。
findstr 提供多种选项,如 /r 表示允许使用正则表达式进行搜索, /i 表示不区分大小写,/s 表示递归搜索子目录,/m 只显示文件名而不显示匹配的行。
**attrib:**用于查看和修改文件的属性。
bash
一些常用的文件属性:
ReadOnly: 只读属性,只能查看文件内容,不能进行修改。
Hidden: 隐藏属性,该文件在 Windows 资源管理器中不会显示。
System: 系统属性,用于系统使用的文件,一般的用户程序通常不能访问或修改。
Archive: 归档属性,用于标记需要备份的文件。
常用的 attrib命令。使用 + 添加属性,- 删除属性,如:
attrib +r file.txt: 为 "file.txt" 文件添加只读属性。
attrib -a doc.docx: 删除 "doc.docx" 文件的归档属性。
此外,/s 参数表示要递归地应用于所有子目录中的文件,而 /r 参数则表示要显示每个文件的属性。
attrib /s /r myfolder 查看 "folder" 文件夹及其子文件夹下所有文件属性。
**fc:**用于比较两个文件或多个文件之间的内容差异。一般用于比较文本文件,不支持比较二进制文件。
bash
fc /b file.txt file1.txt
/B:比较文件时忽略空格字符。
/C:在比较之前将文件转换为大/小写。
/L:显示详细的比较结果,包括行号。
/N:显示行号,但不显示任何文本输出。
/T:将制表符扩展为多个空格进行比较。
**cls:**清除命令提示符窗口中的屏幕内容。
2. 进程相关命令
**tasklist:**用于列出当前系统中所有正在运行的进程的详细信息,包括进程ID(PID)、内存使用情况、会话ID等。
bash
1.列出所有正在运行的进程:
tasklist
2.筛选正在运行的进程:
tasklist /fi "status eq running"
3.显示特定进程名称的信息:
tasklist /fi "imagename eq notepad.exe"
这个命令会显示所有名为 notepad.exe 的进程的详细信息。
4.显示详细的进程信息:
tasklist /v
使用 /v 参数可以显示更详细的进程信息,包括用户名和窗口标题。
**taskkill:**用于终止一个或多个正在运行的进程。
bash
1.终止指定进程:
taskkill /PID 1234
这个命令会终止进程ID为 1234 的进程。
2.终止指定进程名称的进程:
taskkill /IM notepad.exe
这个会终止所有名为notepad.exe的进程。
3.强制终止进程:
taskkill /F /PID 5678
使用 /F 参数可以强制终止指定进程ID为 5678 的进程,即使进程不响应。
4.远程终止指定进程:
taskkill /S <计算机名> /U <用户名> /P <密码> /PID 4321
这个命令允许在远程计算机上通过提供用户名和密码来终止指定进程ID为 4321 的进程。
**wmic:**用于执行Windows管理信息命令(WMI),可以用来获取关于操作系统、硬件和软件的详细信息,包括进程信息。
bash
1.查询系统信息:
wmic os get Caption, Version, InstallDate
这个命令会查询操作系统的名称、版本和安装日期信息。
2.查询特定进程信息:
wmic process where name="notepad.exe" get ProcessId, Caption, CommandLine
这个命令会查询所有名为 notepad.exe 的进程,并显示它们的进程ID、标题和命令行参数。
3.列出所有正在运行的进程:
wmic process get ProcessId, Caption, CommandLine
这个会列出系统中所有正在运行的进程,并显示它们的进程ID、标题和命令行参数。
4.终止特定进程:
wmic process where ProcessId=1234 delete
这个命令会终止进程ID为 1234 的进程。
**taskmgr:**用于启动Windows任务管理器图形界面,可以通过图形界面对进程进行管理和监视。
3. 磁盘相关命令
**chkdsk:**用于检查和修复文件系统错误,特别是在磁盘出现问题时很有用。
bash
1.检查并修复错误:
chkdsk C: /f
这个命令将检查指定驱动器(这里是 C:)上的错误,并尝试修复找到的问题。/f 参数表示修复被发现的错误。
2.扫描磁盘但不修复:
chkdsk C: /scan
使用 /scan 参数可以让 chkdsk 命令扫描驱动器上的文件系统错误,但不会执行修复操作。这个参数主要用于扫描和诊断磁盘健康状态,而非修复。
3.显示 chkdsk 的详细输出:
chkdsk C: /v
使用 /v 参数可以显示详细的 chkdsk 输出,包括文件系统的大小、每个文件的占用情况以及发现的任何错误。
**format:**用于格式化磁盘分区,将文件系统写入到指定的分区上。
bash
1.快速格式化为 NTFS 文件系统:
format C: /fs:ntfs /q
这个命令将快速格式化 C: 分区为 NTFS 文件系统。/fs:ntfs 参数指定了要使用的文件系统类型,/q 参数表示执行快速格式化,跳过表面上的数据擦除过程,但不会删除数据,而是清除文件系统表。
2.完全格式化为 FAT32 文件系统:
format D: /fs:fat32
这个命令将 D: 分区完全格式化为 FAT32 文件系统。完全格式化将删除分区上的所有数据,并创建一个新的文件系统。
4.网络相关命令
**ipconfig:**用于显示和管理网络配置信息。
bash
1.显示所有网络适配器的详细配置信息:
ipconfig /all
这条命令会显示所有网络适配器的详细配置信息,包括 IP 地址、子网掩码、默认网关、DNS 服务器以及物理地址(MAC 地址)等。
2.显示指定网络适配器的配置信息:
ipconfig /adapter_name
替换 adapter_name 为实际的网络适配器名称或索引号,可以显示指定适配器的配置信息。
3.显示网络适配器的状态:
ipconfig /showclassid
指定网络适配器的 DHCP 类标识符。
4.显示 DHCP 服务器的设置:
ipconfig /allcompartments /all
显示所有隔室的详细 DHCP 服务器设置。
5.刷新 DHCP 租约:
ipconfig /renew
这个命令会尝试续订通过 DHCP 分配的 IP 地址。
6.释放 DHCP 租约:
ipconfig /release
这个命令会释放当前使用的 DHCP 租约,导致网络适配器不再使用 IP 地址。
7.显示 DNS 缓存:
ipconfig /displaydns
这个命令会显示本地计算机的 DNS 缓存记录。
8.清除 DNS 缓存:
ipconfig /flushdns
这个命令会清除本地计算机的 DNS 缓存,有助于解决 DNS 解析问题。
**ping:**用于测试网络连接的可达性和测量往返时间(RTT)。
bash
1.基本的ping测试:
ping hostname
替换 hostname 为要测试的目标主机名或IP地址。这条命令将发送 ICMP 数据包到目标主机,并显示每个数据包的往返时间。
2.指定ping次数:
ping -n count hostname
-n count 参数指定发送数据包的次数。例如,ping -n 5 www.example.com 将发送 5 个数据包到 www.example.com。
3.持续ping测试:
ping -t hostname
-t 参数会持续发送 ICMP 数据包到目标主机,直到手动停止(通常通过 Ctrl + C)。这在需要连续监测目标主机的网络可达性时很有用。
4.设定数据包大小:
ping -l size hostname
-l size 参数允许指定发送数据包的大小(字节)。例如,ping -l 1000 www.example.com 将发送大小为 1000 字节的数据包。
5.设定超时时间:
ping -w timeout hostname
-w timeout 参数指定等待每个数据包的超时时间(毫秒)。默认情况下,超时时间为 4000 毫秒(4 秒)。
6.使用IPv6地址:
ping -6 ipv6_address
-6 参数用于发送 ICMPv6 数据包到指定的 IPv6 地址。
7.使用特定网络接口:
ping -S source_ip hostname
-S source_ip 参数允许指定发送 ICMP 数据包时使用的源 IP 地址。
8.显示更多详细信息:
ping -a hostname
-a 参数会尝试反向解析目标主机的IP地址,显示主机名。
**netstat:**用于显示网络连接、路由表和网络接口统计信息。
bash
1.显示活动的网络连接:
netstat -a
-a 参数显示所有活动的网络连接和监听端口。
2.显示路由表:
netstat -r
-r 参数显示当前的路由表,包括目标网络地址、网关、接口和路由类型。
3.显示网络接口统计信息:
netstat -e
-e 参数显示以太网接口的统计信息,包括接收和发送的数据包数量和错误数量。
4.显示 PID 和进程名称:
netstat -b
-b 参数显示每个网络连接的对应进程的 PID 和进程名称。需要管理员权限运行此命令。
5.显示特定协议的连接:
netstat -p protocol
-p protocol 参数显示特定协议(如 TCP、UDP)的连接状态。
6.显示统计信息:
netstat -s
-s 参数显示每个协议的统计信息,包括传输数据量、错误数等。
7.显示数字格式的地址和端口:
netstat -n
-n 参数显示地址和端口号的数字格式,而不进行名称解析。
8.显示 IPv6 地址:
netstat -6
-6 参数显示 IPv6 地址的连接情况。
**tracert:**用于跟踪网络数据包从源到目的地的路径
bash
1.基本使用方法:
tracert destination
这将显示数据包从本地计算机到目标地址之间经过的所有路由器的路径。
2.指定最大跃点数:
tracert -h max_hops destination
-h 参数用于指定数据包在到达目的地之前可以经过的最大跃点数。
3.显示每一跃点的详细信息:
tracert -d destination
-d 参数显示每个跃点的详细信息,包括 IP 地址,但不进行反向 DNS 查询。
4.使用 ICMP 协议:
tracert -4 destination
-4 参数使用 ICMPv4 数据包进行跟踪。
5.使用 IPv6:
tracert -6 destination
-6 参数使用 ICMPv6 数据包进行 IPv6 跟踪。
6.记录路由器的每个响应时间:
tracert -w timeout destination
-w 参数指定每个路由器的响应超时时间,单位为毫秒。
**nslookup:
**用于查询DNS(Domain Name System)域名解析信息
bash
1.基本使用方法:
nslookup domain
这将查询指定域名的DNS解析信息,包括IP地址。
2.指定DNS服务器:
nslookup domain server
在查询时指定使用的DNS服务器。
3.反向查询:
nslookup IP_address
通过IP地址进行反向DNS查询,显示对应的域名。
4.详细查询:
nslookup -debug domain
-debug 参数显示详细的调试信息。
5.查询特定记录类型:
nslookup -type=record_type domain
-type=record_type 参数用于指定查询的记录类型,如A记录、MX记录等。
6.设置递归查询:
nslookup -recurse domain
-recurse 参数设置递归查询。
7.退出 nslookup:
nslookup
> exit
在交互模式下,使用 exit 命令退出 nslookup。
**arp
:**用于显示和修改地址解析协议(ARP)缓存。
bash
1.显示当前 ARP 表:
arp -a
这将显示本地计算机的 ARP 表,包括每个 IP 地址与相应的 MAC 地址的映射关系。
2.清除 ARP 缓存:
arp -d
这会清除本地计算机的 ARP 缓存,删除所有条目。
3.添加静态 ARP 条目:
arp -s IPAddress MACAddress
-s 参数用于手动添加一个静态 ARP 条目,将指定的 IP 地址与 MAC 地址关联起来。
4.删除静态 ARP 条目:
arp -d IPAddress
使用 -d 参数加上 IP 地址可以删除指定的静态 ARP 条目。
route:
用于查看和操作IP路由表。
bash
1.显示当前路由表:
route print
print 参数用于显示当前的路由表。
2.添加路由:
route add destination_network mask subnet_mask gateway_ip metric_cost
add 参数用于添加新的路由条目。
3.删除路由:
route delete destination_network
delete 参数用于删除现有的路由条目。
4.设置默认网关:
route add 0.0.0.0 mask 0.0.0.0 gateway_ip
这将设置系统的默认网关。
5.显示详细信息:
route print -4
-4 参数显示IPv4路由表的详细信息。
5. 其他命令
msconfig:
管理系统启动选项和服务。
**regedit:**打开注册表编辑器。