如何在Linux环境模拟DOS命令

2016-01-29 19:05 9 1 收藏

如何在Linux环境模拟DOS命令,如何在Linux环境模拟DOS命令

【 tulaoshi.com - Linux 】

 

你可以利用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
cp file1 file2
mv file2 file3
echo "complete" complete.txt

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

能够不需要交互就完成一个命令对于自动运行的任务来说非常有用,但是对于用户来说却不是那么有帮助了。 shell 还为向一个运行中的脚本输入数据提供了途径。这就允许脚本从用户那里获得数据输入,然后在程序运行中运用这些数据。命令行中的argument指的是$1到$9。如果你曾经在DOS中创建过批处理文件,你就可能对于使用类似的%1、%2处理同样的事情。下面是一个使用命令行argument的例子:

#!/bin/sh
cp $1 $2

上面的脚本采用了两个命令行argument,并把其中一个作为拷贝的来源,而第二个作为拷贝的目的地。在运行上面这个脚本的时候,你需要输入诸如./myscript file1 file2,这里的myscript指的是上面脚本的名称。命令行选项也可以通过这种方法传递,比如:

#!/bin/sh
cp $1 $2 $3

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

为了递归地把$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
if [ -f "/usr/bin/mcopy" ]
then
mcopy $1 $2
else
cp $1 $2
fi

该脚本利用了mcopy(如果它存在),因为该命令接受Windows路径,比如:a:file.txt。这个命令在绝大部分主流Linux版本的mtool包中。一旦一个脚本被成功创建,记得要使用chmod +x YourScriptName命令使它成为可执行文件。

有很多方法可以调试你的脚本,但是最简单的办法是在你的脚本中插入一个简单的echo语句。下面是一个例子:

#!/bin/sh
echo "marker 1"
if [ -f "/usr/bin/mcopy" ]
then
echo "marker 2"
mcopy $1 $2
else
echo "marker 3"
cp $1 $2
fi
echo "marker 4"

使用简单的陈述帮助你了解这个脚本,并帮助你跟踪它是在那里出问题的。

获得脚本

有了这些基本的脚本知识,你就能够很容易地把绝大部分常用的Windows命令行转化成Linux可用的脚本。如果有某一个特定的命令行选项是你想进行映射的,查看Linux man pages,这能帮助你找到合适的方法。

 

来源:http://www.tulaoshi.com/n/20160129/1508386.html

延伸阅读
许多在shell 提示下键入的 Linux 命令都与你在 DOS 下键入的命令相似。事实上,某些命令完全相同。 本附录提供了 Windows 的 DOS 提示下的常用命令以及在 Linux 中与它们等同的命令。附录中还提供了如何在 Linux shell 提示下使用这些命令的简单实例。请注意,这些命令通常有许多选项,要进一步学习每一个命令,请阅读相关的说明书(man...
  无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂...
  By 风过留枫 经过几番折腾,终于让LINUX在我的硬盘上安居乐业了。怀着好奇、激动的心情第一次启动了LINUX。屏幕上不断向上滚动一行行的字,看得我眼花缭乱。不过很快就恢复了平静,空荡荡的屏幕上只剩下孤伶伶的Login:提示符,然后就再也不动了。启动完了吗?还记得Windows NT吗,不输入用户名和口令,休想进入系统。原来这里...
如何在win7电脑中运用dos命令删除空白文件夹?   1.首先,咱们同时按下键盘上的win+r打开电脑的运行窗口,然后在窗口中输入cmd并单击回车,这样就可以打开电脑的命令提示符窗口了。 2.在打开的命令提示符窗口中,咱们输入RD /s/q命令并单击回车,这样,电脑便会开始自动运行,帮助我们删除掉系统中没有用的空白文件夹了。这...
标签: 电脑入门
Linux下的more命令主要用于分屏显示,即内容超过一屏的文件,与cat命令有点区别,下面图老师小编就给大家详细介绍下more命令,有兴趣的话不妨来了解下吧。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读...

经验教程

739

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部