This is a series that offers a gentle introduction to Linux for newcomers.
The desktop environment with its bundle of programs sharing a common graphical user interface (GUI) remains a firm favorite with users. That’s unsurprising as a good desktop environment makes computing fun and simple. The graphical desktop environment has become so ingrained in almost everyone’s computer activities that it might seem the shell would fade away. Yet there’s still an important role to play for the shell and accompanying terminal-based software.
What’s a shell? What’s a terminal? The shell is a program that takes commands from the keyboard and gives them to the operating system to perform. On Ubuntu, the default shell is bash (which stands for Bourne Again SHell). The terminal is really a program called a terminal emulator. This is software that lets you interact with the shell.
There are many reasons why it’s useful to use bash and the command-line. For example, command-line skills help with building repeatable data processes, the command-line makes working with text files easier, it uses less resources, can improve productivity and workflow, it’s great for scripting, and command-line skills are useful for cloud services.
As we’re using Ubuntu for this guide, we can click on the grid and start typing ‘terminal’ into the search box. As soon as we type the letter t, we can see the terminal icon. Click the icon. This launches the gnome-terminal program.
We will use a different program called hyper for our screenshots as they look more visually attractive. But the pre-installed gnome-terminal offers all the functionality you’ll need.
When you start Terminal, the application starts the default shell. In Ubuntu that’s bash, but there are other shells available.
The shell shows your username, hostname, and current working directory.
sde@ganges tells us that we’re logged into the shell with the username sde, on a host machine named ganges. Our working directory is /usr/bin.
A shell knows 4 types of commands.
Builtins: Builtin commands are contained within the shell itself. They provide functionality which is difficult or impossible to obtain with separate utilities. Most builtins manipulate the shell state.
Aliases: Nicknames for a command with some options. They are defined in the shell’s initialization file (~/.bashrc for bash).
External commands: They are independent of the shell. Like other programs, the shell executes external programs by looking them up in the executable search path. The PATH environment variable contains a colon-separated list of directories to search for programs.
Functions: They are snippets of shell code given a name. Like aliases, they are defined in the shell’s initialization file.
As this article is targeted at beginners to Linux, we’ll focus on builtins, aliases, and external commands. Let’s look at each in turn.
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|
|Part 1||What is Linux? Why use Linux? What do I need?|
|Part 2||Choose a Linux distribution meeting your specific needs and requirements.|
|Part 3||Make a bootable Ubuntu USB stick in Windows.|
|Part 4||We show you how to install Ubuntu 21.04 on your hard disk.|
|Part 5||Things to do after installing Ubuntu.|
|Part 6||Navigating your way around the Desktop.|
|Part 7||Updating the system, install new software.|
|Part 8||Open source replacements for proprietary Windows desktop software.|
|Part 9||Get started with the power and flexibility of the terminal.|
|Part 10||We cover the basics of files and permissions.|
|Part 11||Getting help from your system.|
|Part 12||Learn all about the file system.|
|Part 13||Manipulating files from the shell.|
|Part 14||Maintain your system with these simple tips.|
|Part 15||Managing users on your system.|
|Part 16||Explore different desktops to GNOME 3.|
|Part 17||Gaming on Linux.|
|Part 18||Protect your privacy with this guide.|
|Part 19||Access the Windows desktop from Linux using a remote desktop client.|
|Part 20||Set up a virtual machine running Ubuntu as the host and openSUSE as the guest.|
|Part 21||Wine lets you run Windows programs on Linux without emulation.|