在軟體開發的世界中,作為web端程式猿打交道最多的作業系統相信就是Linux系統了吧。而對於Linux系統的使用,如果能掌握一些小技巧,在程式開發、調試的過程中,相信做事的效率也會有一些提升。以下就跟大家分享3個Linux程式設計中用戶命令列小技巧。
1. 如何在不使用Cron的情況下排的任務調度
所謂Cron,就是在Linux下調度一個任務/指令。通常我們調度任務時,我們都會使用到Cron,但其實在不適用Cron的情況下,也是可以調度任務的。
每5秒鐘執行一個指令(date)然後寫結果入到一個檔案(data.txt)。為了實現這一點,我們可以直接在命令提示字元中執行以下單行腳本。
$ while true; dodate >> date.txt ; done &
其中:
while true true:讓腳本進入一個條件總為真的循環中,也就是製造一個死循環,將裡邊的命令一再重複運行。
do :do是while語句中的關鍵字,它之後的指令會被執行,在它後邊可以放置一個或一系列指令。
date >>date.txt :執行date指令,並將其輸出寫入到data.txt檔案中。注意我們使用>>,而不是>。
>> :對檔案(date.txt)進行追加寫的操作,這樣每次執行指令後,輸出內容會被追加到檔案中。如果使用>的話,則會一遍遍地覆蓋之前的內容。
sleep 5 :讓腳本處於5秒睡眠狀態,然後再運行之後的指令。注意這裡的時間單位只能用秒。也就是說如果你想讓指令每6分鐘運行一次,你應該使用sleep360。
done :while循環語句區塊結束的標記。
& :整個行程放到背景運作。
類似地,我們可以這樣執行任何腳本。下邊的例子是每100秒執行一個名為script_name.sh的腳本。
另外值得一提的是上面提到的腳本檔案必須處於在目前目錄中,否則需要使用完整路徑(/home/$USER/…/script_name.sh)。實現如上功能的單行腳本如下:
總結:上述的單行腳本並不是Cron的替代品,因為Cron工具支援眾多選項,更加靈活,可自訂性也更高。然而如果我們想要執行某些測試,例如I/O評測,上述的單行腳本也都很管用。
2. 如何不使用clear指令實現終端內容的清除
在程式設計中,我們很多時候都想在其它目錄中運行一個命令,然後再回到當前目錄,但是這往往又難以實現。其實要實現這個需求簡單,只需要把指令放在一個圓括號裡。
下面我們來舉例說明:
avi@deb:~$ (cd/home/avi/Downloads/)
示例輸出:
avi@deb:~
avi@deb:~ ~
它首先會cd到Downloads目錄,然後又回到了之前的家目錄。也許你認為裡邊的命令根本沒有執行,或者是出了某種錯誤,因為從命令提示字元看不出任何變化。讓我們簡單修改一下這個指令:
avi@deb:mavi@deb~ (cd/home/avi/Downloads/ && ls -l)
範例輸出:
範例輸出:
例如
-rw-r----- 1 avi avi 54272 May 3 18:37 text1. >-rw-r----- 1 avi avi 54272 May 3 18:37 text2.txt
avi@deb:
在上述指令中,它首先進入Downloads目錄,然後列出檔案內容,最後又回到了目前目錄。並且它證明了命令成功執行了。你可以在括號中包含任何指令,執行完都會順利回到目前目錄。 以上就是Linux指令行的3個實用小技巧,掌握超實用小技巧並且熟練使用它們,將使你在Linux系統上開發軟體顯得更專業、更事半功倍。 |