| 如何在Linux环境模拟DOS命令 |
您可以利用Linux固有的command shell的灵活性,创建脚本语言,帮助您在Linux环境中模拟DOS命令.具体做法如下. 如果您是一位IT支持专家,您对于Windows的命令操作非常喜欢,在您第一次使用Linux的命令行的时候,您可能很快就会发现自己被搞糊涂了.长期以来您所熟悉的DOS命令在Linux中不存在了.所以您会发现,自己面临着一项可怕的任务:重新学习并熟悉一整套新的命令. 作为另一个选择,您可以利用Linux command shell固有的灵活性,创建脚本,帮助您在Linux环境中模拟DOS命令.具体做法如下. shell scripting的基础 Linux的shell scripting 是一种自动完成多种类型任务的方法,从夜间备份到简单的命令行应用.几乎任何程序都可以通过shell script完成.您甚至可以在脚本内部完成简单的条件检查.shell script的基本格式如下: #!/bin/sh 注意文件是以#!/bin/sh开始的.这把操作系统指向解释脚本的程序.绝大部分系统有/bing/sh,因为这是根用户使用的标准shell.您可以在绝大部分系统中使用/bing/bash. 重要的是了解每个shell之间的脚本差别.一些壳,比如bash,比标准shell支持更多的命令.对于绝大部分Linux版本,sh事实上是bash. 从一个脚本运行命令非常简单.就好象在Windows系统中运行DOS.比如,您可以这样复制文件: #!/bin/sh 能够不需要交互就完成一个命令对于自动运行的任务来说非常有用,但是对于用户来说却不是那么有帮助了. shell 还为向一个运行中的脚本输入数据提供了途径.这就允许脚本从用户那里获得数据输入,然后在程序运行中运用这些数据.命令行中的argument指的是$1到$Array.如果您曾经在DOS中创建过批处理文件,您就可能对于使用类似的%1、%2处理同样的事情.下面是一个使用命令行argument的例子: #!/bin/sh 上面的脚本采用了两个命令行argument,并把其中一个作为拷贝的来源,而第二个作为拷贝的目的地.在运行上面这个脚本的时候,您需要输入诸如./myscript file1 file2,这里的myscript指的是上面脚本的名称.命令行选项也可以通过这种方法传递,比如: #!/bin/sh 为了递归地把$2目录下所有的文件拷贝到$3,您可以使用上面的脚本:/copy sourcedir destdir.选项$1加上-r能够告诉系统进行递归式的文件拷贝. 带条件的Shell scripting 简单的Shell scripting对于处理直截了当、没有变数的任务非常合适.而对于那些需要一定程度决策的工作来说,if/then条件假设就成为必须的了.Shell scripting支持很多选项,从比较符操作到检索文件的存在.基本的if条件判断选项包括: -eq 检查某两个值是否相等(例如,if [2 eq 5]) -ne 检查两个值是否不相等 -lt 检查值1是否小于值2 -le 检查值1是否小于等于值2 -gt 检查值1是否大于值2 -ge 检查值1是否大于等于值2 -f 检查某一个文件是否存在(例如,[-f "文件名"]) -d 检查某一个目录是否存在 几乎所有主要的程序都可以使用比较操作.最经常使用的是-f,我们用它在使用某一个文件之前,先行检查它的存在. 创建简单脚本模拟Windows命令 现在,您了解了基础,您可以创建脚本命令,这样Windows用户就可以在Linux系统内使用同样的命令.为您常用的DOS命令创建模拟映射是非常简单的事情.例如,把Linux cp命令映射为Windows copy命令就是这样进行的: #!/bin/sh 该脚本利用了mcopy(如果它存在),因为该命令接受Windows路径,比如:a:\file.txt.这个命令在绝大部分主流Linux版本的mtool包中.一旦一个脚本被成功创建,记得要使用chmod +x YourScriptName命令使它成为可执行文件. 有很多方法可以调试您的脚本,但是最简单的办法是在您的脚本中插入一个简单的echo语句.下面是一个例子: #!/bin/sh 使用简单的陈述帮助您了解这个脚本,并帮助您跟踪它是在那里出问题的. 获得脚本 有了这些基本的脚本知识,您就能够很容易地把绝大部分常用的Windows命令行转化成Linux可用的脚本.如果有某一个特定的命令行选项是您想进行映射的,查看Linux man pages,这能帮助您找到合适的方法. 如何在linux主机apache下限制IP访问? 关于Linux系统中文显示乱码解决方案? Linux平台下LNMP一键包安装详解? |