Table of Contents
The operating system is a layer that stands between the hardware and applications that operate on them. On desktops, the operating system is used via a desktop environment that offers an intuitive interface to the computer’s functionality. Many developers also use the command line to interact with the computer. When used correctly, a well-designed operating system and desktop environment improve cognitive ergonomics, which means decreased mental clutter and decision-making fatigue, and enhanced productivity.
We recommend using Ubuntu desktop, an intuitive and easy-to-use Linux distribution. It’s an open-source, efficient, and knowledge-worker-friendly operating system, with access to the command line and a well-designed desktop environment. By default, Ubuntu 20.04 Desktop uses the GNOME desktop environment, which allows managing workspaces (virtual desktops) and windows, filesystem navigation, keyboard shortcuts, and searching for applications and files. Furthermore, installing and managing applications is convenient with a package manager. Ubuntu is also a common operating system for running servers, IoT devices, and cloud software. The rest of this section covers installing Ubuntu, configuring settings, and how to use it effectively.
Installing a new operating system may feel intimidating or even scary. However, the creators of Ubuntu have made the installation process simple and require minimal technical knowledge. We can try Ubuntu and install it using a startup disk. We can create a startup disk to a USB drive by following the instructions on Create a bootable USB stick on Windows or MacOS. If you are already using Ubuntu and want to upgrade your distribution, you can use the tutorial for Ubuntu. Then, we can follow the instructions in the Install Ubuntu Desktop tutorial from the Boot from USB flash drive section.
We can boot Ubuntu from the startup disk (USB stick) by inserting it into the computer and restarting it. The startup disk should automatically start Ubuntu. If not, open the boot menu by pressing F12, F2, or ESC (depending on your machine) on system startup, and then select the startup disk as the disk for booting your operating system.
Once Ubuntu has booted from the startup disk, it opens an install menu. By following the instructions, the installation is straightforward. If you are unsure, you can follow a video walkthrough of the installation process by searching with the “Install Ubuntu 20.04” query on a search engine and following it on your smartphone or tablet while installing Ubuntu.
In the early days of computers, the only way to interact with the computer was the command line. The command line allows the users to interact with a computer using plain text commands instead of a graphical interface. Each command may accept arguments and options that determine its behavior. In this book, we will be writing commands as follows:
command [options] [arguments]
You can access the documentation of command with the
You can also read the reference manual of command with the
These days command line is useful for using a computer programmatically. For example, it is common to install applications using the command line or access remote servers. Also, most instructions and tutorials rely on the command line to interact with the computer instead of a graphical user interface.
In Ubuntu, we can access the command line using the Terminal application. We can open the terminal with the
Ctrl + Alt + T shortcut and close it using
Ctrl + D. We recommend reading The Linux command line for beginners for an introduction to the Linux command line. It explains how to use the filesystem from the command line, including creating, deleting, and moving files and directories, reading and manipulating text, joining commands with pipes
|, and executing commands as superuser using
Mounting Disks on Startup
From Disks, select your hard disk and open the Additional partition options menu. If you have never used the hard disk or want to wipe it clean, you should format the disk to Ext4 filesystem format. Next, we should give the filesystem a human-readable name by setting the label parameter in Edit Filesystem to
We can automount the hard disk on startup, by navigating to Edit Mount Options, and setting the Mount at system startup option on. We should also set the Indentify As parameter to
LABEL=storage, which makes the disk is available at
Default User Directories
We can change the default directory locations such as
Videos to a separate hard disk by creating symbolic links from the hard disk to the home directory (denote by tilde
~ in the command line).
First, remove the chosen default directory, such as
Documents, from your home directory.
rm -r ~/Documents
Then, create the default directory to your hard disk mount path.
Finally, create a symbolic from the hard disk default directory location to your home directory.
ln -s /mnt/storage/Documents ~/
Repeat the process for the other default directories.
Using symbolic links, we do not have to change the default settings on
~/.config/.user-dirs.dirs configuration file.
From Software & Updates > Additional Drivers, select suitable proprietary NVIDIA drivers for your graphics card.
From Software & Updates > Livepatch enable the Livepatch, which automatically installs updates that do not require a restart. Livepath requires an Ubuntu account.
From Settings > Appearance, enable the Dark window colors. A dark theme reduces eye strain, especially in the evenings.
From Settings > Displays > Night Light enable the Night Light to decrease the screen’s adverse effects on sleep. You can set the schedule to manual and times according to your preferences. I have set my Night Light from 19.00 to 9.00.
To improve our focus on tasks when using a computer, we should reduce mental clutter by hiding unnecessary information from our screen. For example, we can use the full-screen mode by pressing
F11, which maximizes a window and hides menus and other elements that could distract us.
Also, from Settings > Appearance, we should enable the Auto-hide Dock option, which hides to Dock when windows overlap with the Dock. Furthermore, let’s remove all favorites from the Dock since we will be using search to find applications and files instead of navigating menus. If you don’t remember the name of some application, you can always open the Show Applications menu in the Dock to see all of your applications.
Search and Keyboard Shortcuts
Using search and keyboard shortcuts, we can open applications and find files without wasting time navigating through menus.
From Settings > Keyboard Shortcuts, you can see all keyboard shortcuts. We recommend setting the shortcut for the search to
Ctrl + Q.
From Settings > Sound, set your audio Output and Input devices correctly.
From Settings > Online Accounts, you can connect your Google account to synchronize your Google calendar and drive to your desktop.
We can install applications either using a package manager or installing them manually. A package manager is a software that automates installing, upgrading, configuring, and removing applications. Package managers make it easier to maintain up-to-date versions of applications. Ubuntu has two package managers; the newer Snapcraft and older Advanced Package Tool (APT).
When possible, we should use a package manager instead of manually installing applications. However, some applications are not available via a package manager, or the available application version is old. In these cases, we have to resort to manual installation.
We will primarily use Snapcraft, the current default package manager for Ubuntu. We usually refer to Snapcraft simply as Snap. Snap manages and maintains packages automatically in the background. It has a security model of least privilege and containerizes its application. We can also publish our applications on Snapcraft. Also, we will use Snapcraft to install applications later in the book.
Snap has a command-line interface called
snap. We can install applications using the
install argument with superuser privileges.
sudo snap install <pkg>
Snap installs applications to
~/snap/ directory. We can list all installed applications using the
Due to Snap’s security model, we sometimes need to manage interfaces manually. For example, if we want to give Snap package rights to write files to a disk other than
$HOME, we need to
connect the package to
sudo snap connect <pkg>:removable-media
The Snap documentation discusses all of its different features and commands.
Sometimes Snap’s security model does not give enough privileges for applications, which may hinder their capabilities. In that case, we may have to use APT or manual installation instead.
Advanced Package Tool
Advanced Package Tool (APT) is an older package manager for Ubuntu. It installs packages to the
/usr/bin/ directory. It works with the
apt command using the
install argument and superuser privileges.
sudo apt install <pkg>
A common problem with APT is that the maintained package versions are often old, which we should prefer Snap or install the application manually.
We also come across Debian package files in the format
<pkg>.deb. Double-clicking them opens the Ubuntu software center, where we can click install to install the package.
Application vendors usually distribute binary executables as Gzip compressed tarball file,
<pkg>.tar.gz. After obtaining a tarball, we must extract it to the directory where we store manually installed applications. For example, you can create
~/software/ directory to store the applications. We can remove the tarball after extraction. You can perform these step either using the graphical interface or the following commands:
mkdir ~/software/<pkg> tar -xzvf <pkg>.tar.gz --directory ~/software/<pkg> rm <pkg>.tar.gz
Next, we must make the binaries findable to other applications and the command-line by extending the
$PATH variable with the directory path that contains the package’s binary executables. By opening the
~/.bashrc configuration file and appending it with the export below, the operating system will extend the path automatically on system startup.
Now, you should be able to use the application. We should also notice that installing tarball does not require superuser privileges.