Tuesday, 12 November 2013

电脑小白基础知识 - Windows cmd


1. 按 Window键(键盘的左下角, 在Ctrl和Alt之间) 输入cmd, 同时按Ctrl和Shift和ENTER(不直接只按ENTER是为了用管理员administrator权限)打开command prompt.





2. 这时 Windows 有可能会问你Yes还是No 允许打开与否,  按Yes就可以了。如果你好奇心重, 这个东西叫UAC dialog, http://en.wikipedia.org/wiki/User_Account_Control




3. 看到command prompt 界面。




4. 可能有些人会担心这些黑黑白白的Command会不小心弄坏自己电脑。

我第一个建议是, 懂得看help说明书。 比如说输入问号 
如果是一般的 Command, 你是用Command 空行加上 /? Argument(参数), 比如 cd command加上 /?, 就是 cd /? 



5. 这里解释一下必须懂的东西。 有些Command需要Arguments(中文叫参数)。

假设有一个Command叫 "buy"(买), 只输入 buy 是不够的, 你要输入买什么, 比如 buy coca-cola

有些Command 可以组成复杂的, 比如用100美元买, 你会输入一个command(buy), 三个Arguments(coca-cola, 100, 和USD), buy coca-cola 100 USD。 你可以看见全部要用空行。

有些command 有default argument value。 也就是说, 当你只输入 buy coca-cola 100, 可是你又没有加上USD这个Argument, 有些 Command 会 default(默认当作)你是 USD。


看会上面的图片, 留意 CD [..], cd 是command名字, []表示optional argument(选择性参数), 也就是说不强迫你一定要有那个argument伴随着cd, 就算只输入cd也有效, 就好像我讲的 buy, 你只输入buy, 电脑 by default(默认) 你是用 USD 50 来买。 这也就等于你输入 buy 50 USD 一样效果。至于default的value是什么, 就要看help说明书了, 或者使用过的经验。
【..】 两点表示之前的folder, 如果你输入 cd .. 就表示退回去上面的folder



6. 如何区分危险的command?  基本的英文总会吧, 难不成你看到 del 这个 command 你不会联想到 delete? 难不成你看到format 这个Command你也会没感觉?真的不能就Google 找中文的解释。 比如这个 http://www.jb51.net/help/cmd.htm



7.  回到正题, 一打开Command prompt, 如果看见 “C:\Windows\System32>”, 就表示 你现在的位置是在C volume 的 "Windows" folder里头的 "System32" folder。 输入Command "cd"  可以改变你现在的位置 cd command 加上位置Argument, 比如说你要跳去C Volume。你输入 cd c:\
(联想一下, cd, c 是change, d, 就是dir, 就是directory(也就是folder))




这时候可以看见 c:> , 表示你现在的位置是在C volume里头。 如果你用dir Command的话, 可以显示出来现在位置里头的 folder 和 file。因为你现在是在 c volume, 所以 dir command 显示出来的就是 c volume 里头的 folder 和 file, 每个 folder 和 file 排成一行行。靠右边的就是 folder 或 file 的名字。如果你要显示隐藏的folder和file, 就要加上 /a argument。也就是 dir /a



如何区分 folder 还是 file ? 仔细看, 你会发现 <DIR>, 那就是 folder。
因为 DIR, 也就是directory, 是folder的另一种表达方式。

图中可以看出, 我的C volume有叫 "1", "AdwCleaner", "cygwin" 等等名字的folders。 同时也有叫 "autoexec.bat", "config.sys", "lala" 名字的 files.

如果你真的担心乱乱试验command, 电脑会坏, 比如说处理 partition, 我的第二个建议是, 用Virtual machine虚拟机安装一个自杀式windows来试验。



8. 如果你在command prompt一直按 tab, 你可以看见有不同的名字出现, 比如 c:\>lalac:\Users 等等。

这些都是folder和file的名字,跟刚才我提到的 dir /a 显示出来那些 folder 和 file 一样名字, 这种叫 auto-complete(自动完成)。

就好像你用Google时, 你输入apple, 下面会显示apple TV, apple store 等等给你选。

 一样道理, 都是为了方便你不用打那么长的字。

如果你用不到, 可以参考 http://support.microsoft.com/kb/244407 来 enable auto-complete(简单讲, 就是打开Windows键+r, 输入regedit打开, 然后去HKEY_CURRENT_USER/Software/Microsoft/Command Processor,CompletionChar 的value modify去9)。



9. 电脑还有一个概念叫recursive, 这个概念的其中一种用法是: 假设从现在这个folder A, 先去folder A里面的folder B, 再去 folder B 里面的folder C。 如果folder A有folder D, 也会包括去那里。总之从folder A跑完under它的 folders 和 files就对了。有时command会提供这种recursive的概念, 比方说 /s 这个argument, 如图所示, 我在haha这个folder, 然后输入 del /s lala, 电脑会scan完under haha的所有叫lala的file, 包括sub-directories(就是说folder的folder的folder一直到尾, 只要scan到有 file 的名字叫 lala, 就删除掉)。


当然, del 是删除文件, 你要用rmdir删除folder haha (联想一下rmdir, rm是remove的缩写, dir是directory(也就是folder))。 如果folder haha里面是空的, 你可以只用rmdir haha。 但是, 如果里面有folder有file, 就要加上 /s argument才可以删除folder haha。/q argument 是quiet, 也就是不要问 Are you sure? 这些废话, 直接丢。

如果没有用 /q, 你就要每一个file都按 y, 一直 yes yes yes。





10. 如果想知道更多command, 就输入help command 来看。



每个command又有详细的使用方法, 就是我上面提过的 argument /?, 比如说 assoc /?





11. 介绍一下历史, 旧款的windows是用command.exe来运行16 bits的, 而不是你现在一贯的cmd.exe. 详情可以看 http://www.computerhope.com/issues/ch000395.htmhttp://en.wikipedia.org/wiki/COMMAND.COM 和 http://en.wikipedia.org/wiki/CMD.EXE, 当然, 如果你windows 键+ r, 输入command(不是cmd)按ENTER, 还是可以体验的。


除了字体变大之外,它跟cmd的区别是什么? 比较明显的是tab 的auto-complete有问题。 还有按左键退回去,字体也会跟着不见。 还有另外一个区别, 就是 cd command, folder名字不能超过8.3个字 , 也叫SFN (short filename)。



我试验了一下, 如果你输入9个字abcdefghi, 它会自动truncate(截断)变成abcdefgh 8个字。 也不可以有 “” , 空白就更不用说了。 如果你好奇心重, 可以参考http://en.wikipedia.org/wiki/8.3_filename)




其实解决方法是有的, 用dir /x 来找short names. 如图所示, Saved Games 的 short name 是SAVEDG~1



用cd SAVEDG~1, 成功 cd 去Saved Games folder




12. 如果你不小心输入recursive 的command怎么办? 比如说 dir /s。 你可以关掉command prompt窗口, 也可以直接按 Ctrl 加 c 来stop掉它。



13. 在command prompt一直按 “上箭头”, 可以有之前的command, 方便你重复用command不需要再打字过。配合按 “下箭头” , 你可以上下游览。如果一直 ‘按右键头", 也会一个一个字显示上一个command。




14. 按 F7 可以显示这个command prompt打开之后的command 历史。按上下键浏览, 按ENTER选这个command。






No comments:

Post a Comment