Showing posts with label Debian. Show all posts
Showing posts with label Debian. Show all posts

Tuesday, April 13, 2021

How to get started with the Linux terminal

The terminal may seem scary for new Linux users. However, it's one of the tools that has the biggest potential on your Linux journey. Learn why
The Linux terminal on Ubuntu

On a previous post we discussed the benefits of using the Linux terminal. Today, let's review how to get started with Bash, the most common shell in GNU/Linux operating systems.

The history of Bash

But before we get hands-on, let's learn more a little about Bash. Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell (which is located in your system under /usr/bin/sh and is still widely used, especially in containers).

First released in 1989, it has been used as the default login shell for most Linux distributions including the most popular distributions such as UbuntuFedora, Arch, Debian and even on the Raspberry Pi.

But bash is way beyond a simple place to enter commands. It's a powerful command processor where commands can be entered. Bash can also read and execute commands from a file, called a shell script. Like other shells, it supports filename globbing (wildcard matching), piping, command substitution, variables, and control structures for condition-testing and loops.

To finish our introduction, the name Bash is an acronym for Bourne Again Shell, a pun on the name of the Bourne shell that it replaces (and extends).

Why learn Bash

Due to its popularity, power and ubiquity, we strongly recommend that you learn it if you want to be comfortable in Linux and computers in general. Many skills you'll learn in your bash/OSS-journey will definitely carry over to Macs, Windows and well into your professional life.

Bash on Windows

Today, Bash can also be found on Windows via the Windows Subsystem for Linux (WSL for short). We will review how to get started on WSL real soon. Keep tuned!

Starting the Terminal

To start the terminal on Ubuntu (or any GNOME-based distro), simply type terminal on the Activities tab. KDE and Xfce users should also have equivalent terminal apps in their systems.

On Ubuntu, type terminal to open your first terminal

Clicking on the terminal icon should open a new terminal for you:

Your bash terminal on Linux

You can confirm that it's running bash by running the following command:

echo $SHELL
/bin/bash

Entering Commands

Entering commands in your terminal is straightforward, just type them. For example, here are some basic ones:

  • pwd - lists the current directory
  • ls - lists the files in the current directory
  • cd - change the current folder
  • cat - prints the contents of a file
  • cp - copies a file
  • mv - moves a file
  • rm - removes a file
  • mkdir - creates a new directory
Some simple commands on the terminal
The above list may seem a lot for a new user. Don't stress, with time you'll learn these tools and soon they'll be part of your muscle memory

Manual Page

Linux also has an interesting utility called man that is used for reading the manuals (documentation) of the programs, tools and libraries available on your system. To view Bash's manual, type:

man bash

To go the extra mile, we also recommend checking this related manual page:

man bash-builtins

Follow up video

To finish, we would like to point you to an online resource that will teach you Bash better than we could. Feel free to watch it at your own pace to get familiar with it. For the record, we have absolutely no affiliation we the video below, we just want you to learn Bash and Linux 😊

Conclusion

On this article we learned a little more about the Linux terminal and Bash. Bash is a fantastic tool that any Linux user should learn. We hope it helps!

See Also

Monday, November 2, 2020

What is Enterprise Linux?

You probably heard the term "Enterprise Linux" before. But do you understand what it means?
Photo by Danielle Barnes on Unsplash

On a previous post we discussed what's a Linux distribution. Today we'll discuss what they are, what they offer and how they differentiate from the traditional community-based desktop distros you use at home or work for free.

With the news that Red Hat is shutting down the CentOS project, we definitely cannot recommend CentOS for your server anymore. 😌 However, it still has its value if you're developing for RHEL.

What is Enterprise Linux?

Enterprise Linux is the term commonly used to refer to a Linux distribution available through a paid subscription service customized for use in commercial organizations. It's frequently used in servers but enterprise software for the desktop is also available. It's available in different architectures.

The first company to popularize the term by specifically targeting a Linux distributions to large enterprise vendors was Red Hat with the first to offer enterprise Linux software with Red Hat Enterprise Linux (RHEL) in early 2000's. Quickly following that, SUSE Linux Enterprise Server, followed by Oracle Linux with Ubuntu following more recently.

On the community side, traditionally the venerable Debian Linux has been the go-to choice for the server disputing with CentOS the top spot in recent years.

Why use enterprise Linux software?

The reasons to by enterprise Linux software are:

  • Solid, bulletproof software - LTS Linux kernel and LTS open-source software 
  • Long term support - up to 10 years support 
  • Super high SLAs - for example, RHEL claims up to 99.999% uptime
  • Enforced Security - Frequent and quick security updates to mitigate CVEs and security vulnerabilities
  • Extended Support - Dedicated support to help troubleshooting production issues
  • Access to certified software, hardware and cloud
  • Access to multiple partnerships, trainings and certifications
  • Access to custom/proprietary technologies - including predictive IT analytics service that identifies potential issues before they become problems

