UNIX Fundamentals
Duration
5 Days
Introduction
Elements of this syllabus are subject to change.
This course is a challenging course that focuses on the fundamental tools and concepts of Linux and Unix. The course's focus on proficient use of the command line benefits all skill levels. 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.
Audience
This course is designed for system/application end-users who have little or no experience with the UNIX operating system. This course provides a functional familiarity with basic system tools and commands to those individuals with other operating systems experience.
At Course Completion
Upon successful completion of this course, students will be able to:
- Understand the history and development of UNIX
- Understand the details of the UNIX file system
- Understand how security is implemented in UNIX
- Understand the UNIX operating system and its features
- Understand how the Korn shell works
- Use the VI editor
- Understand how to use different UNIX utilities
- Use scheduling commands to execute other UNIX commands at a future time
- Understand the various UNIX commands that allow for session management
- Understand how UNIX provides networking services such as FTP, Telnet
- Understand how to communicate with other users
- Use printer commands
Topics
- Basic file manipulation
- basic and advanced filesystem 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.
Course Outline
- What is Linux?
- UNIX Origins and Design Principles
- Unix Timeline
- FSF and GNU
- GPL - General Public License
- The Linux Kernel
- Linux Timeline
- Linux Features
- Popular Uses of Linux
- What is a Distribution?
- Components of a Distribution
- Specialized Distributions
- Standardization
- Red Hat Linux Products
- Mandriva
- Slackware
- SUSE Linux Products
- Multi-user Concepts
- Multi-user Concepts
- got root?
- Logging In
- Switching User Contexts
- Gathering Login Session Info
- Gathering System Info
- Help from Commands and Documentation
- Getting Help with man & info
- $MANPATH, whatis and apropos
Lab Tasks
- Login and Discovery
- Help with Commands
- Switching Users With su
- The X Window System
- The X Window System
- Starting X
- Display Manager Concepts
- Customizing X Sessions
- Window Manager Concepts
- Desktop Environments
- KDE
- KDE Control Center
- KDE Panel
- KDE Applications
- GNOME
- GNOME Preferences
- GNOME Panel
- GNOME Applications
Lab Tasks
- Customize X Components
- The Linux Filesystem
- Filesystem Support
- Unix/Linux Filesystem Features
- Filesystem Hierarchy Standard
- Navigating the Filesystem
- Displaying Directory Contents
- Two Types of Disk Space
- 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
Lab Tasks
- Files and Directories
- Disk and Filesystem Usage
- File and Directory Ownership and Permissions
- 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
Lab Tasks
- File and Directory Manipulation Commands
- File Examination & Search Commands
- 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
Lab Tasks
- Connecting Commands
- Wildcard File Matching
- Shell Variables
- Shell Meta-Characters
- Command Substitution
- 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
Lab Tasks
- Archiving and Compression
- 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
Lab Tasks
- Text Processing
- Regular Expressions
- Regular Expression Overview
- Regular Expressions
- RE Character Classes
- RE Quantifiers
- RE Parenthesis
Lab Tasks
- Pattern Matching with Regular Expressions
- Extended Regular Expressions
- Using Regular Expressions With sed
- Text Editing
- Text Editing
- Pico/GNU Nano
- Pico/Nano Interface
- Pico/Nano Shortcuts
- vi and Vim
- Learning vi
- Basic vi
- Intermediate vi
- Emacs
- The Emacs Interface
- Basic Emacs
- More Emacs Commands
Lab Tasks
- Text Editing with Nano
- Text Editing with Vim
- Text Editing with Emacs
- 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
Lab Tasks
- Linux Shells
- Bash History
- Aliases
- Bash Login Scripts
- The Z Shell
- 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
Lab Tasks
- Writing a Shell Script
- Process Management and Job Control
- What is a Process?
- Process Lifecycle
- Process States
- Viewing Processes
- Signals
- Tools to Send Signals
- Job Control Overview
- Job Control Commands
- Persistent Shell Sessions with Screen
- Using screen
- Advanced Screen
Lab Tasks
- Job Control Basics
- Process Management and Job Control Basics
- Screen Basics
- Using Screen Regions
- 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
Lab Tasks
- Command Line File Transfers
- Managing YUM Repositories
- Managing Zypper Repositories
- Messaging
- System Messaging Commands
- Controlling System Messaging
- Internet Relay Chat
- Instant Messenger Clients
- Electronic Mail
- Sending Email with sendmail
- Sending and Receiving Email with mail
- Sending and Receiving Email with mutt
- Sending Email with Pine
- Evolution
Lab Tasks
- Command Line Messaging
- Command Line Email
- 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
Lab Tasks
- Printing
- The Secure Shell (SSH)
- Secure Shell
- ssh and sshd Configuration
- Accessing Remote Shells
- Transferring Files
- Alternative sftp Clients
- SSH Key Management
- ssh-agent
Lab Tasks
- Introduction to ssh and scp
- SSH Key-based User Authentication
- Using ssh-agent
- Mounting Filesystems & Managing Removable Media
- Filesystems Concept Review
- Mounting Filesystems
- NFS
- SMB
- Filesystem Table (/etc/fstab)
- AutoFS
- Removable Media
Lab Tasks
- Accessing NFS Shares
- On-demand filesystem mounting with AutoFS
- Managing Floppy Disks
- Preparing Floppy Diskettes
- The mtools Package
Lab Tasks
- Managing floppy disks
- Using Mtools with FAT/FAT32 formatted media
top of page |