Linux世界充滿了樂趣抑胎,我們越深入進(jìn)去,就會發(fā)現(xiàn)越多有趣的事物渐北。我們會努力給你提供一些小技巧阿逃,讓你和其他人有所不同,下面就是我們準(zhǔn)備的3個小技巧赃蛛。
1. 如何在不使用Cron的情況調(diào)度Linux下的任務(wù)
在Linux下恃锉,調(diào)度一個任務(wù)/命令稱之為Cron。當(dāng)我們需要調(diào)度一個任務(wù)時呕臂,我們會使用Cron破托,但你知道我們在不使用Cron的情況也可以調(diào)度一個在將來時間運(yùn)行的任務(wù)嗎?你可以按照如下建議操作……
每5秒鐘運(yùn)行一個命令(date)然后將結(jié)果寫入到一個文件(data.txt)歧蒋。為了實(shí)現(xiàn)這一點(diǎn)土砂,我們可以直接在命令提示符運(yùn)行如下單行腳本州既。
$ while true; do date >> date.txt ; sleep 5 ; done &
上述腳本的解釋:
-
while true
:讓腳本進(jìn)入一個條件總為真的循環(huán)中,也就是制造一個死循環(huán)萝映,將里邊的命令一遍遍地重復(fù)運(yùn)行吴叶。 -
do
:do
是while
語句中的關(guān)鍵字,它之后的命令會被執(zhí)行序臂,在它后邊可以放置一個或一系列命令蚌卤。 -
date >> date.txt
:運(yùn)行date命令,并將其輸出寫入到data.txt文件中奥秆。注意我們使用>>
逊彭,而不是>
。 -
>>
:對文件(date.txt)進(jìn)行追加寫的操作构订,這樣每次運(yùn)行命令后诫龙,輸出內(nèi)容會被追加到文件中。如果使用>
的話鲫咽,則會一遍遍地覆蓋之前的內(nèi)容签赃。 -
sleep 5
:讓腳本處于5秒睡眠狀態(tài),然后再運(yùn)行之后的命令分尸。注意這里的時間單位只能用秒锦聊。也就是說如果你想讓命令每6分鐘運(yùn)行一次,你應(yīng)該使用sleep 360
箩绍。 -
done
:while
循環(huán)語句塊結(jié)束的標(biāo)記孔庭。 -
&
:將整個進(jìn)程放到后臺運(yùn)行。
類似地材蛛,我們可以這樣運(yùn)行任何腳本圆到。下邊的例子是每100秒運(yùn)行一個名為script_name.sh
的腳本。
另外值得一提的是上面提到的腳本文件必須處于當(dāng)前目錄中卑吭,否則需要使用完整路徑(/home/$USER/…/script_name.sh
)芽淡。實(shí)現(xiàn)如上功能的單行腳本如下:
$ while true; do /bin/sh script_name.sh ; sleep 100 ; done &
總結(jié):上述的單行腳本并不是Cron的替代品,因?yàn)镃ron工具支持眾多選項(xiàng)豆赏,更加靈活挣菲,可定制性也更高。然而如果我們想運(yùn)行某些測試掷邦,比如I/O評測白胀,上述的單行腳本也管用。
還可以參考:Linux 下 11 個定時調(diào)度任務(wù)例子
2. 如何不使用clear命令清空終端的內(nèi)容
你如何清空終端的內(nèi)容抚岗?你可能會認(rèn)為這是一個傻問題或杠。好吧,大家都清楚可以使用clear
命令宣蔚。如果養(yǎng)成使用ctrl + l
快捷鍵的習(xí)慣向抢,我們會節(jié)省大量時間认境。
Ctrl + l
快捷鍵的效果和clear
命令一樣。所以下一次你就可以使用ctrl + l
來清空終端的內(nèi)容了笋额。
總結(jié):因?yàn)?code>ctrl + l是一個快捷鍵元暴,我們不可以在腳本中使用。所以如果我們需要在腳本中清空屏幕內(nèi)容兄猩,還是需要使用clear
命令茉盏。但我能想到的所有其他情況,ctrl + l
都更加有效枢冤。
3. 在其它目錄運(yùn)行一個命令鸠姨,然后自動返回當(dāng)前工作目錄
這是一個很多人可能不知道的令人吃驚的技巧。你可能想在其它目錄運(yùn)行任何一個命令淹真,然后再回到當(dāng)前目錄讶迁。要實(shí)現(xiàn)這樣的目的,你只需要將命令放在一個圓括號里核蘸。
我們來看一個例子:
avi@deb:~$ (cd /home/avi/Downloads/)
示例輸出:
avi@deb:~
它首先會cd到Downloads目錄巍糯,然后又回到了之前的家目錄。也許你認(rèn)為里邊的命令根本沒有執(zhí)行客扎,或者是出了某種錯誤祟峦,因?yàn)閺拿钐崾痉床怀鋈魏巫兓W屛覀兒唵涡薷囊幌逻@個命令:
avi@deb:~$ (cd /home/avi/Downloads/ && ls -l)
示例輸出:
-rw-r----- 1 avi avi 54272 May 3 18:37 text1.txt
-rw-r----- 1 avi avi 54272 May 3 18:37 text2.txt
-rw-r----- 1 avi avi 54272 May 3 18:37 text3.txt
avi@deb:~$
在上述命令中徙鱼,它首先進(jìn)入Downloads目錄宅楞,然后列出文件內(nèi)容,最后又回到了當(dāng)前目錄袱吆。并且它證明了命令成功執(zhí)行了厌衙。你可以在括號中包含任何命令,執(zhí)行完都會順利返回到當(dāng)前目錄绞绒。
這就是全部內(nèi)容了婶希,如果你知道任何類似的Linux技巧,你可以在文章下面的評論框中分享給我們处铛,不要忘記將本文和朋友分享 :)
via: http://www.tecmint.com/useful-linux-hacks-commands/
作者:Avishek Kumar
譯者:goreliu
校對:wxy
本文由 LCTT 原創(chuàng)翻譯饲趋,Linux中國 榮譽(yù)推出
付費(fèi)解決 Windows、Linux撤蟆、Shell、C堂污、C++家肯、AHK、Python盟猖、JavaScript讨衣、Lua 等領(lǐng)域相關(guān)問題换棚,靈活定價,歡迎咨詢反镇,微信 ly50247固蚤。