How to Set A Custom Message of The Day on Linux

Objective

Set a custom message of the day.

Distributions

This will work on any Linux distribution.

Requirements

A working Linux install with root privileges.

Difficulty

Easy

Conventions

  • # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
  • $ – requires given linux commands to be executed as a regular non-privileged user

Introduction

When you first log in to a terminal on a Unix system, Linux included, you are usually greeted by that system’s message of the day(MOTD). The message of the day, gives you important information about the system or just messages from the system admin. Of course, if you are are the system admin, it’s up to you to set that message. If it’s your own system, you can get creative with your message and include any information that you choose.

First off, you can easily set a plain text message of the day on most systems by adding some text to the /etc/motd file. That’s boring, though, you can do a lot more than that.

Debian/Ubuntu

Debian and Ubuntu systems handle things in their own way. They have a directory at /etc/update-motd.d/ with different shell scripts, each of which displays a different piece of information. They’re organized in ascending numeric order and will execute in just that order. Take a look at way they’re set up.

00-header

Because the number at the font is 00 it will execute first. With it being the header, that’s a good thing.

You’re free to modify these files or stop them from running. Each one is just a shell script, so there’s nothing vital that can’t be modified or outright removed.

You can also add it your own scripts and insert them in the correct order with the numbering system. Again, because they are just scripts, you’re free include anything that you can output in to a terminal window.

For example, if you wanted to add in a footer that greets your users, you could do something like this in a file called, 99-footer

#! /bin/bash

figlet -f slant Welcome!

Make sure that it’s executable, and the next time you log in to a terminal session or over SSH, you’ll see it appended to the bottom of your usual message of the day.

Customized MoTD on Ubuntu

Since it’s Bash, you can use variables that you choose too.

#! /bin/bash
 
HOSTNAME=`uname -n`
KERNEL=`uname -r`
CPU=`uname -p`

figlet -f digital Welcome to $HOSTNAME!
echo "You're running $KERNEL on $CPU"

There really isn’t any limit to what you can do.

Everyone Else

Just about every other distribution does it a different way. They use a different file located at /etc/profile.d/motd.sh.

Once again, that file is a shell script that you can use to do just about anything. Since you aren’t encumbered by a lot of the other stuff that Ubuntu throws in there, you can really get creative. Try using a script to display a random quote each time you log in.

#! /bin/bash

MSGS=("Quote 1" "Quote 2" "Quote 3" "Quote 4")

MSG=${MSGS[$RANDOM % ${#MSGS[@]} ]}

figlet -f small $MSG;
echo "\n";

Alternatively, use afortune command to generate a random quotes for you. Example:

#! /bin/bash

figlet -f small $( fortune )

Customized MoTD with Neofetch on Gentoo

If you want to simplify and/or streamline things, you might even consider using Neofetch in your script to display all your system information in a well-organized block.

neofetch;
echo "\n";

The choice is, once again, yours.

Closing Thoughts

There’s not a whole lot to say. You have free reign to make your system’s message of the day whatever you choose. Once again, if you can script it, you can do it. So, feel free to get creative and experiment.



Comments and Discussions
Linux Forum