学习控制台命令的重要性

时间:2010-10-14 08:40:10

标签: windows batch-file command-line cmd

我正在为全新的计算机工程专业的学生教授入门课程。本周我将教授基本的Windows控制台(命令提示符)命令和批处理文件(以及几周后的unix)。去年,一些学生抱怨说“已经没有必要了”。由于我坚持教它,我有一些理由。但我想听听你们的意见。在我开始之前,我可以用什么理由来说服他们?

感谢。

好的,现在有几个答案之后,我想列出我教授基本控制台命令和基本批处理文件使用的理由。

  • 首先,它有助于了解幕后发生的事情。这对将来的许多课程很有用,例如操作系统和网络。
  • 学习Linux之前的良好开端。那么,为什么不首先使用Linux?因为他们中的大多数从未使用过除Windows以外的任何其他东西。 (几周后我会教Linux和虚拟盒子)
  • 不要低估批处理文件。这也是UNIX shell脚本的一个很好的介绍。
  • 他们也在Windows上学习C编程。所以他们可以使用system()的一些命令;功能在他们的代码中。
  • 在他们的余生中,他们必须在不使用GUI的情况下执行许多任务。

编辑:在MS-DOS的原始问题中,我试图说的是Windows命令提示符和命令行。

13 个答案:

答案 0 :(得分:9)

这会是他们会使用的吗?如果不是,他们可能会忘记它,或者在不知道原因的情况下学习它,也许会讨厌它,而你不想要它。

我认为他们最终会使用powershell(如果不是* nix shell),为什么不教呢?

答案 1 :(得分:6)

有充分的理由学习使用命令行 - 它比任何GUI都要快得多 - 但DOS真的确实有一个明显过时的空气。这并不是说 已过时 - cmd仍然附带每个Windows,原因很充分 - 但学生们需要感觉他们正在学习新的和酷的东西。

我会专注于Linux来教授命令行 - 没人能说这在2010年没有关系! - 处理DOS shell及其(更有限的)可能性和差异作为其中的一部分。

答案 2 :(得分:5)

正如上面的幻象说:“现代Windows中不存在MS-DOS”。 Win2K / WinXP / Win2003中的命令提示符与原始MS-DOS不同。我认为MS-DOS几乎(如果不是绝对的)过时且不值得学习,除非对于想要了解Microsoft OS演进路径的人。

但是,对于Windows用户,仍应学习 cmd 。以下是我认为的原因:

  1. 命令提示符是Windows上的基本CLI shell。许多实用程序(例如,用于SQLServer的ipconfig / ping / netstat / sqlcmd等)只能在命令行中使用。
  2. 批处理(.bat)或CMD(.cmd)脚本对许多简单的自动作业很有用 - 尽管它的功能和语法都是不可靠的。
  3. 可以使用一些额外的工具包来增强cmd的功能,例如Cygwin,Sysinternals,Windows资源工具包工具等。他们需要有关cmd的知识。
  4. 着名书籍 The Pragmatic Programmer 中的第15节(提示21)解释了为什么应该学习命令行。

    在Windows 7上, PowerShell 似乎是比cmd更好的选择。

答案 3 :(得分:4)

首先,现代Windows中不存在MS DOS - 自Win2k / WinXP以来就没有 你在Windows命令行中的意思。它有很多很好的用途,但您可能会发现教它们创建.cmd脚本并从“运行”对话框中运行它们会更容易。

我在Windows中使用命令行的原因如下:

  • ipconfig / flushdns

除此之外,我很少在windows中使用命令行。如果我需要在批处理过程中做任何事情,我会直接进入我的linux服务器并执行此操作。

Powershell可能会更好,但我没有使用它(正如我所说,我可以使用linux)所以我不能对此发表评论。

答案 4 :(得分:3)

在Windows中你也可以教他们Powershell ......

答案 5 :(得分:2)

