你可以利用linux固有的command shell的靈活性,創(chuàng)建腳本語(yǔ)言,幫助你在Linux環(huán)境中模擬DOS命令。具體做法如下。
如果你是一位IT支持專家,你對(duì)于Windows的命令操作非常喜歡,在你第一次使用Linux的命令行的時(shí)候,你可能很快就會(huì)發(fā)現(xiàn)自己被搞糊涂了。長(zhǎng)期以來(lái)你所熟悉的DOS命令在Linux中不存在了。所以你會(huì)發(fā)現(xiàn),自己面臨著一項(xiàng)可怕的任務(wù):重新學(xué)習(xí)并熟悉一整套新的命令。
作為另一個(gè)選擇,你可以利用Linux command shell固有的靈活性,創(chuàng)建腳本,幫助你在Linux環(huán)境中模擬DOS命令。具體做法如下。
shell scripting的基礎(chǔ)
Linux的shell scripting 是一種自動(dòng)完成多種類型任務(wù)的方法,從夜間備份到簡(jiǎn)單的命令行應(yīng)用。幾乎任何程序都可以通過(guò)shell script完成。你甚至可以在腳本內(nèi)部完成簡(jiǎn)單的條件檢查。shell script的基本格式如下:
#!/bin/sh
...
這里是你的命令
...
注意文件是以#!/bin/sh開始的。這把操作系統(tǒng)指向解釋腳本的程序。絕大部分系統(tǒng)有/bing/sh,因?yàn)檫@是根用戶使用的標(biāo)準(zhǔn)shell。你可以在絕大部分系統(tǒng)中使用/bing/bash。
重要的是了解每個(gè)shell之間的腳本差別。一些殼,比如bash,比標(biāo)準(zhǔn)shell支持更多的命令。對(duì)于絕大部分Linux版本,sh事實(shí)上是bash。
從一個(gè)腳本運(yùn)行命令非常簡(jiǎn)單。就好象在Windows系統(tǒng)中運(yùn)行DOS。比如,你可以這樣復(fù)制文件:
#!/bin/sh
cp file1 file2
mv file2 file3
echo "complete" > complete.txt
能夠不需要交互就完成一個(gè)命令對(duì)于自動(dòng)運(yùn)行的任務(wù)來(lái)說(shuō)非常有用,但是對(duì)于用戶來(lái)說(shuō)卻不是那么有幫助了。 shell 還為向一個(gè)運(yùn)行中的腳本輸入數(shù)據(jù)提供了途徑。這就允許腳本從用戶那里獲得數(shù)據(jù)輸入,然后在程序運(yùn)行中運(yùn)用這些數(shù)據(jù)。命令行中的argument指的是$1到$9。如果你曾經(jīng)在DOS中創(chuàng)建過(guò)批處理文件,你就可能對(duì)于使用類似的%1、%2處理同樣的事情。下面是一個(gè)使用命令行argument的例子:
#!/bin/sh
cp $1 $2
上面的腳本采用了兩個(gè)命令行argument,并把其中一個(gè)作為拷貝的來(lái)源,而第二個(gè)作為拷貝的目的地。在運(yùn)行上面這個(gè)腳本的時(shí)候,你需要輸入諸如./myscript file1 file2,這里的myscript指的是上面腳本的名稱。命令行選項(xiàng)也可以通過(guò)這種方法傳遞,比如:
#!/bin/sh
cp $1 $2 $3
為了遞歸地把$2目錄下所有的文件拷貝到$3,你可以使用上面的腳本:/copy sourcedir destdir。選項(xiàng)$1加上-r能夠告訴系統(tǒng)進(jìn)行遞歸式的文件拷貝。
帶條件的Shell scripting
簡(jiǎn)單的Shell scripting對(duì)于處理直截了當(dāng)、沒(méi)有變數(shù)的任務(wù)非常合適。而對(duì)于那些需要一定程度決策的工作來(lái)說(shuō),if/then條件假設(shè)就成為必須的了。Shell scripting支持很多選項(xiàng),從比較符操作到檢索文件的存在。基本的if條件判斷選項(xiàng)包括:
-eq 檢查某兩個(gè)值是否相等(例如,if [2 eq 5])
-ne 檢查兩個(gè)值是否不相等
-lt 檢查值1是否小于值2
-le 檢查值1是否小于等于值2
-gt 檢查值1是否大于值2
-ge 檢查值1是否大于等于值2
-f 檢查某一個(gè)文件是否存在(例如,[-f "文件名"])
-d 檢查某一個(gè)目錄是否存在
幾乎所有主要的程序都可以使用比較操作。最經(jīng)常使用的是-f,我們用它在使用某一個(gè)文件之前,先行檢查它的存在。
創(chuàng)建簡(jiǎn)單腳本模擬Windows命令
現(xiàn)在,你了解了基礎(chǔ),你可以創(chuàng)建腳本命令,這樣Windows用戶就可以在Linux系統(tǒng)內(nèi)使用同樣的命令。為你常用的DOS命令創(chuàng)建模擬映射是非常簡(jiǎn)單的事情。例如,把Linux cp命令映射為Windows copy命令就是這樣進(jìn)行的:
#!/bin/sh
if [ -f "/usr/bin/mcopy" ]
then
mcopy $1 $2
else
cp $1 $2
fi
該腳本利用了mcopy(如果它存在),因?yàn)樵撁罱邮躓indows路徑,比如:a:/file.txt。這個(gè)命令在絕大部分主流Linux版本的mtool包中。一旦一個(gè)腳本被成功創(chuàng)建,記得要使用chmod +x YourScriptName命令使它成為可執(zhí)行文件。
有很多方法可以調(diào)試你的腳本,但是最簡(jiǎn)單的辦法是在你的腳本中插入一個(gè)簡(jiǎn)單的echo語(yǔ)句。下面是一個(gè)例子:
#!/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"
使用簡(jiǎn)單的陳述幫助你了解這個(gè)腳本,并幫助你跟蹤它是在那里出問(wèn)題的。
獲得腳本
有了這些基本的腳本知識(shí),你就能夠很容易地把絕大部分常用的Windows命令行轉(zhuǎn)化成Linux可用的腳本。如果有某一個(gè)特定的命令行選項(xiàng)是你想進(jìn)行映射的,查看Linux man pages,這能幫助你找到合適的方法。
新聞熱點(diǎn)
疑難解答
圖片精選