How to Create ASCII Art Text Banners for Linux Terminals

An ASCII art terminal banner turns an ordinary shell welcome into a recognizable title. You can display a project name, machine label, or small illustration using nothing but printable characters. For large lettering, the classic FIGlet utility is a convenient option; for custom art, a plain-text file gives you complete control.

If you want the banner to appear whenever a terminal opens, add a carefully guarded command to your shell's startup file. First make sure it displays correctly when run manually, because poorly configured startup scripts can clutter terminal sessions and interfere with automated tools.

Make a Terminal Banner Using FIGlet

FIGlet creates large letterforms from smaller text characters. On Ubuntu or Debian-based systems, install it with:

sudo apt update
sudo apt install figlet

Then create a banner:

figlet "HELLO"

You can choose an output width and alignment:

figlet -w 80 "MY SERVER"
figlet -c -w 80 "WELCOME"

The -w option tells FIGlet what output width to work within. The -c option centers the rendered text relative to that width. A narrow terminal or long project name may still need a smaller font or shorter wording.

Change the banner font

FIGlet supports different FIGfonts, although the exact installed collection varies by system. Check available font files or the FIGlet font directory on your machine before choosing a specific name. If you have the small font installed, for example:

figlet -f small "TOOLS"

If FIGlet reports a missing font, choose one that exists in your installation rather than assuming every distribution includes the same styles.

Create a Custom Linux Banner Without FIGlet

You do not need to install anything to display hand-written text art. Create a file named banner.txt using a plain-text editor and add a compact drawing:

+----------------------+
|     DEV TERMINAL     |
|   ready for work     |
+----------------------+

Print it in the terminal with:

cat banner.txt

Or write a fixed banner directly into a shell script using a quoted here-document:

cat <<'BANNER'
+----------------------+
|     DEV TERMINAL     |
+----------------------+
BANNER

The quoted delimiter ensures symbols inside the banner are printed literally instead of being interpreted as shell variable expansions or commands. This is especially useful when the drawing contains dollar signs or backticks.

Show the ASCII Banner Automatically in Bash

On many Linux systems, an interactive Bash shell reads ~/.bashrc. You can use this file to display a banner when an appropriate interactive session starts.

First back it up:

cp ~/.bashrc ~/.bashrc.backup

Open ~/.bashrc in your editor and add the following near the end:

# Display a welcome banner only in an interactive Bash shell.
case $- in
  *i*)
    if command -v figlet >/dev/null 2>&1; then
      figlet -w 70 "WELCOME"
    fi
    ;;
esac

Open a new interactive Bash terminal to check the result. You can also load the updated configuration with source ~/.bashrc, but be aware this reruns the commands in your startup file.

Why use the interactive-shell check? Startup files can be read in more than one context, including some remote or non-interactive scenarios. A banner should not unexpectedly appear in the output of scripts, remote commands, or file-transfer workflows. If your environment already has a guard that exits early for non-interactive shells, do not add conflicting logic.

What if your terminal uses Zsh instead?

Zsh commonly uses ~/.zshrc for interactive shell configuration. Confirm your active shell before editing anything:

printf '%s\n' "$SHELL"

The value identifies your configured login shell, which may differ from the shell currently running. You can inspect the current process separately if necessary. Use the appropriate configuration file for your actual shell rather than blindly copying a Bash startup recipe.

Choose the Right Banner Width and Style

Large lettering can look impressive on a wide desktop terminal and terrible over a narrow SSH window. Aim to keep each row comfortably within the usual screen width. Resize the terminal and check the result before deciding on a permanent style.

Banner styleBest useTrade-off
Small plain-text boxFrequent shell sessionsCompact but not elaborate
FIGlet large letteringProject or workstation identityCan become too wide
Multi-line illustrationDemos and screenshotsTakes more vertical space
Colored ANSI bannerPersonal interactive terminalColor support and appearance vary

If the machine is used for administrative tasks, a small hostname or environment label can be more valuable than a decorative picture. Avoid banners that make important commands or error messages harder to see.

Fix Broken Terminal ASCII Art

Rows do not line up. Check that the terminal font is monospace, and remove tabs from the source file. Tabs may expand by different amounts in different environments.

The banner wraps unexpectedly. Reduce FIGlet's width, use a smaller font, or shorten the text. Remember that the terminal's current width can change while connected over SSH.

Weird characters appear. Your drawing may contain Unicode box symbols or encoding-sensitive characters. Try ordinary ASCII punctuation and verify that the file is stored with a compatible encoding, preferably UTF-8 for modern environments.

Unexpected text appears in scripts. Remove the unconditional startup banner and restrict the display to interactive sessions. A clean standard output stream matters more than decoration in automation.

Conclusion

A Linux terminal ASCII banner is easiest to maintain when it is narrow, readable, and optional. Use FIGlet for quick oversized text or a plain .txt file for a precise custom design. Test it by running it manually first, then add it to the correct interactive shell startup file if you want it shown automatically. Keep automation and remote-command output free from unwanted welcome messages.

Frequently Asked Questions

How do I make a Linux terminal ASCII banner without installing anything?

Create a plain-text file containing the drawing and display it with cat banner.txt. You can also use a quoted shell here-document to print the characters directly. Both approaches are useful for small banners and require no special ASCII art software.

How do I display ASCII art every time I open a Linux terminal?

For interactive Bash sessions, you can add a cat or FIGlet command to ~/.bashrc. Guard it so it only runs in interactive sessions, and test the change in a new terminal. If you use another shell such as Zsh, use that shell's appropriate startup configuration.

Why is FIGlet text wrapping in my terminal?

The generated text may be wider than the visible number of terminal columns. Try a shorter phrase, a narrower FIGlet font, or an appropriate -w output width. A fixed setting that works on desktop may need adjustment in an SSH session or small terminal window.

Can I put colored ASCII art in a Linux terminal?

Yes, many terminal emulators support ANSI color escape sequences. However, color availability and appearance can vary, and the color sequences are not ordinary visible ASCII art characters. For portable text, keep a monochrome version and treat color as an optional enhancement.