Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Login Screen

When you log in on the console of your Linux System, you are usually presented with a login screen with information about the system you are about to log in on. You can change what you see on your login screen as well as adding a bit of colour.

When your GNU/Linux system boots it starts getty processes on a number of virtual terminals on your system. When getty starts it prints the contents of /etc/issue to the terminal. It is this file that can be modified to customise the look of your console.

You can add colour to your console through the use of escape sequences that can be used to change the appearance of text on screen. For example, you could pipe the output from the following script into /etc/issue to try it out (perhaps take a backup copy of /etc/issue first):

    while [ $COUNT -lt $1 ]; 
      echo -ne " ";
  echo -ne  "${esc}H${esc}J\n${esc}44;37;1m"
  WELCOME="Welcome to "`hostname`" running Linux "`uname -r`
  CHARS=$[(80-`echo $WELCOME | wc --chars`)/2] 
  echo -ne $WELCOME `spaces $CHARS`
  echo -ne "${esc}0m\n "

Save the above to a file, perhaps called update-issue. Then, as root, do the following:

  # cp /etc/issue issue.backup
  # sh update-issue > /etc/issue

This should produce Welcome to running Linux 2.6.9-1-686-smp followed by the login prompt, next time getty starts up.

The line responsible for the color is:

echo -ne "${esc}H${esc}J\n${esc}44;37;1m"

In this case the 44;37 specifies White on Blue. To produce a nice colout table on your terminal, to see what is available, you can run the following code (either cut-n-paste it into a terminal or else save it to a file and execute that file, as we did above:

# Display ANSI colours. 
echo -n " _ _ _ _ _40 _ _ _ 41_ _ _ _42 _ _ _ 43"
echo "_ _ _ 44_ _ _ _45 _ _ _ 46_ _ _ _47 _"
for fore in 30 31 32 33 34 35 36 37; do
  line1="$fore  "
  line2="    "
  for back in 40 41 42 43 44 45 46 47; do
    line1="${line1}${esc}${back};${fore}m Normal  ${esc}0m"
    line2="${line2}${esc}${back};${fore};1m Bold    ${esc}0m"
  echo -e "$line1\n$line2"

Note that some GUN/Linux distributions overwrite /etc/issue at boot time.

The scripts above originated from [email protected]

Copyright © 1995-2006 [email protected]

  Published under the terms fo the GNU General Public License Design by Interspire