cmd重要性
cmd是command的缩写,一直伴随着windows操作系统。有时称为:控制台窗口,cmd窗口,黑窗口,命令行窗口等。
其实,在unix系统,Linux,MacOS等几乎所有的操作系统中,都会有类似的控制台窗口。它是与系统进行深入交互不可或缺的基础设施。
早在丰富易用的图形操作界面崛起以前,人与机器交互的唯一方法可能就是通过控制台窗口,只不过那时没有“窗口”这个概念。
与图形界面相比,控制台窗口有许多优点:比如,命令清晰,没有歧义,交互传输数据量小(因而很容易实现远程终端的方式),强大的可编程能力,自动化处理等
有些复杂的命令,比如网络管理的一些复杂操作,通过命令行的方式可能比图形方式更简洁、准确、高效。
下面要介绍的是windows控制台操作的一些基本常识(以windows7专业版为例,其它版大体一样)。
启动控制台窗口
有很多种方法。
最方便的: 快捷键 win + R,弹出一个小窗,输入cmd回车即可。
如果没有进行过其它设置,弹出的应该是一个黑色底色的窗口,如图:
在大于号的前边的是系统给出的提示,表示当前所在的位置。
注意,windows的目录表示法用反斜杠,而Linux或Mac用的是斜杠。
窗口的大小、底色、字体都可以调整,但窗口的最大宽度有限制。
我们可以从当前的位置移动到自己想去的位置,命令是cd,比如,移动到当前盘的根目录下的yehang
目录间漫步
通过cd,可以从一个位置走到另一个位置。但每次输入绝对的位置比较繁琐。有许多偷懒的技巧。
自从win7开始提供了tree命令,可以列出当前目录的大致结构。
这表明当前目录下还有3个子目录,而子目录mywork中有两个子目录
如果想切换到mywork目录,当然正确的命令是:
cd mywork
但有时目录名太复杂,输入不方便,怎么办?
按tab键来自动补全。先输入:
cd my
按tab键,会自动补全为"mywork"
那如果有前半部分重名呢?
比如,想进入proj-2
我们输入 cd pro
按tab键,补全为:proj-1,再按一次tab键,就补全为prj-2了。
你还可以偷懒,输入
cd
直接按tab,tab, ....
系统会把所有可能的情况都给你列举一遍!!
很好,这次让我们进入到 y-tijie 子目录
从这里,如何回到yehang这个较上层的目录呢?
当然,可以:
cd yehang
或者:
cd c:yehang
这些都是绝对路径的表达法,我们还可以用相对当前位置的表达法:
cd ....
这个的意思是走到当前目录的上一层的上一层目录去。
清除当前屏幕的内容,用 cls
想看看某个目录下都有什么内容,用dir,比如看看c盘根目录都有啥
修改提示符
有人不喜欢拿当前的位置作为提示符,可以通过 prompt命令来修改。
默认的提示符是:当前驱动器,当前路径,然后一个大于号
这个可以修改,比如改为用当前时间做提示,这个在检测程序执行时间时有用。
prompt [$T] 就可以了。
如果还想改回原来的:
prompt $P$G
我怎么能记住这些命令参数呢? 不用急,可以:
prompt /?
这样会列出prompt可以使用的所有参数表达的含义。
快速进入某个目录
有的时候,一些目录的层次比较深,名字比较复杂,甚至含有许多不便输入的中文或者特殊符号,我们希望最好能启动cmd后快速进入到该目录。
这时可以采用通过图形界面辅助的方法。这个功能是win7才引入的。
首先,打开资源管理器,定位到要去的那个目录的位置。如图:
在上端的地址栏的空白位置点一下,全路径名变成选中状态,此时输入cmd,如图:
这样,直接弹出了黑窗口,并且当前目录就是我们选的位置:
这样就避免了麻烦的输入,是不是很方便。
操作纯文本文件
纯文本文件是相对于有格式文件而言的。
word产生的doc文档,pdf文档等就是典型的有格式文本。它们不仅要记录文件的内容,还要记录这些内容的表达格式。
所谓格式,就是比如:字体的大小,颜色,段落的样式,图文排版的关系,表格的对齐属性等等。
而纯文本只记录内容,没有格式。
我们在编制源代码的时候,一般使用的是纯文本格式。
可能你会说,我的源码也有漂亮的各种颜色和字体的变化啊。那是你的编程工具解析了源码的含义,自动为它涂的颜色,称为“代码高亮”,“或代码着色”。这些信息并不会记录到文件中,而是在每次打开源码的时候,重新计算出来的。而且,同样的源码,不同的编程工具可能会产生不同的着色方案来。
如果没有特别的工具,我们可以用windows自带的记事本来编辑纯文本文件。
有时,为了方便,我们也可以在黑窗口状态下,产生,浏览纯文本文件。
产生文件的方法之一:
copy con a1.txt
然后输入一行一行的内容,最后结束的时候输入ctrl+Z
如果想简单地看一眼文件的内容,只要输入:
type a1.txt 即可。
环境变量
环境变量就是程序在执行时的公开的共享的信息。
一般情况下,程序需要的信息是从命令行传入的,也可以从文件、数据库或其它的IO设备读取。
但有些信息,比如cpu类型,操作系统版本等信息,是程序执行的环境,是多个程序都可能需要知道的公共的信息。
这些信息,一般以环境变量的形式提供。
在控制台中,输入set,可以列出所有的环境变量。
这些环境变量中,最为常用的可能是path了。
path的含义是当我们要启动一程序时,如果没有指明程序的具体位置,系统就会按照path列出的目录,一个位置一个位置地去匹配。
如果所有的位置都匹配不上,就会说:“xxx不是内部命令也不是可执行程序....”
在控制台状态下,我们可以临时改变path,一般是把一个新的路径加入到path中,为了保险起见,可以加在整个path的最前边,用分号分开。
之所以说是“临时”,是因为当关闭了黑窗口后,所有的修改就都失效了。
比如,把 c:yehang 加入到path
这样一来,无论我们当前的目录位置在哪里,要执行c:yehang下的某个程序,直接输入那个程序的名字就可以了。
cmd命令格式
一般,cmd命令有两种,一种是我们自己开发或其它公司开发的可执行程序(通常是*.exe类型的文件)。
这种程序如何使用,由开发它的作者决定(但一般也会遵守一些惯例)。
另一种就是由操作系统提供的命令了。这些命令的用法有些一致的规则。
它的格式一般为:
命令 [选项] 作用于的对象
比如:列出目录的内容
dir
单独一个命令,没有对象,没有选项,则作用于当前目录,用默认的方式。
dir c:
则是列出c盘根目录的所有内容。
dir /A:H c:
则是列出c盘根目录的隐藏内容。其中的 /A:H 就是命令选项,它进一步细致地刻划出命令应该如何工作。
dir /S c:windows
则是递归地列出 c:windows 目录及其子目录的所有内容。这里的 /s 是命令选项。
由于文件较多,这可能会导致屏幕上一直有内容在滚动。
可以用 Ctrl + C 来中断。
如果你想知道都有哪些命令选项,可以 dir /? 来查看帮助。
更多的细节和使用技巧可以百度。