Linux Core Skills

Course category
Training area
Course code
2 days
Price exc VAT
Additional information
(5% off Course EL-503 if taken afterwards)

Linux is now widely established as a good option for many embedded systems as the target operating system. Historically, the majority of traditional cross-development toolsets were hosted on Microsoft Windows. However, as you might expect, a Linux host is the natural environment for developing embedded Linux applications, which leaves many programmers learning the nuances of Linux before being able to use it properly in the embedded space. 

This two day course introduces the key knowledge and skills needed to develop for an embedded Linux target from a Linux host.

It focuses on understanding the Linux environment (e.g. file systems, networking, shell, etc.) with an emphasis on using the shell and the command line interface rather than the graphical interface for a particular Linux desktop environment. The knowledge of the command line is essential when programming with embedded Linux as many embedded systems offer a shell based interface through a SSH (Secure SHell) connection.

The course employs a combination of instructor-led presentations followed by hands-on exercises to cement their new-found knowledge.


A two day course developing the core skills required to be comfortable using Linux as a development environment.

Course objectives:

  • To understand the Linux Operating System model
  • To be able to work at the command line based on the BASH shell
  • To be able to navigate the file system, modify files, change permissions, etc.
  • To be able to configure networking, manage process, and install new packages
  • To be able to use GCC (GNU Compiler Collection) to compile and build native C programs

Delegates will learn:

How to use Linux as a development environment.


  • Good knowledge of C
  • Familiarity with using command line syntax (e.g. Windows cmd)

Who should attend:

Software engineers and programmers who are not familiar with working with the Linux shell and will be programming for embedded Linux in the future.


Two days

Course materials:

Delegate handbook

Course workshop:

For the practical part of the course, delegates will use the shell command line on a Linux PC.

Introduction to Linux

  • Overview
  • Popularity
  • System Construction
  • Design Philosophy
  • Features
  • History and Evolution

The Shell

  • Shell Commands and Syntax
  • Standard Input and Output
  • Pipes
  • Shell Variables
  • Daily Activities
  • Users and Groups
  • Remote Login and SSH/SCP

Linux File System

  • Directory and File Structure
  • Making and Removing Directories
  • Listing Files
  • Locating Files
  • Copying Files
  • Determining Ownership and Protection of a File
  • Changing a File's Mode
  • Changing the Ownership of a File or Directory
  • Special Device Files

File Handling and Tools

  • Text Editing
    • The vi Screen Editor
  • Different interrupt models
  • Function model
    • Name encoding
  • Class model
    • Device “has an” interrupt
    • Memory overhead
  • Filters and Data
    • Examining & Comparing
    • Removing / Searching Files Delimited by Fields
    • Data Extraction
    • Processing Data

UNIX / Linux Process Control

  • Job Control
  • Background Mode Operation
  • Process Status
  • Killing a Process
  • The role of init

Development Environment

  • GCC and Hello World
  • Simple Makefile

What is a Distribution?

  • Package Management
  • Differences and Choices