fortune命令简介

本文转自《阮志峰的网络日志》,原文网址:http://www.ruanyifeng.com/blog/2015/04/fortune.html

作者: 阮一峰

日期: 2015年4月14日

美国中餐馆的最后一道菜,往往是小甜饼,叫做"幸运饼"(fortune cookie)。

里面有一张纸条,写着人生格言。

这种形式的格言,显然很受欢迎。早在1979年,就有人写了一个叫做 fortune 的小程序。在命令行下输入fortune,就会跳出一句。

通常,Linux发行版自带这个程序。如果没有,需要先安装这个程序。


# Debian/Ubuntu
$ sudo apt-get install fortune 

# Mac
$ brew install fortune

我很喜欢这个程序,但是它默认的格言库都是英语的,我觉得这点不好,就自己动手做了一个中文格言库。上图就来自这个库,安装命令如下。


$ git clone [email protected].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 命令显示的格言是随机的,但是分布比例与格言包的容量一致。如果希望四个包平均显示,即每个包都有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 数据文件。

(1)所有条目都写入一个文本文件,文件名任意。

(2)条目之间用单独一行的百分号(%)分隔,就像下面这样。

路漫漫其修远兮,吾将上下而求索。

----屈原《离骚》

%

富贵不能淫,贫贱不能移,威武不能屈。

----《孟子》

%

长风破浪会有时,直挂云帆济沧海。

----《行路难·其一》

%

志不强者智不达,言不信者行不果。

----墨子

%

锲而舍之,朽木不折;锲而不舍,金石可镂。

----《荀子·劝学》

%

(3)生成索引文件。


$ strfile <fortuneFile> <fortuneFile.dat>

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

(4)fortune 数据文件和它的索引文件,都拷贝到目录 /usr/share/games/fortunes/ 。

(完)

时间: 2024-12-23 21:47:47

fortune命令简介的相关文章

linux查看硬件和系统信息的相关命令简介

linux查看硬件和系统信息的相关命令简介 <转> [[email protected] ~] # uname -a               # 查看内核/操作系统/CPU信息的linux系统信息命令[[email protected] ~] # head -n 1 /etc/issue   # 查看操作系统版本,是数字1不是字母L[[email protected] ~] # cat /proc/cpuinfo      # 查看CPU信息的linux系统信息命令[[email prot

linux中的strings命令简介

摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 在linux下搞软件开发的朋友, 几乎没有不知道strings命令的.我们先用man strings来看看: strings - print the strings of printable characters in files. 意思是, 打印文件中可打印的字符.  我来补充一下吧, 这个文件可以是文本文件(test.c), 可执行文件(te

linux中的strings命令简介2

摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用途, 但据我了解, 还有部分朋友并不常用strings, 这是个不好的习惯. 所以, 本文继续啰嗦一下strings命令. 在软件开发中, 我们经常需要修改代码, 并生成静态库.动态库或者可执行文件, 有时候, 工程太大, 那怎样确定自己改动的代码正确编译到库中去了呢? 用strings命令吧!  

linux nload命令简介及安装方法

第一步:nload命令简介 nload 命令用于查看linux网络流量状况,实时输出.可以理解为是一个控制台应用程序,用来实时监测网络流量和带宽使用情况的命令. 使用可视化的界面显示流入和留出系统的网络带宽数据. 安装后的使用截图(screenshot)如下: 第二步:nload下载 安装前最好安装以下依赖 yum install gcc gcc-c++ ncurses-devel  官网为:http://www.roland-riegel.de/nload/ xshell登陆到linux,然后

Linux命令简介(文件/目录权限操作命令)

文件/目录权限 文件/目录的属性 1.权限 读取.写入.可执行 2.归属 属主.属组 注意:root用户是系统的超级用户,拥有完全的管理权限,所以目录的权限限制对root用户将不起作用.它只是针对普通用户来说的. 权限字符表示 权限      文件                目录 r         查看文件内容        查看目录内容(显示子目录.文件列表) w         修改文件内容        修改目录内容(在目录中新建.移动.删除文件或子目录) x         执行该

Liunx基本目录文件命令简介

文件管理命令 ls    列出目录         ls [选项] [文件] cd    切换目录         cd .. 切换到上一级目录 pwd   显示当前所处目录 mkdir 创建目录         mkdir [目录名称] rmdir 删除空目录       rmdir [目录名称] rm    删除目录或文件   rm [文件名或目录名] cp    复制文件或目录   cp [选项] [原目标路径] [目的目标路径] du    列出目录占用磁盘空间的大小 df    用于报

su和sudo命令简介

一.su命令简介及用法 1.su命令简介 su用于用户之间的切换.但是前面的用户依然保持在登录状态.这种切换如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证. 2.常用用法说明 普通用户在使用su命令时不加参数及使用参数-所带来的结果是有区别的: su在不加任何参数,默认为切换到root用户,这里需要输入root用户的密码,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变为root登录环境: su 加参数 -

VI 命令简介

1.打开一个文件  vi 文件路径 2.命令模式转换  输入模式 i  命令模式  esc 3.复制 和 粘贴 1)将光标移动到将要复制的行处,按yy进行复制当前行(按nyy复制n行),再移动到粘贴位置,按p进行粘贴. 2)将光标移到复制的首位置,按下v,用hjkl移动,按y复制,按p粘贴. 4. 撤销和恢复 撤销:u 恢复: ctrl + r 5. 保存  w 6. 退出 q 强制退出 q! VI 命令简介

Ansible(二) - 配置及命令简介

Ⅰ. Ansible配置 # mkdir /etc/ansible # touch /etc/ansible/hosts # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.137.6 client 192