咱们依然不讲代码,而是先说命令行。python
为何命令行如此重要?以前说到,命令行是你和电脑对话的地方。你能够用句子的方式把信息发给电脑,电脑再以句子的方式给你回应。在编程领域,有些消息只能用命令行告诉电脑——或许是编程人员早就习惯了,或许打字更有效——毕竟你和闭着眼睛的人交流,确定比捂着耳朵的人交流方便(你不能用鼠标写字!)。在编程中,大部分消息都是靠说,而不是靠比划(画图就是比划的例子)。呃……总之你得懂命令行。编程
在Windows里有命令行,Linux也有,可是大同小异。要弄懂命令行怎么干活,只要想象电脑没有屏幕,可是会说话。好比——c#
——“桌面上有什么?”
——“有3个文件夹:回收站,资料,工具;5个文件:便签.txt,语言哲学.pdf,截图.png,antistops.py,安装程序.exe”
——“E盘里有什么?”
——“有1个文件夹:work”
——“work文件夹里有什么?”
——“您的电脑里有不止一个名为work的文件夹。”ide
顿时尴尬,毕竟眼前就有个work文件夹,却进不去。因此设计命令行的人想出了“当前位置”这个概念。咱们知道文件夹的组织能够当作“树”——(其实#不能用于文件名,我用的cs而不是c#)工具
实际确定比这复杂。当前位置的意思就是,你只能站在这棵树的一个文件夹节点上,即你不能同时位于多个文件夹。你只能看到周围的点。以上图为例,你想让电脑运行hello.exe,图上却有两个hello.exe。加上“当前位置”这个概念后,你只能打开当前文件夹中的文件。而同一个文件夹中,文件名不能重复,就保证了你能惟一地指定一个文件。想运行文件夹(不少人管文件夹叫目录,由于不拗口)C下的hello.exe,就要走到目录C 。命令行
可是人是会走丢的。设计者是这么处理的:设计
1.x盘是固定的,没必要多说。
2.E盘下的目录C记做“E:\C”,再下层的hello.c记做E:\C\hello.ccode
层层嵌套。因此若是你在运行栏(或者点开始菜单里的“运行”)输入cmd回车,我猜你明白C:\Users\Administrator>是什么意思了,表示你处在一个名叫Administrator的文件夹里。blog
其实,没有“当前位置”,也是能够定位每个文件的。上例中,无论你在哪里,输入E:\C\hello.exe,电脑都知道你要找的不是E:\C#\hello.exe 。可是每次树一长串,谁愿意呢?另外,命令行里显示的那个目录叫“当前工做目录”,简称工做目录,我相信你几回用命令行运行python就会明白为何叫“工做”了。教程
因此你能够对命令行说这些东西:
cd 是change directory 的首字母
(你可能发现某些命令并不起做用,由于上图的home是假的。上面的命令只有当在同一个盘中才有用,不能用cd 换盘。想切换盘符,直接输入“盘符名:”回车,好比e: 回车 )
上一篇文章还说到,“python xxx.py”是一条命令。其实命令分为两部分,第一个词是一部分,剩下的是第二部分。python是python.exe,在命令行.exe可省略(不省也能够用,但习惯上省略)。python xxx.py就是启动python.exe,而且告诉程序一个额外信息: xxx.py。这可能使人困惑,运行程序是容许加点别的东西的(加一个算少的了)。cd xxxxx,就是运行cd.exe 附加【参数】xxxxx——虽然未必有cd.exe,但彻底能够当作有。全部的命令,几乎都只有第一个词真的作了事。(exe文件也是文件)
最后还要说绝对路径和相对路径,用处在于,你如何称呼一个可能重名的文件?仍然用刚才的例子,你位于目录C,想运行隔壁目录C#的hello.exe 。目前有三种办法:
1. cd .. 再 cd C# 再 hello (.exe能够省略) 2. E:\C#\hello 3. ..\C#\hello.exe
2和3都作到了不切换工做目录而处理了别的目录的exe文件。2叫作绝对定位,由于从盘开始;3叫相对定位,由于从自身开始。电脑只认盘符,要是没有,就假设是从工做目录开始。虽然这样看,好像上层目录被当成名为..的子文件夹了,可是无妨——这其实挺奇妙。(你仔细看看树图,会发现节点均可以当作根节点,有点参考系的味道)
两种定位都是能够的。其实还有一种定位——你有没有想过,python.exe在哪?!还记得安装第一步点的PATH么,名为“环境变量”之物,环境变量里写着的若干目录能够无条件引用(当前目录也是无条件引用的)。电脑收到你的命令python,首先在工做目录里找python.exe,找不到就到环境变量里的目录里找,再找不到就报错。
而后你就能读懂这些了:(除了.和..用法特别,还有\ 表示当前盘起始,能够用cd \ 、cd \C 等等 )
* cd xxx (两种定位皆可) * cd \ ——回到本盘起始位置 * dir —— 查看当前目录信息(directory 缩写) * dir xxx —— 查看xxx目录(两种定位皆可) * md xxx —— 创建新文件夹(两种定位皆可) (make dir缩写) * rd xxx ——删除【空】文件夹(两种定位皆可)(remove dir 缩写)【请注意!命令行删除不进回收站,是永久删除!】 * cls ——清屏(clean screen 缩写) * copy xxx xxx —— 复制文件内容(不包括名称),后面的名字为新的名字(固然,两种定位皆可) * del xxx —— 删除文件,不包括文件夹(可用 del * 删除全部文件,del * .txt 删除全部.txt文件,等等)(delete缩写) * deltree xxx —— <危险操做>删除文件夹以及一切内容 * ren xxx xxx —— 重命名(rename 缩写)
命令能够有参数,即在输完上述命令后,还能够后跟一些东西。以前说到python.exe 能够后跟文件名,但参数只是字符串,不必定是文件名。你输入的命令若是有多个词,那么全部的词都会告诉第一个词,由于那是惟一被运行的东西,他会收到全部参数。好比dir命令能够有超过2个参数(除了自己dir 和常规的xxx),好比后跟\a或\s等等,请自行百度“dos命令”