Table of Contents
Understanding Essential Tools
After your Linux system is installed and you have logged in for the first time, it is useful to add a small set of tools that make daily use smoother. Different distributions come with different defaults, so thinking about “essentials” helps you build a predictable working environment, especially if you plan to follow tutorials or learn the command line.
In this chapter you will focus on the kinds of tools you typically install right away on a fresh system, how to think about choosing them, and the general approach to getting them via your distribution’s package manager. Detailed use of package managers is covered elsewhere, so here you will only use simple, basic commands as examples.
Essential tools are not about installing “everything.” Install only what you understand and expect to use. Extra software always increases complexity and potential attack surface.
Using the Package Manager for Essentials
On a new Linux installation, the main way you get additional software is your distribution’s package manager. You will often need to install tools from the command line even on a desktop system, because many tutorials assume this.
Common basic patterns look like:
For Debian or Ubuntu based systems:
sudo apt update
sudo apt install <package-name>For Fedora or Red Hat based systems:
sudo dnf install <package-name>For Arch based systems:
sudo pacman -S <package-name>You usually run an update command once after installation to make sure you are installing the latest available versions in your repository, then you install specific tools by their package names.
Core Command Line Utilities
Most distributions already include many command line tools, but some very practical ones are often missing on minimal or server style installs.
A typical group of useful core utilities includes enhanced versions of tools for viewing and working with text, and tools for retrieving files:
For example, you might install a more capable pager and search utility for reading text output, such as less and grep, if your minimal system does not have them. On desktop distributions you will usually have these already, but on very small installations you might need to add them manually.
You may also want tools to download files from the internet from the terminal, such as curl or wget. They are widely used in documentation and scripts when you need to fetch configuration files or installers.
An example on an Ubuntu based system:
sudo apt update
sudo apt install curl wgetOn Fedora:
sudo dnf install curl wget
You do not need to use all of these immediately. The point is to ensure that when you follow a tutorial that uses, for instance, curl, your system already has it.
Text Editors for Everyday Work
Most Linux learning eventually involves editing configuration files. For this you need at least one text editor that you feel comfortable using. Many distributions include a simple editor by default, but it might not be the one you prefer.
On the command line, an easy beginner friendly editor is nano. It shows help at the bottom of the screen and does not require long practice to perform basic edits like saving a file or exiting.
For example, on an Ubuntu based system you could run:
sudo apt install nanoOn Fedora:
sudo dnf install nanoGraphical desktop environments usually ship with at least one graphical editor, such as “Text Editor,” “KWrite,” or “Gedit.” If you dislike the default, you can install an alternative from your software center or with the package manager, for example:
sudo apt install geditChoosing one editor and using it consistently at first is more helpful than having several. Advanced editors and more complex usage will be covered in later chapters, so here the focus is only on making sure you have something basic installed and ready.
Web Browser and Network Tools
Desktop oriented distributions often include a web browser by default, but on minimal or server installs you might not have one. Even if your everyday use is on a different machine, a browser on your Linux system is useful for reading documentation or downloading installers.
If you prefer a particular browser, for example Firefox, you can usually install it directly through your package manager. On Ubuntu based systems:
sudo apt install firefoxOn Fedora it might already be installed, and if not:
sudo dnf install firefoxIf your distribution’s default browser is different from your preference, you can normally have more than one browser installed and set your favorite as default within your desktop environment’s settings.
In addition to a browser, basic network tools such as ping or traceroute help you troubleshoot connectivity. On some distributions they are part of a package like iputils or inetutils. If a command is missing when you try it, the error message usually tells you which package to install.
File Archiving and Compression Tools
You will often download software or example projects in compressed formats, such as .zip or .tar.gz. Most desktop environments provide graphical support for these formats through an archive manager, but it is still useful to have command line tools installed.
Common tools include zip and unzip for .zip files, and tar combined with compression utilities such as gzip and xz for many Linux archives.
On Ubuntu based systems you could install:
sudo apt install zip unzip tar gzip xz-utilsOn Fedora:
sudo dnf install zip unzip tar gzip xzYou may not need all of these on day one, but having them available means you can follow instructions that tell you to extract or create archives without interruption.
Basic System Information Tools
Shortly after installation, you often want to find out what hardware you have, how much memory is available, or how much disk space remains. Simple tools for viewing system information make that easier.
For disk space, there is a standard command df, which is usually preinstalled. For a more readable view you might use df -h, where the -h option asks for sizes in human friendly units such as gigabytes, instead of blocks.
Memory usage is commonly inspected with free. The option -h is also common here, so free -h gives a human readable summary of RAM usage.
On some systems you might want extra tools such as htop for an interactive process and resource viewer. If it is not already installed, you may add it with:
On Ubuntu based systems:
sudo apt install htopOn Fedora:
sudo dnf install htopWhile advanced monitoring and tuning come later in the course, at this stage it is helpful to know you can quickly check basic system status with these utilities.
Development Essentials for Learning
You might not plan to develop software immediately, but many learning resources for Linux involve compiling small programs or using version control. For this it is convenient to install a minimal set of development packages on a new system.
A common pattern is to install a collection of tools provided as a single “build essentials” package group, which usually includes a compiler, linker, and basic development utilities.
On many Ubuntu based systems:
sudo apt install build-essentialOn Fedora, which does not have the same meta package name, you might install specific tools instead:
sudo dnf install gcc make
If you want to work with Git repositories, for example when downloading configuration files or example code, you normally install git explicitly:
On Ubuntu based systems:
sudo apt install gitOn Fedora:
sudo dnf install gitThese tools are not required to simply use Linux, but they become very common as you progress through command line topics, shell scripting, and later development or DevOps content.
Multimedia and Document Tools
On desktop Linux you may want to ensure you can play common audio and video formats, and open typical document files. Some distributions ship complete multimedia support, while others deliberately avoid certain codecs by default.
To add broader multimedia support, some distributions offer meta packages or codec bundles that you install once. For example, on Ubuntu you might encounter a package like ubuntu-restricted-extras, which pulls in several popular codecs.
On Ubuntu based systems:
sudo apt install ubuntu-restricted-extrasOn Fedora, multimedia support is usually handled through additional repositories, so your exact steps may differ and will depend on current Fedora recommendations.
For document viewers, check if you have PDF support and an office compatible suite. If not, you can install something like LibreOffice:
sudo apt install libreofficeor on Fedora:
sudo dnf install libreofficeThe precise choice of multimedia and office tools is a matter of preference, but it is wise to confirm early that your system can open the common file types you rely on in daily life.
Organizing Your Essential Tool Set
As you add software on a fresh system, it helps to keep track of what you install and why. This can be as simple as a text file in your home directory where you note package names, or a small script that installs your personal essentials.
For example, you might create a file my-essentials.txt listing the package names you always add to a new system. Later you can convert this list into a simple shell script that calls your package manager with all those packages at once.
For instance, on an Ubuntu based system you might write a script like:
#!/bin/sh
sudo apt update
sudo apt install nano curl wget git htop zip unzipYou will learn in later chapters how to create, edit, and run scripts more safely. At this stage, the key idea is that an organized set of essential tools makes it easier to recreate a comfortable environment on any new Linux installation you perform in the future.