如何在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

  cp file1 file2

  mv file2 file3

  echo "complete" > complete.txt  

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

  #!/bin/sh

  cp $1 $2 

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

  #!/bin/sh

  cp $1 $2 $3  

  为了递归地把$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,这能帮助你找到合适的方法。

时间: 2024-10-28 05:41:50

如何在Linux环境模拟DOS命令的相关文章

如何在Linux上使用命令行管理密码

如何在Linux上使用命令行管理密码 在基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码.有各种各样的在线或离线服务或者软件工具用于完成此类事情,而这些工具因复杂程度.用户界面或者目标环境(如企业或终端用户)的不同而各不相同.例如,有一些是为终端用户开发基于图形化的密码管理器,如KeePass(X). 对于那些不想要依赖图形化进行密码管理的用户,笔者将会讲述如何在命令行下使用 pass来管理密码,这是一个简单的用于命令行管理密码的工具. 该密

如何在 Linux 上运行命令前临时清空 Bash 环境变量

我是个 bash shell 用户.我想临时清空 bash shell 环境变量.但我不想删除或者 unset 一个输出的环境变量.我怎样才能在 bash 或 ksh shell 的临时环境中运行程序呢? 你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境.env 命令可以按命令行指定的变量来修改环境,之后再执行程序. 如何显示当前环境? 打开终端应用程序并输入下面的其中一个命令: printenv 或 env 输出样例: Fig.01: Unix/Linux: 列出所

如何在Linux中用命令行工具管理KVM虚拟环境

如何在Linux中用命令行工具管理KVM虚拟环境 在我们KVM系列专题的第四部分,我们将会一起讨论下在命令行界面下来管理KVM环境.我们分别用'virt-install'和virsh命令行工具来创建并配置虚拟机和存储池,用qemu-img命令行工具来创建并管理磁盘映像. Linux系统的KVM管理 在这篇文章里没有什么新的概念,我们只是用命令行工具重复之前所做过的事情,也没有什么前提条件,都是相同的过程,之前的文章我们都讨论过. 第一步: 配置存储池 Virsh命令行工具是一款管理virsh客户

借助Shell让你在Linux下也能用DOS命令

如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时 ,一定会感到无所适从.你所熟悉的DOS命令再Linux中基本不存在.摆在你面前 的是一大堆要记背的命令. 一种替代方案是利用强大的Linux外壳命令编写shell脚本,让你在Linux下也 能用DOS命令.下面告诉你怎么做. shell脚本编写基础 从定时备份到执行简单命令,Linux的shell脚本可以执行各种功能.几乎所 有的程序都可以用shell脚本来运行.在脚本中甚至可以包含一些简单的条件选 择.shell

如何在Linux命令行中创建以及展示演示稿

如何在Linux命令行中创建以及展示演示稿 你在准备一场演讲的时候,脑海可能会先被图文并茂.形象华丽的演示图稿所占据.诚然,没有人会否认一份生动形象的演讲稿所带来的积极作用.然而,并非所有的演讲都需要TED Talk的质量.更多时候,演讲稿只为传达特定的信息. 而这个,使用文本信息足以完成.在这种情况下,你的时间可以更好的花在信息的搜集和核实上面,而不是在谷歌图片搜索(Google Image)上寻找好看的图片. 在Linux的世界里,有几个不同的方式供你选择来做演讲.比如带有大量多媒体展示.视

LFCS 系列第一讲:如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件

LFCS 系列第一讲:如何在 Linux 上使用 GNU sed 等命令来创建.编辑和操作文件 Linux 基金会宣布了一个全新的 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证计划.这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证.这些能力包括支持运行的系统服务,以及第一手的故障诊断.分析,以及为工程师团队在升级时提供明智的决策. Linux 基金会认证系统管理员--第一讲 请观看下面关于

如何在linux上分享你shell命令的输出

如何在linux上分享你shell命令的输出 前段时间我发布了一篇关于shelr.tv这个网站的文章,它提供一个服务允许你从网站上直接分享你的终端记录. 现在shelr.tv这个网站似乎关闭了,然后我四处寻找是否有类似的网站,于是我发现了commands.com. 从它的主页上来看,它的服务和其他网站提供的服务是类似的,因此让我们来测试它. 步骤 1 – 在网站上注册 只需要注册一个新的 用户名/密码,或者直接使用你的github账户快速登录. 步骤 2 – 下载安装monitor程序 Moni

如何在Linux的命令行中使用Evernote

如何在Linux的命令行中使用Evernote 这周让我们继续学习如何使用Linux命令行管理和组织信息.在命令行中管理你的个人花费后,我建议你在命令行中管理你的笔记,特别是当你用Evernote记录笔记时.要是你从来没有听说过它,Evernote 专门有一个用户友好的在线服务可以在不同的设备间同步笔记.除了提供花哨的基于Web的API,Evernote还发布了在Windows.Mac.Android和iOS上的客户端.然而至今还没有官方的Linux客户端可用.老实说在众多的非官方Linux客户

如何在 Linux 中使用 Alpine 在命令行里访问 Gmail

如何在 Linux 中使用 Alpine 在命令行里访问 Gmail 假如你是一个命令行爱好者,我很确信你会使用这个强大的工作环境来执行哪怕是一项日常任务的工具,并为之欢呼,例如从 安排日程 . 管理财务 到 获取 Facebook .Twitter等任务.(LCTT 译注:阅读本文的另一个前提是,假如你还能访问 Gmail 或者知道 Gmail 是什么的话.) 在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,为此,我们将使用