更多你所不知道的 Linux 命令

Carla Schroder發表於2017-12-15

在這篇文章中和 Carla Schroder 一起探索 Linux 中的一些鮮為人知的強大工具。

本文是一篇關於一些有趣但鮮為人知的工具 termsaverpvcalendar 的文章。termsaver 是一個終端 ASCII 屏保,pv 能夠測量資料吞吐量並模擬輸入。Debian 的 calendar 擁有許多不同的日曆,並且你還可以制定你自己的日曆。

終端屏保

難道只有圖形桌面能夠擁有有趣的屏保嗎?現在,你可以通過安裝 termsaver 來享受 ASCII 屏保,比如 matrix(LCTT 譯註:電影《黑客帝國》中出現的黑客屏保)、時鐘、星球大戰以及兩個不太安全not-safe-for-work(NSFW)的屏保。 NSFW 屏保還有很多。

termsaver 可以從 Debian/Ubuntu 的包管理器中直接下載安裝,如果你使用別的不包含該軟體包的發行版比如 CentOS,那麼你可以從 termsaver.brunobraga.net 下載,然後按照安裝指導進行安裝。

執行 termsaver -h 來檢視一系列屏保:

 randtxt        displays word in random places on screen
 starwars       runs the asciimation Star Wars movie
 urlfetcher     displays url contents with typing animation
 quotes4all     displays recent quotes from quotes4all.net
 rssfeed        displays rss feed information
 matrix         displays a matrix movie alike screensaver
 clock          displays a digital clock on screen
 rfc            randomly displays RFC contents
 jokes4all      displays recent jokes from jokes4all.net (NSFW)
 asciiartfarts  displays ascii images from asciiartfarts.com (NSFW)
 programmer     displays source code in typing animation
 sysmon         displays a graphical system monitor

Linux commands

圖片 1: 星球大戰屏保。

你可以通過執行命令 termsaver [屏保名] 來使用屏保,比如 termsaver matrix ,然後按 Ctrl+c 停止。你也可以通過執行 termsaver [屏保名] -h 命令來獲取關於某一個特定屏保的資訊。圖片 1 來自 startwars 屏保,它執行的是古老但受人喜愛的 Asciimation Wars

那些不太安全(NSFW)的屏保通過線上獲取資源的方式執行,我並不喜歡它們,但好訊息是,由於 termsaver 是一些 Python 指令碼檔案,因此,你可以很容易的利用它們連線到任何你想要的 RSS 資源。

pv

pv 命令是一個非常有趣的小工具但卻很實用。它的用途是監測資料複製的過程,比如,當你執行 rsync 命令或建立一個 tar 歸檔的時候。當你不帶任何選項執行 pv 命令時,預設引數為:

  • -p :程式
  • -t :時間,到當前總執行時間
  • -e :預計完成時間,這往往是不準確的,因為 pv 通常不知道需要移動的資料的大小
  • -r :速率計數器,或吞吐量
  • -b :位元組計數器

一次 rsync 傳輸看起來像這樣:

$ rsync -av /home/carla/ /media/carla/backup/ | pv 
sending incremental file list
[...]
103GiB 0:02:48 [ 615MiB/s] [  <=>

建立一個 tar 歸檔,就像下面這個例子:

$ tar -czf - /file/path| (pv  > backup.tgz)
 885MiB 0:00:30 [28.6MiB/s] [  <=>

pv 能夠監測程式,因此也可以監測 Web 瀏覽器的最大活動,令人驚訝的是,它產生了如此多的活動:

$ pv -d  3095                                                                                                             
  58:/home/carla/.pki/nssdb/key4.db:    0 B 0:00:33 
  [   0 B/s] [<=>                                                                           ] 
  78:/home/carla/.config/chromium/Default/Visited Links:  
  256KiB 0:00:33 [   0 B/s] [<=>                                                      ] 
  ] 
  85:/home/carla/.con...romium/Default/data_reduction_proxy_leveldb/LOG:  
  298 B 0:00:33 [   0 B/s] [<=>                                       ] 

在網上,我偶然發現一個使用 pv 最有趣的方式:使用 pv 來回顯輸入的內容:

$ echo "typing random stuff to pipe through pv" | pv -qL 8
typing random stuff to pipe through pv

普通的 echo 命令會瞬間列印一整行內容。通過管道傳給 pv 之後能夠讓內容像是重新輸入一樣的顯示出來。我不知道這是否有實際的價值,但是我非常喜歡它。-L 選項控制回顯的速度,即多少位元組每秒。

pv 是一個非常古老且非常有趣的命令,這麼多年以來,它擁有了許多的選項,包括有趣的格式化選項,多種輸出選項,以及傳輸速度修改器。你可以通過 man pv 來檢視所有的選項。

/usr/bin/calendar

通過瀏覽 /usr/bin 目錄以及其他命令目錄和閱讀 man 手冊,你能夠學到很多東西。在 Debian/Ubuntu 上的 /usr/bin/calendar 是 BSD 日曆的一個變種,但它漏掉了月亮歷和太陽曆。它保留了多個日曆包括 calendar.computer, calendar.discordian, calendar.music 以及 calendar.lotr。在我的系統上,man 手冊列出了 /usr/bin/calendar 裡存在的不同日曆。下面這個例子展示了指環王日曆接下來的 60 天:

$ calendar -f /usr/share/calendar/calendar.lotr  -A 60
Apr 17  An unexpected party
Apr 23  Crowning of King Ellesar
May 19  Arwen leaves Lorian to wed King Ellesar
Jun 11  Sauron attacks Osgilliath

這些日曆是純文字檔案,因此,你可以輕鬆的建立你自己的日曆。最簡單的方式就是複製已經存在的日曆檔案的格式。你可以通過 man calendar 命令來檢視建立個人日曆檔案的更詳細的指導。

又一次很快走到了盡頭。你可以花費一些時間來瀏覽你的檔案系統,挖掘更多有趣的命令。

你可以通過來自 Linux 基金會和 edx 的免費課程 "Introduction to Linux" 來學習更過關於 Linux 的知識

(題圖:CC Zero Pixabay)


via: https://www.linux.com/learn/intro-to-linux/2017/4/more-unknown-linux-commands

作者:CARLA SCHRODER 譯者:ucasFL 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章