How to use the command `cowsay` (with examples)
Cowsay is a whimsical command-line tool that generates ASCII art, often of a cow, accompanied by text. It’s a fun and surprising way to add a bit of humor or personality to messages within terminal sessions, scripts, or presentations. Users can choose from various animal figures to share their messages, customize expressions, and even make the characters appear thoughtful or humorous. Below are several use cases showcasing the diverse applications of cowsay
.
Use case 1: Print an ASCII cow saying “hello, world”
Code:
cowsay "hello, world"
Motivation:
Using cowsay
in its simplest form is perfect for moments when you want to add a playful touch to your message. This can be particularly lighthearted during team meetings or sharing code snippets. It not only grabs attention but also serves as a whimsical way to break the monotony of plain text output.
Explanation:
cowsay
: This is the command-line utility."hello, world"
: This is the text that the ASCII cow will “say.” It’s a standard phrase for showing introductory output in many programming examples.
Example Output:
___________
< hello, world >
-----------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Use case 2: Print an ASCII cow saying text from stdin
Code:
echo "hello, world" | cowsay
Motivation:
Using stdin
allows dynamic text input to be funneled into cowsay
. This is beneficial when the message content is generated by another system or when incorporating cowsay
into scripts where the output changes each time.
Explanation:
echo "hello, world"
: This command outputs the string “hello, world” to the terminal.|
: This is the pipe operator, redirecting the output from one command to another.cowsay
: Receives input fromstdin
and processes the text to be spoken by the ASCII cow.
Example Output:
___________
< hello, world >
-----------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Use case 3: List all available art types
Code:
cowsay -l
Motivation:
Exploring the diverse collection of figures available in cowsay
can enhance user experience by providing unique characters for specific occasions or messages. This feature allows creative expression and can lead to more interactive presentations or interactions in terminal-based applications.
Explanation:
cowsay
: The command-line tool to operate with ASCII art.-l
: This option lists all available figure types that can be used withcowsay
, expanding the user’s possibilities beyond the default cow.
Example Output:
Cow files in /usr/share/cows:
beavis.zen bong bud-frogs bunny cheese cower daemon default dragon
elephant elephant-in-snake eyes flaming-sheep ghostbusters head-in
hellokitty kiss kitty koala kosh luke-koala mech-and-cow milk moofasa
moose pony pony-smaller ren sheep skeleton small sodomized sheep steak
stimpy supermilker surgery telebears turkey turtle tux vader vader-koala
www
Use case 4: Print the specified ASCII art saying “hello, world”
Code:
cowsay -f dragon "hello, world"
Motivation:
If the default cow figure does not meet the desired effect, switching to different characters like dragons or other creatures can be more fitting for the theme or mood intended. This flexibility enhances creativity and engagement with the audience.
Explanation:
cowsay
: The base command to perform ASCII art creation.-f
: An option to specify which figure to use.dragon
: The name of the desired ASCII figure."hello, world"
: Text that will appear in the speech bubble of the specified ASCII art figure.
Example Output:
___________
< hello, world >
-----------
\ / \ //\ \ .
\ |\___/| / \// \\
/0 0 \__ / // | \ \
/ / \/_/ // | \ \
@_^_@'/ \/_ // | \ \
//_^_/ \/_ // | \ \
( //) | \/// | \ \
( / /) _|_ / ) // | \ _)
(/ / _|_ ) //__
'( / (_/(_/(_/_(_____)_)
Use case 5: Print a dead thinking ASCII cow
Code:
cowthink -d "I'm just a cow, not a great thinker..."
Motivation:
Sometimes a humorous or sarcastic touch is needed, and a “thinking” cow can deliver this with flair. Using the “dead” option further extends the comedic effect, perhaps for situations requiring lightheartedness or acknowledging task complexity with humor.
Explanation:
cowthink
: A variation ofcowsay
, which makes the cow “think” instead of “speak.”-d
: An option for a “dead” version of the ASCII figure (representing closed eyes with “X”)."I'm just a cow, not a great thinker..."
: The thoughtful message encapsulating humorous self-awareness.
Example Output:
-------------------------------
( I'm just a cow, not a great )
( thinker... )
-------------------------------
o ^__^
o (xx)\_______
(__)\ )\/\
||----w |
|| ||
Use case 6: Print an ASCII cow with custom eyes saying “hello, world”
Code:
cowsay -e @@ "hello, world"
Motivation:
Customizing the eyes of the ASCII character provides an additional layer of personalization or thematic relevance. It can be tailored to match sentiment, mood, or even mimic popular culture references.
Explanation:
cowsay
: The command-line utility for rendering ASCII art.-e
: An option used to customize the eyes of the ASCII art figure.@@
: Characters that serve as the cow’s eyes, in this case, “@” symbols, altering the cow’s appearance."hello, world"
: The message that will be displayed in combination with the modified figure.
Example Output:
___________
< hello, world >
-----------
\ ^__^
\ (@@)\_______
(__)\ )\/\
||----w |
|| ||
Conclusion
The cowsay
command, though simple and whimsical, offers surprising versatility with its options and features. From capturing attention with default ASCII art to experimenting with different characters and eye modifications, it manages to add humor and engagement to any terminal session or script. Whether for fun or generating unique expressions within scripts, cowsay
serves as a testament to the creativity possible within the command-line environment.