How to Use Linux: Full Tutorial (2020)
Technology giant Microsoft recently announced that it was very close to achieving the major milestone of one billion computing devices running the Windows 10 operating system, thus commanding the largest market share in terms of desktops.
Linux, on the other hand, powers just 2% of desktop computers, though it is the most popular family of operating systems in the world. How can that be?
The reality of Linux in 2020 is that it powers about 90% of personal and enterprise computing devices around the world, and this is partly because Google’s Android and Chrome operating systems are based on the Linux kernel, not to mention that Linux is the platform of choice for server applications, web hosting services, cloud computing data centers, supercomputers, and many enterprise networks.
If you have been considering giving Linux a try, but are unsure of where to start, the first you should know is that you are likely halfway there because you are already familiar with the world of Unix-like operating systems. Windows, macOS, Android, iOS, Chrome OS, and even the BlackBerry QNX OS are Unix-like systems.
Most Android smartphone users are able to get the hang of iOS if they switch to an iPhone, and the same can be said about macOS users who switch to Windows. They may not fully enjoy the experience, but they have an almost intuitive understanding of the functionality. This Unix-like aspect of Linux means that you will quickly get used to it once you try it out.
What Exactly is Linux?
Linux is an operating system (OS) just like Windows or macOS, it is a platform that manages all of the hardware components of your computer. It helps software applications communicate with computing devices.
Development of Linux dates back to the early 1990s. Linus Torvalds, a Finnish computer science student, decided to create his own version of an OS for a PC he owned at the time, a 486 clone built on Intel x86 architecture.
The Linux Kernel
It should be noted that Torvalds started off developing the Linux kernel, and this is a task that he continues to perform to this day along with the support of the free and open-source development community. The Linux kernel is the core of this OS platform, which as of March 2019Why Should You Consider Using Linux? is on version 5.0.5 The kernel is a critical program coded for the purpose of controlling everything in relation to the OS and the functionality of computing devices.
With the above in mind, it is important to clarify that Linux is a name that can interchangeably refer to the kernel or to the OS family. Since Linux is at the heart of the Free and Open Source Software (FOSS) movement, there are quite a few OS variants, most of them geared towards desktop and laptop systems, but some are coded and distributed with specific devices in mind.
Android, for example, is ideal for smartphones, tablets and other devices equipped with touchscreen interfaces. Chrome OS is a Linux variant compiled to run on modern laptops such as Chromebooks. Red Hat Enterprise Linux is a commercial OS intended for servers.
These are all Linux distributions, often shortened to “distros.” For the purpose of this guide, we will reference FOSS Linux desktop distributions, which are the best way to get started. At a minimum, you will need a desktop or laptop, and ideally a USB drive to run a Linux distribution, which you may not even have to install.
As with any OS, Linux has:
- Bootloader: When you start your computer, the Basic Input/Output System (BIOS) starts running through a sequence of events to make sure that all of your equipment is working and able to communicate properly; it then directs the software to execute the bootloader, which loads the kernel into memory. Some lightweight Linux distributions such as Puppy Linux take up less than 300 MB and load both the kernel and OS from RAM. The bootloader finishes once I/O requests such as mouse, keyboard, video display, audio, and graphical user interfaces are functional.
- Daemons: As a multitasking OS, Linux utilizes daemons to run in the background waiting for requests to be made. If you are only testing a Linux distribution, you may not become aware of daemons since they are background processes similar to what you see in the Windows Task Manager or macOS activity monitor.
- Shell: Many Linux distributions allow users to access the OS shell through a command line interface (CLI) that can be managed through a terminal application. Text-based CLI commands can be used to communicate with the kernel, and this is something that scares some potential Linux users, but it is similar to typing CMD from the Windows Start Menu and inputting commands reminiscent of the DOS era. We will get back to the shell and CLI commands later in this guide.
- Graphical server: This is where you get the Windows-like GUI that everyone is used to. Most Linux distributions use the X Window System, also known as X11 or X, which handles all the graphical elements on the screen as they relate to the user’s mouse or touchscreen movements. Some Linux distributions, particularly the lighter versions, boot into a terminal-like environment that prompts users to type the “xwin” command to launch the GUI; this is similar to the early Windows 3.1x days of the 16-bit era, which booted users into DOS and required the “win” command to access the GUI.
- Desktop environment: This is the piece that every user is most familiar with. In the Linux landscape, there are a many environments to choose from. Similar to Windows design language systems such as Aero and Metro, and the Aqua user interface of macOS, Linux has lots of variants such as KDE, MATE, Cinnamon, GNOME, Xfce, Unity, and others.
Many Linux desktop environments emulate Windows for the purpose of making it easier on users, but since they are open-source systems, they can be configured to emulate Apple GUI systems, and this is often the case with KDE.
In some cases, desktop environments can be transformed for specific purposes. One such example is the Sugar OS desktop, which serves as an educational platform for children.
Choosing a Linux Distribution to Test
To date, there are over 600 Linux distributions to choose from, most of them free to install, and most of them based on the following main distros:
After decades of Linux development, the consensus for newcomers is to start with a Debian-based distribution. Debian is often referred to as a true “universal operating system” because it can be installed on just about any computing device with the right configuration.
You may not want to choose a Slackware-based distribution unless you are working with very old hardware, and Arch-based distributions tend to be more technical. With this in mind, the following recommendations are Debian-based.
- Linux Mint is currently one of the most popular distributions. It has one of the cleanest desktop environments in the market, a nice mix of Windows and macOS elements. For new users, Mint comes loaded with tons of options. It functions similarly to Windows 7/10 with the Start Menu and application selection process. It is very fast and compatible with a variety of hardware, even on older computers, preferably 64-bit. For those making the switch from Windows to Linux, this is the best option.
- Ubuntu is also a good option for Windows users looking to make the switch. Ubuntu is like the “cool granddad” who has been there, done that, and is still alive and kicking. Ubuntu is built on being a universal platform, built for average users and not just techies. For someone starting out, Ubuntu is great; plus, there is a ton of helpful documentation and community support in the form of forums and other web communities.
- Puppy Linux is an Ubuntu-based distribution specifically compiled and packaged to bring old hardware back to life. This lightweight distribution can run on RAM, which means that the entire OS functionality does not require hard drive installation. Older Windows Netbooks that stopped receiving support years ago can be updated with Puppy Linux, and this OS is also ideal for users who just want to get a taste of how Linux runs on their hardware. A similar option would be SliTaz, which can be run from a package weighing less than 200 MB.
Best of all, most Linux distros connect to FOSS repositories where hundreds of apps can be downloaded and installed along with all required dependencies.
Test Driving Linux
A neat aspect of Linux distributions is that you are able to take them for a test drive before deciding to make them your primary OS. This is possible because most Linux distros support “live CD” functionality, which means the kernel, graphical server, desktop environment, and applications can be booted from removable media such as USB drives. In many cases, Linux distributions can also be tested within virtual machines, but the best method is to use USB flash drives.
Major distros such as Mint and Ubuntu can be tested by first visiting their download pages and looking for the right ISO file to test:
USB drives with at least 2 GB of storage are recommended; otherwise, you may want to test lighter distributions that are still full-featured:
Since your USB will become a computing device, you will want to make sure it is properly formatted before you download and install the distribution. Insert the USB with the ISO image into your desktop or laptop before restarting; you may need to set the boot priority of your BIOS to USB, and this can be accomplished by pressing one of the following keys:
When the BIOS setup utility appears, use the arrow keys to navigate to the boot priority menu and set USB as the top device and hard drive as the second option. Save your new BIOS settings, allow the computer to restart, and follow the prompts on the screen.
The main Linux components you will typically see during a live USB session include:
- A display manager to log-in.
- A window manager to handle your apps.
- A manager that also handles windows, panels, menus, dash interfaces and core applications.
Once you finish the boot process, you should see the desktop environment. Just like Windows, most every variant of Linux will have a desktop environment.
After a few minutes, you should easily be able to find the taskbar, the notification area, the application menu, where to change settings, the time/date, and so on.
Using the Linux Terminal App
Users who are more technically inclined can keep things even simpler by testing a terminal-only Linux distribution such as Tiny Core Linux or mini-Debian.
Doing this will boot the OS right into the CLI and without GUI elements. In essence, you will be looking at a terminal, from which you can type text commands such as:
- pwd – shows the path of the current directory you are in.
- ls – displays a list of files in the current directory.
- cd – move to another directory.
- mkdir – creates a new folder within the current directory.
- touch – creates new blank files as long as the file type extension is specified, for example: new.txt.
- mv – transfers files from one directory to another. This command can also be used to rename files; in the case of new.txt, “mv new second” will result in the file renamed as second.txt.
- rm – deletes files.
- rmdir – deletes directories after they have been cleared of files.
- man – this is the most useful command for beginners because it provides descriptions and information about Linux commands.
- apropos – another useful command that is even more convenient than “man” because you can specify topics. Let’s say you want to learn more about the Linux file system hierarchy. In this case, you can type apropos hierarchy to display Linux manual pages that include the word “hierarchy.”
Linux File System Hierarchy
When you are navigating your Linux live or permanent installation, you will want to take a look at the hierarchy standard of its file system. In a Debian-based OS such as Ubuntu, it may look like this:
- /bin – where most users start.
- /boot – where the kernel lives.
- /dev – where the device drivers reside.
- /etc – where the configuration files for all users can be found.
- /home – where custom folders should be stored.
- /lib – where dynamic libraries and dependencies are kept, and should not be touched.
- /media – where fixed and removable media, including virtual machines, are referenced.
- /mnt – where mounted fixed and removable media is indicated.
- /opt – where additional software packages are stored after installation.
- /proc – similar to /lib, it should be left alone.
- /root – this is where the superuser can store files and execute high-level commands.
- /run – a temporary file system.
- /sbin – similar to root, this is where superuser commands are executed.
- /srv – where FTP and HTTP data resides.
- /sys – provides kernel information.
- /tmp – another temporary file system.
- /usr – where the user-installed applications are stored.
- /var – another temporary file system, specifically used by internet applications such as web browsers.
Navigating the Linux File System
Most Linux distros packaged with a graphical server will boot you right into the desktop GUI, which in many cases will resemble Windows or macOS.
With desktops such as Mate, LXDE and KDE Plasma, you can look at the bottom or top of the screen to find an icon that resembles the Windows Start menu button. Clicking or tapping on this element will bring up a labeled navigation option that will either point to the Bin, Root, Home, Usr, or Mnt folder.
The latest Gnome desktop is rather intuitive, thanks to the skeuomorphic icons that depict items such as filing cabinets, disk drives or computers. Clicking on these graphical elements will open directories and folders into their own windows, thus making navigation feel very similar to macOS and Windows. The Unity desktop found in many Ubuntu distributions also presents intuitive icons for folder navigation.
From within the CLI environment provided by a Linux terminal app, navigation always starts with the pwd command, which will return the path where you are currently in, for example:
You can use the ls command to display all the files in the folder you are in. Furthermore, the cd command allows you to change directories, like this:
Instead of typing entire paths, you can also cd to a folder within your current path:
To move up one level from your current path, just type cd..
Moving Files Across Linux Directories
As long as you are in a desktop environment, every window that displays a directory becomes a file manager, which means that you open multiple folders to drag and drop files. In a Linux terminal, the mv command can be used to transfer files.
Let’s say the file you wish to move is named “project” and is currently stored in the home/download folder. To move it to the documents1 folder within the same directory, you can type:
mv /home/download/project /home/download/documents1
You can also use * wildcard arguments with the mv command. To move all your songs from the /home/download folder to /home/download/music, type the following:
mv /home/download/*.mp3 /home/download/music
Renaming Files from the Command Line
Right-click context menus are present in most Linux desktops, which means you can rename files by clicking on their icons once with the right mouse button. Within the CLI environment, renaming can be accomplished with mv, the same command used to move files.
Let’s say you have a file named new.txt, which you would like to rename to “second”. Your command would be:
mv new second
Keep in mind that the example above will work as long as the new.txt file is located in the path you are currently in. Linux will not force you to navigate to a specific path to execute the mv command for renaming purposes. If you specify paths, mv will do as you indicate. Let’s assume new.txt is located in the /home/download/ folder, and you want to rename it to second.txt, using this command:
mv /home/download/new /home/download/second
Linux Processes and Tasks
Many system tools and utilities come packaged inside most Linux distributions that feature GUI desktops, and they invariably include a task manager similar to the one used in Windows.
The Gnome System Monitor, for example, is one of the best reasons you should choose Linux distributions with this desktop. The way it displays running processes and the various options it offers for management make it a very powerful tool.
All the information displayed by the Gnome System Monitor and other GUI task managers comes from the Linux shell, which means that you can view them and handle them with CLI terminal commands such as:
- top – this is like the ls command, except that it displays running processes sorted by how much computing resources they are using. You can also try htop. If it is already installed in your Linux distro, it will display processes in a GUI-like fashion but still within the terminal.
- ps – similar to the top command, ps displays running processes, but it benefits from two arguments: -A and grep. If you are running a Firefox session, for example, you can see all the processes used by this open-source browser.
- pstree – this is a semi-graphical way to display Linux processes in nestled tree format.
- kill – as expected, this sends a signal to the kernel to kill a specific process. To successfully use kill, it must be followed by the process ID number issued by the system, which can be displayed by any of the commands listed above.
- pkill – when you want to stop all processes invoked by a running application, the pkill command will do so, and it will accept the app name. When you type pkill firefox, all the processes used by this browser will be stopped. Killall is another way to invoke pkill.
- xkill – in some cases, the pkill command may not stop the GUI of a running application, but the xkill command will take care of any empty windows floating around.
Understanding Linux Permissions
Similar to the Windows operating system, Linux provides a multi-user account experience. Its default security mode includes measures to prevent users from accessing files that belong to other accounts.
To discover the permissions you have upon installation, you will have to launch the terminal app and type:
The command above will display a list of files in long format. This lets you see the permissions assigned to your account. The first column on the left displays a string of characters that correspond to the read, write and execution permissions.
If you see ‘rwx’ before your user account name on the first column, this means that you can (r)ead, (w)rite and e(x)ecute the file in question. If any of the rwx characters have been replaced by a “-” character, it means that the permission is missing. In the case of an account that is locked with a password, there is a good chance that you will see — instead of rwx.
Permissions can be assigned, changed and managed from the CLI with the chmod command, but you will have to make yourself a superuser first. In many Debian-based Linux distributions such as Ubuntu, you may have to set a root account password before using chmod, and you can do so as follows:
sudo adduser *here you type your username”
At the prompt, you set up a secure password of your own. Now you can change modes with the chmod command, here’s an example:
chmod u+rwx project.txt
The example above adds read, write and execution permissions for the current user with regard the the text file named “project.” To remove permissions, the + argument can be changed to -. A more efficient method of managing permissions, at least in Debian-based distros, is to install the Eiciel utility, which provides a GUI method that is easy to understand.
Connecting To The Internet
Being able to connect to the internet right off the bat is one of the reasons you will want to stick to major desktop distros such as Ubuntu and Mint, which have been compiled with updated versions of network card drivers.
The configuration wizards packaged with these distributions are amazingly effective at detecting network cards and devices, and in some cases they even offer the option to set up virtual private networking for increased privacy and security against the most common cyber attacks.
Adding More Software to Linux
When you want to add more software to your Linux distribution, all you have to do is navigate to your software center or package manager. In Ubuntu, you can also start a terminal session and use the following command to get the latest version of the Firefox web browser:
sudo apt-get update
sudo apt-get install firefox
Prior to Windows 10 and the advent of the Microsoft Store, Linux desktop distributions were often considered superior because of their software center feature.
One major point of contention against Linux is the lack of a sophisticated office suite. Windows users have been spoiled by Microsoft Office and do not want to make the switch away from it. The reality is that there are office suites that work great in Linux and provide the same functionality without the overhead costs associated with Microsoft Office.
When it comes to freeware office suites, Apache’s OpenOffice is one of the best. It is built on the same foundation that Microsoft Office is with a solid word processor, spreadsheet, and presentation software. In fact, the files can be used interchangeably between OpenOffice and Microsoft Office.
This freeware office suite has stepped up its game in recent years and is now a solid contender for personal or business use. This is not a localized software, but rather a cloud-based option.
You can do almost anything in Google Docs that you can in Microsoft Office but are not restricted by the necessity to download and install it on every device you use. Nearly all cloud storage providers work on Linux, just as they do on Windows or Mac OSX.
In the event that you are convinced life is not worth living without Microsoft Office, you can access Office365 through your web browser. It’s not free, but it does allow you to continue using Microsoft Office while working in Linux.
Why Should You Consider Using Linux?
- With the right Linux distribution, you can bring an old workstation or laptop back to life and into 2020. Windows XP, for example, still operates on older machines yet the IT team has abandoned it entirely, meaning there are no security updates. Some Linux distros, on the other hand, continue to maintain security specifically designed for older hardware.
- Linux has functionality that may suit some users better. When Windows 8 and 10 were introduced, not everyone was thrilled with the sharply different interface. Meanwhile, Linux distros feature GUIs that are more like Windows 7, which should be appealing to some users comfortable with the old ways of using a computer.
- Linux is extremely secure. Windows has done a lot for the technological world. yet when it comes to security, Linux has built a better reputation. Linux does not have such an extensive history of viruses nor vulnerabilities that have often plagued Windows.
- Linux is known for performance. When compared to Windows, many tech gurus see higher performance rates with Linux. It is possible to squeeze more out of Linux, particularly when it comes to server versions. Overall server stability and reliability are among the many reasons Linux will probably suit you.
- Linux is big on protecting privacy, something that has become a dilemma among tech giants. The FOSS Linux distro community does seem to value personal privacy and protection better than Google and Microsoft.
Ultimately, Linux is a vastly underrated technology tool. Too many people have been scared away from Linux because of its “complexity,” not having enough software options, and the lack of commercial support, but these have all proven to be misconceptions.
Linux performs just as well, if not better than Windows, especially for older devices where the security patches and updates have long been neglected by mainstream providers. And while there is a learning curve associated with Linux, once you gotten over the main hump, it will be as easy as falling off a horse.
Now, let’s quickly recap the main ideas covered in this guide:
- What Linux Is
- Elements of the Linux kernel
- The best Linux distros
- How to set up and use Linux
- Important Linux commands
- Permissions and account access
- Connecting to the Internet
- Adding Linux apps and software
Just like with Windows, you had to learn how to find applications, open and close programs, connect to the internet, print a document, essentially the same learning process that will be required for Linux.
Once you give Linux a try, you will see that it really isn’t as complicated as it is often made out to be. In fact, you can think of it as another variant of Windows or macOS, albeit one that is more secure, more stable, and less hungry for resources.