打开Dos窗口
- 打开"运行"对话框(Win+R)
- 输入cmd,打开控制台命令窗口...
- 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令
注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口
控制台命令窗口中一些技巧
- 复制内容:右键弹出快捷菜单,选择“标记(K)”,然后选中所需复制的内容,然后右键即可
- 粘贴内容:右键弹出快捷菜单,选择“粘贴(P)”
- 在文件夹空白处按住Shift,然后右键弹出快捷菜单,可以看到“在此处打开命令行窗口”
- 使用上下方向键,翻看使用过的命令
- tab补齐功能
- 命令参数的路径:要使用反斜杠'',不要使用正斜杠'/' 如:del d:test2filemy.txt
- 命令参数的路径:若存在空格,应使用双引号将路径引起来 如:del "d:program filesfilemy.txt"
- 文件及目录名中不能包含下列任何字符: / : * ? " < > |
获取帮助
command /? // 查看command命令帮助说明
cd /?
- 中断命令执行 Ctrl + Z
cd 切换目录
cd // 显示当前目录
cd .. // 进入父目录
cd /d d:\src // 进入d:\src目录
cd d:\src\main\java // 进入当前目录下的src/main/java文件夹
cd d: // 显示上次d盘所在的目录
md 创建文件夹
md d:\workspace // 在D盘创建workspace文件夹
rd 删除空文件夹
rd java // 删除当前目录下的movie空文件夹
rd /s /q d:\workspace // // 使用安静模式删除d:\test(除目录本身外,还将删除指定目录下的所有子目录和文件)
copy 拷贝文件
copy key.txt c:\doc // 将当前目录下的key.txt拷贝到c:\doc下
copy /Y key.txt c:\doc // 将当前目录下的key.txt拷贝到c:\doc下(不询问,直接覆盖写)
copy /Y key1.txt + key2.txt key.txt // 将当前目录下的key1.txt与key2.txt的内容合并写入key.txt中(不询问,直接覆盖写)
move 移动文件
move *.png test // 将当前目录下的png图片移动到当前目录下test文件夹中 (若test中也存在同名的png图片,会询问是否覆盖)
del 删除文件
del test // 删除当前目录下的test文件夹中的所有非只读文件(子目录下的文件不删除;删除前会进行确认;等价于del test\*)
del /f test // 删除当前目录下的test文件夹中的所有文件(含只读文件;子目录下的文件不删除;删除前会进行确认;等价于del /f test\*)
del /f /s /q test d:\test2\*.doc // 删除当前目录下的test文件夹中所有文件及d:\test2中所有doc文件(含只读文件;递归子目录下的文件;删除前不确认)
++++++++++++++++++++++
/ar、/ah、/as、/aa 分别表示删除只读、隐藏、系统、存档文件
/a-r、/a-h、/a-s、/a-a 分别表示删除除只读、隐藏、系统、存档以外的文件
++++++++++++++++++++++
例:del /ar *.* // 删除当前目录下所有只读文件
例:del /a-s *.* // 删除当前目录下除系统文件以外的所有文件
type 显示文本文件内容
type conf.ini // 显示当前目录下conf.ini的文本内容
type c:\11.txt | more // 分页显示c盘中11.txt的文本内容
进程操作
tasklist // 显示当前运行的进程信息(可查看PID)
taskkill 结束指定的进程
例:taskkill /im notepad.exe // 结束名为notepad.exe的进程
网络操作
ping // 用于检测网络是否通畅,以及网络时延情况(工作在ICMP协议上)
ping baidu.com // 测试与baidu服务器的连接情况
ping -l 65500 -n 10 qq.com // 向qq.com发送10次65500字节的ping
ping -t baidu.com // 不断地测试baidu服务器的连接情况 【Ctrl+Pause Break:查看ping的统计信息;Ctrl+C:终止当前任务】
ipconfig /all // 查看本地ip地址等详细信息
ipconfig /displaydns // 显示本地dns缓存的内容
ipconfig /flushdns // 清除本地dns缓存的内容
nslookup www.cnblogs.com // 获取www.cnblogs.com的域名解析
netstat -a // 查看开启了哪些端口
netstat -n // 查看端口的网络连接情况
netstat -v // 查看正在进行的工作
netstat -p tcp // 查看tcp协议的使用情况
tracert 182.140.167.44 // 查看本机到达182.140.167.44的路由路径
route print // 显示出IP路由
telnet 182.140.167.44 8000 // 探测182.140.167.44是否使用TCP协议监听8000端口(注意:telnet命令不支持UDP端口检测)
arp // 显示和修改地址解析协议(ARP)使用的“IP到mac”的地址转换表
arp -a // 显示arp缓存表
文本处理
find // 文件中搜索字符串
find /N /I "pid" 1.txt // 在1.txt文件中忽略大小写查找pid字符串,并带行号显示查找后的结果
find /C "exe" 1.txt // 只显示在1.txt文件中查找到exe字符串的次数
find /V "exe" 1.txt // 显示未包含 1.txt文件中未包含exe字符串的行
findstr 文件中搜索字符串
findstr "hello world" 1.txt // 在1.txt文件中搜索hello或world
findstr /c:"hello world" 1.txt nul // 在1.txt文件中搜索hello world,并在每行结果前打印出1.txt: 注:findstr只有在2个及以上文件中搜索字符串时才会打印出每个文件的文件名,nul表示一个空文件
findstr /s /i "Hello" *.* // 不区分大小写,在当前目录和所有子目录中的所有文件中的hello
Dos命令查看端口占用及关闭进程
1.查看端口占用
在windows命令行窗口下执行
netstat -aon|findstr "8080"
查询结果如下:
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 2448
2.关闭进程
- 按进程号关闭进程
taskkill /pid 2448 /pid 2449
- 按进程名关闭进程
taskkill /im notepad.exe /im iexplorer.exe
如果是要关闭所有chrome进程的,则使用通配符*,即:
taskkill /im chrome*.exe
- 强行终止进程
taskkill /f /im notepad.exe
taskkill /f /pid 2152
- 端口状态
- LISTENING状态
服务启动后首先处于侦听(LISTENING)状态。
2 ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3 CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4 TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。
5 SYN_SENT状态
SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。