Complete Fedora OS Tutorial with Usage Examples

Table of Contents

1. Introduction to Fedora

Fedora Linux is a free, open-source Linux distribution developed by the Fedora Project and sponsored by Red Hat. It's known for its rapid innovation, integration of cutting-edge open-source technologies, and its role as a testing ground for features that eventually make their way into Red Hat Enterprise Linux (RHEL). Fedora is suitable for developers, system administrators, and users who want the latest Linux advancements.

Why Choose Fedora?

2. Fedora Editions & Spins

Fedora offers different "Editions" and "Spins" tailored for specific use cases and desktop preferences.

A. Fedora Editions:

B. Fedora Spins:

These are official variants of Fedora that include different desktop environments or specialized software sets.

C. Fedora Labs:

Specialized bundles of software for specific purposes, like Design Suite, Games, Scientific, Security Lab, or Python Classroom.

3. Installation Methods

You can install Fedora in several ways:

Basic GUI Installation Steps (Virtual Machine Example - Fedora Workstation):

  1. Boot your VM/computer from the Fedora Workstation ISO.
  2. On the welcome screen, choose "Start Fedora-Workstation-Live 40" (or similar version).
  3. Once the live desktop loads, click "Install to Hard Drive" icon.
  4. Follow the graphical installer (Anaconda):
    • Language and Keyboard Layout: Select your preferences.
    • Time & Date: Set your timezone.
    • Installation Destination: Select your virtual disk and choose "Automatic partitioning" (safest for VMs).
    • Network & Host Name: Configure network (e.g., enable Ethernet), set hostname.
    • Root Password: Set a strong password for the `root` user.
    • User Creation: Create a standard user account. Check "Make this user administrator" to grant `sudo` privileges.
  5. Click **Begin Installation**.
  6. After installation completes, click **Finish Installation** and **Reboot System**. Remove the ISO from the drive if prompted.
  7. Log in with your created user account.

4. Getting Started with GNOME Desktop (Workstation)

Fedora Workstation uses the GNOME desktop environment, providing a modern and user-friendly interface.

# Example: Customizing appearance via GUI
# 1. Click on "Activities" (top-left) or press the Super key.
# 2. Type "Settings" and open the Settings application.
# 3. In the sidebar, click on "Appearance".
# 4. Change "Style" (Light/Dark), "Accent color", "Icon size", etc.
# 5. Observe changes on your desktop.

5. Basic Terminal Commands (CLI)

The command-line interface (CLI) is fundamental for managing Fedora. Open a "Terminal" application (e.g., from the Dash or Activities search).

6. Linux File System Hierarchy (FHS)

Fedora, like other Linux distributions, adheres to the Filesystem Hierarchy Standard (FHS), which defines a standardized directory structure.

7. File Permissions and Ownership

Linux security relies on file permissions and ownership to control access to files and directories.

Permissions (Read, Write, Execute):

Permission Categories:

Permissions are assigned to three categories:

Viewing Permissions (`ls -l`):

ls -l my_script.sh
# Example Output: -rwxr-xr-- 1 yourusername yourusername 1234 Jul 19 10:00 my_script.sh

Breakdown of `-rwxr-xr--`:

Changing Permissions (`chmod`):

Can use symbolic mode (r, w, x, u, g, o, a) or octal (numeric) mode.

Changing Ownership (`chown`, `chgrp`):

Requires `sudo` (superuser privileges).

8. User and Group Management

Fedora provides commands for managing user accounts and groups.

User Accounts:

Common Commands (requires `sudo` for management):

Groups:

Groups are collections of users, simplifying permission management for multiple users.

Configuration Files:

9. Package Management (DNF)

Fedora uses `dnf` (Dandified YUM) as its primary package manager. It's a modern, powerful, and easy-to-use tool for installing, updating, and removing software packages and their dependencies.

RPM Fusion: Fedora only includes free and open-source software in its official repositories. For proprietary codecs, drivers (like Nvidia), or restricted software, you'll need to enable third-party repositories like RPM Fusion.
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf update
# Now you can install multimedia codecs or proprietary drivers.

10. Process Management

Managing running programs and background tasks on your system.

11. Service Management (systemd)

Fedora uses `systemd` as its init system and service manager. It controls system services (daemons) and boot processes.

12. Networking (NetworkManager, Firewalld)

Fedora uses `NetworkManager` for network configuration and `firewalld` for firewall management.

13. Storage Management

Managing disk space, partitions, and file systems on Fedora.

14. Shell Scripting Basics

Automate tasks by writing a series of commands in a file. Fedora typically uses Bash as its default shell.

A. Creating a Script:

# Create a file named 'fedora_status.sh'
nano fedora_status.sh

# Add the following content:
#!/bin/bash
# This script checks basic system status on Fedora

echo "--- Fedora System Status ---"
echo "Hostname: $(hostname)"
echo "Kernel: $(uname -r)"
echo "Uptime: $(uptime -p)"
echo "Disk Free: $(df -h / | awk 'NR==2{print $4} /')" # Free space on root partition
echo "--- End Status ---"

B. Making Executable and Running:

chmod +x fedora_status.sh
./fedora_status.sh

C. Scripting Concepts:

15. Text Editors (GUI & CLI)

Fedora provides both graphical and command-line text editors.

16. Security Best Practices (SELinux, Firewalld)

Fedora emphasizes strong security, with SELinux and Firewalld enabled by default. Proper configuration is crucial.

17. Contributing to Fedora

Fedora is a community project, and contributions are highly encouraged. You can contribute in various ways:

Visit the Fedora Project Contribute page to learn more.

Fedora: The Latest and Greatest!

Fedora is an excellent choice for users who want to experience the cutting edge of Linux. Its commitment to open source, rapid innovation, and strong security features make it a powerful platform for developers, system administrators, and enthusiasts. Embrace its fast-paced development, get comfortable with `dnf` and `systemd`, and always stay updated to get the most out of your Fedora experience.