1. 为什么二十年过去,命令行依然是值得重学的"老古董"
前两天在群里看到有人问"DOS是不是早就淘汰了,还有必要学吗",底下回答五花八门。说实话,这个问题我太熟悉了——每次带新人,总有人觉得开个命令行窗口就是"老古董行为",图形界面点什么都有,何必背命令?
但真正干过运维、做过开发、或者只是单纯想把电脑用明白的人,心里都清楚:命令行这个东西,从来就没有退出过舞台。你现在用的Windows系统里,按下Win + R输入cmd回车,弹出的这个黑底白字的窗口,本质上就是当年DOS命令行的直接后裔。日常你装的Git、Vim、各种开发工具,还有网上一搜一大把的"C盘清理命令""telnet命令怎么用""开机启动项cmd命令",全是围绕这个窗口展开的。
这篇文章我不想写成命令大全——那种东西帮助文档里都有,背完就忘。我想用实际场景来讲清楚:DOS/CMD命令到底能解决什么问题、哪些命令值得花时间掌握、用的时候会踩哪些坑、以及怎么把我们常听到零散命令组合成真正有用的操作链。不管是零基础的小白,还是对命令行半懂不懂、只会cd和dir的朋友,这篇文章应该都能让你对命令行有个真正立体的认识。
1.1 先澄清概念:DOS和CMD到底是不是一回事
很多人把"DOS命令"和"CMD窗口里的命令"混为一谈,这其实是个历史误会。
DOS,全称Disk Operating System,磁盘操作系统,是微软在上世纪80到90年代推出的命令行操作系统。那时候没有图形界面,电脑开机进入的就是一个黑色屏幕加一行提示符,你想操作电脑,就得敲命令。Windows 95/98虽然有了图形界面,但底层还是挂着DOS,所以很多老玩家都经历过"在Windows里打开一个MS-DOS窗口"的年代。
到了Windows 2000/XP之后,系统内核彻底脱离了DOS,变成了纯32位/NT架构。但微软保留了一个叫cmd.exe的程序,用来模拟当年的命令行环境。我们平时说的"打开DOS窗口""执行DOS命令",严格来说应该叫"CMD命令"或"命令行命令"。只不过大家叫顺口了,DOS这个词反而成了命令行的代名词。
理解了这层关系,你就明白一个关键点:现在学的"DOS命令",并不是在操作一个几十年前的古董系统,而是在和一个仍然活跃在现代Windows底层的命令行解释器打交道。Windows的很多图形化管理工具,比如磁盘清理、网络诊断、服务管理,本质上是给命令行工具套了一层图形外壳。你点鼠标能做到的事,命令行基本都能做;命令行能做到的事,图形界面却不一定能做——后面我会用具体例子说明。
1.2 命令行比鼠标高效的根本原因
为什么命令行的生命力这么强?我自己的体会是三个字:可编程,再拆开说就是批量、远程、自动化。
拿批量重命名来说。你有一套100集的电视剧文件,文件名里带着"[xxx.com]下载"这种后缀想去掉,鼠标一个一个重命名能把你逼疯。但命令行里一条for循环就全搞定了,ren命令一瞬间处理完100个文件,这个效率差距是数量级的。
再比如远程维护。服务器出了网络故障,图形界面连不上、远程桌面也打不开,这时候一个命令行工具反而最容易穿透过去。很多网络协议在底层就是为命令行设计的,你图形界面用到的"网络诊断工具"跑的大概率还是那几条ping、tracert、telnet命令。
还有一个关键点:命令可以写进脚本里。把十几条命令按顺序写进一个扩展名为.bat或.cmd的文件,双击一下就能自动执行,这就是最朴素的自动化。系统运维、数据备份、环境部署,这些重复劳动都可以用脚本一键完成。图形界面操作是一次性的,点完就没了;命令行的威力在于可以沉淀、组合、复用。
所以我的结论很简单:命令行不是淘汰的技术,而是每个用电脑的人值得掌握的底层技能。不要求你背几百条命令,但掌握最核心的二三十条,你处理电脑问题的能力会直接上一个台阶。
2. 文件与目录操作:最常用的一批命令,很多人其实只学了一半
文件操作是命令行的基本功,也是日常使用频率最高的部分。但我在带新人时发现一个现象:很多人会cd会dir会copy,但也就到此为止了。这些基础命令的很多强大参数,根本没被用到。
2.1 导航与查看命令:dir和cd的隐藏参数
先说dir,这是查看目录内容最基础的命令。裸敲dir,显示的是当前目录下的文件和文件夹列表,但信息量有限。实际项目中我几乎总是带参数用:
dir /b:只显示文件名,不带大小和日期,干净利落。这个输出特别适合重定向到文件里,比如dir /b > filelist.txt,一键导出目录清单。dir /s:递归显示子目录里的所有文件。你要是想知道整个D盘有多少个MP3文件,dir /s /b D:\*.mp3直接给你列全。dir /a:显示隐藏文件和系统文件。遇到文件夹里明明有东西却看不见的情况,dir /a能帮你确认是不是被隐藏了。dir /o:按某种规则排序,比如/o:-s按文件大小从大到小排,/os从小到大排。
再说cd,切换到其他目录。这里有个新手特别容易卡住的坑:在CMD里,cd C:\Users\你的用户名\Desktop这样直接切到别的盘符,会失败。你需在cd后面加一个/d参数,也就是写成cd /d D:\某个目录。原因很简单:CMD默认不会帮你切换盘符,/d参数的意思是"切换盘符并进入指定目录"。
还有个查看文件内容的小技巧。type命令可以直接在命令行里查看文本文件内容,比如type readme.txt。但如果文件很长,内容刷刷刷全部滚过去,根本来不及看。这时候可以用type 文件.txt | more,或者干脆用more 文件.txt,它每次只显示一屏,按空格键翻下一页,按q键退出,比在图形界面找滚动条要快得多。
2.2 文件操作命令:copy、xcopy、robocopy怎么选
copy命令是最基础的文件复制工具,但它有两个容易被忽视的用法。
第一个是用copy合并文件。两个文本文件想拼成一个,copy 文件1.txt + 文件2.txt 合并后的文件.txt,几秒钟搞定。当年我在没有专门工具的情况下,用这个命令手动拼接过好几个数据导出文件,比打开Excel一个个复制粘贴高效太多。
第二个是批量复制时注意通配符。copy *.jpg D:\备份\会把当前目录下所有jpg文件复制到D盘备份目录。这里有个细节:文件路径里如果包含空格,必须用英文双引号包起来,比如copy "C:\Program Files\某软件\config.ini" D:\backup\。不加引号的话,命令会把路径截断在空格处,然后报"系统找不到指定的路径"。
至于xcopy和robocopy,这是两个比copy强得多的复制工具,适合复制整个目录树。xcopy带了/s参数可以复制子目录,xcopy 文件夹 D:\备份\文件夹 /s /e几乎能完整复制一个目录结构。robocopy是xcopy的升级版,特别适合做镜像复制和增量备份——我第一次用robocopy D:\数据 E:\备份\数据 /mir做目录同步时,真的被它的效率惊艳到了。/mir参数的意思是镜像同步,删除源目录中不存在的文件,让目标目录和源目录完全一致。这个命令在备份场景里非常实用,但也要注意,/mir会删除目标目录里多余的文件,用之前一定要想清楚。
删除文件也有坑。del命令删普通文件没问题,但遇到只读文件会直接拒绝。这时候需要先改属性再删,attrib -r 文件名去掉只读属性,然后del 文件名。删除整个文件夹要用rmdir /s /q 文件夹名,/s指递归删除目录下所有子目录和文件,/q指安静模式不逐个确认。这个命令威力很大,敲下去连回收站都不进,我见过有人把rmdir /s /q后面路径写错,直接删掉了工作目录里的所有东西,所以建议每次敲完命令后,先回车前停三秒钟,看清路径对不对。
2.3 内容搜索要不要用findstr
想知道某个文件里包含不包含"error"这个词,用findstr。这个命令类似Linux里的grep,是CMD里做文本搜索最常用的工具。
基本用法是findstr "关键字" 文件名。比如查日志文件:findstr "ERROR" app.log,它会把所有包含ERROR的行列出来。想在整个目录里递归搜索,加/s参数:findstr /s "关键字" *.log。想忽略大小写,加/i。
findstr还支持简单的正则表达式。比如findstr /r "2024-.*ERROR" app.log可以匹配"2024年某天某时的ERROR记录"。用熟了之后,排查日志效率能翻倍,不用打开一个巨大的日志文件来回滚动找问题。
3. 系统维护与网络诊断:把"C盘瘦身"和"网络不通"拆开来看
文件命令只是基础,命令行真正让我觉得"离不开"的,是它在系统维护和网络诊断场景里的不可替代性。这两块也是网上搜索量最大的方向——不信你看热搜词里"c盘清理命令""telnet命令怎么用""netstat"这些词条的热度,就能感受到大家的真实需求。
3.1 C盘瘦身的命令行方案
C盘爆红大概是每个Windows用户都经历过的噩梦。很多人第一时间想到装各种"清理大师",但用命令行其实可以做同样的事,而且更可控。
第一个命令是cleanmgr,这是Windows自带的磁盘清理工具的命令行入口。直接在CMD窗口输入cleanmgr回车,会弹出磁盘清理的图形界面。如果加参数cleanmgr /sageset:1,会先让你勾选要清理的项目,然后cleanmgr /sagerun:1按之前选择的配置自动执行清理。这个命令对清理系统更新残留、临时文件、回收站内容很有效。
第二个是清理临时文件目录。Windows的临时文件默认存放在两个路径:用户临时目录%temp%和系统临时目录C:\Windows\Temp。命令行里可以直接del /s /q %temp%\*清空用户临时目录。这两个目录里的文件绝大多数是程序运行时产生的缓存,删掉不影响系统。
第三个是dism命令,专治"C盘空间莫名变小"的问题。Windows更新后会残留大量旧版本文件,用dism /online /cleanup-image /startcomponentcleanup可以清理组件存储里的过期版本。我记得有一次帮朋友的电脑做清理,这条命令一下去释放了二十多GB空间。但要注意,这条命令执行时间比较长,中途千万别关窗口或者断电。
如果你怀疑某个文件夹占空间特别大,可以用dir /s /b 目录 | sort /+2147483647之类的命令把文件按路径排序后分析,不过更实用的是用dir /s查看目录总大小。现在很多图形化工具其实就是把这些命令合起来做了个界面,你理解了底层逻辑,用哪个工具都心里有数。
3.2 网络诊断:从ipconfig到telnet的完整链路
网络排查是命令行另一个杀手级应用场景。网上搜"telnet ip 端口 命令"的人特别多,说明大家在用命令行测网络连通性。我经常用的一套链路是这样的:
第一步,ipconfig /all查看本机IP地址、网关、DNS等网络配置。这一步能确认网卡有没有正常获取地址。如果IP是169.254开头的,说明DHCP分配失败,网卡连不上路由器的局域网。
第二步,ping 网关地址测试到网关的连通性。能通说明本机到路由器的链路没问题,不通就是网线、Wi-Fi或者路由器的问题。
第三步,ping 8.8.8.8或ping 223.5.5.5这类公网IP地址,测试外网连通性。这里有个小技巧:域名解析也可能出问题,所以先ping IP再ping域名,比如ping www.baidu.com。如果ping IP通、ping域名不通,那就是DNS配置问题。
第四步,tracert 目标IP跟踪路由。这条命令会列出数据包从本机到目标经过的每一跳,能帮你定位是哪一段网络出了问题。
第五步,netstat -ano查看端口占用和网络连接状态。这个命令在排查"端口被占用导致服务起不来"的场景里尤其好用。比如启动某个应用时提示"端口8080已被占用",你执行netstat -ano | findstr 8080,就能看到是哪条进程的PID占了8080,再用tasklist | findstr PID定位到具体程序。如果确定是没用残留进程,直接taskkill /f /pid 具体的PID把它杀掉。
再来说telnet。很多人知道telnet可以用来测试端口通不通,但它在Windows 10/11上默认是关闭的。你想用的时候会提示"不是内部或外部命令",这其实是功能没启用。解决方法是去"控制面板-程序和功能-启用或关闭Windows功能"里勾选"Telnet客户端",装完就能用了。用法是telnet 目标IP 端口号,打个比方telnet 192.168.1.100 3389,意思是测试这台机器的远程桌面端口通不通。通了会进入一个空界面或者要求输入用户名,不通会直接提示"无法打开到主机的连接"。
3.3 进程与服务:tasklist、taskkill、sc
排查电脑卡顿、杀不掉进程,这些场景也离不开命令行。
tasklist列当前所有进程,tasklist | findstr 进程名快速定位目标进程。taskkill /f /pid 进程PID强制结束进程,/f表示强制。我在处理"某个程序卡死但任务管理器也关不掉"的问题时,都是直接用命令行强杀,比开任务管理器快。
服务管理方面,sc query 服务名查看服务状态,sc config 服务名 start= disabled禁用服务。比如想停掉Windows Defender的实时防护又不想装第三方工具,可以用sc stop WinDefend试试,但注意新版Windows对系统核心服务的保护比较严格,改之前要了解后果。net start和net stop可以启动和停止服务,比如net stop WuAuServ是停掉Windows Update服务,虽然新版里这条命令经常权限不够,但思路是对的。
4. 批处理脚本:从单条命令到自动化,解放双手的临界点
如果说单条命令是手动挡,那批处理脚本就是自动挡。把常用的操作序列写成一个.bat文件,双击执行,这是很多人从"会用命令"到"玩转命令行"的转折点。网上热搜里的"windows脚本命令闪退""开机启动项cmd命令",本质上都是在聊批处理的东西。
4.1 批处理的基本语法:不需要学得很深
批处理文件本质上就是把命令按顺序写进一个文本文件,改扩展名为.bat或.cmd。每行一条命令,Windows会自动从上到下逐行执行。
几个必须懂的基本语法点:
@echo off:关掉命令回显。不加这行的话,屏幕上会显示每条命令本身,显得很乱。加了这个后,只显示命令的执行结果。这是几乎每个批处理脚本的第一行。rem或:::注释,不执行。写脚本一定要加注释,不然过俩月你自己都看不懂当时写的是啥。pause:暂停,显示"请按任意键继续"。脚本执行完毕前加一行pause,可以让窗口停住,方便查看输出。这也是解决"脚本闪退"的最简单手段。set:定义变量。set 变量名=值,使用的时候用%变量名%引用。比如set target=D:\backup,然后copy config.ini %target%\。if和for:条件判断和循环,这两个是让脚本具备"智能"的关键。新手可以先大致了解,遇到具体需求再查怎么用。%1、%2:脚本的外部参数。写一个脚本backup.bat D:\数据,在脚本里%1就代表D:\数据。
4.2 两个拿来即用的脚本模板
分享两个我自己日常在用的脚本,一个是备份脚本,一个是清理脚本,都比较简单但很实用。
自动备份脚本:
@echo off rem 备份D盘数据到E盘backup目录,日期作为子目录名 set source=D:\数据 set target=E:\backup set today=%date:~0,4%%date:~5,2%%date:~8,2% echo 开始备份 %source% 到 %target%\%today% ... robocopy "%source%" "%target%\%today%" /e /copyall echo 备份完成! pause%date%取当前日期,~0,4、~5,2这些是截取日期的年、月、日部分。如果你想要一个可读性更好的日期格式,可以自己根据系统的日期格式调整。这里用了robocopy而不是copy,因为robocopy可以完整复制目录结构,速度也快。注意路径都加了引号,防止路径含空格出问题。
一键清理垃圾文件脚本:
@echo off echo 正在清理用户临时文件... del /s /q "%temp%\*.*" >nul 2>&1 echo 正在清理Windows临时文件... del /s /q "C:\Windows\Temp\*.*" >nul 2>&1 echo 正在清空回收站... rd /s /q C:\$Recycle.bin >nul 2>&1 echo 清理完成! pause>nul 2>&1的作用是把删除过程中的提示信息和错误信息统统屏蔽掉,让输出更干净。rd /s /q清空回收站目录需要管理员权限,建议右键以管理员身份运行这个脚本。
4.3 脚本写好了为什么窗口一闪而过
"windows脚本命令闪退"是热搜词,也是新人最常见的困惑之一。辛辛苦苦写了个脚本,双击,窗口一闪就没了,什么都没看清。
原因很简单:脚本执行完后,CMD窗口就自动关闭了。解决方式有三种。
第一种最简单,在脚本最后加一行pause,让窗口执行完停在原地等你按键。
第二种,在脚本前面加cmd /k。比如你用记事本写脚本,在脚本顶部加一行cmd /k,这样执行完不会退出。
第三种是你想调试脚本时,先不要双击运行,而是打开一个CMD窗口,然后直接在命令行里输入脚本的完整路径来执行。这样即使脚本出错了,窗口也不会关闭,你能看到完整输出。这是排查问题最推荐的方式。
说到排查,专门说一下脚本报错的定位思路。把脚本第一行的@echo off删掉或者改成@echo on,运行后窗口会显示每条命令的原文,你能看到是执行到哪一步出错的。这个思路虽然是土办法,但很多时候比任何调试工具都直观。
5. "不是内部或外部命令""窗口闪退":一套能直接套用的排查链路
用命令行的过程中,最劝退新手的就是各种莫名其妙的报错。这一节我把几个高频问题整理成完整的排查链路,让你遇到问题时有章可循,而不是漫无目的地搜答案。
5.1 警惕:遇到"不是内部或外部命令"先别慌
这个报错太经典了,几乎人人都会遇到。它的完整提示是"xxx 不是内部或外部命令,也不是可运行的程序或批处理文件"。
这句话翻译成人话就是:系统在它认为应该找程序的地方,没找到你说的这个命令。具体有两种可能:
第一种,命令名拼错了。比如把ipconfig敲成ipcongfig,或者少了字母。这是最低级的错误,但也是最常见的。排查方法很简单,检查拼写。
第二种,程序本身存在,但不在系统查找的路径里。Windows在执行命令时,会按顺序在PATH环境变量列出的目录里寻找对应的exe文件。如果你装的软件没有把它的目录加进PATH,在CMD里直接敲软件名就会报这个错。
典型例子就是Git和telnet。很多人在网上搜"windows安装git命令""git命令不识别",就是因为装完了git,但CMD不认git命令。处理方法有两个:一是重新安装时勾选"Add to PATH"选项;二是手动把Git的bin目录加到系统环境变量里。右键我的电脑-属性-高级系统设置-环境变量-系统变量里找到Path-编辑-新建-填上Git的bin目录路径,一路确定后重开CMD就好了。
还有个排查方法是where命令。where git如果能返回一个路径,说明系统能找到它你只是搞错了拼写;如果返回"找不到",说明PATH里没有git。这个命令对排查"命令不存在"类问题非常高效。
5.2 排查脚本闪退和启动项命令失效
前面提到脚本闪退的直接解决方法是加pause。但如果你加了pause还是闪退,那就要深入排查了。
把脚本的执行方式从双击改成在CMD窗口里输入路径,通常能看到具体的报错信息。常见的报错包括:for语法写错导致整个脚本解析失败、路径里带了引号导致变量展开异常、脚本文件编码不是ANSI导致中文乱码后命令解析出错。
还有一个特殊场景:开机启动项里的命令闪退。有人会把脚本或命令放在开机启动文件夹里,或者用注册表实现开机自启,但开机时执行失败。排查思路是:先确认这个脚本在手动执行时能不能正常工作,然后看启动方式有没有加引号,最后用msconfig或任务管理器的启动选项卡检查启动项目。我遇到过一种情况,脚本在登录后弹出又立刻消失,是因为脚本里引用了\\192.168.1.100\共享这样的网络路径,网络还没连上就执行导致失败。解决办法是在脚本开头加一行ping 192.168.1.100 -n 3 >nul,延迟3秒再继续执行。
顺带解答一个很多人的疑惑:"dos窗口字体太小怎么办"。CMD窗口的字体和窗口大小是可以调的。打开CMD窗口后,点击左上角的图标,选"属性",切到"字体"和"布局"选项卡,可以调字体大小、窗口大小、缓冲区大小。窗口大小设为80x25或者更大,字体选"点阵字体"或者"Consolas",试几次就能找到适合自己屏幕的组合。建议顺手把缓冲区的高度调大一些,这样输出内容多了可以滚动查看历史记录。
5.3 后台命令在关闭后还会继续运行吗
还有一个热度很高的问题:命令行执行某个程序或命令时,如果关掉窗口退出,这个命令还会继续运行吗?
这个问题的答案是"视情况而定"。如果你在前台直接运行一个程序,比如start myapp.exe或者直接在CMD里启动某个服务,按Ctrl+C终止或者关掉CMD窗口,这个程序一般会被一并终止。但有一种例外:程序本身被设计成作为后台服务运行,或者它通过某种方式脱离了当前会话,那它就不一定会随着CMD窗口关闭而结束。
在CMD脚本里,start /b 程序名可以让程序在后台运行。但这里的"后台"也只是不占用当前窗口,关掉窗口后它的命运取决于程序自身的特性。真正需要让程序在关闭终端后仍然持续运行,得靠计划任务(schtasks)或者Windows服务机制。这个点很多新手会混淆,用了start /b就觉得万事大吉,结果关掉窗口后程序也没了。理解这个区别之后,你再去看网上关于"ssh命令执行过程中退出,命令还会继续么"之类的讨论,心里就有底了。
6. 容易被忽略的高频细节与进阶方向
最后这部分,我把一些平时不太起眼但实际使用中高频踩中的细节一起说了。每个都是我自己用过、踩过、最后总结出来的东西。
6.1 CMD里的大小写、快捷键和帮助系统
CMD命令和参数不区分大小写。DIR、Dir、dir都一样,和Linux完全不同,很多从Linux转过来的朋友一开始不习惯,但这个特性其实挺省事的。
CMD窗口里这些快捷键值得记一下:
Tab键:自动补全路径和文件名,连按可以循环切换候选匹配,比一个个敲快十倍。↑/↓:调出历史命令。做完一次操作后想再执行一次,按几下上箭头就行。F7:列表显示历史命令,用方向键选择后回车执行。Ctrl+C:强制终止当前正在执行的命令。右键:在CMD窗口里默认相当于粘贴,而不是弹出菜单。很多人刚用CMD时右键没反应,其实是把剪贴板内容贴上去了。
遇到不记得参数的命令,最直接的办法是命令名加/?。比如dir /?会显示dir命令的全部参数说明和示例,全是中文,比去网上搜结果还快。help命令本身也能列出所有内置命令的清单。
6.2 内部命令和外部命令之分
系统的CMD命令分两类:内部命令是cmd.exe自带的,比如dir、cd、copy、type、del、cls,它们没有独立的exe文件,直接内嵌在程序里。外部命令则是单独的exe文件,比如xcopy.exe、findstr.exe、ping.exe、tasklist.exe,它们存放在C:\Windows\System32目录下。
这个区分有啥用?用处在于排查问题。如果你发现某个命令能执行但找不到对应的exe文件,不用慌,它可能是内部命令。反过来,如果你下载了一个第三方工具放在某个目录里,但执行时提示找不到,先去确认这个目录是否在PATH里。
where命令可以帮你看某个命令是内部还是外部、外部命令的完整路径。这个命令值得长期记住。
6.3 和Linux命令的对照,以及和PowerShell、WSL的关系
网上搜"linux命令大全""linux删除文件夹命令"的人特别多,说明很多人在同时接触Windows和Linux两套环境。其实Windows命令和Linux命令有很强的对应关系,学会了对照,两套都不容易忘。
| 功能 | Windows CMD | Linux |
|---|---|---|
| 列出文件 | dir | ls |
| 切换目录 | cd | cd |
| 复制文件 | copy | cp |
| 移动/重命名 | move/ren | mv |
| 删除文件 | del | rm |
| 删除目录 | rmdir | rm -r |
| 查看文件内容 | type | cat |
| 搜索文本 | findstr | grep |
| 查看网络配置 | ipconfig | ifconfig/ip addr |
| 测试连通性 | ping | ping |
| 查看进程 | tasklist | ps |
| 终止进程 | taskkill | kill |
另外,现在Windows里其实不止CMD一个命令行环境。微软这些年大力推行PowerShell,它是比CMD强大得多的对象化命令行和脚本环境;还有WSL(Windows Subsystem for Linux),能让你在Windows里直接运行真正的Linux命令。那学CMD还有意义吗?我的看法是:CMD虽然功能不算最强,但它是Windows系统自带的最轻量、最通用的命令行入口。安装系统、进PE环境、批量操作文件,很多场景仍然离不开CMD。而且有了CMD的命令基础,理解PowerShell和WSL的逻辑会容易得多——本质都是"在命令行里告诉电脑做什么",只是语法和扩展能力不同。
网上还有个热搜词叫"vim命令"。Vim是个强大的文本编辑器,很多人在Windows下也想用它编辑文件,但CMD环境下没有内置Vim,需要自己安装。如果你只是偶尔在命令行里改个配置文件,用notepad 文件名调用记事本最省事;如果经常跟服务器打交道,Vim就值得花点时间学。这跟DOS命令不是一回事,但都是在命令行生态里互相搭配的工具。
6.4 学习路线的建议:不要背命令,要带着问题学
最后说一点学习方面的个人建议。命令行这个领域有个特点:命令太多了,靠背是背不完的,也没必要背。我自己的学习路径和带人经验,都是同一个思路——场景驱动。你遇到一个问题,比如想批量改名、想查端口占用、想清理C盘,带着这些问题去搜、去试、去组合命令,用过一次就记住了,而且理解最深。
再一个重要的习惯是:准备一个自己的命令笔记,专门记录踩过的坑和用过的组合命令。我自己有个文档,里面记着各种稀奇古怪的命令用法,比如"为什么xcopy比copy更适合做增量备份""为什么同一个bat脚本在这台机器上中文正常在那台机器上乱码"。这些经验不是你从任何一本书上能全部学到的,都是一次次试出来的。也正是靠这些积累,我在应对各种系统问题时越来越从容。
如果你现在还是个命令行新手,不用着急。从第一条dir开始,每次遇到问题多往命令行方向想一想,慢慢你就会发现,这个看似"老古董"的黑窗口,其实是你控制电脑最强有力的工具。