You are on page 1of 4

Linux Workshop - Day 2

XVII. The RedHat Package Manager (RPM)

a. Working with RPMs
i. RPM vs. SRPM
ii. Naming conventions (noarch, i386, i586, i686, alpha)
b. RPM command structure
i. rpm -ivh rpmname.rpm
ii. rpm -Uvh rpmname.rpm
iii. rpm -qpl rpmname.rpm
iv. rpm -qa (can be redirected or piped for easier viewing)

XVIII. Viewing and Managing Logs

a. The /var/log directory
b. Log file rotation
c. Special log files (httpd)

XIX. Viewing and Managing Processes

a. Viewing processes (the "ps" and "pgrep" commands)
b. Killing processes (the "kill" and "pkill" commands)
i. Command switches
ii. Process numbers

XX. Getting help

a. The "man" system
i. Paging through "man" entries
ii. Using "man 'command' | col -b"
iii. Web-based man pages
b. The "info" system

XXI. Regular Expressions (regex)

a. The "grep" command
b. The "sed" command
c. Using Perl to work with regex

XXII. Building RPMS

a. Creating the RPM sandbox
b. Writing "spec" files
c. Organizing and creating the tarball for SOURCES
d. Building the RPM application
f. Testing the RPM application
g. Using *.src.rpm to improve packages

XXIII. Writing shell scripts

a. Similarities between shell scripts and batch files
b. The "she-bang" header (#!/bin/sh, #!/bin/bash, #!/bin/tcsh, etc.)
c. Executing shell scripts
d. Using "history" and "script" to help with writing scripts
e. Documenting shell scripts

XXIV. Perl
a. Using Perl
b. Reading Perl scripts
c. Writing Perl scripts
d. Sample Perl scripts

XXV. Scheduling with cron

a. The cron utility
b. The /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly directories
c. The crontab command
i. Options and switches
ii. Default editor
d. Manipulating cron with a text file

XXVI. Monitoring the system

a. Using "top"
b. Examining disk usage with "du"
c. Examining the overall filesystem with "df"
d. Hard and soft disk quotas
e. Using "netstat"
f. Recovering from a brown-down with "fsck"
g. The "arp" tables
h. The "traceroute" command
i. The "tcpdump" command
j. The "ping" command
k. Reading the /proc filesystem
i. List the /proc filesystem
ii. lspci
iii. free
iv. lsmod
v. apm (laptop only)
l. The "vmstat" command
m. The "nslookup" command
n. The "dig" command

XXV. Using the "bash" shell

a. Shell variables, Environmental variables
b. Simplifying your command line experience
c. Shell configuration files.
d. The "if-then" and "if-then-else" statements
e. Special escape characters

XXVI. System Startup

a. The /etc/rc.d scheme
b. Killing (K) and Starting (S) daemons and processes
c. Run levels
d. Modifications on SME/E-smith

XXVII. Compiling Software

a. The Makefile
b. Running "configure"
c. make, make install, make clean
d. Placement of the resulting programs
e. Writing your own "program"
f. Compiling your code

XXVIII. Internet Utilities and Applications

a. wget
b. lynx
c. ssh
d. ftp
e. scp
f. telnet

XXIX. Apache Web Server

a. The daemon
b. The httpd.conf, src.conf, and srm.conf files
c. The directory structure of "webspace"
d. The importance of permissions and ownership
e. CGI
f. Logs
g. The SME/E-smith way
h. Allowing user web pages
i. The Virtues of Virtual directories
j. .htaccess and .htpasswd
k. Modules

XXX. MySQL - Relational Database Software

a. Associated utilities
i. mysqladmin
ii. mysql_setpermission
iii. mysqldump
b. Basics
c. Remote administration

XXXI. Installing Web-based Applications and Packages

a. Installing from source
b. Automation with scripts
c. Package-based installations
d. Choosing between the cgi-bin and html directories
e. Permissions and Ownership...always a consideration

XXXII. Backups
a. The "dump" command
b. The "cpio" command
c. The "tar" command revisited
d. The SME/E-smith approach to backups

a. The "cal" command
b. The "compress" and "uncompress" commands
c. Command line math with "bc"
d. The "who" and "w" commands
e. The "id" command
f. The "su" command
g. The "file" command
h. The "sort" command
i. The "uniq" command
j. The "cat" command
k. The "head" and "tail" commands
l. The "rename" command

XXXIV. Doing the GUI ~ XWindows

a. Overview
b. Knoppix -- Virtual Linux -- DemoLinux
c. Gnome -- KDE

Other suggestions included: PHP-MySQL, Linux variations, installation tips,

partitioning strategies, hardware replacement, security considerations, etc.

Most of these topics could be the focus of their own workshop or seminar.
There might be some interest in doing a "Let's Compare Linux Desktops" day,
or an "Introduction to PHP" day. Also, possibly a mini-session on "Replacing
Storage Drives in Linux" (something I had to do when one of the SCSI drives
failed on the EdSeek RedHat server).

This preliminary round of workshops will most likely focus on command line
systems administration tasks and tools. Once we get a solid grounding in
these skills, then we can tackle some of the others.