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)
The Unix and Linux command line
- Unix shells (
bash)
- Command line syntax (options, arguments)
- 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 (
>>)
Regular expression searches
- 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’
Documentation
- 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
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
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)
Filesystem concepts and use
- The unified Unix filesystem
- Special file types
- Symbolic links (
ln -s)
- Inodes and directory entries
- Hard links
- Preserving links while copying and archiving
- Where to put things: the FHS
Filesystem security
- 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)
Filesystem design and maintenance
- 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
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)
- Shutting down and rebooting the system
Managing user accounts and configuration files
- 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
|
Scheduling, logging and backup
- 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
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 (
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)
The Linux kernel
- 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)
The X window system
- What X is
- The rôle of window managers and desktop environments
- Startup and session scripts
- Terminal emulators (
xterm, etc)
Advanced shell usage
- Quoting (single quotes, double quotes, backslashes)
- Combining quoting mechanisms
- Globbing patterns (
*, ?, [])
- Generating filenames and other text with
{} braces
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)
- Looping (
for, while, seq)
- Infinite loops (
while true)
- Testing for the existence and type of files (
-f, -d, etc)
- Sending email from scripts (
mail)
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)
- 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 Inetd and Xinetd, basic
configuration of both
DNS and email services
- 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
Basic configuration of Apache
- Running a webserver (Apache)
- Configuration files for Apache
- Named virtual hosts
- Options available for dynamic pages
- Logging in Apache
Networked filesystems
- Configuring NFS (
/etc/exports, /etc/fstab)
- Basic Samba configuration (
smb.conf, SWAT)
|