Beginner Concepts

Basic Linux concepts explained in a simple, public-safe way.

This page is for understanding how Linux works before going deeper into commands, networking, Docker, SSH, or troubleshooting.


What is Linux?

Linux is an operating system kernel.

A Linux distribution combines the Linux kernel with tools, package management, services, and default configuration.

Examples of Linux distributions:

Red Hat Enterprise Linux
Fedora
Debian
Ubuntu
Arch Linux
openSUSE

The kernel is the core part of the system. The distribution is the full operating system experience around it.


What is a server?

A server is a computer or virtual machine that provides a service to users or other systems.

Examples of services:

web server
database server
file server
mail server
DNS server
application server
print server

A server can be physical or virtual.


What is a shell?

A shell is a program that lets you type commands.

Common shells:

bash
zsh
fish
sh

On many Linux servers, the default shell is usually bash.

Check your shell:

echo $SHELL

What is the terminal?

The terminal is the window or session where you interact with the shell.

Examples:

local terminal
SSH session
console session
terminal emulator

The terminal is the interface. The shell is the program interpreting commands.


What is root?

root is the administrator account on Linux.

Root can change almost everything on the system.

Check current user:

whoami

If it returns:

root

then you are root.

Be careful when working as root.


What is sudo?

sudo allows a permitted user to run commands with elevated privileges.

Example:

sudo systemctl restart SERVICE_NAME

Use sudo carefully because it can change the system.


What is a package?

A package is installable software managed by the distribution.

Examples:

openssh-server
nginx
httpd
vim
tcpdump

RHEL-based systems commonly use:

dnf
rpm

Example:

dnf info PACKAGE_NAME

What is a service?

A service is a program that runs in the background.

Examples:

sshd
httpd
nginx
cups
crond
firewalld

Check service status:

systemctl status SERVICE_NAME

What is systemd?

systemd manages services and boot processes on many Linux systems.

Common commands:

systemctl status SERVICE_NAME
sudo systemctl start SERVICE_NAME
sudo systemctl stop SERVICE_NAME
sudo systemctl restart SERVICE_NAME
systemctl --failed

What is a process?

A process is a running program.

Show processes:

ps aux

Interactive view:

top

A service usually runs one or more processes.


What is a file path?

A file path is the location of a file or directory.

Examples:

/etc/hosts
/var/log/messages
/home/user
/tmp/file.txt

Linux uses / as the root of the filesystem.


What is a directory?

A directory is a folder.

List files:

ls

List with details:

ls -lah

Change directory:

cd /path/to/directory

Show current directory:

pwd

What is a mount?

A mount connects a filesystem to a directory.

Example mount point:

/data
/mnt/storage
/home

Check mounts:

findmnt

Check disk usage:

df -h

What is a log?

A log is a record of what happened on the system.

Common log tools and locations:

journalctl
/var/log/messages
/var/log/secure
/var/log/cups/

Check recent logs:

journalctl -xe

What is an IP address?

An IP address identifies a system on a network.

Example documentation IPs:

192.0.2.10
198.51.100.10
203.0.113.10

Show IP addresses:

ip a

What is DNS?

DNS translates names into IP addresses.

Example:

example.com โ†’ 93.184.216.34

Check DNS:

dig example.com

or:

nslookup example.com

What is SSH?

SSH is used to log in to another system securely.

Example:

ssh user@example-server

SSH can use passwords or SSH keys.


What is Docker?

Docker runs applications in containers.

A container is a packaged application environment.

Common commands:

docker ps
docker compose up -d
docker compose logs -f
docker compose down

What is a firewall?

A firewall controls allowed and blocked network traffic.

On many RHEL systems, firewalld is used.

Check firewall:

sudo firewall-cmd --state
sudo firewall-cmd --list-all

Basic troubleshooting idea

When something is broken, ask:

1. What changed?
2. What is the error?
3. Is the service running?
4. Is the disk full?
5. Is the server reachable?
6. Are there logs?
7. Is the issue local, network, service, or permission-related?

Useful first commands:

hostnamectl
uptime
df -h
free -h
systemctl --failed
ip a
ip r
journalctl -xe