Windows 命令行入门

    前言

    之前,我一直假设所有在学习编程的同学,都具备一定的电脑基础,比如使用“命令行”。但最近有多个同学在学习gitcomposer的时候,在使用命令行的过程中,频频碰壁,所以我决定写一篇科普文章。

    本文首次编写于:20190207,根据大家反馈和提问,我可能会继续修改。

    “命令行”的基本科普

    命令行是一个比较模糊的称呼,更早以前我们称它为 dos 操作系统,新版windows中则称为cmd,对我们而言,目的就一个:用命令来操作电脑。

    它,看起来是这样的

    c:\users\administrator 表示我们的当前目录,可以使用 cd 新的路径 来切换位置,经常用!!!

    除此之外,我们可以在光标闪烁处,执行命令。

    如何打开它?

    1、通过开始菜单

    依次点击 开始菜单运行,输入:cmd,最后敲回车!

    2、通过 cmd.exe

    进入文件夹 c:\windows\system32\ 找到 cmd.exe,双击就能打开。

    执行命令

    上面说了,直接在光标闪烁处,即可输入命令,比如这样

    我输入了一个 dir 的命令,敲回车执行后,效果如上图,列出当前文件夹下所有文件信息

    执行带参数的命令

    有些命令,是可以附加参数的,比如 dir music 表示,列出 music 文件夹下的文件,注意:命令和参数之间必须有空格,可以有多个参数。

    一共有多少个命令?

    可以用 help 命令查看。

    每个命令有哪些可用参数?

    可以用 help 命令 查看帮助,比如 help dir

    常用指令

    文件与文件夹类

    开始之前,你应该知道什么是硬盘路径,以及相对路径绝对路径,不了解的同学可以百度一下。

    • cd,切换目录位置
      • cd music 切换到 当前目录/music/
      • cd c:\xxx 用绝对路径切换。
      • cd .. 切换到上一级目录
      • cd / 切换到盘符根目录
      • 切换盘符,比如从c盘切换到d盘
        • 错误用法:cd d:
        • 正确用法:d:(直接输入盘符即可)
    • dir,列出当前文件夹下所有文件
    • md,创建文件夹
      • md c:\xxx 创建 xxx 文件夹
    • ren 重命名文件、文件夹
      • ren a b,将文件夹a改为b
      • rd 删除目录
      • del 删除文件
      • move 移动文件
      • copy 复制文件

    其他命令

    有相当丰富的命令,包括关机、重启,网络操作、进程操作等,还有些比较危险的操作,比如格式化硬盘等。

    • tasklist 查看所有进程
      • 还可以用 taskkill 指令杀掉进程
    • ping 查看本机与目标服务器的网络状态
    • netstat 查看网络状态
      • netstat -ano|findstr 80 查看80端口是否被占用

    剩下的,就请大家自行挖掘了。

    自定义命令

    写这篇文章的重点就是,很多同学在学习php的时候,对phpcomposer这两个命令摸不清头脑,下面这段可要认真看。

    命令都是什么?

    许多系统命令都是.exe的文件,主要存放在 c:\windows\system32\ ,比如 ping.exe

    如何执行自定义命令

    比如 C:\xampp\php\php.exe 本身就是个命令。

    对于 PHP 程序员来说,这个命令比较常用,透过它我们可以在命令行执行PHP代码。

    为什么我的命令要带目录?

    为什么要 c:\xxx\php.exe 而不是 php ?那是因为你没有设置path环境变量。

    当你输入php的时候,cmd会从path中预定义的文件夹中,依次寻找php.exe,如果你的文件不在预定义路径,则比如输入完整路径。

    为 path 添加预定义路径

    如果看不懂,可以自行搜索引擎。

    • 计算机图标上点右键,选择属性菜单
    • 高级系统设置
    • 环境变量
    • 找到 path
    • 将自己的路径,添加到变量值的末端
      • 支持多个路径
      • 每个路径之间用“;”号隔离
    • 重新打开 cmd 窗口,即可使用。

    进阶科普

    cmd 支持非常初级的脚本语法:bat,我们可以将多个命令一次性写入然后执行,并且可以做一些简单的循环、判断、变量等操作。

    后记

    虽然cmd很简陋,但对于windows用户,尤其是程序员来说,比较常用,一定要学习一下。

    另外,这对于你日后学习linux 中的 shell,有一定帮助,他们之间命令不同,但是概念相同。(linux shell比cmd强大100倍的样子)