Course Overview
Linux is exploding, and the 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!
Who should attend
You are already an experienced computer user on another operating system, but you have limited or no experience working in a Linux environment, or in using.
Prerequisites
There are no detailed prerequisites for this course. However, it is assume you are already experienced as a user or developer with another operating system.
Course Objectives
Introduction to Linux for Developers is designed to bring experienced users and developers up to speed quickly to working in a Linux environment.
You will learn what the main ingredients are in a Linux system and how to use them, including topics such as:
- The history of Linux and what differentiates it from other UNIX-like operating systems
- The role of the various Linux Distributions
- How graphical desktops work in Linux and how to efficiently use them.
- The essentials of system administration, such as user accounts and groups, essential commands
- How tow work at the command line and write bash scripts.
- How to compile programs
- How to work with files and directories and modify and manipulate their contents
- Disk partitioning and filesystems
- How to work with filesystems, including formatting, checking, and controlling access rights
- How to install, upgrade, and patch Linux systems to keep them stable and secure
- Networking and threading models
- Aspects of compiling and using libraries
- Working with Java under Linux
- How to construct software \textbf{packages} suitable for installation of all major \textbf{Linux} distributions.
This course will also introduce Git, the distributed development version control system that originated with the Linux kernel development community and is now used on an ever increasing number of projects. Students will rapidly come up to speed on Git concepts, basic commands, and how it is used in everyday work.
Upon mastering the material you will have a basic understanding of:
- How Git compares with other revision control systems and what concepts need to be grasped when using Git.
- Methods of creating new repositories or cloning already existing ones.
- How to commit new changes, review revision histories, and examine differences with older versions.
- How to work with different branches, merge repositories and work with a distributed development team.
Course Content
- Introduction
- Open Source Software
- Why Use Open Source Software?
- OSS Licensing and Legal Issues
- Linux and the Operating System
- Graphical Environments and Interfaces
- Getting Help
- Text Editors
- Shells, bash, and the Command Line
- System Components
- System Administration
- Essential Command Line Tools
- Command and Tool Details
- Users and Groups
- Bash Scripting
- Files and Filesystems
- Filesystem Layout
- Linux Filesystems
- Compiling, Linking and Libraries
- Java Installation and Environment**
- Building RPM and Debian Packages
- Introduction to GIT
- Git Installation
- Git and Revision Control Systems
- Using Git: an Example
- Git Concepts and Architecture
- Managing Files and the Index
- Commits
- Branches
- Diffs
- Merges
- Managing Local and Remote Repositories
- Using Patches
** These sections may be considered in part or in whole as optional. They contain either background reference material, specialized topics, or advanced subjects. The instructor may choose to cover or not cover them depending on classroom experience and time constraints