国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

如何在Linux環(huán)境模擬DOS命令

2024-07-26 00:28:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

你可以利用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,這能幫助你找到合適的方法。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江陵县| 肥城市| 普兰店市| 澜沧| 肇庆市| 楚雄市| 宁安市| 页游| 望江县| 宕昌县| 玉门市| 陵川县| 旌德县| 盐边县| 麻阳| 达尔| 东乡县| 霍林郭勒市| 日喀则市| 丹巴县| 渭源县| 大理市| 垣曲县| 合水县| 杭锦旗| 佛山市| 广平县| 永兴县| 高清| 渭南市| 乌拉特中旗| 余江县| 宜城市| 华池县| 临夏县| 禹城市| 新密市| 观塘区| 呼和浩特市| 宝应县| 永清县|