What is Linux?

Linux is a UNIX® clone OS based on MINIX, created in 1991 by Linus Torvalds from the University of Helsinki. Torvalds controls all changes and releases of the Linux kernel.

For close to three decades, Linux has been one of the most commonly used and most reliable OSs for servers in the market, no matter what paid third-party reports that are plaguing the internet indicate.

Most Linux distributions include a collection of programs that run on the Linux kernel like X, KDE, GNOME, Cinnamon, Xfce, LXQt, Mate or other desktop environments as well as LibreOffice and other office or home utilities. Under the Linux name, you can get RHEL (paid subscription, enterprise licensing), Fedora (originally based on RHEL), Oracle (based on RHEL), Debian, Ubuntu (based on Debian), Mint (based on Ubuntu), openSUSE (forked from SUSE), Slackware (based on the now-defunct Softlanding Linux System), Arch Linux (inspired by Slackware) and many others. For more information on distros and how popular they are, visit the DisroWatch website.

When Linux became popular (c. 1995-99), you could buy disks for any distribution (distro) from the developers or third-party vendors. Nowadays you would most likely download the distro of your choice as an .ISO and copy (dd) it to USB drive (/dev/sdb1) making sure you have selected the correct sdbx.

          dd if=linux_image.iso of=/dev/sdb1

Installing Linux:

Before trying to install Linux, get a full inventory of what your hardware. In the past, you might have had to help the installer recognize the hardware and/or fully rewrite the configuration (config) files. Nowadays installer shipped with the distro takes care of most the configuration.

Boot from the USB drive and sit back. The only thing you would have to decide is if you want to format the whole drive or share it with another OS as well as entering your credentials (root access) and network information (802.11 if needed).

Depending on the distro, you might need to update your installation right away. If the distro is based on Debian and it has apt as in the case of Ubuntu and its derivatives like Xubuntu (my current installation), you might want to run the following commands on the console as superuser (sudo -i) for root access.

          apt-get update &&               # to update repository list
          apt-get upgrade -y &&           # to upgrade local packages
          apt-get autoclean -y &&         # to clean leftover packages
          apt-get autoremove -y &&        # to remove leftover packages
          apt-get purge -y &&             # to purge old packages
          reboot now                      # to reboot machine

The latter runs multiple commands — one after another using the && (and) operator and then reboot without confirmation using the -y attribute. Of course if you do not need to reboot exclude the last && operator and the reboot now command. I would recommend doing the latter on a daily basis to make sure your system has the most up-to-date packages and to avoid security risks.

You can also install packages using apt-get calling the correct package name.

          apt-get install <package_name>
          apt-get install build-essential # compiler collection from GNU
          apt-get install ddgr            # DuckDuckGo via command line
          apt-get install git             # version control system
          apt-get install lynx            # text-only web browser
          apt-get install nano            # command line text editor
          apt-get install nasm            # assembly language
          apt-get install neofetch        # system information tool
          apt-get install pip             # package installer for Python
          apt-get install python3         # language that we must all learn
          apt-get install sqlite3         # relational database with no GUI
          apt-get install tidy            # utility to tidy up HTML code
          apt-get install whois           # access to the `whois` database (domain registration)

If you do not want the system to ask you for confirmation, you can include -y attribute before the name of the package.

          apt-get install -y <package_name>
          apt-get install -y build-essential

If you are interested in installing multiple packages at the same time, you would also need to use the double ampersand operator (&&) after each call. Note the latter can be written in one line.

          apt-get install -y build-essential &&
          apt-get install -y ddgr &&
          apt-get install -y git &&
          apt-get install -y lynx &&
          apt-get install -y nano &&
          apt-get install -y nasm &&
          apt-get install -y neofetch &&
          apt-get install -y pip &&
          apt-get install -y python3 &&
          apt-get install -y sqlite3 &&
          apt-get install -y tidy &&
          apt-get install -y whois

Single-Board Computers:

Some vendors offer single-board computer (SBC) units. For example, the Raspberry Pi Foundation released its Raspberry Pi 1 Model A in 02/2012. After several generations with a price tag under $50, several projects have used Raspberry Pi hardware.

Windows Subsystem for Linux (WSL):

Microsoft decided in 2016 to incorporate a subsystem based on Ubuntu in Windows. Part of this decision is the reason why Microsoft bought Github and even developed a copy of apt named winget, which searches for packages similarly to apt or rather apt-get as used by Ubuntu. Personally I prefer to use Chocolatey (choco) since winget does not get as many packages and also returns a list of applications to be upgraded (winget upgrade) when already done by Chocolatey.