永远不要低估批处理文件的有效性。大约一年前,我曾经将它们用于几个小任务,例如通过网络自动复制备份文件。它们非常有用。

答案 6 :(得分:2)

  • 考虑到越来越多的计算机(包括数据中心的移动电话和服务器)基于Unix或Linux,
  • 考虑到你的类的核心是Unix和Linux,
  • 考虑到Cygwin可以在Windows上访问Unix命令行,

  • 但是考虑到MS-DOS有时可能有所帮助,

我会教另一种方式:Unix作为入门者和主要课程,然后是MS-DOS作为旁注。

答案 7 :(得分:0)

也许有一天你的窗户会粉碎,所以如果你知道MS-DOC的基础知识,你可以在格式化磁盘之前从计算机中保存一些文件。或者也许你可以修理你的硬盘。如果您是开发人员,可以使用MS-DOC命令生成一些文件......在某些情况下非常有用。

答案 8 :(得分:0)

学习任何东西都是有用的,但是我不会对它们强制执行,有很多很棒的命令行工具仍然可供使用,有时候编写一个简单的批处理文件来完成一些繁琐的任务会更简单。 DOS并不是一件难以学习的东西,所以我不会花太多时间在它上面,而只是教一些基本的DOS命令并指出它们的一些参考,如果他们希望进一步了解他们的话。

答案 9 :(得分:0)

这就是为什么你应该放弃在当今时代教授DOS(cmd.exe)的想法。

  • 缺乏数据结构,例如 阵列/词典/散列。
  • 缺少字符串/文本操作 功能和能力。
  • 缺少日期算术 功能
  • 缺乏数学能力。只要 能够对整数进行数学运算。
  • 缺乏其他节目 构造像while循环等
  • 由于缺乏此类功能, 一个人通常必须创造 变通办法,以至于那么多 批次代码最终凌乱而且 低效的。
  • 和其他许多人等

一些更好的选择,

  1. Linux shell。
  2. 的VBScript
  3. 的powershell
  4. C
  5. 的Python。

答案 10 :(得分:0)

其他想法:

  1. 对于计算机科学专业的学生来说,Linux / FreeBSD上的学习编程要比在Windows上进行学习编程好得多。首先,开源操作系统便宜;其次,这些类UNIX操作系统组织良好,开放性强,初学者可以获得更多的知识和技术。在这个关于命令行的主题中,我们可以看到* NIX shell比Windows cmd更强大,更漂亮。

  2. 对于在Windows平台上工作的程序员或系统管理员,cmd(或PowerShell)是必备技能。我们可以编写cmd脚本来做一些简单的自动作业。对于复杂的任务,我们可以选择VBScript / Python / Perl / AutoHotKey并将它们与cmd一起附加。

答案 11 :(得分:0)

引自hrzafer:

“他们也在学习Windows上的C编程。因此他们可以在代码中使用一些带有system()函数的命令。”


我同意这一点。不仅是“system()”,还有“int argc,char * argv []”,“返回/退出”等。

最好开始使用CLI学习编程。使用文本编辑器和编译器/ debuger / profiler而不是IDE的命令工具包,学生可以理解编译过程,源代码和可执行文件的实质,以及程序和操作系统shell之间的交互。

答案 12 :(得分:0)

我会马上用Linux / Unix开始。虽然你说他们以前从未使用过Linux并习惯于Windows,但我怀疑他们曾经多久使用过DOS /命令行。如果你正在谈论真正的MS-DOS与8.3文件名,config.sys / autoexec.bat,内存限制&司机麻烦,除非绝大多数学生将为遗留系统开发,否则你只会浪费时间在一些不会有太大益处的事情上。当他们开始熟悉DOS然后不得不跳到Linux时,它会变得更糟,与DOS相比,它看起来像一个外星球。

Windows命令行可能很好学,但最终他们应该学习编程基础知识,然后他们可以将它应用于许多脚本语言,如BATCH,BASH,Powershell等......