20 amusing Linux commands to have fun with the terminal

550 Flares Filament.io 550 Flares ×

The linux terminal is not always dull and boring. There are commands to make it do some funny acts to entertain the user.

Here is a small collection of such commands.

1. Cowsay

Install cowsay with apt.

$ sudo apt-get install cowsay

Cowsay is a talking cow that will speak out anything you want it to.

$ cowsay "Hi, How are you"      
 _________________
< Hi, How are you >
 -----------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Don't like cows ? No problem there are other animals in the cow zoo. To find out how many, use the l option to get a list

$ cowsay -l
Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny calvin cheese cock cower daemon default
dragon dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated pony pony-smaller ren sheep
skeleton snowman sodomized-sheep stegosaurus stimpy suse three-eyes turkey
turtle tux unipony unipony-smaller vader vader-koala www
$ cowsay -f ghostbusters Who you Gonna Call
 ____________________
< Who you Gonna Call >
 --------------------
          \
           \
            \          __---__
                    _-       /--______
               __--( /     \ )XXXXXXXXXXX\v.
             .-XXX(   O   O  )XXXXXXXXXXXXXXX-
            /XXX(       U     )        XXXXXXX\
          /XXXXX(              )--_  XXXXXXXXXXX\
         /XXXXX/ (      O     )   XXXXXX   \XXXXX\
         XXXXX/   /            XXXXXX   \__ \XXXXX
         XXXXXX__/          XXXXXX         \__---->
 ---___  XXX__/          XXXXXX      \__         /
   \-  --__/   ___/\  XXXXXX            /  ___--/=
    \-\    ___/    XXXXXX              '--- XXXXXX
       \-\/XXX\ XXXXXX                      /XXXXX
         \XXXXXXXXX   \                    /XXXXX/
          \XXXXXX      >                 _/XXXXX/
            \XXXXX--__/              __-- XXXX/
             -XXXXXXXX---------------  XXXXXX-
                \XXXXXXXXXXXXXXXXXXXXXXXXXX/
                  ""VXXXXXXXXXXXXXXXXXXV""

Dragons, elephants, koalas and lot others.
The cowsay command supports quite a few options to modify the behaviour of the cows. Check the man page.

2. Cowthink

The cow can do more than just talking, it can even think. To make the cow think, use the cowthink command.







$ cowthink "Hmm, I didn't know that"
 _________________________
