Linux for Starters: Your Guide to Linux – Get Started with the Terminal – Part 9

Last Updated on May 22, 2022

Shell Builtins

A builtin is a command contained within the Bash tool set. They execute faster than external commands and have direct access to the shell internals.

One of the shell builtins is compgen. It lists all the shell builtins in bash when run with the -b option.

$ compgen -b

We’ve compiled a table explaining all the shell builtins in the Appendix, but here’s some that will be particularly interesting to newcomers to Linux.

. (period)

The .  is a symbol that, in the context of file management, refers to the current directory. But in terms of the shell, it refers to read and execute commands from the filename argument in the current shell context.

The period lets you run commands from a directory that’s not in your PATH. PATH is an environmental variable that tells the shell which directories to search for executable files in response to commands issued by a user.

cd (change directory)

cd is one of the most important and commonly used shell builtins. It lets us change directories so that we can navigate around the filesystem. Here’s a few simple cd commands we can issue.

Let’s move from any working directory to our home directory with the command:

$ cd ~

Move up a directory with the command:

$ cd ..

To move from the current working directory to /etc type:

$ cd /etc

We can also specify local directories by removing the / character. For example, if the current directory is /usr/local we can move to  /usr/local/bin with the command:

$ cd bin

Pressing the tab key will autocomplete a path. Where there’s more than one matching directory, pressing tab twice will list the available matches. For example, if our working directory is /usr/local, we can type type $ cd s and press tab twice. This action lists the sub-directories that start with the letter s.


The export command exports a variable or function to the environment of all the child processes running in the current shell.

To view all exported variables on the current shell, use the -p flag.

Linux for Starters - export


kill is a shell builtin for two reasons: it allows job IDs to be used instead of process IDs, and allows processes to be killed if the limit on processes that you can create is reached.

bg and fg

The fg command switches a job running in the background into the foreground. The bg command restarts a suspended job, and runs it in the background. If no job number is specified, then the fg or bg command acts upon the currently running job.


Bash provides access to the list of commands you previously issued, which is known as your command history.

This feature makes it easy to repeat commands, substitute text, manipulate arguments, and fix typos in your previous commands quickly.


This command displays aliases. We’ll cover aliases on the next page.


The echo command does one simple job: it prints to the output an expression or variable.

The image below shows the output of the environment variable $PATH as relayed by echo. Each of the path directories is separated by a colon.

Linux for Starters - echo

Getting Help about the Shell Builtins

Each of the shell builtins are documented. Append --help to the shell builtin command to learn more about them and their options. Here’s an example for the cd builtin.

$ cd --help

Linux for Starters - cd help

Page 3 – Aliases

Pages in this article:
Page 1 – Types of Commands
Page 2 – Shell Builtins
Page 3 – Aliases
Page 4 – External Commands
Page 5 – Navigate the shell efficiently
Page 6 – Appendix – Explanation of Shell Builtins

All articles in this series:

Linux For Starters: Your Guide to Linux
1What is Linux? Why use Linux? What do I need?
2Choose a Linux distribution meeting your specific needs and requirements.
3Make a bootable Ubuntu USB stick in Windows.
4We show you how to install Ubuntu 21.04 on your hard disk.
5Things to do after installing Ubuntu.
6Navigating your way around the Desktop.
7Updating the system, install new software.
8Open source replacements for proprietary Windows desktop software.
9Get started with the power and flexibility of the terminal.
10We cover the basics of files and permissions.
11Getting help from your system.
12Learn all about the file system.
13Manipulating files from the shell.
14Maintain your system with these simple tips.
15Managing users on your system.
16Explore different desktops to GNOME 3.
17Gaming on Linux.
18Protect your privacy with this guide.
19Access the Windows desktop from Linux using a remote desktop client.
20Set up a virtual machine running Ubuntu as the host and openSUSE as the guest.
21Wine lets you run Windows programs on Linux without emulation.
22Extend your GNOME desktop with extensions and themes.
XUseful Linux commands.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Newest Most Voted
Inline Feedbacks
View all comments
Dave Leach
Dave Leach
2 years ago

This is for beginners? Every other word seems undefined. I can read Supreme Court briefs and medical research but not this! The most important thing unexplained is what can be accomplished with these commands. If someone is willing to talk to me to explain these things, I am willing to suggest easier explanations.

2 years ago
Reply to  Dave Leach

Every other word seems undefined?? I think you should read more of the guide before coming to your discourteous comment.

You’ll learn a lot from Part 11, as that shows you how to find what you can do with the commands.

1 year ago

Well, I have not figured out just who you all really are yet….. maybe I won’t be able to>?. But, this is the best “Everything About Linux” I have ever found, on the Internet! And I have been doing Linux in many flavors from 1994! Mostly, I go between Debian and Kubuntu, which I use because of the KDE desktop, which I really like, works great for me to do anything I need!
Wow….. I now have a place to send those I try to talk into using Linux and out of paying that expensive Microsoft tax. I bailed out of Microsoft Windows 95SE in 94′. Furthermore, I have never looked back, and I have kept my money to donate to the many parts of Linux that don’t fly the “Blue Screen Of Death” for a fortune.
Don’t go away anytime soon, I’m going to work even harder now to talk others into dumping Windoz!