用了十几年电脑,回过头来发现最趁手的工具反而是那个黑底白字的命令行窗口。很多人一看到cmd就发怵,觉得那是老古董、技术宅才用的东西,但实际工作中,批量改文件名、排查网络故障、清理系统垃圾、写个自动备份脚本,图形界面折腾半天的事,几行命令几秒钟就干完了。这篇东西我打算把平时最常用、最基础的DOS命令从头捋一遍,不讲花活,只讲真正常用、能直接解决实际问题的那些。
看完你应该能掌握三件事:第一,知道常用命令各自是干什么的、怎么用;第二,遇到"端口被占用""文件删不掉""网络不通"这类问题,能自己用命令排查;第三,能写几个简单的批处理脚本,把重复劳动交给电脑。适合刚入行的技术岗新人、运维同行,以及所有想提升日常电脑操作效率的普通用户。文章里所有命令我都用实际场景演示过,你跟着敲一遍就能上手。
1. 先搞清楚DOS命令到底是什么
1.1 命令行界面和图形界面的关系
现在大家用的是Windows,平时操作都是鼠标点图标、开窗口,这叫图形用户界面。DOS命令走的是另一条路:你在命令行窗口里输入一串字符,回车,电脑执行,再输出结果。很多年轻人没经历过DOS时代,但这不代表这些命令过时了,恰恰相反,Windows底层的很多操作,通过命令行来做反而更直接、更高效。
举个最实在的例子:你在某个文件夹里有一千个文件,文件名都是IMG_001.jpg这种格式,想统一改成2024_photo_001.jpg。用鼠标一个个重命名,要点两千下鼠标,用命令行一条ren命令就搞定了。这种批量操作的场景,图形界面永远比不过命令行。
还有一个很多人忽略的点:命令行的操作方式在不同机器上几乎是一致的。今天你在自己电脑上学会的命令,到了服务器上(很多时候服务器没有图形界面,只有命令行)照样能用。这也是为什么运维岗位面试几乎必考基础命令——这不是怀旧,是实用。
1.2 打开命令行的几种方式
打开命令行窗口,最常用的方法就两个。
第一种,按Win + R组合键,弹出运行对话框,输入cmd,回车。这是最快的方式,任何时候都能用。
第二种,在文件资源管理器里打开任意文件夹,在地址栏直接输入cmd,回车。这个技巧特别实用,因为打开的窗口会自动定位到你当前所在的文件夹,省去了用cd命令切目录的步骤。我在处理某个项目文件时,基本都是先打开文件夹,再在地址栏敲cmd,直接就在当前目录干活了。
另外右键点击Windows开始菜单,也能看到"终端"或"命令提示符"的选项,部分情况下需要以管理员身份运行,稍后我会专门讲什么时候需要管理员权限。
1.3 先搞懂工作目录这个核心概念
命令行里有个非常重要的概念叫"工作目录",就是你当前命令作用的文件夹位置。很多新手命令敲了没反应,或者提示找不到文件,十有八九是没搞清楚自己现在在哪个目录下。
窗口里显示的路径提示符,比如C:\Users\张三>,就代表当前工作目录是C:\Users\张三。如果你想操作桌面上的文件,而当前目录在系统盘其他地方,直接输入文件名是找不到的,得先切换目录或者写完整路径。
盘符切换有个小细节:Windows命令行里,直接输入D:回车就能切换到D盘,不需要加cd。我第一次教别人这个操作时,好几个人都习惯性敲了cd D:,结果没有任何反应。记住,切盘符就是直接敲盘符加冒号,非常简单。
跨盘符切目录就要用到cd /d参数了,比如从C盘直接切到D盘的某个文件夹,命令是cd /d D:\work\project。这个/d参数在混合路径操作时非常高频,后面细说。
2. 目录操作:绕不开的第一步
2.1 dir:查看目录里有什么
dir是最基础的命令,作用就是列出当前目录下的文件和子文件夹。我把它理解成命令行版的"打开文件夹看内容"。
直接敲dir,会显示当前目录下的所有文件和文件夹,包括文件大小、修改日期、类型这些信息。列出来的东西很多看着乱?没关系,记住几个常用参数就行:
dir /w:宽屏方式显示,一行列出多个文件,只看文件名时用这个最清爽。dir /a:显示所有文件,包括隐藏文件和系统文件。默认的dir是不显示这些的,需要排查问题时经常用。dir *.txt:配合通配符,只显示所有.txt后缀的文件。*代表任意长度的字符,?代表单个字符,这两个通配符在几乎所有命令里都通用。
我实际项目里最常用的是dir /b,这个参数只显示文件名的简洁列表,没有任何多余信息。做批量处理时,经常需要先把目录里的文件名列表导出来,命令就是dir /b > list.txt,把结果写入文件,后续脚本再读取这个列表,一气呵成。
2.2 cd:切换工作目录
cd是change directory的缩写,作用是切换当前工作目录。这是使用频率最高的命令之一,掌握它基本就掌握了命令行的"走路方式"。
常用操作:
cd ..:返回上一级目录。注意后面有个空格,cd..在某些环境下也能用,但规范写法是cd ..。cd \:直接回到当前盘的根目录。从很深的一层层目录里一下子跳回根部,就靠这一条。cd 文件夹名:进入当前目录下的指定子文件夹。cd /d 完整路径:跨盘符切换目录。比如当前在C盘,想去D盘的tools目录,直接cd D:\tools是不行的,必须写成cd /d D:\tools。
这里有个我踩过很多次的坑:cd命令只能切换到文件夹,不能直接"进入"一个文件。比如你想查看某个文本文件,用cd指向它是没用的,会直接报错"系统找不到指定的路径"。查看文件内容要用后面会讲的type命令,这两个操作容易混淆。
2.3 md和rd:创建与删除目录
md是make directory的缩写,用于创建新文件夹,完整写法也可以记mkdir,两个都行。比如md D:\backup\2024,如果backup不存在,这条命令会连带着把多级目录一起创建出来,比图形界面里一层层新建文件夹方便得多。
rd是remove directory的缩写,用于删除目录。但有个重要限制:默认情况下它只能删除空目录,目录里只要有文件或子文件夹,就会提示"目录不是空的"。想强制删除整个目录树,要加参数:rd /s /q 目录名。
/s代表连同所有子目录和文件一起删除,/q是安静模式,不逐个确认。这两个参数组合起来非常危险,因为它会无提示、无回收站地直接删除整个目录。我用这个命令前都会反复确认路径,建议你也养成这个习惯——先dir看一眼目标目录里有什么,再执行删除操作。
2.4 tree:以树状图看目录结构
tree是一个很容易被忽略但很实用的命令。输入tree /f,会以树状图的形式清晰展示当前目录下所有文件夹和文件,层级关系一目了然。
做项目文档时,我需要快速了解某个目录的结构,截图放文档里给同事看,用tree /f比手动在资源管理器里一层层展开快得多。还可以把结果重定向:tree /f > 目录结构.txt,直接生成一份结构清单文件,交接工作时特别方便。
3. 文件操作:日常使用率最高的命令
3.1 copy和xcopy:复制文件与目录
copy是最基本的复制命令,用法是copy 源文件 目标位置。比如copy D:\报告.docx E:\备份\,把报告复制到备份目录。如果目标位置已经存在同名文件,默认会提示是否覆盖,输入Y确认、N取消,这个交互机制在批量脚本里容易卡住,可以在命令后面加/y参数,自动覆盖不询问。
copy命令有一点局限:它默认只复制文件,不能直接复制整个文件夹及其内部结构。跨目录复制多个文件、保留目录结构时,要用更强的xcopy。比如xcopy D:\项目 E:\备份\项目 /e /i /y,/e参数代表复制所有子目录(包括空目录),/i代表如果目标是文件夹就自动创建,/y是静默覆盖。现在还有更强大的robocopy,参数更多、支持断点续传和日志,但日常使用xcopy已经足够了。
3.2 move和ren:移动与重命名
move用来移动文件或目录,也可以用来重命名。移动的用法:move D:\临时文件.txt E:\存档\,文件从D盘到E盘,完成的是"剪切"操作,源文件不再保留。
重命名的用法:move 旧名字.txt 新名字.txt。注意,重命名的本质是"移动到一个新名字的位置",所以路径保持一致、只改文件名即可。
专门的重命名命令是ren(rename),用法更明确:ren 旧名字.txt 新名字.txt。前面提到的批量重命名场景,标题里的IMG_001.jpg批量改成2024_photo_001.jpg,可以在目录里先列出文件名,然后用循环命令处理,但新手可以先从单文件重命名开始练手,ren命令的规则是:通配符*可以匹配多个文件,比如ren *.jpg *.bak.jpg,把目录下所有JPG文件加一个.bak后缀。
3.3 del:删除文件
del用来删除文件,基本用法是del 文件名。删除多个文件时用通配符,比如del *.log删除所有日志文件,del test*删除所有以test开头的文件。
这里必须要提醒:命令行删除的文件不会进回收站,删了就真没了。这是和图形界面最大的区别。所以使用del要格外谨慎,特别是带通配符批量删除的时候。我个人习惯是:批量删除前先加/s参数看会匹配到哪些文件,或者先用dir查一遍匹配结果,确认无误再动手。
如果要删除目录,不要用del 目录名,应该用前面说的rd /s /q。
3.4 type和find:查看与搜索文件内容
type用来在命令行直接查看文本文件内容,比如type readme.txt,文件内容直接输出到屏幕上。日志排查时我经常用这个命令,不用打开编辑器,直接在终端里看几行关键内容。
find是内容搜索命令,格式是find "关键字" 文件名,在文件里找出包含指定文字的行。比如find "ERROR" app.log,把所有包含ERROR的行显示出来。它也可以过滤命令输出,但更常用的是配合管道符号。比如重启服务后查看进程是否拉起,一条tasklist | find "java"就能知道Java进程的名字和PID。
还有一个功能更强的findstr,支持正则表达式,可以做模糊匹配和多个条件搜索,进阶用户建议重点学习这个命令。初级用户先掌握find的基本用法就够了,知道有findstr这么个东西,遇到复杂搜索时再查参数。
3.5 管道、重定向与通配符:命令组合的基石
单条命令能力有限,但把几条命令串起来,威力就完全不一样了。这里涉及三个核心符号:
|管道符:把前一条命令的输出,作为后一条命令的输入。最基本的例子:dir | find ".txt",列出当前目录并筛选出含.txt的行。>重定向:把命令输出写入文件而不是显示在屏幕上。比如ipconfig > 网络信息.txt,把网卡信息保存到文件里。用>>是追加写入,不覆盖原有内容。*和?通配符:前面已经提过,*匹配任意长度的字符序列,?只匹配单个字符。
这三个符号是命令行的"语法糖",理解了它们,你才能写出真正高效的命令组合。拿日常场景举例:你有个目录里混着图片和文档,只想把最近修改的Word文件复制出来,可以先dir /b *.docx > 名单.txt,看一眼名单确认数量,再用xcopy去复制。全程不打开资源管理器,完成得非常干脆。
4. 网络排查命令:实用价值最大的场景
4.1 ipconfig:看一眼本机网络配置
ipconfig是排查网络问题最先应该敲的命令,它显示本机所有网卡的IP地址、子网掩码、默认网关。网络不通时,第一件事就是用ipconfig确认自己的IP是不是正常。
常用的几个变体:
ipconfig /all:显示更完整的信息,包括MAC地址、DHCP状态、DNS服务器等。这些信息在排查IP冲突、DNS解析异常时非常关键。ipconfig /flushdns:清空DNS缓存。电脑打不开某些网站,但手机能打开,多半是DNS缓存出了问题,敲一下这个命令通常就好了。ipconfig /release和ipconfig /renew:释放并重新获取IP地址。DHCP获取IP异常时,这两个命令组合用,相当于让网卡"重新入网"。
实际排查中我的习惯是:先ipconfig看IP是否正常,再ping网关测试内网,如果网关都不通,那基本可以确定是网线、无线连接或交换机层的问题;如果网关通、上不了外网,再看DNS配置是否正确,必要时flushdns清理缓存。这个排查顺序是运维基本功,也是排查思路从链路层往传输层再到应用层的典型路径。
4.2 ping:测试网络连通性
ping可能是知名度最高的网络命令,用来测试和目标主机之间的网络连通性。基本用法是ping 目标地址,目标可以是域名也可以是IP,比如ping baidu.com或者ping 8.8.8.8。
看到"来自xx的回复"就说明通,看到"请求超时"或"无法访问目标主机",就说明链路有问题。这里要注意时限和细节:ping不通不能直接断言对方有问题,有可能是自己防火墙拦截了ICMP协议,也可能是中间路由丢弃了包。最稳妥的做法是换个目标再ping一次,比如先ping网关、再ping公网IP、再ping域名,一层层定位问题在哪一段。
ping -t参数会一直持续发送数据包,直到你按Ctrl + C手动停止。排查网络闪断、看延迟是否稳定时,我经常保持ping -t挂着,一边观察丢包率一边操作其他测试。另外要区分结果里的TTL值,Windows系统默认TTL一般是128,Linux系统一般是64,通过TTL值可以粗判断对方是什么系统,但如今系统类型复杂,只作参考就好。
4.3 netstat:查看端口和连接状态
netstat是我认为最有价值的网络命令之一,它用来显示本机的网络连接、端口监听和路由表信息。最常见的用法是netstat -ano。
-a显示所有连接和监听端口,-n用数字形式显示地址和端口(不做域名反解,速度快),-o显示对应的进程PID。执行后你会看到密密麻麻的列表,包含本地地址、外部地址、状态(比如LISTENING监听中、ESTABLISHED已建立连接)。
日常开发里最典型的场景就是端口被占用。启动某个服务时提示"端口8080已被占用",排查步骤是:
netstat -ano | findstr 8080,在输出里筛出包含8080的行。- 看最后一列的PID号,比如是
12345。 tasklist | findstr 12345,查这个PID对应的是哪个进程。- 确认是残留的旧进程,就用
taskkill /f /pid 12345强制结束它。
整个过程一分钟不到,比在图形界面上逐个猜快得多。netstat还可以配合-p tcp只看TCP协议的连接,信息量更聚焦。
4.4 用netstat和taskkill解决端口占用问题
接上文,端口被占用是开发同学几乎每天都会遇到的问题。很多时候是上次运行的程序没有完全退出,进程还在后台占着端口。完整解决流程我再说细一点:
打开命令行,敲netstat -ano | findstr 8080,假设结果显示:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 6428最后那个6428就是PID。然后确认进程身份:tasklist | findstr 6428,看到进程名是test.exe,这就是之前没退干净的进程。执行taskkill /f /pid 6428强制结束,再回头看netstat -ano | findstr 8080,没有输出,说明端口已经释放,服务再启动就能正常监听了。
有个容易踩的坑:taskkill杀错进程可能导致系统相关功能异常,所以杀之前最好用tasklist确认一下进程名。如果PID对应的进程是系统进程或正在运行的业务程序,不要贸然强杀,要先评估影响。
5. 系统管理命令:批量操作和自动化
5.1 tasklist和taskkill:进程管理
tasklist相当于命令行版的任务管理器,列出当前运行的所有进程,包含进程名、PID、内存占用等信息。直接执行就能看,加参数/fi可以按条件过滤,比如tasklist /fi "imagename eq notepad.exe",只查看记事本进程。
taskkill则是结束进程的命令,常用参数:
taskkill /pid 1234:按PID结束进程。taskkill /im notepad.exe:按镜像名(进程名)结束所有同名进程。taskkill /f:强制结束。有些进程不响应普通结束请求,加/f才能杀掉。taskkill /t:连同子进程一起结束。
批量脚本里这些命令非常有用。比如远程机器上某个程序卡死了,又没法鼠标操作,用taskkill /im 某程序.exe /f直接结束。Windows服务排查场景里,先tasklist | findstr "服务名"看进程是否存在,再决定重启还是杀进程。
5.2 systeminfo:一键汇总系统信息
systeminfo一次性展示系统的大量基础信息:操作系统版本、硬件配置、内存大小、网卡信息、补丁安装历史等。排查环境差异、写技术文档时很好用。
比如同事说"我这跑不起来,是不是配置问题?",我一般让他执行systeminfo,把输出发过来,对比一下系统版本、内存和补丁号,基本就能定位到问题原因。输出信息也可以重定向到文件:systeminfo > config.txt,方便存档对比。
有一点需要注意:systeminfo执行时间可能比较长,尤其是在补丁文件较多的新系统上,有时要等几十秒甚至几分钟,别以为卡死了,耐心等着就行。
5.3 shutdown:定时与远程关机
shutdown命令虽然简单,但使用场景不少。比如下班前要让电脑在半小时后自动关机,图形界面的设置反而麻烦,命令一行就解决:shutdown /s /t 1800。/s是关机,/t后面跟秒数(1800秒是30分钟)。
其他常用参数:
shutdown /r /t 0:立即重启,/t 0表示不等待。shutdown /a:取消已经计划的关机任务。设置错了定时关机,趁还没执行赶紧敲这个取消。shutdown /s /f:强制关闭所有应用程序再关机。某些程序不响应关闭信号时用。
提醒一下,如果设置了/t时间,命令行会弹出通知提示系统将在多久后关机,这是正常的。测试环境里我经常用shutdown /r /t 5让机器5秒后重启,比鼠标点"开始-重启"快得多。
6. 批处理:把命令变成脚本
6.1 创建一个最简单的批处理文件
单条命令再高效,也敌不过一次执行一整套操作。批处理文件就是把多条命令写进一个.bat文件,双击就能顺序执行,还可以加判断和循环,很多重复性工作可以彻底自动化。
新建批处理文件的方式很简单:用记事本新建文件,输入命令,一行一条,保存时把文件名后缀改成.bat,编码建议选ANSI(某些情况下选UTF-8会导致中文乱码,这点后面展开讲)。
一个最小化的批处理文件长这样:
@echo off echo 开始备份... xcopy D:\work E:\backup\work /e /i /y echo 备份完成。 pause逐行解释一下:
@echo off:关掉命令回显。没有这行,命令行会把每一条命令本身也显示出来,看起来乱糟糟的,加上之后只显示命令的输出结果。开头的@表示这一行本身也不显示。echo ...:在屏幕上输出一行文字,相当于给脚本加注释和提示。xcopy ...:实际的备份命令。pause:脚本执行到这里暂停,显示"请按任意键继续",防止窗口一闪而过,方便查看执行结果。
双击这个批处理,它会自动把D:\work整个目录复制到E盘备份目录,操作完成才关窗口。这就是最简单的自动化。
6.2 变量、参数与流程控制
批处理不只是顺序执行命令,它支持变量、参数、判断和循环,写起来和简化版编程语言很像。
先看变量。用set定义变量,使用时用百分号包起来:
@echo off set source=D:\work set target=E:\backup xcopy %source% %target% /e /i /y echo 从 %source% 备份到 %target% pause这样路径只要改一处,脚本复用性大大提高。
再看参数。运行批处理时可以像命令一样传参,%1代表第一个参数,%2是第二个,以此类推。比如:
@echo off echo 正在备份 %1 到 %2 xcopy %1 %2 /e /i /y pause保存后用命令行执行backup.bat D:\work E:\backup,就能把两个路径传进去,一个脚本处理任意目录的备份需求。
流程控制最常用的是if判断。比如判断参数是否为空:
@echo off if "%1"=="" ( echo 请指定源目录 pause exit ) xcopy %1 E:\backup /e /i /y echo 完成 pausefor循环可以做批量操作,比如批量重命名所有.txt文件:for %f in (*.txt) do ren "%f" "前缀_%f"。注意在命令行里直接使用for时变量是单百分号%f,写在批处理文件里要双百分号%%f,这个区别坑了我好几次,现在写脚本时还经常下意识写成单百分号。
6.3 实用脚本示例:一键清理临时文件
理论讲再多,不如给一个能直接用的脚本。下面这个是我自己电脑上常驻的临时文件清理脚本,清理系统临时目录和用户临时目录里超过一定天数的文件:
@echo off echo 开始清理临时文件... del /q /s "%TEMP%\*" 2>nul del /q /s "C:\Windows\Temp\*" 2>nul echo 清理完成。 pause简单解释一下:%TEMP%是系统环境变量,指向当前用户的临时文件夹;/q静默删除不询问;/s递归所有子目录;2>nul把出错信息(比如某些文件被占用删不掉)屏蔽掉,不让它们刷屏。实际执行时,你可能看不到什么输出,但磁盘空间确实会释放不少,尤其是长期没清理过的机器。
这里有个细节:临时文件夹里可能有个别文件被当前运行的进程占用,删不掉很正常,不影响大局。想真正看到效果,建议执行前先看一眼C盘剩余空间,清理完再看一眼,对比数字更直观。
7. 常见报错与排查技巧
7.1 提示"不是内部或外部命令"怎么办
这条报错大概是新手遇到频率最高的了。原因很简单:系统在PATH环境变量指定的路径里找不到你输入的命令。常见情况有三种:
第一,命令本身不存在或拼写错误。比如把ipconfig敲成了ipconfing,系统当然找不到。先检查拼写,这是最容易被忽略的原因。
第二,命令是对的,但它不在当前目录,也不在PATH路径里。比如你在C盘某个随意目录下敲D:\tools\某工具.exe里的命令名,系统找不到。解决办法是使用完整路径,或者把工具目录添加进PATH环境变量。
第三,cmd窗口不是你期望的运行环境。比如某些命令只在PowerShell里有,在cmd里敲就会报"不是内部或外部命令"。
排查步骤:先用where 命令名查看命令的完整路径,看系统能不能找到它;如果找不到,检查PATH环境变量配置;如果命令就在某个目录下,那就用cd /d 那个目录切过去再执行,或者直接写完整路径。
7.2 权限不足:必须用管理员身份运行
命令行里部分命令需要管理员权限,最典型的包括:ipconfig /flushdns、某些系统文件操作、安装/卸载服务、修改系统关键设置。
如果不以管理员身份运行,会出现"拒绝访问"或"请求的操作需要提升"的提示。解决办法不难:右键点击命令提示符(或Windows终端),选择"以管理员身份运行",再执行命令即可。
我的习惯是:平时用普通窗口处理日常文件操作,只有确定要动系统设置时才特意开一个管理员窗口。全用管理员权限运行不是不行,但没必要,还容易在删文件时误操作,权限收着点更安全。
7.3 中文乱码问题
命令行里中文显示成乱码,绝大多数情况是编码不匹配。Windows命令行默认的代码页(字符编码)可能是936(简体中文GBK),也可能是65001(UTF-8),如果文件是UTF-8编码,而当前代码页是GBK,type查看就会乱。
解决方法是切换代码页:chcp 65001切到UTF-8编码,chcp 936切回GBK中文编码。写完批处理文件后中文显示乱码,多半是保存编码选错了,用记事本另存为ANSI编码,或者在脚本开头加一句chcp 65001 >nul固定使用UTF-8。
这里给个实操建议:包含中文提示语的批处理脚本,我一般统一用ANSI编码保存,并且不依赖chcp切换。因为不同终端环境的编码默认值不一样,脚本开头写死chcp反而会造成混乱。宁可脚本里英文提示,也不要去赌目标机器的编码设置,实测最稳定。
7.4 文件被占用删不掉怎么办
Windows下删除或移动文件时提示"文件正在使用",是最让人恼火的问题之一。原因是某个进程正在占用这个文件,系统为了保护数据一致性,拒绝删除。
排查思路是找到占用文件的进程,然后决定是否结束它。比如删除某个软件目录下的文件提示占用,可以先看它的主进程还在不在运行,在的话先关闭或结束进程,再执行删除。也可以用tasklist | findstr 文件名关键词查有没有相关进程,确认无进程后重新删除。
如果无论如何都找不到占用进程,那就考虑用rd /s /q删除整个目录试试,有时父目录权限问题是元凶。再不行就重启电脑后再删,这是最稳妥的方案。记住一点:别硬扛,重启是解药,不是什么丢人的事,干净利落。
8. 常用命令速查表
最后整理一张速查表,把全文提到的核心命令浓缩在这里,平时记不住翻一下就行。
| 命令 | 作用 | 常用示例 |
|---|---|---|
dir | 查看目录内容 | dir /w、dir /b |
cd | 切换目录 | cd ..、cd /d D:\tools |
md/mkdir | 创建目录 | md D:\backup |
rd | 删除目录 | rd /s /q D:\temp |
copy | 复制文件 | copy 1.txt D:\bak\ |
xcopy | 复制文件与目录树 | xcopy D:\src E:\dst /e /i /y |
move | 移动或重命名 | move 1.txt D:\bak\ |
ren | 重命名文件 | ren old.txt new.txt |
del | 删除文件 | del *.log |
type | 查看文本文件内容 | type readme.txt |
find | 在文件中搜索文字 | find "ERROR" app.log |
findstr | 增强搜索,支持正则 | findstr /i "error" *.log |
ipconfig | 查看网络配置 | ipconfig /all |
ping | 测试连通性 | ping -t 目标地址 |
netstat | 查看端口和连接 | netstat -ano |
tasklist | 查看进程列表 | tasklist /fi "imagename eq notepad.exe" |
taskkill | 结束进程 | taskkill /f /pid 1234 |
systeminfo | 查看系统信息 | systeminfo > sys.txt |
shutdown | 关机/重启/定时 | shutdown /s /t 1800 |
chcp | 切换代码页 | chcp 65001 |
写到这里,我回想了这些年实际使用的经历,最深的体会是:命令行学习不要贪多求全,从解决眼前的问题入手就好。今天端口被占了,就学netstat和taskkill;明天要批量改文件名,就学ren和for。每解决一个真实问题,命令就内化成自己的技能,比拿本书从头背到尾有效得多。
再分享一个小技巧:遇到不会的命令,先敲命令名 /?,几乎每个命令都自带帮助文档,会列出所有参数和示例,比上网搜还快还准。这个习惯我一直保持到现在,遇到冷门参数基本靠这个解决。
最后,把这篇文章里提到的命令挨个敲一遍、亲手处理几个实际问题,比看十篇教程都强。命令行这东西,上手了就会越来越依赖,因为它确实快、确实省事。你第一次用netstat抓到端口占用时,第一次用批处理一键完成备份时,会感受到那种"原来还能这样干活"的痛快。