cmd是什麼?
對于程式員而言,cmd指令提示符是windows作業系統下一個比較重要的工具。對于程式員而言,為了追求更高的效率而抛棄花俏的界面已然是一件很常見的行為,截止到目前的,全世界仍有大量的伺服器還使用着單一的指令行界面。
使用指令行界面的一個重要因素就是,在遠端管理的過程中,指令行操作緊需要傳遞少量的資料就可以對機器進行操作,如果是圖形界面,由于需要傳輸大量的圖形資料,很可能出現延遲、連結不穩定等情況,亦或者在同樣情況下效率沒有使用指令行界面操作來得高。是以,至今人們依舊離不開指令行操作。
而cmd則是windows系列作業系統下的指令行操作程式(不論是指令行或者是桌面這樣的圖形界面本質上都是程式)。
指令行界面程式cmd.exe所在的目錄是C:\Windows\System32
順帶一提我們的桌面(圖形操作界面)則是位于C:\Windows下的explorer.exe
如何打開cmd
方法有很多,以下列舉幾種
1.打開C:\Windows\System32目錄,找到cmd.exe輕按兩下運作。當然,通常人們都不會這麼做。
2.打開開始菜單->運作->輸入cmd->回車
3.通過快捷鍵:win(windows商标鍵) + r 調出運作框,然後輸入cmd回車
4.win7打開開始菜單之後可以直接輸入cmd回車