Most popular enterprise distributions

The last category is the commercial/enterprise Linux distributions. Those are distributions that require a financial commitment from the user or organization that plans to use them. The most popular today are:

With the news that Red Hat is shutting down the CentOS project, I definitely cannot recommend CentOS for your server anymore. 😌 However, it still has its value if you're developing for RHEL.

Architectures supported

Enterprise software needs to be available for most architectures, including supercomputers. For example, RHEL is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. All of Red Hat's official support and training, together with the Red Hat Certification Program, focuses on the Red Hat Enterprise Linux platform.  

Enterprise-Grade security

Since how critical Linux is for the functioning of the internet today, there are lots of eyes on its security model, especially on Enterprise-grade software. Government agencies like the NSA and others collaborate to build enterprise security tools like SELinux and AppArmor. But Linux's enterprise-grade security goes beyond that. In fact, there are multiple reasons that make if more more secure then other operating systems, including frequent updates, native disk-encryption, encrypted virtual machines, integrity sub-systems that can be used to detect if a file has been altered and encrypted data at rest.

FAQ

How much does it cost?

Since prices are always fluctuating, we'd ask you to consult the vendors linked above for more information.

Is there such a thing as enterprise desktop?

Yes! There are commercially supported Linux software for the desktop as well. The most popular being offered by Red Hat, Canonical and SUSE.

Are enterprise distributions always paid?

The short answer is no. Most vendors offer a development subscription allowing the developers to develop software on the same system they'll run their services. For example, Red Hat offers a Red Hat Enterprise Linux subscription, available as part of the Red Hat Developer Program. This license is offered as a self-supported, non-production developer subscription offering a more stable development platform for building enterprise-grade applications and enables a clear pathway to supported, mission-critical deployments across cloud, physical, virtual and container-centric infrastructures.

Free enterprise Linux distributions

Looking for the best of enterprise Linux for as little as possible for your organization? Indeed there are community based enterprise Linux distributions. The common alternatives to paid enterprise software that we recommend are:

Conclusion

On this post we discussed what the term enterprise Linux means and reviewed some frequently asked questions about it. Hope it helps!

With the news that Red Hat is shutting down the CentOS project, we definitely cannot recommend CentOS for your server anymore. 😌 However, it still has its value if you're developing for RHEL.

See Also

Monday, October 26, 2020

What is a Linux Distribution (aka. Distro)?

New Linux users often encounter the expression "Distribution" (or distro). Learn what that means.
Photo by Derek Oyen on Unsplash

When getting started with Linux you'll often hear the term distribution (aka distro). But what does it means and how a Linux distro is made? First off, let's review how Wikipedia defines it:

A Linux distribution is an operating system made from a software collection that is based upon the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

What's included in a Linux distribution

A Linux distribution (or distro) is composed of thousands of software packages which are usually built by the community or by the company maintaining that distribution, packaged and assembled in a live-CD (or iso) so it can be deployed somewhere (usually VMs or bare-metals).
 
Today, most distros (desktop or server) are composed of:
  • an installer: the tool you'll use to install the distro.
  • a boot loader: the tool that will initialize your system via its kernel.
  • the Linux kernel: the kernel is software that's responsible for interacting with and managing your hardware resources.
  • kernel modules: also known as drivers.  for common hardware: 
  • an init system: also known as PID 1, it's the first (and only) program executed by the kernel when loading your system. Today, systemd is the most widely used init system.
  • a daemon service: a service to manage background processes. systemd can also be used to be managed daemons (services).
  • a package management system: tooling to manage software (add/remove/search/etc). The most common package managers are Apt (Ubuntu/Debian/Mint), Yum/DNF (Fedora, CentOS, RHEL, SUSE) and pacman (Arch/Manjaro) are the most popular
  • general tools: general tools to interact with your system (ex. ls to list files, mkdir to create directories, ps to list the running processes, etc)
  • libraries: libraries (software extensions) that can be used and shared by multiple programs
  • documentation: software in Linux usually comes with its own documentation that can be consulted without access to the internet.
  • development tools (optional): depending on the vendor, development tools can be pre-installed with the system.
  • a graphical user interface (optional): if you're running a desktop install, most likely your system will be running GNOME or KDE. Servers frequently run GUI-less to reduce their attack surface.

Sustainability Model

It obviously requires money, time a lots of resources to built everything and to guarantee that everything will work on the users and companies' machines. So how do the distributions sustain themselves?

