The sleep command is used to delay the execution of scripts or commands in Linux (and other Unix systems). In this beginner-friendly tutorial, we’ll show you how to use the sleep command on Linux and what it does, and we’ll include helpful examples.
You can use the sleep command on any Linux distro, including Debian, Ubuntu, Linux Mint, CentOS, and more. You can even use it on a Mac or other Unix-like systems. The command is available on all Linux distros, you don’t need to install it.
In this tutorial, we’ll show you how to use the sleep command in the Terminal/shell/ssh and bash scripts. So you’ll need Terminal access to a Linux distro or SSH access to a Linux server.
Basic sleep command syntax
The basic syntax of the sleep command on Linux is:
sleep number[suffix]
The number can be any integer, and the suffix can be:
- “s” for seconds (default)
- “m” for minutes
- “h” for hours
- “d” for days
So you can pause a command for a number of seconds, minutes, hours, or days.
A most basic example is:
sleep 5m
This will pause/delay the command for 5 minutes. If you want to exit out of the sleep command mode, just use “CTRL + C”
We’ll include more detailed and useful examples below.
Run an .mp3 “alarm” using the sleep command on Linux
This is the most popular and widely used example of the sleep command on Linux. Use the sleep command to delay another program running an .mp3 file. For example, if you have VLC installed, you can use:
sleep 30m && nvlc /path/to/alarm.mp3
This will run the alarm.mp3 file after 30 minutes with the CLI version of VLC. You can replace the second part of this command with whatever media player you have installed on your system.
Open a website in Firefox after 1 hour via the terminal
You can use the sleep command along with the CLI options for Firefox to open a website after a certain amount of time.
For example, you can open our website after 1 hour by running:
sleep 1h && firefox https://linuxstans.com
1 hour after you run this command, Firefox will open up with our website.
Another similar command I often use is to open YouTube videos (most often they are a scheduled live stream). So for example, if someone schedules a stream in 2.5 hours on YouTube, I will run the sleep command with Firefox and a link to their YouTube video:
sleep 2.5h && firefox -new-tab https://www.youtube.com/watch?v=lvRJt1aNgXA
This will open that YouTube video in a new tab in Firefox after two and a half hours.
I rarely use the previous example for running an “alarm” with an .mp3 file, I often just open up a song on YouTube via Firefox to remind me to take a break from whatever I’m doing.
Run a makeshift timer with the echo and sleep commands
Another example that I sometimes use with the sleep command is running a makeshift “timer” when I’m working in the Terminal and I’m too lazy to open up an actual timer.
For example, running this command:
echo "Start" && sleep 30 && echo "Stop"
The Terminal will output the word “Start”, wait 30 seconds, and output Stop. You can run a more complex version of this example, but at that point, it may just be easier to open up a Timer app.
A more complex example would be:
echo "Start now" && sleep 10 && echo "10 seconds have passed" && sleep 10 && echo "20 seconds have passed" && sleep 40 && echo "A minute has passed"
This command will output “Start now”, then after 10 seconds it will output “10 seconds have passed”, wait 10 seconds, and output “20 seconds have passed”, wait 40 seconds and output “A minute has passed”. You can modify this command and combine the sleep and echo commands to run something useful to you.
Put the computer to sleep with the sleep command
People may associate the sleep command with putting a computer to sleep, but that’s not what it’s used for. You can still use the sleep command to put a computer to sleep:
sleep 1 && systemctl suspend
This will put your computer to sleep after 1 second.
To put your computer in Hibernate mode, run:
sleep 1 && systemctl hibernate
You can also shutdown the computer after 1 second:
sleep 1 && shutdown -h now
Run the sleep command in a bash script
You can also use the sleep command in a bash script, and it’s often used in bash scripts.
A basic example of a bash script with the sleep command is:
SLEEP_SECONDS="15" echo "The current time is: $(date +%T)" echo "Waiting ${SLEEP_SECONDS} seconds" sleep ${SLEEP_SECONDS} echo "The current time is: $(date +%T)"
The output of this bash script would be similar to:
The current time is: 14:38:28 Waiting 15 seconds The current time is: 14:38:43
You can use the sleep command directly in a bash script, without a variable, but it’s more useful and often used with a variable that can easily be changed and used throughout the script.
You can combine all examples from this tutorial into a bash script. So you could create a timer in a bash script and run ./timer.sh whenever you want to. It’s easier than typing out the full command.
Got any other sleep command examples for Linux?
Leave a comment below. I know there are a lot of useful ways to run the sleep command.
One thought on “The Linux sleep Command – Tutorial and Examples”
Hi,
I’ve long used AIMP to play music predominently because it has a great built-in timer with many options e.g. shutdown/sleep/hibernate after delayed time/minutes/hours/x # files; unfortunately it is only for Windows, which means I cannot dich that OS altogether as the timer doesn’t work using Wine.
I’ve so far not found any Linux music players with this feature & all my requests to developers have been ignored, which is of course disapointing as I think it would be a feature much appreciated by others.
Any suggestions on how I could achieve something similar preferably without having to do so with commands?