我正在教一个入门课,为全新的计算机工程专业的学生开设课程 本周我将教授基本的Windows控制台(命令提示符)命令和batch file(以及数周后的unix)。 去年有学生抱怨说“这不再是必要的”。 由于我坚持教学,所以我有一些理由。 但是我想听听你们的意见。 在我开始之前,我可以用什么理由说服他们呢?
谢谢。
好吧,现在我有几个答案,我想列举我的理由,教基本的控制台命令和基本的batch file的使用情况。
编辑:在MS-DOS的原始问题,我想说的是一般的Windows命令提示符和命令行。
正如上面所说的:“现代Windows中不存在MS-DOS”。 Win2K / WinXP / Win2003中的命令提示符与原始MS-DOS不同。 我认为MS-DOS几乎(如果不是绝对的话)过时并且不值得学习,除非有人想了解微软操作系统的演进路径。
但是,对于Windows用户, cmd仍然应该学习。 以下是我认为的原因:
在着名的“实用程序员”一书中,第15部分(技巧21)解释了为什么要学习命令行。
在Windows 7上, PowerShell似乎是比cmd更好的选择。
这将是他们将使用的东西吗? 如果不是,他们可能会忘记它,或不知道为什么,也许恨它,而你不想要。
我想他们最终会使用powershell(如果不是* nix shell),那为什么不教这个?
学习使用命令行是有很好的理由的 – 它比任何如此多的任务都快得多 – 但是DOS确实有一个明显过时的空气。 这并不是说它已经过时了,但是由于很好的原因, cmd
仍然在每一个Windows上运行,但是学生需要感觉他们正在学习一些新的东西,很酷。
我将专注于Linux教学命令行 – 没有人可以说这在2010年是不相关的! – 处理DOS shell及其(更有限的)可能性和差异作为其中的一部分。
首先,MS DOS在现代Windows中不存在 – 它没有从Win2k / WinXP的意思在Windows命令行。 这有很多用处,但是您可能会发现教他们创建.cmd脚本并从“运行”对话框运行它们会更容易。
我在Windows中使用命令行的原因如下:
除此之外,我很少在Windows中使用命令行。 如果我需要在批处理过程中做任何事情,我将SSH入我的Linux服务器,并做到这一点。
Powershell可能会更好,但我不使用(正如我所说,我有Linux可用),所以我不能评论这一点。
在Windows中,你也可以教他们Powershell …
永远不要低估批处理文件的有用性。 大约一年前,我曾经使用它们来完成一些小任务,比如通过网络自动复制备份文件。 他们可以是非常有用的。
考虑到Cygwin可以访问Windows上的Unix命令行,
但是考虑到MS-DOS有时可能有所帮助,
我会教另一种方式:Unix作为一个起动器和一个主要课程,然后MS-DOS作为一个便笺。
也许有一天你的窗户会粉碎,所以如果你知道MS-DOC的基本知识,你可以在格式化磁盘之前从电脑上保存一些文件。 或者,也许你可以修复你的硬盘驱动器。 如果您是开发人员,则可以使用MS-DOC命令生成一些文件…在某些情况下非常有用。
学习任何东西都是有用的,但是我不会对它们强制执行,还有很多很棒的命令行工具仍然可以使用,有时更简单的编写一个简单的批处理文件来完成一些繁琐的任务。 DOS不是一件很难学的东西,所以我不会花太多的时间在上面,只是简单地教一些DOS命令,然后给他们一些参考资料,如果他们想进一步学习,那么他们就可以。
这里有一些原因,为什么你应该放弃在这个时代教DOS( cmd.exe
)的想法。
一些更好的选择,
其他想法:
对于计算机科学专业的学生来说,在Linux / FreeBSD上学习编程要比在Windows上进行编程好得多。 首先,开源操作系统很便宜; 其次,这些类似UNIX的操作系统组织良好,开放,使初学者可以获得更多的知识和技术。 在这个关于命令行的主题中,我们可以看到* NIX shell比Windows cmd更强大更美观。
对于在Windows平台上工作的程序员或系统管理员,cmd(或PowerShell)是必要的技能。 我们可以编写cmd脚本来做一些简单的自动作业。 对于复杂的任务,我们可以选择VBScript / Python / Perl / AutoHotKey并将它们与cmd连接在一起。
来自hrzafer的报价:
“他们也在Windows上学习C编程,所以他们可以使用system()函数,在他们的代码中使用函数。”
我同意这一点。 不仅是“system()”,还有“int argc,char * argv []”,“return / exit”等
开始使用CLI学习编程更好。 使用文本编辑器和编译器/ debuger / profiler的命令工具包而不是IDE,学生可以了解编译过程,源代码和可执行文件的实质,以及程序和操作系统shell之间的交互。
我会立即开始使用Linux / Unix。 虽然你说他们以前从来没有使用过Linux,习惯于Windows,但是我怀疑他们曾经使用过DOS /命令行。 如果你正在谈论真正的MS-DOS 8.3文件名,config.sys / autoexec.bat,内存限制和驱动程序的麻烦,你只是要浪费自己的时间在一些不会有什么好处,除非绝大多数的学生将为传统系统开发。 当他们开始使用DOS时,情况会变得更糟,然后不得不跳到Linux,与DOS相比,它会看起来像是一个外星人。
Windows命令行可能是很好的学习,但最终他们应该学习编程基础知识,然后他们可以将它应用于BATCH,BASH,Powershell等许多脚本语言。