DEV Community

Cover image for Getting Started With Linux
Davi Orlandi
Davi Orlandi

Posted on

Getting Started With Linux

This article is intended as a study-oriented, introductory overview of Linux. It intentionally covers very basic concepts and simplifies some topics to help beginners build an initial mental model. It is not meant to be exhaustive or deeply technical, but rather a starting point for further exploration.

Base needed knowledge:

GNU: GNU is a predecessor of Linux and a free open-source unix-like operating system.

Kernel: Kernel is the core system of an operational system, it acts as a bridge through software and hardware, managing system resources (CPU, memory, peripheral devices). Although we use the same Linux to describe the whole operating system, it's only refers to the kernel.


Whats is Linux?

Linux is an open-source operating system kernel originally created by Linus Torvalds. In practice, when people say “Linux,” they are usually referring to a complete operating system made of the Linux kernel combined with tools, libraries, and others softwares from the GNU project.

A linux system is divided in three layers:

Hardware: This includes the physical resources of your machine, such as CPU, memory, peripheral devices, etc.

Linux Kernel: Is the core of the operating system, managing the hardware and facilitates communication between software and hardware.

User Space: This is the environment where the users interacts with the system, using applications and command line interfaces.

What is a Linux distribution?

A distribution is a bundle of the Linux kernel with some specific softwares, tools, system utilities, libraries and applications. Essentially a distro is a complete, ready-to-use operating system built around the Linux Kernel.


Debian:

Debian is an operating system composed entirely of free and open-source software, it's one of the most respected projects in community.

Package Management

Debians uses a powerful package management tool called apt (Advanced Package Tool). The system maintain a massive repository of pre-compiled software packages.


Red Hat Enterprise Linux (RHEL)

RHEL is a commercial linux distribution developed by the Red Hat Team, build to provide long-term stability, security and professional support.

Package Management

RHEL uses RPM (Red Hat Package Manager) format for its software packages, for managing this packages, it provides powerful package managers like YUM (Yellowdog Updater, Modifier) and its sucessor, DNF (Dandified YUM).


Ubuntu

Ubuntu is probably the most famous famous linux distribution, it's and excellent entry point for anyone looking to get started with Linux.

Package Management

As a Debian-based operating system, Ubuntu utilizes the core Debian package management system. This means it uses the apt (Advanced Package Tool) command-line utility to handle software installation, updates, and removal, giving users access to a vast repository of free and open-source software.


Fedora

Fedora is and equivalent to Ubuntu but developed by Red Hat team, built on our foundation instead of Debian.

Package Management

Fedora utilizes the RPM package format and manages software with the DNF (Dandified YUM) package manager. DNF is a powerful and easy-to-use command-line tool for installing, updating, and removing software packages on the system.


The shell

The is a program that accepts you typed commands and passes them to the operating system. If you i've used a GUI (Graphical User Interface), you might have encountered applications like "Terminal" or "Console." the are simply programs that open a shell session for you.

BASH (Bourne Again Shell)

Bash is the default shell for most Linux distros. While other shells like ksh, zsh, and tsch exist, mastering Bash provides a solid foundation for working with any Linux system.

When you open a terminal, you'll see the shell prompt, Its appearance can vary between distros but it typically follows this format: username@hostname:current_directory$.

Yeah, i used a MacOS Terminal screenshot, don't care its not relevant.

Terminal

The $ symbol at the end indicates that the shell is ready to accept commands, you do not type this symbol when entering commands, it is purely informational!

How the hell does this work?
Well, just paste this command echo "I love Linux" and you'll see "I love Linux" as the output into console.


Filesystem basics

Linux uses single root filesystem, meaning everything starts from / (root). There are no drive letters like C: or D:, all storage devices are mounted into the same tree.

Common directories

  • / — root of the filesystem
  • /home — user home directories
  • /etc — system configuration files
  • /var — variable data (logs, cache, spool)
  • /usr — user-installed software and libraries
  • /bin and /sbin — essential system binaries

In Linux, everything is treated as a file, including devices, processes, and sockets.

Paths

A path is the location of a file or directory inside the filesystem. It tells the system where something is in the directory tree.

Absolute paths starts from / like /home/user/projects and relative paths without as like projects/my-app.

Useful navigation commands:

pwd   # show current directory
ls    # list files
cd    # change directory
Enter fullscreen mode Exit fullscreen mode

Permissions & users

Linux is a multi user operating system, built with security in mind from the start, so, every file and directory has an owner, a group, and a set of permissions.

You can permissions in you computer with ls -l:

Terminal

  • Root is the superuser, with full-access, otherwise, normal users have limited permissions. You can run some commands as root user using sudo before any command.

Permissions are a core concept in Linux and one of the main reasons servers are secure by default.


Networking basics

Linux provides powerful built-in tools to inspect, debug, and interact with networks. Networking is a fundamental skill, especially for servers, containers, and cloud environments.

Network concepts

  • IP address: identifies a machine on a network
  • Ports: identify services running on a machine
  • Protocols: rules for communication (HTTP, TCP, UDP)

Common networking commands:

ping "url.com"
Terminal

curl "url.com"
Terminal

wget "url.com/file.zip"
Terminal

ip a
Terminal


Useful links & references


Thanks!

Thanks for reading this article. I hope it helped clarify the core concepts behind Linux and gave you a starter foundation to keep exploring the ecosystem.

See you soon ;)

Top comments (0)