Edocti
Advanced Technical Training for the Software Engineer of Tomorrow
Edocti Training

Linux Internals and system administration

Intermediate
21 h
0.0 (0 reviews)

Scheduled sessions

No sessions are available at the moment.
Linux Internals and system administration

Practical Linux skills for developers: Build a solid understanding of Linux internals, system administration, and troubleshooting in a single hands-on course.

Work directly with process management, systemd, system logs, network configuration, storage, containers, and shell scripting.

Understand the critical differences between userspace and kernelspace, system calls, memory management, and POSIX fundamentals.

Gain practical experience through guided, intensive labs (~70% hands-on) focused on realistic troubleshooting workflows.

How this helps: Develop the confidence to independently inspect, manage, and debug Linux systems in development, DevOps, and embedded environments.

Who it’s for: Software engineers and DevOps practitioners who need both deep Linux internals context and practical administration skills.

By the end, you’ll diagnose common Linux issues, automate routine administrative tasks, and truly understand what happens under the hood.

Skills You Will Learn

Linux Internals & POSIX Process Management & Systemd Network Troubleshooting Shell Scripting Containers (Docker/Podman) Storage & Filesystems Linux Security Basics Performance Tuning

Curriculum

Linux application execution model

  • Userspace vs. kernelspace
  • The system call mechanism
  • Privilege levels, access control and the user/kernel boundary
  • Virtual memory vs. physical memory
  • POSIX fundamentals and the Linux programming model

Containers essentials

  • Containers vs. virtual machines
  • Images, containers, volumes and networking fundamentals
  • Basic Docker and Podman workflows
  • Inspecting logs, processes and common failure modes in containers

Core shell and user-space workflow

  • Terminal productivity, shell conventions and common shortcuts
  • Standard streams, pipes, redirection and text-processing basics
  • Navigating the filesystem and reading key files under /etc, /proc and /var
  • Using man pages and built-in help effectively

Users, permissions and security foundations

  • Users, groups, ownership, mode bits and umask
  • sudo, sudoers and practical permission patterns
  • SSH keys, agent forwarding and secure remote access basics
  • Basic hardening concepts: login hygiene, service exposure and fail2ban
  • Linux security frameworks: SELinux and AppArmor fundamentals

Process management and scheduling

  • Processes, daemons and jobs
  • ps, top, htop, pgrep, kill
  • Scheduling basics and resource control. CFS. Real-time Linux? nice and renice
  • Understanding process states and signals
  • Inspecting live systems and reacting safely

systemd fundamentals

  • The boot process - a short explanation
  • The systemd process, unit types and dependencies
  • Services, targets and timers
  • systemctl workflows: start, stop, restart, enable and status
  • Reading logs for services with journalctl
  • Creating, testing and troubleshooting a simple custom service

Logging and monitoring

  • journald concepts and journalctl usage patterns
  • Reading /var/log and understanding common log locations
  • Log rotation basics with logrotate
  • Inspecting system health with uptime, free, vmstat, iostat and pstop
  • Building a practical troubleshooting workflow from logs and metrics

Networking essentials and troubleshooting

  • The OSI network model
  • Ethernet Switching - what a developer must know about Ethernet switching
  • Routing basics - what every developer must know about IP routing
  • IP configuration and inspection with ip, ss, netstat and iptraf
  • DNS resolution with dig, nslookup and /etc/resolv.conf
  • Connectivity troubleshooting with ping, curl, wget, mtr
  • Reading logs for network troubleshooting
  • Firewall basics: UFW and core iptables / nftables concepts
  • Intro to networking services: SSH config, apache and systemd-networkd
  • Using /proc and sysfs for advanced troubleshooting and network finetuning

Storage and filesystems

  • From block device to filesystem. The inode table - core concepts
  • Inspecting block devices and partitions with lsblk, fdisk and blkid
  • Mounting, unmounting and /etc/fstab basics
  • Filesystem types and when to use them (ext4, xfs and overview of newer options)
  • Disk usage analysis with df and du
  • Reading logs for storage issues and corruption symptoms

Package management and system updates

  • apt, dnf and package lifecycle basics
  • Repositories, signatures, GPG keys and trusted sources
  • Searching, installing, removing and updating packages
  • Update strategies, verification and rollback awareness

Intermediate shell scripting

  • Bash structure, quoting, working with functions
  • Input parsing, positional parameters and argument handling
  • Working with common data structures; from strings and numbers to arrays and JSON parsing.
  • Error handling
  • Writing maintainable automation scripts for admin tasks. Exercises

Scheduled tasks, performance and operational patterns

  • User vs. system crontabs
  • Logging and debugging cron jobs
  • cron vs. systemd timers
  • Intro to Linux performance tuning
  • End-to-end troubleshooting patterns across process, network, storage and logs

Course Day Structure

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30

Did you attend this course?

Your feedback is invaluable to us. Please share your experience with us and help us improve this course for future participants.

Share your feedback

Want to find out more? We are here to help!

Or email us directly at training@edocti.com.