Linux and Unix Fundamentals (LPI 101/102) - A 5-day course
Synopsis
This course is a practical introduction to Unix and Linux, taught through their most popular incarnation: GNU/Linux.
The course covers the core objectives for Level 1 Linux Professional Institute (LPI) certification (LPI 101 and LPI 102 exams), with a special emphasis on the most practical and useful aspects of the LPI curriculum.
This course focuses on the underlying principles of Unix and Linux in a system-independent way, ensuring that delegates learn the core concepts, which apply throughout Unix and are present in all versions of Linux, no matter who the vendor may be (e.g. UnitedLinux, Red Hat, SuSE, Debian Linux, Mandrake, Sun Solaris and Linux, BSD Unix, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, Tru64 Unix, etc.)
At the end of the course delegates will be well-positioned to become serious users, software developers and administrators of any Linux system and will fully understand the application of Linux in serious commercial and other environments.
Suitable for
- Experienced computer users who are relatively new to Unix or Linux and need to master a Unix/Linux system quickly and effectively. e.g. former MacOS or Microsoft Windows users.
- Linux and Unix users or administrators who want to become Linux certified at LPI Level 1.
- Linux and Unix users who need to consolidate and advance basic knowledge that they have picked up in an ad hoc fashion.
- Linux and Unix users taking their first steps into professional Unix/Linux system administration, Unix/Linux network administration or Unix/Linux programming.
Prerequisites
- Advanced computer literacy
- Basic understanding of TCP/IP networking concepts
- A minimum of three months practical experience using Linux or Unix
- A willingness to learn and use command line applications
- A commitment to further practice and exam preparation if LPI certification is your goal
Delivery
As with all of our Unix/Linux courses, this course makes extensive use of practical exercises and draws heavily on our trainers’ own experience of implementing Unix and Linux based e-commerce solutions.
This is an instructor-led Linux course. It is primarily designed as a publicly scheduled Linux course for individuals. It can, however, be delivered as in-house / onsite Linux training for corporate groups.
Publicly scheduled dates, locations, and prices
London — £1575 (+VAT)
- 11–15 Jun 2012
Contents:
Introduction
- What Linux is, Unix philosophy
- Unix History
- Unix Standards
- Linux distributions
- Other Unix: BSD, Solaris, AIX, OS/X, ...
- Unix/Linux Scalability
- Unix Licensing: proprietary and Open Source
- Logging in, typing commands, logging out
- Files, directories and paths
- Creating files with a text editor
- Viewing files (
cat,less) - Managing files (
cp,mv,rm) - Magic dot files and hidden files
- Absolute & relative paths
- Filename generation: wild cards
- Managing directories (
mkdir,rmdir) - Documentation for commands (
man) - Useful shell features (command-line editing, file name completion, history)
The Unix and Linux command line
- Unix shells (
bash) - Command line syntax (options, arguments)
- Shell variables and environment variables
- Command substitution
- STDIN, STDOUT & STDERR
- Using pipes to connect programs
- Useful text filters (
wc,sort,uniq,expand,head,tail,nl, +tac) - Spitting files across disks (
split) - Finding files
- Using redirection to connect programs to files
- Redirect into files with append (
>>)
Documentation
- The unfortunate diversity of Linux documentation
- Using man(1)
- How man pages are divided among ‘sections’
- Searching for man pages (
whatis,apropos,man -k) - Printing man pages (
man -t) - Documentation for shell builtins (
help) - Using GNU info documentation (
info) - Documentation under
/usr/share/doc
Text editing with Vi
- Unix is all about text
- Vi: the standard Unix editor
- The concept of ‘modes’ in a modal editor
- Vi clones, extensions to vi
- Other powerful Unix text editors
- Practical work learning Vi and Vim
Configuration Files
- Conjuration Files
- Shell Conjuration Files
- Changing Environment Variables
- Changing the Shell Prompt
- Other Useful Variables
- Shell Aliases
- Binding Keys with Readline
Processes and jobs
- What processes are
- The properties of a process
- Parent processes and child processes
- Job control (
fg,bg,jobs) - Suspending processes (Ctrl+Z)
- Running programs in the background (
&) - Long-lived processes (
nohup) - Monitoring processes (
ps,pstree,top) - Killing processes and sending signals a process (
kill,killall,xkill) - Process niceness/priority (
nice,renice)
Searching Text Files Using Regular Expressions
- Using Regular Expressions
- grep Command Line Options
- Pattern Matching basics
- Regular Expression Examples
- Alternation and Grouping
- Extended Regular Expression Syntax
- sed
- Line Selection with sed
Scheduling
- Running commands at particular times (
at,atq,atrm) - Scheduling commands to run repeatedly (
cron) - Different ways of configuring cron (
/etc/crontab, etc) - User crontabs (
crontabcommand) - Output of
cron&atjobs - At Command and Cron Job Permissions
File system concepts and use
- The unified Unix file system
- The Filesystem Hierarchy Standard
- What is a filename ?
- Shareable and Non-Shareable Data
- Static and Dynamic Data
- Special file types
- Devices, fifos, Unix domain sockets
/devand/syson Linux- Conceptual View of a Unix Filesystem layout on disk
- Symbolic links (
ln -s) - Inodes and directory entries
- Hard and Symbolic/soft links
- Preserving links while copying and archiving
- finding programs with
whichandtype
Archiving and Backups
- Compressing Files with gzip
- Other Compression Tools
- Archiving Files with tar
- Listing and extracting the Files in tar Archives
- Backup Media
- Types of Backup and Strategy
- What Not to Backup
- Device Files for Accessing Tapes
- Controlling Tape Drives with mt
- Other Backup Software
Managing User Accounts
- Users and Groups
/etc/passwd&/etc/group- Shadow Passwords and Groups
- Changing user passwords
- Adding new users
- Setting Up Home Directories for New Accounts
- Removing users
- Modifying users
- Locking Accounts
- Managing groups
chsh/etc/nsswitch.conf- PAM — Pluggable Authentication Modules
Filesystem security
- Users and groups
- The ‘root’ user, or superuser
- Configuring
sudo - Changing file ownership (
chown) - Changing file group ownership (
chgrp) - More complex ways of changing ownership (recursively, changing owner and group simultaneously)
- Examining permissions with
ls -landstat - Permissions on files
- Permissions on directories
- Setuserid, setgroupid & sticky permissions
- How permissions are applied
- Changing permissions (
chmod) - The special ‘sticky bit’ mode on directories
- Setgid and setuid permissions, their effect on files and directories
- Default permissions for new files (
umask) - Access Control Lists (ACLs)
Creating Partitions and File systems
- Buffer cache &
synccommand - Disks, partitions, individual file systems and Filesystem types
- Naming of disk and partition devices (
/dev/hda, etc) - Creating and deleting partitions (
fdisk) - Raid and Mirrors
- Logical Volume Management
- Resizing a partition
- Mounting and unmounting file systems (
mount,umount,/etc/fstab) - Mounting a file — loopback
- Disk labels
- Swap space
- Checking available free space and space used by files (
df,du) - Checking and correcting the integrity of file systems (
fsck) - Journaling file systems, ext2, ext3 & ext4
Booting and runlevels
- The boot process: from BIOS to kernel to userspace
- Setting kernel parameters
- Configuring a boot loader: LILO and Grub
- Runlevels and init scripts
- Configuring services to run at boot
- Securing single-user mode (
sulogin) - Determining and changing run level
- Shutting down and rebooting the system
- Starting and stopping individual services
- Service Management Facility (SMF) &
upstart systemd— the newinit
Logging System Events
syslogdaemon/etc/syslog.conf- Examining Logs:
tail&lessandgrep - Linux Kernel Messages
rsyslog— the newsyslog- Log Rotation, sample
/etc/logrotate.conf
Advanced shell usage
- Quoting (single quotes, double quotes, backslashes)
- Combining quoting mechanisms
- Globbing patterns (
*,?,[]) - Generating file names and other text with
{}braces - The
teecommand
Installing software
- Managing software installation (advantages of package management)
- Debian package management:
- Package naming and version numbering
- Searching for packages (
apt-cache) - Using Apt to get and install packages (
apt-get) - Low-level package management (
dpkg)
- Red Hat package management:
- Installing and upgrading RPM packages (
rpmandyum) - Which packages are installed, which package a file came from
- Examining RPM package files
- Verifying integrity of the installation
yumconfiguration
- Installing and upgrading RPM packages (
Making and Installing Programs from Source
- Obtaining Source Packages
- Unpacking Archives
- Running the
configureScript - Using
maketo Build Software and install it - Choosing Where to Install Software
Managing Shared Libraries
- Executables and Libraries
- Library Files and Linking
- Using the
lddCommand - Finding Libraries
- Using
ldconfig - Static Linking
The Linux kernel
- What the kernel is and does
- Kernel modules (
lsmod,modprobe,rmmod) - Module dependencies (
depmod) - Examining modules (
modinfo) - Configuring kernel modules (
/etc/modprobe.conf) - Commands in
modprobe.conf - Recompiling the kernel
- Configuring, compiling and installing the kernel and modules (
make menuconfig,make xconfig, etc) - Loading and unloading kernel modules (
lsmod,modprobe,rmmod) - Creating the initial root disk
The X window system
- What X is
- The rôle of window managers and desktop environments
- Startup and session scripts
- Terminal emulators (
xterm, etc) - Configuring X Under Debian and Red Hat
Shell scripting and configuration
- The point of shell programming
- The ‘she-bang line’ (
#!/bin/sh) - Outputting text with (
echo) - Reading input (
read) - Writing simple shell functions
- Sourcing files
- Command substitution again
- Conditional execution (
||,&&,if,else) case— multi way branch- Looping (
for,while,seq) - Infinite loops (
while true) - Testing for the existence and type of files (
-f,-d, etc) - Sending email from scripts (
mail)
Awk and Perl
- Scripting languages: shells and dynamic
awkvariables, user and predefinedawkpatterns and actionsawkfunctionsperlvariables and constants, user and predefined- Example
perlscripts: who is logged in, database use, networking
TCP/IP networking configuration
- Overview of modern TCP/IP networking, rôles of IP, TCP, UDP and ICMP
- Domain names and IP addresses (
host,dig) - Port numbers (
/etc/services) - Network interfaces (
ifconfig,ifup,ifdown) - Kernel routing tables (
route) - Configuring interfaces under Debian and Red Hat
- Finding and setting the hostname (
hostname,/etc/hostname) - DHCP client hosts
- Network diagnostics (
ping,traceroute,netstat)
Linux network services
- Overview of network services under Linux, operating daemons
- Sending signals to daemons
- The advantages and disadvantages of using
inetdandxinetd, basic configuration of both - Secure Shell:
sshandsshd
Internet Daemons and Services
- Configuring the resolver libraries
/etc/hosts&/etc/resolv.conf- Structure of domain names, registering names (
whois) - Running a DNS server (BIND), setting up a caching-only name server,
/etc/named.conf - Running an MTA (email server)
- Email clients (MUAs)
- Basic configuration of Exim
- Routing mail with MX (mail exchanger) DNS records
- Mail aliases
- Fetching Mail with
fetchmail - Webservers:
apacheconfiguration file - Configuring named virtual hosts
- Dynamic web pages
- Logging in Apache
Networked file systems
- Configuring NFS (
/etc/exports,/etc/fstab) - Viewing Exports (
showmount,portmapper&rpcinfo) - Mounting remote file systems
- Basic Samba configuration (
smb.conf, SWAT)
