Linux 用戶的 3 個(gè)命令行小技巧

英文原文:3 Useful Hacks Every Linux User Must Know
作者: Avishek Kumar
譯文源自:LCTT https://linux.cn/article-5635-1.html
譯者: goreliu

Linux世界充滿了樂(lè)趣,我們?cè)缴钊脒M(jìn)去,就會(huì)發(fā)現(xiàn)越多有趣的事物。我們會(huì)努力給你提供一些小技巧,讓你和其他人有所不同,下面就是我們準(zhǔn)備的3個(gè)小技巧。

  1. 如何在不使用Cron的情況調(diào)度Linux下的任務(wù)
    --

在Linux下,調(diào)度一個(gè)任務(wù)/命令稱(chēng)之為Cron。當(dāng)我們需要調(diào)度一個(gè)任務(wù)時(shí),我們會(huì)使用Cron,但你知道我們?cè)诓皇褂肅ron的情況也可以調(diào)度一個(gè)在將來(lái)時(shí)間運(yùn)行的任務(wù)嗎?你可以按照如下建議操作……

每5秒鐘運(yùn)行一個(gè)命令(date)然后將結(jié)果寫(xiě)入到一個(gè)文件(data.txt)。為了實(shí)現(xiàn)這一點(diǎn),我們可以直接在命令提示符運(yùn)行如下單行腳本。

$ while true; do date >> date.txt ; sleep 5 ; done &

上述腳本的解釋?zhuān)?/p>

  • while true :讓腳本進(jìn)入一個(gè)條件總為真的循環(huán)中,也就是制造一個(gè)死循環(huán),將里邊的命令一遍遍地重復(fù)運(yùn)行。
  • dodowhile語(yǔ)句中的關(guān)鍵字,它之后的命令會(huì)被執(zhí)行,在它后邊可以放置一個(gè)或一系列命令。
  • date >> date.txt :運(yùn)行date命令,并將其輸出寫(xiě)入到data.txt文件中。注意我們使用>>,而不是>
  • >> :對(duì)文件(date.txt)進(jìn)行追加寫(xiě)的操作,這樣每次運(yùn)行命令后,輸出內(nèi)容會(huì)被追加到文件中。如果使用>的話,則會(huì)一遍遍地覆蓋之前的內(nèi)容。
  • sleep 5 :讓腳本處于5秒睡眠狀態(tài),然后再運(yùn)行之后的命令。注意這里的時(shí)間單位只能用秒。也就是說(shuō)如果你想讓命令每6分鐘運(yùn)行一次,你應(yīng)該使用sleep 360。
  • done :while循環(huán)語(yǔ)句塊結(jié)束的標(biāo)記。
  • & :將整個(gè)進(jìn)程放到后臺(tái)運(yùn)行。

類(lèi)似地,我們可以這樣運(yùn)行任何腳本。下邊的例子是每100秒運(yùn)行一個(gè)名為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)行某些測(cè)試,比如I/O評(píng)測(cè),上述的單行腳本也管用。

還可以參考:Linux 下 11 個(gè)定時(shí)調(diào)度任務(wù)例子

  1. 如何不使用clear命令清空終端的內(nèi)容
    --

你如何清空終端的內(nèi)容?你可能會(huì)認(rèn)為這是一個(gè)傻問(wèn)題。好吧,大家都清楚可以使用clear命令。如果養(yǎng)成使用ctrl + l快捷鍵的習(xí)慣,我們會(huì)節(jié)省大量時(shí)間。

Ctrl + l快捷鍵的效果和clear命令一樣。所以下一次你就可以使用ctrl + l來(lái)清空終端的內(nèi)容了。

總結(jié):因?yàn)?code>ctrl + l是一個(gè)快捷鍵,我們不可以在腳本中使用。所以如果我們需要在腳本中清空屏幕內(nèi)容,還是需要使用clear命令。但我能想到的所有其他情況,ctrl + l都更加有效。

  1. 在其它目錄運(yùn)行一個(gè)命令,然后自動(dòng)返回當(dāng)前工作目錄
    --

這是一個(gè)很多人可能不知道的令人吃驚的技巧。你可能想在其它目錄運(yùn)行任何一個(gè)命令,然后再回到當(dāng)前目錄。要實(shí)現(xiàn)這樣的目的,你只需要將命令放在一個(gè)圓括號(hào)里。

我們來(lái)看一個(gè)例子:

avi@deb:~$ (cd /home/avi/Downloads/)

示例輸出:

 avi@deb:~

它首先會(huì)cd到Downloads目錄,然后又回到了之前的家目錄。也許你認(rèn)為里邊的命令根本沒(méi)有執(zhí)行,或者是出了某種錯(cuò)誤,因?yàn)閺拿钐崾痉床怀鋈魏巫兓W屛覀兒?jiǎn)單修改一下這個(gè)命令:

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í)行了。你可以在括號(hào)中包含任何命令,執(zhí)行完都會(huì)順利返回到當(dāng)前目錄。

這就是全部?jī)?nèi)容了,如果你知道任何類(lèi)似的Linux技巧,你可以在文章下面的評(píng)論框中分享給我們,不要忘記將本文和朋友分享 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容