Introduction to Linux - Lecture Notes

Jul 10, 2024

Introduction to Linux - Lecture by Beau Carnes

Overview

  • Designed for computer users with limited or no Linux exposure.
  • Explores tools and techniques used by Linux system administrators and end-users.
  • Covers major topics: Linux distribution navigation, system configurations, graphical interfaces, command line operations, and common applications.
  • Developed by the Linux Foundation.

Course Goals

  • Gain good working knowledge of Linux (graphical and command line).
  • Navigate through major Linux distributions.
  • Understand system configurations, graphical interfaces, command line operations, and common applications.

Key Concepts Covered

Linux Distribution Families

  1. Red Hat Family Systems
    • Includes CentOS (Stream), Fedora, Oracle Linux.
    • Fedora as upstream testing platform for RHEL.
    • Yum and DNF RPM based package managers.
  2. SUSE Family Systems
    • Includes openSUSE, SLES (SUSE Linux Enterprise Server).
    • Uses RPM based package manager (Zypper).
  3. Debian Family Systems
    • Includes Ubuntu (LTS), Linux Mint.
    • dpkg based APT package manager.
    • Strong focus on stability, large software repository.

Software Environment Requirements

  • Install at least one Linux distribution.
  • Learn about the available Linux distributions and focus on three major family distributions: Red Hat, SUSE, Debian.

Basic Terms and Concepts

  1. Kernel: Brain of the Linux OS that controls hardware and applications interaction.
  2. Distribution (Distro): A combination of Linux kernel with other software to make up an operating system.
  3. Bootloader: Program that boots the OS (e.g., GRUB, ISOLINUX).
  4. Service: Background process (e.g., httpd, nfsd, ftpd).
  5. File System: Method of storing and organizing files (e.g., ext4, xfs).
  6. X Windows System: Provides protocol for graphical interfaces.
  7. Desktop Environment: GUI on top of the OS (e.g., GNOME, KDE).
  8. Command Line: Interface for typing commands, interpreted by the shell (e.g., Bash).

Installation and Boot Process

  1. Partitioning and File Systems
    • Logical partitions of a disk containing file systems.
  2. Boot Process
    • BIOS initializes hardware.
    • Bootloader passes control to the kernel.
    • Kernel configures hardware and mounts the root file system.
    • Init system (Systemd) starts system services.
  3. Systemd Init System
    • Replaces traditional System V init method.
    • Starts services in parallel, faster booting.

Graphical User Interface (GUI) Sessions

  1. GNOME and KDE
    • Popular desktop environments with GUI tools for configuration.
  2. Managing Sessions
    • Log in, log out, switch users, lock screen, suspend computer.
    • Configuring display settings and resolution.
  3. Installation of Applications and Software Management
    • Using package managers like APT, DNF, Zypper.

Command Line Interface (CLI)

  1. Basic File and Directory Operations
    • Listing, creating, moving, removing files and directories.
  2. User and Process Management
    • Adding/removing users, setting permissions.
    • Monitoring processes using commands like ps, top.
  3. Historical Commands and Task Automation
    • Viewing command history.
    • Automating tasks with cron and at.

Networking Concepts and Tools

  1. IP Addressing and Classes
    • IPv4, IPv6, DNS, DHCP.
  2. Network Configuration and Troubleshooting
    • Using commands like ifconfig, ip, ping, traceroute.

File and Text Manipulation Tools

  1. Viewing File Contents
    • Using cat, less, head, tail.
  2. Editing File Contents
    • Using sed, awk.
  3. Searching and Filtering Text
    • Using grep, regular expressions.
  4. Compression and Archiving
    • Using tar, gzip, bzip2.

Text Editors

  1. Nano and Gedit
    • Simple to use, basic text editors.
  2. Vim (VI) and Emacs
    • Advanced text editors, widely used by experienced users.

Summary

  • Familiarize with Linux file system structure and common directories.
  • Understand file permissions and ownership management.
  • Utilize various command-line tools for text and file manipulation.
  • Effectively use graphical and command-line utilities for software installation, user management, and networking.
  • Developed skills in using both simple and advanced text editors.

Recommendations

  • Ensure you have practical access to a Linux environment to apply hands-on experiences.
  • Continuously refer to man pages and documentation for detailed command usage.
  • Practice basic to advanced command-line operations to build proficiency.