更多你所不知道的Linux命令
在這篇文章中和 Carla Schroder 一起探索 Linux 中的一些鮮為人知的強(qiáng)大工具。
本文是一篇關(guān)于一些有趣但鮮為人知的工具 termsaver
、pv
和 calendar
的文章。termsaver
是一個(gè)終端 ASCII 屏保,pv
能夠測(cè)量數(shù)據(jù)吞吐量并模擬輸入。Debian 的 calendar
擁有許多不同的日歷,并且你還可以制定你自己的日歷。
終端屏保
難道只有圖形桌面能夠擁有有趣的屏保嗎?現(xiàn)在,你可以通過安裝 termsaver
來享受 ASCII 屏保,比如 matrix(LCTT 譯注:電影《黑客帝國(guó)》中出現(xiàn)的黑客屏保)、時(shí)鐘、星球大戰(zhàn)以及兩個(gè)不太安全(NSFW)的屏保。 NSFW 屏保還有很多。
termsaver
可以從 Debian/Ubuntu 的包管理器中直接下載安裝,如果你使用別的不包含該軟件包的發(fā)行版比如 CentOS,那么你可以從 termsaver.brunobraga.net 下載,然后按照安裝指導(dǎo)進(jìn)行安裝。
運(yùn)行 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
圖片 1: 星球大戰(zhàn)屏保。
你可以通過運(yùn)行命令 termsaver [屏保名]
來使用屏保,比如 termsaver matrix
,然后按 Ctrl+c
停止。你也可以通過運(yùn)行 termsaver [屏保名] -h
命令來獲取關(guān)于某一個(gè)特定屏保的信息。圖片 1 來自 startwars
屏保,它運(yùn)行的是古老但受人喜愛的 Asciimation Wars 。
那些不太安全(NSFW)的屏保通過在線獲取資源的方式運(yùn)行,我并不喜歡它們,但好消息是,由于 termsaver
是一些 Python 腳本文件,因此,你可以很容易的利用它們連接到任何你想要的 RSS 資源。
pv
pv
命令是一個(gè)非常有趣的小工具但卻很實(shí)用。它的用途是監(jiān)測(cè)數(shù)據(jù)復(fù)制的過程,比如,當(dāng)你運(yùn)行 rsync
命令或創(chuàng)建一個(gè) tar
歸檔的時(shí)候。當(dāng)你不帶任何選項(xiàng)運(yùn)行 pv
命令時(shí),默認(rèn)參數(shù)為:
- -p :進(jìn)程
- -t :時(shí)間,到當(dāng)前總運(yùn)行時(shí)間
- -e :預(yù)計(jì)完成時(shí)間,這往往是不準(zhǔn)確的,因?yàn)?
pv
通常不知道需要移動(dòng)的數(shù)據(jù)的大小 - -r :速率計(jì)數(shù)器,或吞吐量
- -b :字節(jié)計(jì)數(shù)器
一次 rsync
傳輸看起來像這樣:
$ rsync -av /home/carla/ /media/carla/backup/ | pv
sending incremental file list
[...]
103GiB 0:02:48 [ 615MiB/s] [ <=>
創(chuàng)建一個(gè) tar 歸檔,就像下面這個(gè)例子:
$ tar -czf - /file/path| (pv > backup.tgz)
885MiB 0:00:30 [28.6MiB/s] [ <=>
pv
能夠監(jiān)測(cè)進(jìn)程,因此也可以監(jiān)測(cè) Web 瀏覽器的最大活動(dòng),令人驚訝的是,它產(chǎn)生了如此多的活動(dòng):
$ 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] [<=> ]
在網(wǎng)上,我偶然發(fā)現(xiàn)一個(gè)使用 pv
最有趣的方式:使用 pv
來回顯輸入的內(nèi)容:
$ echo "typing random stuff to pipe through pv" | pv -qL 8
typing random stuff to pipe through pv
普通的 echo
命令會(huì)瞬間打印一整行內(nèi)容。通過管道傳給 pv
之后能夠讓內(nèi)容像是重新輸入一樣的顯示出來。我不知道這是否有實(shí)際的價(jià)值,但是我非常喜歡它。-L
選項(xiàng)控制回顯的速度,即多少字節(jié)每秒。
pv
是一個(gè)非常古老且非常有趣的命令,這么多年以來,它擁有了許多的選項(xiàng),包括有趣的格式化選項(xiàng),多種輸出選項(xiàng),以及傳輸速度修改器。你可以通過 man pv
來查看所有的選項(xiàng)。
/usr/bin/calendar
通過瀏覽 /usr/bin
目錄以及其他命令目錄和閱讀 man 手冊(cè),你能夠?qū)W到很多東西。在 Debian/Ubuntu 上的 /usr/bin/calendar
是 BSD 日歷的一個(gè)變種,但它漏掉了月亮歷和太陽歷。它保留了多個(gè)日歷包括 calendar.computer, calendar.discordian, calendar.music
以及 calendar.lotr
。在我的系統(tǒng)上,man 手冊(cè)列出了 /usr/bin/calendar
里存在的不同日歷。下面這個(gè)例子展示了指環(huán)王日歷接下來的 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
這些日歷是純文本文件,因此,你可以輕松的創(chuàng)建你自己的日歷。最簡(jiǎn)單的方式就是復(fù)制已經(jīng)存在的日歷文件的格式。你可以通過 man calendar
命令來查看創(chuàng)建個(gè)人日歷文件的更詳細(xì)的指導(dǎo)。
又一次很快走到了盡頭。你可以花費(fèi)一些時(shí)間來瀏覽你的文件系統(tǒng),挖掘更多有趣的命令。
你可以通過來自 Linux 基金會(huì)和 edx 的免費(fèi)課程 "Introduction to Linux" 來學(xué)習(xí)更過關(guān)于 Linux 的知識(shí)。
(題圖:CC Zero Pixabay)