fortune 命令簡介

jopen 9年前發布 | 9K 次閱讀 fortune

作者: 阮一峰

日期: 2015年4月14日

美國中餐館的最后一道菜,往往是小甜餅,叫做"幸運餅"(fortune cookie)。

fortune 命令簡介

里面有一張紙條,寫著人生格言。

這種形式的格言,顯然很受歡迎。早在1979年,就有人寫了一個叫做 fortune 的小程序。在命令行下輸入fortune,就會跳出一句。

fortune 命令簡介

通常,Linux發行版自帶這個程序。如果沒有,需要先安裝這個程序。

# Debian/Ubuntu
$ sudo apt-get install fortune 

# Mac
$ brew install fortune

我很喜歡這個程序,但是它默認的格言庫都是英語的,我覺得這點不好,就自己動手做了一個中文格言庫。上圖就來自這個庫,安裝命令如下。

$ git clone git@github.com:ruanyf/fortunes.git

$ sudo mv fortunes/data/* /usr/share/games/fortunes/

如果是Mac系統,需要重新生成索引文件,即在上面兩個命令之間,增加幾個命令。

$ strfile fortunes/data/fortunes
$ strfile fortunes/data/chinese
$ strfile fortunes/data/tang300
$ strfile fortunes/data/song100

目前,這個庫帶有四個格言包。

         fortunes:英語格言,5472條
        chinese:中文格言,25919條
        tang300:唐詩三百首,313條
        song100::宋詞一百首,95條

fortune 命令簡介

fortune 命令顯示的格言是隨機的,但是分布比例與格言包的容量一致。如果希望四個包平均顯示,即每個包都有25%的顯示機會,需要使用下面的命令格式。

$ fortune -e fortunes chinese tang300 song100

# 或者

$ fortune 25% fortunes 25% chinese 25% tang300 25% song100

上面代碼的第二種形式,讓你可以根據自己的偏好,調節每個包的比重。

在 ~/.bashrc 或 ~/.zshrc 文件(根據你使用的 shell 而定)的結尾,加上下面幾行,那么每次啟動 shell 窗口,就會自動跳出一句格言。

echo
echo "=============== Quote Of The Day ==============="
echo
fortune
echo
echo "================================================"
echo

fortune 命令簡介

格言包就是一個文本文件,可以放入任何內容。假如你想用它背單詞,也沒有問題。下面就是如何制作這一類的 fortune 數據文件。

(1)所有條目都寫入一個文本文件,文件名任意。

(2)條目之間用單獨一行的百分號(%)分隔,就像下面這樣。

路漫漫其修遠兮,吾將上下而求索。
----屈原《離騷》
%
富貴不能淫,貧賤不能移,威武不能屈。
----《孟子》
%
長風破浪會有時,直掛云帆濟滄海。
----《行路難·其一》
%
志不強者智不達,言不信者行不果。
----墨子
%
鍥而舍之,朽木不折;鍥而不舍,金石可鏤。
----《荀子·勸學》
%

(3)生成索引文件。

$ strfile <fortuneFile> <fortuneFile.dat> 

上面命令中,尖括號的 fortune 文件名,替換成你的文件名。

(4)fortune 數據文件和它的索引文件,都拷貝到目錄 /usr/share/games/fortunes/ 。

(完)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!