咱們依然不講代碼,而是先說命令行。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命令」