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 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, CentOS, Ubuntu, Mint (currently my distribution of choice), Mandriva, Debian, Slackware and many others. When Linux became popular (c. 1995-99), you could buy disks for any distribution from the developers or third-party vendors. Nowadays you would most likely download the distribution of your choice as an .ISO and burn it to USB drive.

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

Installing Linux:

Before trying to install Linux, get a full inventory of what your computer has. In the past, you might have had to help the installer recognize the hardware. Nowadays the installer 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.

Depending on the distribution (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 Linux Cinnamon (what I currently use) , you might want to run the following on the console as root (sudo -i).

          
          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 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        # to get system information
          apt-get install pip             # package installer for Python
          apt-get install python3         # language we must to learn
          apt-get install sqlite3         # relational database
          apt-get install tidy            # utility to clean HTML code
        

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.

          
          apt-get install -y build-essential &&
          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        
        

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.