UNIX Fundamentals
Course Code: UNFUND
Duration: 5 Days
Overview
This Unix Operating System and Shell Programming training course introduces the delegate to the main concepts of the UNIX Operating System. The most commonly used unix commands are described in detail as are the command line wildcard and redirection facilities. The mechanisms by which a user acquires a login environment are discussed and the main features of the Korn/Posix/Bash Shells are introduced. It is designed to give delegates practical experience in developing and writing shellscripts. Most of the built-in unix shell commands are introduced together with the main program control structures.
Skills Gained
The delegates will practise:
- Creating, copying, renaming, moving and deleting files and directories
- Using the shell's redirection and pipe facilities
- Editing text files using the vi editor
- Setting and changing access permissions on files
- Monitoring and controlling their own processes
- Using the basic file and text searching utilities
- Customising their own login environment
- Writing simple scripts to enhance basic command output
- Using the various shell quoting mechanisms appropriately
- Manipulating shell variables and user-defined variables in scripts
- Implementing conditional execution facilities
- Using the shell's built-in loop constructs where appropriate
- Writing scripts to trap user interrupts
- User defined Functions
- Developing menu-driven shellscripts
Who will the Course Benefit?
For the UNIX Fundamentals course, there are no formal pre-requisites, although an understanding of and exposure to information technology is advantageous.
Programmers, administrators and support personnel who need to understand the UNIX Operating system, existing shellscripts, automate procedures and write their own utilities.
Some programming experience may also prove advantageous.
Course Objectives
To provide the skills needed to work productively in a UNIX environment to develop and customise shell programs.
Requirements
An understanding of IT is required.
Outline
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: INTRODUCTION TO THE UNIX OPERATING SYSTEM
- A brief history of UNIX
- The UNIX kernel
- The UNIX file system
- A login session
- Getting started navigating the file system
- The file system structure
- Directories and files
- Pathnames
- Navigating the file system
- Exercise: Logging on to the system
- Exercise: Navigating the file system
Session 2: BASIC COMMANDS
- Command line syntax
- Basic file handling commands
- Basic Directory handling commands
- Filename wildcard characters
- Exercise: Manipulating files and directories
Session 3: REDIRECTION AND PIPES
- Input redirection
- Output redirection
- Pipes
- Exercise: Using redirection and pipe facilities
Session 4: INTRODUCTION TO THE vi EDITOR
- Overview of the vi editor
- Basic functions
- Switching to input mode
- Other useful commands
- Exercises: Using the vi editor
- Exercise: Using more advanced vi features
Session 5: SEARCHING AND REPLACING TEXT
- Replacing text
- Using the vi editor
- Using sed for search and replace
- Searching for text with grep
- Linking files
- Exercises: Searching and Replacing Text
Session 6: RECALLING AND EDITING COMMANDS
- Overview
- The Bash shell
- The Korn shell
- Exercises: Recall and Edit Commands
Session 7: FILE PERMISSIONS AND ACCESS CONTROL
- Users and user groups
- File access permissions
- Changing file attributes
- Switching users and user groups
- Linking files
- Exercise: Setting and access permissions
Session 8: PROCESSES
- What is a process?
- Monitoring processes
- Killing processes
- Background processes
- Job Control
- Grouping commands
- Exercise: Monitoring and controlling processes
Session 9: MORE BASIC COMMANDS
- The wc (word count) command
- The find command
- The cut command
- The sort command
- The finger command
- Exercise: Using file handling commands
Session 10: THE USER ENVIRONMENT
- Customising the .profile or .bash_profile
- Customising the .kshrc or .bashrc
- Exercise: Setting up an environment
Session 11: UNIX COMMAND REVIEW
- Basic Unix commands
- General commands
- File and directory handling commands
- Filename generation characters
- I/O Redirection features
- Other commands
Session 12: GETTING STARTED
- What is a shell script?
- Development guidelines
- Creating and editing shell scripts
- Naming and storing shell scripts
- Executing shell scripts
- Exercise: Write a simple shell script
Session 13: USING VARIABLES
- Environment variables
- Local variables
- Assigning values to variables
- Assessing variable values
- Using quotes
- Delimiting variable names
- Echo control sequences
- Exercise: Add variables to a script
Session 14: INTEGER ARITHMETIC
- Using the expr command
- Using the (( )) notation
- Exercise: Add integer arithmetic to a shell script
Session 15: HANDLING RUN TIME DATA
- The read command
- Command line arguments
- Exercise: Writing a generic shell script
- Exercise: Writing an interactive shell script
Session 16: CONDITION EXECUTION
- The if statement
- The test command
- Other test notations
- Default and substitute variables
- Exit status codes
- Exercise: Adding validation to previous scripts
Session 17: LOOP CONSTRUCTS
- The while loop
- The until loop
- The for loop
- The while true and until false loops
- Loop control commands
- Exercise: Enhancing the previously written scripts
- Exercise: Writing a guess-the-number game
Session 18: MULTI-BRANCH DECISIONS
- The case statement
- Menu driven applications
- Exercise: Developing and writing a menu system
Session 19: FUNCTIONS
- What is a function?
- Syntax
- Examples
- Exercise: Add a function to a script
Session 20: INTERRUPT HANDLING
- Interrupt signals
- Trapping interrupts
- Exercise: Adding traps to the menu script
Session 21: ADDITIONAL FEATURES AND FACILITIES
- The exec commands
- The includes notation
- More about loops
- Arrays
- Here Documents
- Exercise: Create a here script
Follow-On Courses
- UNIX System Administration
- Oracle SQL
- UNIX Advanced Shell Programming Tools
- TCP/IP Networking