There are essentially three sustainability models for distributions today.

Community-based distributions

Community-based distributions are entities that survive off of donations and often require help from volunteers. The most popular ones these days are:

Commercially-sponsored distributions

Commercially-sponsored distributions are those distributions that receive grants from commercial companies to support the development and maintenance of those systems. Note that there's nothing wrong with this category since most of the distributions tend to run completely independently from their commercial institution. The most popular distributions today are:

Commercial/Enterprise distributions

The last category is the commercial/enterprise Linux distributions. Those are distributions that require a financial commitment from the user or organization that plans to use them. The advantage is bulletproof software and usually a dedicated support to help troubleshooting production issues. The most popular today are:

    Conclusion

    On this post we reviewed what's usually called a Linux distribution, also know as a distro. We also reviewed which components are included in a distribution and the most popular options on the market today. Is your favorite distribution on that list? Let us know!

    See Also

    Monday, October 12, 2020

    Why is Linux free?

    Linux is secure, fast, reliable and.. free? If that seems too good to be true you need to know more about Linux.
    Photo by Fabian Blank on Unsplash

    On previous posts, we discussed why use Linux and one of our most compelling arguments to use Linux is that Linux is free. But since Linux is so secure, fast, reliable, how can it be free? Let's understand what that means and how it happens.

    A little history

    Avoiding jumping too much back in history, it's important to understand the contribution model in which Linux was built. Once upon a time, there was a developer named Linus Torvalds who wanted to build a kernel to run a free Unix clone at home. He named the project Linux (Linux + Unix) and sent a message to the world looking for volunteers.

    That project attracted so much attention that soon, hundreds of other developers joined that cause forming a big network of contributors. Linux, the kernel was the missing piece to produce a completely free operating system as most of the tools were already built on the GNU operating system.

    The first distributions

    With all the pieces to build a free and open-source operating system available, developers started creating the first Linux distributions. Some of them you may have heard of: Debian, Red Hat and Slackware, the most popular ones.

    What about now?

    The fact that Linux runs everywhere and that thousands of successful products are built on top of it, is the biggest motivator to use it. It's estimated that today the Linux kernel be worth $5 billion dollars. Given its licensing model, companies building new products today (for example, Tesla, Google or even Microsoft) can leverage Linux and more quickly reach the market saving them literally millions of dollars.

    Today, Linux's development is supervised by Linus and sponsored by the Linux Foundation which employs Linus, Greg Kroah-Hartman (and others) to coordinate and foster the development of Linux around the world.

    But this model does not only apply to Linux itself. The GNU project and thousands of other larger and smaller projects are being developed every single day by anonymous contributors worldwide following the same methodology.

    But why is Linux is free?

    Because the Linux kernel, the GNU operating system and all other tools needed to create a free operating system are available as open-source software respecting the premises of the free-software movement fostered by the GNU foundation, it's guaranteed that, as long as there are volunteers to build the distributions, you'll have a free/open-source operating system to run wherever you want.

    And this is exactly what happens.

    Linux Distributions

    Today we have two different lines of Linux distributions being built and available for free: community-based distributions and enterprise-sponsored distributions. Let's review them.

    Community-based distributions

    Community-based distributions are Linux systems built by volunteers and living of donations. The most popular these days are:

    Commercially-sponsored distributions

    For brevity, let's define as commercially-sponsored, those distributions that receive grants from commercial companies to support the development and maintenance of those systems. Note that there's nothing wrong with this category since most of the distributions run completely independently from their commercial institution. The most popular are:

    But one could charge for it, couldn't they?

    The short answer is a definitely yes! And indeed some companies charge for it one way or another. And how do they make money? Well, read the next section to understand.

    How companies make money with Linux

    Differently from this blog, Linux is not all about charity. There's lots of money being made on it today. Essentially, companies can use Linux in virtually any line of business. Just to illustrate some:

    • support
    • training
    • certification
    • licenses
    • building products around it
    • cloud services
    • storage solutions
    • networking solutions
    • ads
    • social networks
    • cars
    • TVs
    • Watches
    • and more, much more! 😊

    Conclusion

    On this post we reviewed briefly how Linux was created and how it's license model guarantees that it will remain free for future generations. We also touched briefly on how companies leverage Linux to get faster to the market and to make money. Regardless of who builds your favorite distro, all of us benefit from this massive chain of anonymous contributions.

    Hope it helps!

    See Also

    Featured Article

    Free Software, Open-Source, Libre, FOSS and FLOSS: what are the differences?

    Are these just different names for the same thing? Or there are differences? Photo by Romain Vignes on Unsplash We have been discussing...

    Popular this Week