X

Linux and Unix Fundamentals (LPI 101/102) – A 5-day course

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.

  • 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.
  • 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

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.

  • INTRODUCTION
  • What Linux is, Unix philosophy
  • 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
  • Managing directories (mkdir, rmdir)
  • Documentation for commands (man)
  • Useful shell features (command-line editing,
    command line completion, history)
  • Running commands at particular times (at, atq, atrm)
  • Scheduling commands to run repeatedly (cron)
  • Different ways of configuring cron (/etc/crontab, etc)
  • User crontabs (crontab command)
  • Configuring logging (syslog, /etc/syslog.conf)
  • Examining logs (less, grep, tail -f)
  • Log rotation (logrotate)
  • Backup strategy and media
  • Using tar to make, examine and extract archives
  • Accessing tape drives, using tar with tapes
  • Unix shells (bash)
  • Command line syntax (options, arguments)
  • Different ways of configuring cron (/etc/crontab, etc)
  • Shell variables and environment variables
  • Command substitution
  • Using pipes to connect programs
  • Useful text filters (wc, sort, uniq, expand, head, tail, nl, tac)
  • Spitting files across disks (split)
  • Using redirection to connect programs to files
  • Redirect into files with append (>>)
  • Searching files with regular expressions (grep)
  • The concept of pattern matching with regular expressions
  • Anchor the pattern to the start of end of the line (^, $)
  • Match repeated patterns (*, \+, ?)
  • Escaping special characters in regexps (\)
  • Matching any character (.)
  • Matching alternative patterns (\|)
  • Simple use of sed to search and replace
  • The unfortunate diversity of Linux documentation
  • Using man(1)
  • How manpages are divided among sections
  • Searching for man pages (apropos, man -k)
  • Printing man pages (man -t)
  • Documentation for shell builtins (help)
  • Using GNU info documentation (info)
  • Documentation under /usr/share/doc
  • 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
  • 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)
  • The unified Unix filesystem
  • Special file types
  • Symbolic links (ln -s)
  • Inodes and directory entries
  • Hard linksv
  • Preserving links while copying and archiving
  • Where to put things: the FHS
  • Users and groups
  • The root user, or superuser
  • Changing file ownership (chown)
  • Changing file group ownership (chgrp)
  • More complex ways of changing ownership (recursively, changing owner and group simultaneously)
  • Permissions on files
  • Permissions on directories
  • 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)
  • Disks, partitions, individual filesystems and filesystem types
  • Naming of disk and partition devices (/dev/hda, etc)
  • Creating and deleting partitions (fdisk)
  • Mounting and unmounting filesystems (mount, umount)
  • Checking available free space and space used by files (df, du)
  • Checking and correcting the integrity of filesystems (fsck)
  • Journaling filesystems, converting from ext2 to ext3
  • 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)
  • Shutting down and rebooting the system
  • Configuration files
  • Environment variables for configuration (PATH, PS1, DISPLAY, http_proxy)
  • Setting and examining shell aliases
  • Configuring the readline library (inputrc files)
  • User database files (/etc/passwd, /etc/group, etc)
  • Changing passwords (passwd)
  • Adding users (useradd, adduser)
  • Deleting and modifying user accounts (userdel, usermod)
  • Locking and unlocking user accounts
  • 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 (rpm)
    • Which packages are installed, which package a file came from
    • Examining RPM package files
    • Verifying integrity of the installation
  • Compiling and installing software from source code (./configure, make, etc)
  • Managing shared libraries (ldd, ldconfig)
  • What the kernel is and does
  • Kernel modules (lsmod, modprobe, rmmod)
  • Module dependencies (depmod)
  • Examining modules (modinfo)
  • Configuring kernel modules (/etc/modules.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)
  • What X is
  • The role of window managers and desktop environments
  • Startup and session scripts
  • Terminal emulators (xterm, etc)
  • Quoting (single quotes, double quotes, backslashes)
  • Combining quoting mechanisms
  • Globbing patterns (*, ?, [])
  • Generating filenames and other text with {} braces
  • 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)
  • Looping (for, while, seq)
  • Infinite loops (while true)
  • Testing for the existence and type of files (-f, -d, etc)
  • Sending email from scripts (mail)
  • Overview of modern TCP/IP networking, roles 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)
  • Finding and setting the hostname (hostname, /etc/hostname)
  • DHCP client hosts
  • Network diagnostics (ping, traceroute, netstat)
  • Overview of network services under Linux, operating daemons
  • Sending signals to daemons
  • The advantages and disadvantages of using Inetd and Xinetd, basic configuration of both
  • Configuring the resolver libraries
  • Structure of domain names, registering names (whois)
  • Running a DNS server (BIND), setting up a caching-only name server
  • Running an MTA (email server)
  • Email clients (MUAs)
  • Basic configuration of Exim
  • Routing mail with MX (mail exchanger) DNS records
  • Running a webserver (Apache)
  • Configuration files for Apache
  • Named virtual hosts
  • Options available for dynamic pages
  • Logging in Apache
  • Configuring NFS (/etc/exports, /etc/fstab)
  • Basic Samba configuration (smb.conf, SWAT)