Training > System Administration > Introduction to Linux, Open Source Development, and GIT (LFD301)
Image Image INSTRUCTOR-LED COURSE

Introduction to Linux, Open Source Development, and GIT (LFD301)

Jumpstart your Linux development career—the skyrocketing demand for Linux developers has never been stronger. This course will introduce you to the world of Linux development and give you the background and training you need to start working with Linux. If you’ve been thinking about getting into Linux development, this is the best place to start!

NOTE: The price for this instructor-led course will increase from $3,250 to $3,495 on January 1, 2026. Register now to secure any available session at the current rate of $3,250 before the increase.

Image
Who Is It For

This course is for students who are already experienced computer users on another operating system, but have limited or no experience working in a Linux environment. The information in this course will work with any major Linux distribution.
read less read more
Image
What You’ll Learn

In this course you will learn about the history of Linux and what differentiates it from other UNIX-like operating systems, what the main ingredients of a Linux system are and how to use them, the essentials of system administration, such as user accounts and groups, essential commands, filesystems, security, and more, networking and threading models, aspects of compiling and using libraries, working with Java under Linux, and more.
read less read more
Image
What It Prepares You For

The Linux job market is hot, and Linux developers are being offered better paying, more flexible, and more fulfilling jobs than many of their peers. This course will prepare you to join the ranks of professional Linux developers.
read less read more
Course Outline
Expand All
Collapse All
Image Introduction
- Objectives and Audience
- The Linux Foundation
- Copyright and No Confidential Information
- Linux Foundation Training
- Certification Programs and Digital Badging
- Where Does the Software Come From?
- Is it Difficult to Migrate to Linux?
- Migration Considerations
- Migration Aids and Documentation
- Scope and Coverage of System Administration
- Preparing Your System
- Procedures
- Things change in Linux
- Labs
Image Open Source Software
- What is Open Source Software?
- What is Proprietary (Closed Source) Software?
- Pragmatism vs Idealism
- History of Open Source Software
- Open Source Governance Models
- Labs
Image Why Use Open Source Software?
- Collaborative Development
- Security and Quality of Source Code
- Users: Flexibility
- Business: Collaborative Development
- Business: Marketing
- Education: El-Hi, Public Systems
- Education: University
- Developers: Greater Visibility
- Labs
Image Examples of Successful OSS Projects
- Linux Kernel
- git
- Apache
- Python, Perl and Other Computer Languages
- TEX and LATEX
- GNU: gcc, gdb, etc
- X and Desktop Managers
- OpenStack, Kubernetes, and other Projects
- Labs
Image How to Work in OSS Projects
- Overview on How to Contribute Properly
- Know Where the Code is Coming From: DCO and CLA
- Study and Understand the Project DNA
- Figure Out What Itch You Want to Scratch
- Identify Maintainers and Their Work Flows and Methods
- Get Early Input and Work in the Open
- Contribute Incremental Bits, Not Large Code Dumps
- Leave Your Ego at the Door: Don’t Be Thin-Skinned
- Be Patient, Develop Long Term Relationships, Be Helpful
- Labs
Image Continuous Integration
- Why Continuous Integration?
- Continuous Delivery and Continuous Deployment
- Cost and Benefits
- Tools
- Example: Linux Kernel Continuous Integration Project
- The Continuous Delivery Foundation
Image OSS Licensing and Legal Issues
- Restrictive vs Permissive Licensing
- FUD
- Software Patents
- Patents and Licenses
- Choosing a License
- Combining Licenses
- Labs
Image Leadership vs Control and Why Projects Fail
- Leadership vs Control
- Loosen the Chains
- Mentoring
- Building Trust
- Why do many OSS projects fail
- Labs
Image GitHub and Other Hosting Providers
- GitHub
- Public vs Private
- GUI vs command line
- Labs
Image Linux and the Operating System
- Kernel vs Operating System and Tools
- History of Linux
- UNIX and Linux
- Linux Distributions
- Linux Standard Base (LSB)
- Labs
Image Graphical Environments and Interfaces
- Graphical Layers
- X Window System
- Window Managers
- Desktop Managers
- Terminal Window Options
- Labs
Image System Administration
- Installation
- Software Management and Packaging
- Upgrading and Patching
- User Directories, Environments, etc
- Logging Files
- Labs
Image Getting Help
- Sources of Documentation
- man Pages
- info
- –help and help
- Graphical Interfaces
- Labs
Image Text Editors
- Available Text Editors
- vi
- emacs
- Labs
Image Shells, bash, and the Command Line
- Shells
- Shell Initialization
- Aliases
- Environment Variables
- Customizing the Command Line Prompt
- Special Characters
- Redirection
- Pipes
- Command Substitution and Expressions
- Labs
Image Filesystem Layout, Partitions, Paths and Links
- Filesystem Layout
- Partitions
- Partitioning Considerations
- Paths
- Hard and Soft (Symbolic) Links
- Labs
Image System Initialization
- System Boot
- System Initialization
- Labs
Image Memory
- Memory
- Swap
- Threading Models
- Labs
Image Networking
- Networking and Network Interfaces
- Labs
Image Command Details
- Basic Commands and Utilities
- File Transfer Tools
- Monitoring and Performance Utilities
- Graphical Monitoring Tools
- Loading/Unloading Kernel Modules
- Device Management
- Managing System Services
- Labs
Image Users and Groups
- Basics of Users and Groups
- Adding and Removing Users and Groups
- Files, Users and Permissions
- root (super) user, su and sudo
- Labs
Image Linux Filesystems
- Filesystems and the VFS
- ext2, ext3, and ext4 Filesystems
- Journaling Filesystems
- btrfs
- Mounting Filesystems
- RAID
- LVM
- Labs
Image Essential Command Line Tools
- Listing, Creating, Deleting and Renaming Files and Directories
- Finding Files: find and locate
- Finding Strings: grep
- String Substitution: sed
- Labs
Image Bash Scripting
- Script Basics
- Conditionals
- Loops
- Functions
- Labs
Image Files and Filesystems
- Types of Files
- Permissions and Access Rights
- Changing Permissions and Ownership
- Labs
Image Compiling, Linking and Libraries
- gcc
- Other Compilers
- Major gcc Options
- Static Libraries
- Shared Libraries
- Linking To Libraries
- Debugging with gdb
- Labs
Image Java Installation and Environment**
- Write Once and Use Anywhere?
- Installing Java on Linux
- Handling Multiple JREs and JDKs: the alternatives System
- Environment Variables and Class Paths
- Integrated Development Environments
Image Building RPM and Debian Packages
- Why Use Package Management
- Packaging System Benefits
- Linux Distributions and Package Management
- RPM Creation
- The RPM spec File
- Details on RPM spec Sections
- RPM Dependencies
- Debian Package Creation Workflow
- Labs
Image Introduction to GIT
- Revision Control
- Know Where the Code is Coming From: DCO and CLA
- Available Revision Control Systems
- Graphical Interfaces
- Documentation
- Labs
Image Git Installation
- Binary Installation
- Installing from Source
- Labs
Image Git and Revision Control Systems
- Converting Between Different Systems
- RCS and CVS
- Subversion
- git
- git and Distributed Development
- Labs
Image Using Git: an Example
- Basic Commands
- A Simple Example
- Labs
Image Git Concepts and Architecture
- Concepts
- Design Features
- Repositories
- Objects and Index
- Content vs Pathnames
- Committing vs. Publishing
- Upstream and Downstream
- Forking
- Labs
Image Managing Files and the Index
- File Categories
- Basic File Commands
- Labs
Image Commits
- Making a Commitment
- Identifiers and Tags
- Viewing the Commit History
- Reverting and Resetting Commits
- Tidying Repositories
- Who is to Blame?
- Bisecting
- Labs
Image Branches
- What is a branch?
- Branch Names vs Tags
- Branch Creation
- Branch Checkout
- Getting Earlier File Versions
- Labs
Image Diffs
- Differencing Files
- Diffing in Git
- Labs
Image Merges
- What is Merging?
- Merge Commands
- Rebasing
- Labs
Image Managing Local and Remote Repositories
- Working with Others
- Cloning
- Publishing Your Project
- Fetching, Pulling and Pulling
- Labs
Image Using Patches
- Why Use Patches?
- Producing Patches
- Emailing
- Applying Patches
- Labs
Image Advanced Git Interfaces: Gerrit
- Modes of Distributed Development
- Gerrit
- Review Process
- Labs
Image Closing and Evaluation Survey
- Evaluation Survey

Prerequisites
  • This course is for students who are already experienced computer users on another operating system, but have limited or no experience working in a Linux environment.
  • Your e-learning voucher code will be distributed to attendees within 5 business days following the completion of your class.
Reviews
Sep 2025
It was concise and quick.
Jul 2023
This course is very helpful for me, looking forward to advanced courses.