This 5-day course focuses on the fundamental tools and concepts of Linux and UNIX. Students gain proficiency using the command line. Beginners develop a solid foundation in UNIX, while advanced users discover patterns and fill in gaps in their knowledge. The course material is designed to provide extensive hands-on experience. Topics include: basic file manipulation; basic and advanced file system features; I/O redirection and pipes; text manipulation and regular expressions; managing jobs and processes; vi, the standard UNIX editor; automating tasks with shell scripts; managing software; secure remote administration; and more.
Objectives
Identify multi-user concepts
Perform archiving and compression
Create shell scripts
Identify the Linux File System
Perform text processing
Identify command shells
Detailed Outline
- What is Linux?
- UNIX Origins and Design Principles
- UNIX Timeline
- FSF and GNU
- GPL – General Public License
- The Linux Kernel and Versioning
- Components of a Distribution
- Slackware
- SUSE Linux Products
- Debian
- Ubuntu
- Red Hat Linux Products
- Oracle Linux
- Mandriva
- Login and Exploration
- Logging In
- Running Programs
- Interacting with Command Line
- The X Window System
- Starting X
- Gathering Login Session Info
- Gathering System Info
- got root?
- Switching User Contexts
- sudo
- Help from Commands and Documentation
- Getting Help with man & info
- The Linux FileSystem
- Filesystem Support
- Unix/Linux Filesystem Features
- Filesystem Hierarchy Standard
- Navigating the Filesystem
- Displaying Directory Contents
- Filesystem Structures
- Determining Disk Usage With df and du
- Determining Disk Usage with baobab
- Disk Usage with Quotas
- File Ownership
- Default Group Ownership
- File and Directory Permissions
- File Creation Permissions with umask
- Changing File Permissions
- SUID and SGID on files
- SGID and Sticky Bit on Directories
- User Private Group Scheme
- Manipulating Files
- Directory Manipulation
- File Manipulation
- Deleting and Creating Files
- Physical UNIX File Structure
- Filesystem Links
- File Extensions and Content
- Displaying Files
- Previewing Files
- Displaying Binary Files
- Searching the Filesystem
- Alternate Search Method
- Producing File Statistics
- Shell Basics
- Role of Command Shell
- Communication Channels
- File Redirection
- Piping Commands Together
- Filename Matching
- File Globbing and Wildcard Patterns
- Brace Expansion
- Shell and Environment Variables
- Key Environment Variables
- General Quoting Rules
- Nesting Commands
- Multiple and Multi-line Commands
- Archiving and Compression
- Archives with tar
- Archives with cpio
- The gzip Compression Utility
- The bzip2 Compression Utility
- The XZ Compression Utility
- The PKZIP Archiving/Compression format
- Text Processing
- Searching Inside Files
- The Streaming Editor
- Text Processing with awk
- Replacing Text Characters
- Text Sorting
- Duplicate Removal Utility
- Extracting Columns of Text
- Combining Files and Merging Text
- Comparing File Changes
- Regular Expressions
- Regular Expression Overview
- Regular Expressions
- RE Character Classes
- RE Quantifiers
- RE Parenthesis
- Text Editing
- Text Editing
- Pico/GNU Nano
- Pico/Nano Interface
- Pico/Nano Shortcuts
- vi and Vim
- Learning vi
- Basic vi
- Intermediate vi
- Command Shells
- Shells
- Identifying the Shell
- Changing the Shell
- Bourne sh: Configuration Files
- Script Execution
- Bourne sh: Prompts
- bash: Bourne-Again Shell
- bash: Configuration Files
- bash: Command Line History
- bash: Command Editing
- bash: Command Completion
- bash: “shortcuts”
- bash: prompt
- Setting Resource Limits via ulimit
- Introduction to Shell Scripting
- Shell Script Strengths and Weaknesses
- Example Shell Script
- Positional Parameters
- Input & Output
- Doing Math
- Comparisons with test
- Exit Status
- Conditional Statements
- Flow Control: case
- The for Loop
- The while and until Loops
- Process Management and Job Control
- What is a Process?
- Using screen
- Advanced Screen
- Process Administration
- Automating Tasks
- at/batch
- cron
- The crontab Command
- Crontab Format
- /etc/cron.*/Directories
- Anacron
- Managing Processes
- Tuning Process Scheduling
- Managing Software
- Downloading with FTP
- FTP
- lftp
- Command Line Internet – Non-interactive
- Command Line Internet – Interactive
- Managing Software Dependencies
- Using the YUM command
- YUM package groups
- Configuring YUM
- Popular Yum Repositories
- Using the Zypper command
- Zypper Services and Catalogs
- The dselect & APT Frontends to dpkg
- Aptitude
- Configuring APT
- Messaging
- System Messaging Commands
- Controlling System Messaging
- Internet Relay Chat
- Instant Messenger Clients
- Electronic Mail
- Sending Email with sendmail
- Sending and Receiving Email with mailx
- Sending and Receiving Email with mutt
- Sending Email with Pine
- Evolution
- Printing
- Linux Printer Sub-systems
- Legacy Print Systems
- Common UNIX Printing System
- Defining a Printer
- Standard Print Commands
- Format Conversion Utilities
- Ghostscript
- enscript and mpage
- The Secure Shell (SSH)
- Secure Shell
- ssh and sshd Configuration
- Accessing Remote Shells
- Transferring Files
- Alternative sftp Clients
- SSH Key Management
- ssh-agent
- Mounting FileSystems & Managing Removable Media
- Filesystems Concept Review
- Mounting Filesystems
- NFS
- SMB
- Filesystem Table (/etc/fstab)
- AutoFS
- Removable Media
- Appendix A – The X Window System
- The X Window System
- X Modularity
- X.Org Drivers
- Configuring X Manually
- Automatic X Configuration
- Automatic X Configuration – SLES
- Xorg and Fonts
- Installing Fonts for Modern Applications
- Installing Fonts for Legacy Applications
- The X11 Protocol and Display Names
- Display Managers and Graphical Login
- Starting X Apps Automatically
- X Access Control
- Remote X Access (historical/insecure approach)
- Remote X Access (modern/secure approach)
- XDMCP
- Remote Graphical Access With VNC and RDP
- Specialized X Servers
- Appendix B – EMACS
- Emacs
- The Emacs Interface
- Basic Emacs
- More Emacs Commands