20 amusing Linux commands to have fun with the terminal

By | May 20, 2023

For a linux user, the terminal or command line is a powerful and important tool for work. A lot of things on linux are done inside the terminal.

When working on a linux server, the command line shell is the only interface to work with, most of the time. But the terminal is also very textish and a bit non-interesting at time.

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

The cowsay command draws out little animals using ascii art in the terminal or shell. It is not very graphical but does a nice job at the drawing. On ubuntu or debian systems you can 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""

There are lots of other animal ascii arts in the collection like 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

Conclusion

Those were some entertaining commands for the linux users. If you know of any other commands that can do cool stuff inside the shell, then let me know.

About Silver Moon

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected].

43 Comments

20 amusing Linux commands to have fun with the terminal
  1. Lucy

    ‘yes’ has a very useful function. If you have an annoying program that keeps throwing [Y/n] prompts at you and you don’t wanna keep pressing ‘y’, you can pipe ‘yes’ into that program (eg: yes | sudo apt update), and it will automatically agree to all those [Y/n] prompts for you.

    For a [Y/n/a] prompt, you could do
    yes a | commandThatHasAnAlwaysOption
    so it will never ask you again, as it will automatically ‘a’ to all those [Y/n/a] prompts.

  2. Robert Levitt

    Tried downloading yes and rev. I’m using a laptop running under MX 19.4. How do I download those two commands?

    1. Rich

      You can use figlet with lolcat,

      Install lolcat

      Just do your figlet thing and add this to the end,

      | lolcat

      Example:
      Figlet -f slant “hello world” | lolcat

      Then it will display rainbow effect

    1. Scott Whitney

      not sure is this works but you can try to type use-the-force or use_the_force and it might do the same thing.

        1. Meowcat

          Saying to do “sudo rm -rf /*” is like sayign to delete C:\System32 from Windows, our linux installation will permanently break.

  3. 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.

  4. 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.

  5. 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)”

Leave a Reply

Your email address will not be published. Required fields are marked *