如果你是一位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能夠告訴系統進行遞歸式的文件拷貝。