fortune - print a random, hopefully interesting, adage
fortune [-acefilosuw] [-n length] [ -m pattern] [[n%] file/dir/all]
When fortune is run with no arguments it prints out a random epigram.
Epigrams are divided into several categories, where each category is
sub-divided into those which are potentially offensive and those which
are not.
Options
The options are as follows:
-a Choose from all lists of maxims, both offensive and not. (See
the -o option for more information on offensive fortunes.)
-c Show the cookie file from which the fortune came.
-e Consider all fortune files to be of equal size (see discussion
below on multiple files).
-f Print out the list of files which would be searched, but don't
print a fortune.
-l Long dictums only. See -n on how ``long'' is defined in this
sense.
-m pattern
Print out all fortunes which match the basic regular expression
pattern. The syntax of these expressions depends on how your
system defines re_comp(3) or regcomp(3), but it should
nevertheless be similar to the syntax used in grep(1).
The fortunes are output to standard output, while the names of
the file from which each fortune comes are printed to standard
error. Either or both can be redirected; if standard output is
redirected to a file, the result is a valid fortunes database
file. If standard error is also redirected to this file, the
result is still valid, but there will be ``bogus'' fortunes,
i.e. the filenames themselves, in parentheses. This can be
useful if you wish to remove the gathered matches from their
original files, since each filename-record will precede the
records from the file it names.
-n length
Set the longest fortune length (in characters) considered to be
``short'' (the default is 160). All fortunes longer than this
are considered ``long''. Be careful! If you set the length too
short and ask for short fortunes, or too long and ask for long
ones, fortune goes into a never-ending thrash loop.
-o Choose only from potentially offensive aphorisms. The -o option
is ignored if a fortune directory is specified.
Please, please, please request a potentially offensive fortune
if and only if you believe, deep in your heart, that you are
willing to be offended. (And that you'll just quit using -o
rather than give us grief about it, okay?)
... let us keep in mind the basic governing philosophy of The
Brotherhood, as handsomely summarized in these words: we believe
in healthy, hearty laughter -- at the expense of the whole human
race, if needs be. Needs be.
--H. Allen Smith, "Rude Jokes"
-s Short apothegms only. See -n on which fortunes are considered
``short''.
-i Ignore case for -m patterns.
-w Wait before termination for an amount of time calculated from
the number of characters in the message. This is useful if it
is executed as part of the logout procedure to guarantee that
the message can be read before the screen is cleared.
-u Don't translate UTF-8 fortunes to the locale when searching or
translating.
The user may specify alternate sayings. You can specify a specific
file, a directory which contains one or more files, or the special word
all which says to use all the standard databases. Any of these may be
preceded by a percentage, which is a number n between 0 and 100
inclusive, followed by a %. If it is, there will be a n percent
probability that an adage will be picked from that file or directory.
If the percentages do not sum to 100, and there are specifications
without percentages, the remaining percent will apply to those files
and/or directories, in which case the probability of selecting from one
of them will be based on their relative sizes.
As an example, given two databases funny and not-funny, with funny
twice as big (in number of fortunes, not raw file size), saying
fortune funny not-funny
will get you fortunes out of funny two-thirds of the time. The command
fortune 90% funny 10% not-funny
will pick out 90% of its fortunes from funny (the ``10% not-funny'' is
unnecessary, since 10% is all that's left).
The -e option says to consider all files equal; thus
fortune -e funny not-funny
is equivalent to
fortune 50% funny 50% not-funny
Note: these are the defaults as defined at compile time.
/usr/share/games/fortunes
Directory for innoffensive fortunes.
/usr/share/games/fortunes/off
Directory for offensive fortunes.
If a particular set of fortunes is particularly unwanted, there is an
easy solution: delete the associated .dat file. This leaves the data
intact, should the file later be wanted, but since fortune no longer
finds the pointers file, it ignores the text file.
The supplied fortune databases have been attacked, in order to correct orthographical and grammatical errors, and particularly to reduce redundancy and repetition and redundancy. But especially to avoid repetitiousness. This has not been a complete success. In the process, some fortunes may also have been lost. The fortune databases are now divided into a larger number of smaller files, some organized by format (poetry, definitions), and some by content (religion, politics). There are parallel files in the main directory and in the offensive files directory (e.g., fortunes/definitions and fortunes/off/definitions). Not all the potentially offensive fortunes are in the offensive fortunes files, nor are all the fortunes in the offensive files potentially offensive, probably, though a strong attempt has been made to achieve greater consistency. Also, a better division might be made. When passing files to fortune, directories must be specified by absolute pathnames, and filenames starting with a dot are ignored. See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=241888
This version of fortune is based on the NetBSD fortune 1.4, but with a number of bug fixes and enhancements. The original fortune/strfile format used a single file; strfile read the text file and converted it to null-delimited strings, which were stored after the table of pointers in the .dat file. By NetBSD fortune 1.4, this had changed to two separate files: the .dat file was only the header (the table of pointers, plus flags; see strfile.h), and the text strings were left in their own file. The potential problem with this is that text file and header file may get out of synch, but the advantage is that the text files can be easily edited without resorting to unstr, and there is a potential savings in disk space (on the assumption that the sysadmin kept both .dat file with strings and the text file). Many of the enhancements made over the NetBSD version assumed a Linux system, and thus caused it to fail under other platforms, including BSD. The source code has since been made more generic, and currently works on SunOS 4.x as well as Linux, with support for more platforms expected in the future. Note that some bugs were inadvertently discovered and fixed during this process. At a guess, a great many people have worked on this program, many without leaving attributions.
re_comp(3), regcomp(3), strfile(1), unstr(1)
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.