( Hmm, I didn't know that )
 -------------------------
        o   ^__^
         o  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

All animals of the cow zoo can think, and command is similar to the earlier one.

3. sl - Steam Locomotive

$ sudo apt-get install sl

With the sl command, a steam locomotive will run across your terminal from right to left. And it looks like this

(@@) (  ) (@)  ( )  @@    ()    @     O     @
                     (   )
                 (@@@@)
              (    )

            (@@@)
         ====        ________                ___________
     _D _|  |_______/        \__I_I_____===__|_________|
      |(_)---  |   H\________/ |   |        =|___ ___|      ________________
      /     |  |   H  |  |     |   |         ||_| |_||     _|
     |      |  |   H  |__--------------------| [___] |   =|
     | ________|___H__/__|_____/[][]~\_______|       |   -|
     |/ |   |-----------I_____I [][] []  D   |=======|____|_________________
   __/ =| o |=-O=====O=====O=====O \ ____Y___________|__|___________________
    |/-=|___|=    ||    ||    ||    |_____/~\___/          |_D__D__D_|  |_D_
     \_/      \__/  \__/  \__/  \__/      \_/               \_/   \_/    \_/

The sl command has 2-3 additional options, that can be found in the man pages.

4. figlet - draw banners

The figlet command can be used to draw large sized text banners. I remember seeing such banners as the welcome message of socket daemons/services, when connecting via telnet.

$ figlet Welcome
__        __   _                          
\ \      / /__| | ___ ___  _ __ ___   ___ 
 \ \ /\ / / _ \ |/ __/ _ \| '_ ` _ \ / _ \
  \ V  V /  __/ | (_| (_) | | | | | |  __/
   \_/\_/ \___|_|\___\___/|_| |_| |_|\___|

5. toilet - draw banners again

The toilet command is similar to the figlet command, that it draws large sized text banners using smaller characters.

$ toilet Welcome
                                                 
m     m        ""#                               
#  #  #  mmm     #     mmm    mmm   mmmmm   mmm  
" #"# # #"  #    #    #"  "  #" "#  # # #  #"  # 
 ## ##" #""""    #    #      #   #  # # #  #"""" 
 #   #  "#mm"    "mm  "#mm"  "#m#"  # # #  "#mm"

The toilet commands supports a wide range of options like unicode support, colored fonts, filters etc. Check out the man page. To draw the text in a bit different way, try the following command

$ toilet -f mono12 -F metal Linux

6. banner

The banner command too can print banners like figlet and toilet but it is very limited. No options and can print only 10 characters at most.

$ banner Wonderful
#     #
#  #  #   ####   #    #  #####   ######  #####   ######  #    #  #
#  #  #  #    #  ##   #  #    #  #       #    #  #       #    #  #
#  #  #  #    #  # #  #  #    #  #####   #    #  #####   #    #  #
#  #  #  #    #  #  # #  #    #  #       #####   #       #    #  #
#  #  #  #    #  #   ##  #    #  #       #   #   #       #    #  #
 ## ##    ####   #    #  #####   ######  #    #  #        ####   ######

But quick and handy.

7. fortune

The fortune command will put up a random, but hopefully sensible quote, or your fortune for the day.

$ fortune -s
Don't tell any big lies today.  Small ones can be just as effective.

The s option tells the fortune command to generate only small sized messages.

The cow can be made to say the fortune like this

$ fortune | cowsay
 ______________________________________
/ You like to form new friendships and \
\ make new acquaintances.              /
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

8. cmatrix - The MATRIX

$ sudo apt-get install cmatrix

The command cmatrix draws the Neo style matrix on your terminal and makes you feel a little more geekier.

cmatrix

9. rev - Reverse text and files

The rev command will print the reverse of whatever you type in. First run rev, then start typing one sentence at a time

$ rev
hello
olleh
what ?
? tahw
this is super cool
looc repus si siht

10. Moo with apt-get

The apt-get command has this easter egg where the cow does a moo

$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...

11. Moo with aptitude

The aptitude command moos a bit reluctantly and here is how to make it do so.

$ aptitude moo
There are no Easter Eggs in this program.
$ aptitude -v moo
There really are no Easter Eggs in this program.
$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
enlightened@enlightened:~$ aptitude -vvv moo
Stop it!
$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

You have to keep bugging aptitude with the verbose option to get the easter egg.

12. Watch Star Wars

This is not actually a command, but a text animation broadcasted at towel.blinkenlights.nl and can be played inside the terminal by telnetting to the server.

$ telnet towel.blinkenlights.nl

The show begins like this

blinkenlights
So if you have been sitting on the terminal for long and want some entertainment, turn it on.

13. Loop with yes

The yes command will go on printing the same thing indefinitely until stopped by a Ctrl+C. The command apparently appears to have no use, but in scenarios like software testing it is often needful to produce large amounts of junk text quickly and that is where tools like this come in handy.

$ yes start
start
start
start
start
... keeps going on

14. factor - factorise numbers

This command would print out all the lowest common multiple (LCM) factors of any given number.

$ factor 60
60: 2 2 3 5

If you still remember your school maths, factoring a prime number would produce only the number itself and no factors.

15. pi - The Constant

The pi command prints the mathematical constant PI to any number of decimal figures. So lets print it to the first 500 figures after decimal.

$ pi 50
3.1415926535897932384626433832795028841971693993751

16. Xcowsay

xcowsay is the gui version of the cowsay command, and you need a running desktop (X display) to use it. It cannot work solely from a terminal.

$ xcowsay "hello"

17. xeyes

Xeyes is also a gui program that draws a pair of eyes on the desktop which follow the mouse cursor. The eyes would look where ever the mouse cursor goes.

Just run the command and see the output

$ xeyes

18. asciiviewer - convert images to ascii art

Since the terminal is limited to only text, tools like asciiviewer are often useful to generate images out of pure text. And to do this you need the tool called asciiviewer

$ sudo apt-get install aview

And now convert any images to asciiart using this simple command

$ asciiview Tux.png -driver curses

asciiview
Spotting the Linux mascot above should not be difficult.

19. aafire - burn the console

The next command is aafire and it too is an asciiart animation that renders a burning fire on the terminal.

$ aafire

And the output should look like this

aafire

20. bb - the successor of aa

bb is a high quality audio-visual demonstration for your text terminal. It is a complete animation that draws using pure text and has background too. Very interesting to watch.

$ bb

bb

21. text to speech with espeak

espeak is a multi lingual software speech synthesizer. It can speak out text using stored sound files and patterns. And the best part is that it is a terminal application.

$ sudo apt-get install espeak

Now give it a sentence to speak

$ espeak "Hello Linux, where are the penguins"

It is capable of pronouncing complex "proper name" words.

So that was it, if you know about more such command line toys, then let us know in the comment box below.

22. rig

The rig command generates random and possibly fake identities.

$ rig
Bettye Dunlap
799 Second St
Denver, CO  80202
(303) xxx-xxxx
Last Updated On : 14th March 2014

Subscribe to get updates delivered to your inbox

  • Ken D’Ambrosio

    I could be wrong… but if I were guessing about “yes”, it would be to feed fsck all the “y” it could take, before the “-y” option was added.

  • Scott

    yes is used in shell scripts to auto-respond to interactive prompts.
    Typically the output of an interactive prompt is piped to yes. It can
    be set to respond with y (the default), or any other answer needed to
    continue processing. It is far from useless.

    Similarly, rev is
    also far from useless. It is used in scripts where it is necessary to
    process text from back to front. Again, it is used in pipelines, and
    its output is fed to other text processing commands for additional
    munging.

  • figletforever

    figlet has a ton of fonts.

  • Pouar Dragon

    I think the yes command was to automatically respond to commands that require input multiple times. Such as those that ask “Do you want to X (y/n)”

550 Flares Twitter 209 Facebook 0 Google+ 318 LinkedIn 10 StumbleUpon 12 Pin It Share 1 Filament.io 550 Flares ×