關于目前目錄
對于新手而言,這是一個必須要搞清楚的問題。首先我們來學習幾個指令:
cd C:\
cd是change directory的簡寫,意思是改變目錄,上面這條指令的意思就是切換到C:\目錄下。
可以觀察到,cmd界面上的目錄變成了C:\
傳回上一層目錄 cd..
不同的目錄盤之間切換 c:或者d:
我們可以從圖中看到,cmd中的文字有變化,而有變化的地方就是我們要注意的地方。
在每一行的最前面就是目前目錄的位址,例如最開始的
C:\Users\Lellansin>cd C:\
這當中"C:\Users\Lellansin"(如你的賬戶名稱是Admin的話就是C:\Users\Admin,注意是win7的預設目錄)就是我的目前目錄而執行了cd C:\指令之後目前目錄就變成了 C:\
目前目錄是一個相對重要的概念,因為很多操作隻能對目前目錄裡面的檔案進行。就好比,通常情況下,你要操作E盤某個目錄下的某個檔案,你首先要輕按兩下“我的電腦”打開E盤相應的檔案夾,找到那個目錄才能操作那個目錄下的檔案一樣。對于cmd而言,要操作相應目錄下的檔案需要切換到相應的目錄。
#輸入dir回車,系統會傳回目前目錄下的檔案清單
dir
如何執行或打開檔案
C:\>1.txt
如果我在C槽根目錄下有一個1.txt的文本檔案,那麼就可以直接輸入1.txt回車,即可打開該檔案。(這個在linux下也是同樣的情況,部落客當年也搞不清楚怎麼運作程式來着)
同樣的,如果存在hello.exe,那麼直接輸入hello.exe即可運作該程式。當然需要注意的是,某些系統預設的應用程式格式(如.exe檔案)在cmd中調用的時候是可以省略字尾的。也就是可以直接輸入hello,然後回車也同樣可以運作hello.exe。
環境變量
環境變量一般是指在作業系統中用來指定作業系統運作環境的一些參數,比如臨時檔案夾位置和系統檔案夾位置等。
常見的環境變量:
變量名 變量值
Path ...太多省略...
OS Windows_NT
windir %SystemRoot%
TMP %SystemRoot%\TEMP
ComSpec %SystemRoot%\system32\cmd.exe
至于%SystemRoot%的值是什麼,大家隻要把它複制到檔案浏覽上面的位址欄裡面然後回車就知道了。
環境變量的作用
為系統或者使用者程式設定一些預設參數。比如windir這個環境變量,就可能有程式通過讀取這個環境變量的值來檢視系統的版本。
環境變量的設定方法
1.【我的電腦】->右鍵【屬性】->【進階】->【環境變量】->選中你要修改的環境變量點選【編輯】即可
2.通過cmd設定(不推薦)
path的作用
path是一個很常見得環境變量。主要用來配置系統的預設路徑。也就是當你在某個目錄下執行某個程式,但是本身目錄下卻沒有這個程式的時候,系統會自動到預設路徑下面也去找一找,有沒有你要執行的程式。
比如你寫了一個hello.exe(編譯運作後,能在在程式的相應的debug目錄下能找到)。然後把這個hello.exe移動到E:\test\目錄下,接着
#切換到E盤
cd E:\
#切換到E盤下的test檔案中
cd test
#執行hello.exe
hello.exe
#假設程式輸出hello world
#這個時候再切換到E盤根目錄下(cd .. 是切換到上級目錄)
cd ..
#再執行hello.exe
#這個時候系統會提醒你找不到這個指令
#但是如果你将E:\test這個目錄加入到path中,就可以在任意地方運作hello.exe
cmd的常見作用
1.自動關機
2.常看本地ip
3.使用ping
4.快速查詢本地服務、端口使用情況
5.快速調用一些常用工具
6.原始程式設計方式,用cmd調用編譯
7.學彙編都應該知道cmd下的debug
8.批處理
自動關機
先說自動關機,貌似很多人都被開過自動關機的玩笑,我們通過cmd就可以實作自動關機指令
#輸入shutdown回車可以看到下圖效果
shutdown
shutdown并不是一個cmd指令而是一個windows系統自帶的程式shutdown.exe,位于C:\WINDOWS\system32目錄下,之是以能夠直接執行,是因為C:\WINDOWS\system32目錄,是系統預設配置在環境變量path中的。其他還有很多的自帶程式都在這個目錄,以下其他程式不做過多說明。(PS:這裡僅僅隻講一些cmd的常見應用,至于cmd的文法之類的,講了也有些雞肋,如果想學習批處理再研究也不遲)
廢話不多說,我們可以從上面的圖檔看到,直接輸入程式自動給出了一些提示,這些參數告訴了我們這個shutdown.exe要怎麼使用
shutdown -s
按照他提示的參數輸入這個指令,會彈出提示:
部落客是在xp下測試,當然如果是在win7等系統下的話效果會不一樣。如果你在實驗這個指令,不要慌張馬上按照提示執行下面的指令:
#取消關機
shutdown -a
接下來我們來看一下這個程式最常用的方式:
#1小時(3600秒)後關機
shutdown -s -t 3600
部落客就經常用到上面這個指令,甚至桌面常備取消關機的批處理(哈哈,當年沒少被開過這種玩笑)
好吧,少年,你是要問我批處理是什麼嘛?
請你建立一個檔案把“shutdown -s -t 3600”複制進去,然後儲存,另存為.bat字尾的檔案(如何更改檔案字尾,不懂請戳度娘谷歌),接着輕按兩下這個bat檔案。
如果你看到系統提示你一小時後會自動關閉,那麼恭喜你,你已經寫好了一個自動關機的批處理檔案。那麼同樣的可以想象,取消關機的批處理,就是一個.bat檔案,裡面寫着一行“shutdown -a”,輕按兩下一下就可以運作了(批處理的特點之一)。
當然如果,想在C語言中調用這個指令也很簡單。
先引入stdlib.h庫。接着就可以通過system()指令來調用了,如:
#include<stdio.h>
#include<stdlib.h>
main()
{
system("shutdown -s -t 3600");
printf("自動關機已設定!");
}
常看本地ip
通過ipconfig.exe就可以檢視本地ip
ipconfig
當然也可以通過 /? 參數擷取更多的幫助
ipconfig /?
(PS:部落客上面測試的時候寫的是\help,這個不是一個正确的參數,然後下面那個是彈出來的提示)
當然ipconfig還有很多其他的用處,比如按照提示上面說的
/all Display full configuration information.
通過/all參數調用,可以顯示出全部的設定資訊:
C:\Documents and Settings\st>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : s3049
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地連接配接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Physical Address. . . . . . . . . : 78-E3-B5-A3-A5-44
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.26.22.49
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 172.26.2.6
DNS Servers . . . . . . . . . . . : 58.22.96.66
(直接複制了,發圖麻煩)
這裡可以檢視到一些常見的資訊,比如host name是主機名,Physical Address 則是傳說中的mac位址,IP Address 就是你的本機位址(注意這個通常是區域網路下的)。至于後面的子網路遮罩還有預設網關什麼的,想了解的一可以去搜尋一下。
還有/flushdns(flush DNS)重新整理DNS緩存什麼的。相信這些資訊,網管專業的同學應該都非常熟悉。(注:不明情況的圍觀群衆不要随意開跳這個坑,了解基本即可。)
ping指令
記得原來微網誌上面有個吐槽,就是說很多人普通人用百度來搜尋,而很多程式員則用百度來測試網絡是否聯通。那麼如果使用ping.exe來測試網絡是否聯通:
ping www.baidu.com
除了這個用處以外還有一個很常見的作用就是測試自己是否能夠連接配接到某個ip,這裡有一個路由器,連接配接了兩台電腦,在每台電腦上都可以通過ipconfig檢視自己在區域網路中的ip位址,假設對方的ip是192.168.1.106。那麼便可以使用ping指令測試是否能聯通對方的電腦。
ping 192.168.1.106
當然,眼尖的同學應該已經發現了ping.exe的另一個作用,那就使用擷取某個網站的ip位址:
ping www.bilibili.tv
那麼,下面的xxx就是B站的ip位址了。
其他閑話
至于
這些有的内容對于新手而言略坑,這裡暫不做介紹。
其中的5.快速調用一些常用工具,就簡單說一下部落客常用的工具:
notepad 記事本
calc 電腦
mspaint 畫圖闆
這些實際上通過菜單調出運作(或者win+r)就可以直接輸入調出來。