QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

[linux教程] 如何在Linux环境模拟DOS命令

如何在Linux环境模拟DOS命令

如何在Linux环境模拟DOS命令4 b) l/ J$ M2 x& w6 R  I
2006-06-01
( U" n! E+ `. B# U: F( H, B/ `6 e4 _7 g2 U/ E8 \! ?/ @

1 ?' n$ Q% K9 @
; ~/ _/ A5 X5 \& `+ d3 Y你可以利用Linux固有的commandshell的灵活性,创建脚本语言,帮助你在Linux环境中模拟DOS命令。具体做法如下。
6 V/ W3 A3 }. N0 P- ?7 v2 S+ P7 h5 w; g( o4 d) L: M1 c
如果你是一位IT支持专家,你对于Windows的命令操作非常喜欢,在你第一次使用Linux的命令行的时候,你可能很快就会发现自己被搞糊涂了。长期以来你所熟悉的DOS命令在Linux中不存在了。所以你会发现,自己面临着一项可怕的任务:重新学习并熟悉一整套新的命令。
+ }( u9 Y6 m9 g! f
0 K4 b  |% S# ~$ p: s作为另一个选择,你可以利用Linuxcommandshell固有的灵活性,创建脚本,帮助你在Linux环境中模拟DOS命令。具体做法如下。
6 o$ T% S7 Z0 z; t' K% J  F( S0 q7 d
shellscripting的基础+ ?" |2 s: A/ \% I$ Q' c4 a+ |+ d

9 _0 l( G' d, K4 k* q* TLinux的shellscripting是一种自动完成多种型任务的方法,从夜间备份到简单的命令行应用。几乎任何程序都可以通过shellscript完成。你甚至可以在脚本内部完成简单的条件检查。shellscript的基本格式如下:
6 \9 }& ?" s  J/ n. I
- u& v8 X( x! r5 x3 @( k. g: l4 E#!/bin/sh
. I, p3 c. d& K2 L2 ~. W.... i+ q" G- ~$ b9 s" t; t' o! g8 }
这里是你的命令* |/ g1 t# x$ b! z% `" `
..., H/ m1 H2 I+ ^. H5 ]* \; D
" o( S4 w. Y7 m/ }( e3 F  r
注意文件是以#!/bin/sh开始的。这把操作系统指向解释脚本的程序。绝大部分系统有/bing/sh,因为这是根用户使用的标准shell。你可以在绝大部分系统中使用/bing/bash。3 ^5 [1 o  ?7 V5 a: w8 W7 U
' R1 z/ M+ n6 S' h
重要的是了解每个shell之间的脚本差别。一些壳,比如bash,比标准shell支持更多的命令。对于绝大部分Linux版本,sh事实上是bash。
, h( a6 d; `: @" Y* A/ t- q
: J- Z6 ^1 `( y& m$ E& d; K$ @从一个脚本运行命令非常简单。就好象在Windows系统中运行DOS。比如,你可以这样复制文件:
1 D. \/ e  v5 d5 f0 g# K4 U+ l7 ?7 e! I- Q2 I1 Q  f5 q* ?2 z
#!/bin/sh" O* B4 g& w' r& S' z0 e5 Y* E
cpfile1file2
& e7 `# o) o- E: D% t) }mvfile2file3
6 J/ ?# M( w% A1 s7 q+ f8 v* ^echo"complete"%26gt;complete.txt
, H( Z2 F0 P  `5 B2 n! X, D$ ~" x
2 b' w8 a% ^6 \' W+ x" c$ z4 ~能够不需要交互就完成一个命令对于自动运行的任务来说非常有用,但是对于用户来说却不是那么有帮助了。shell还为向一个运行中的脚本输入数据提供了途径。这就允许脚本从用户那里获得数据输入,然后在程序运行中运用这些数据。命令行中的argument指的是$1到$9。如果你曾经在DOS中创建过批处理文件,你就可能对于使用类似的%1、%2处理同样的事情。下面是一个使用命令行argument的例子:. l& m6 F$ _7 s
5 W$ s) ], U! _8 K  S
#!/bin/sh
0 D1 S/ n3 K6 t% p* N6 Wcp$1$2
8 k. r) v: K7 l5 h: c8 I+ e* z* h) |- l" q+ U  F
上面的脚本采用了两个命令行argument,并把其中一个作为拷贝的来源,而第二个作为拷贝的目的地。在运行上面这个脚本的时候,你需要输入诸如./myscriptfile1file2,这里的myscript指的是上面脚本的名称。命令行选项也可以通过这种方法传递,比如:- X7 O* f" Q7 ^% P
: m# x5 y; u. ?5 x' ?. a
#!/bin/sh3 \$ l! ]+ s- {; m
cp$1$2$3
. K" T2 x' O$ [& |; p8 {
( P/ l% w! F" K0 _" k3 q+ \5 Q0 U为了递归地把$2目录下所有的文件拷贝到$3,你可以使用上面的脚本:/copysourcedirdestdir。选项$1加上-r能够告诉系统进行递归式的文件拷贝。% K5 I4 ~3 [8 V3 m. J

. w0 W: o# [+ |1 e: T0 c  i带条件的Shellscripting
& G4 ~+ x$ n- Q/ O. a; A- [/ K  l! G- Z  j$ I( \( y
简单的Shellscripting对于处理直截了当、没有变数的任务非常合适。而对于那些需要一定程度决策的工作来说,if/then条件假设就成为必须的了。Shellscripting支持很多选项,从比较符操作到检索文件的存在。基本的if条件判断选项包括:- p% F# N! q, |+ R8 e8 y2 V$ L

& N" [3 l, P6 j8 ?% f4 o9 r-eq检查某两个值是否相等(例如,if[2eq5])
7 x  X5 j7 K9 h$ v2 z5 _1 T5 B6 E# o4 N) ?) O" _7 g
-ne检查两个值是否不相等
8 Z9 J# z3 r% Q5 m' t  c
# \1 y9 R, r! B; Z: A9 ?& l6 H-lt检查值1是否小于值2  Y7 c# n6 S) d  P' _8 A

7 j6 M: a( d7 o0 S3 b-le检查值1是否小于等于值2
9 Z3 {& X& v8 \/ F* V
( T! I- U, h1 M5 _8 W" }+ z-gt检查值1是否大于值2
) [. H2 h' S" J5 d( P3 U% Z8 X/ s# u! j' Y& V
-ge检查值1是否大于等于值2
, x/ ~& F' a- c( p; `/ P  x
7 }1 c0 U3 P2 ?7 x/ ?-f检查某一个文件是否存在(例如,[-f"文件名"])
" F& W5 T  d7 y
7 N) Z$ i) C. p9 X9 j/ ]& K-d检查某一个目录是否存在+ z9 F" n0 d4 ]' T

: G; ?/ R2 K  q7 g几乎所有主要的程序都可以使用比较操作。最经常使用的是-f,我们用它在使用某一个文件之前,先行检查它的存在。
9 l6 }0 ?7 T7 q
- \- d' V4 f+ ^! M  H创建简单脚本模拟Windows命令& {, O* c( Q/ Q6 u; A
2 F+ V1 t) K7 @: w! G) g3 U
现在,你了解了基础,你可以创建脚本命令,这样Windows用户就可以在Linux系统内使用同样的命令。为你常用的DOS命令创建模拟映射是非常简单的事情。例如,把Linuxcp命令映射为Windowscopy命令就是这样进行的:  k2 {+ X! E% M8 n

8 b; U* Q. r; g, q. \' w#!/bin/sh
, d0 P  l3 L0 p  l6 ^% ^if[-f"/usr/bin/mcopy"]- Y9 i2 N, \  q1 h) w4 i
then6 C5 ?. m2 c) T
mcopy$1$2
% U5 K2 Q* Y' s: P- {- Yelse) C( ^& ]+ Q, V
cp$1$28 I9 F7 `2 a. X5 i* s
fi
& O0 G; [: g; G
8 B1 S$ O( p% D# q该脚本利用了mcopy(如果它存在),因为该命令接受Windows路径,比如:a:\file.txt。这个命令在绝大部分主流Linux版本的mtool包中。一旦一个脚本被成功创建,记得要使用chmod+xYourScriptName命令使它成为可执行文件。3 a$ h3 H" e; k
; G/ ?  R& @5 G& q* }% M0 x( g
有很多方法可以调试你的脚本,但是最简单的办法是在你的脚本中插入一个简单的echo语句。下面是一个例子:7 E  u# A! A& n

1 s7 y9 G, i' c#!/bin/sh
1 c5 R. y/ `- e. recho"marker1"2 L4 K2 W" ~$ a1 Y( Z
if[-f"/usr/bin/mcopy"]
9 F  d5 k- S# Y& N3 H6 P3 nthen
5 s* m$ E0 v" I# Hecho"marker2"& P% u9 W# p$ Y) L
mcopy$1$25 a% d0 T& V6 |  Y
else
5 c3 [9 o2 Y; ~echo"marker3"" u1 l8 o# |5 s( Y4 I
cp$1$2- }) ?' ]( `6 C
fi
5 A, t; b; ~6 t9 M5 Lecho"marker4"
* u3 D" v+ j, i& O& Y2 T( `+ n& C
使用简单的陈述帮助你了解这个脚本,并帮助你跟踪它是在那里出问题的。( N6 n4 _  V& L; X' \! Q

9 [- i5 |; A* e( f4 D+ Z获得脚本, Q- N, v% b! }5 o/ c

9 `; ~* L8 Q/ j' H8 h- N! j有了这些基本的脚本知识,你就能够很容易地把绝大部分常用的Windows命令行转化成Linux可用的脚本。如果有某一个特定的命令行选项是你想进行映射的,查看Linuxmanpages,这能帮助你找到合适的方法。
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

******请登陆论坛查看内容******

(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)
这是赤果果的灌水呐
What good would wings be
if you couldn't feel wind on your face

TOP

发新话题