Introduction to Linux and Shell Scripting

H3ABioNet_high_res

Prepared by: Oyelade Olarenwaju and Özlem Tastan Bishop
Module Name: Introduction to Linux and Shell Scripting
Contact hours (to be used as a guide)Total (40 hours), Theory (30%), Practical (70%)
(one could consider running this module in less than 40 hours e.g. 25 hours)

SPECIFIC OUTCOMES ADDRESSED

On completion of this module, students should

1. Understand the basic features of the Linux operating system.
2. Discuss the various components of Linux operating system.
3. Understand the Linux kernel and its subsystems.
4. Know how to create a user account, login/logon and get information using commands on a Linux system.
5. Discuss the Linux files system concepts and organization.
6. Understand file directories and file operations including changing permissions, creation, deletion, moving and renaming.
7. Be able to use regular expressions to describe the search patterns.
8. Be able to write simple shell scripts.
9. Be able to connect to remote computers and transfer files using Linux commands.
10. Be able to create and edit text files in a Linux text editor to illustrate knowledge of the text editor functions and commands.

BACKGROUND KNOWLEDGE REQUIRED

H3ABioNet bioinformatics modules as pre-requisites: None.
Additional: Basic computer literacy: proficiency with word-processing, spreadsheets and graphics programs, exposure to standard bench-top computational tools and the web.

BOOKS & OTHER SOURCES USED

1. Hahn, Harley, Harley Hahn’s Guide to Unix and Linux , 1st Edition, McGraw-Hill Higher Education, 2008.
2. http://www.linux.org/
3. An Introduction to the Linux Command Shell for Beginners by Victor Gedris (http://vic.gedris.org/Manual-ShellIntro/1.2/ShellIntro.pdf)
4. GNU/Linux Command-Line Tools Summary by Gareth Anderson (http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/GNU-Linux-Tools-Summary.pdf)
5. Introduction to Linux – A Hand on Guide by Machtelt Garrels (http://www.tldp.org/LDP/intro-linux/intro-linux.pdf)

COURSE CONTENT

A) Theory lectures

1. The concept of an operating system: the architecture of the Linux operating system, logging into and out of Linux and changing password. General format of Linux commands.

2. Linux filesystem and directory structure: file and directory handling commands, the use of wildcard filename expansion.

3. Files and directory permission: how to examine the contents of a file, searching and sorting of files in Linux, tools for compressing files and making backups, accessing flask drive and other removing media.

4. The concept of processes in Linux: passing an output from one process as input to another using pipes, redirecting process input and output, controlling processes associated with the current shell, controlling other processes.

5. Connecting to remote machines: networking utilities, remote file transfer, email utilities, simple text processing with sed and awk, target compilation with make command, manual pages, etc.

6. Introduction to text editors in Linux (such as vi, emacs, etc): basic text input and navigation, moving and copy text, searching for and replacing text, etc.

7. Basic administrative concept in Linux: the superuser root, shutdown and system start up, adding user, controlling user group, reconfiguring and recompiling the linux kernel, keeping essential processes alive, etc.

8. Shell scripting in Linux: shells and shell script, shells variables and the environment,simple shell scripting, start-up script.

B) Practical component

Each lecture will be complemented by tutorials and self-study.

ASSESSMENT ACTIVITIES AND THEIR WEIGHTS

Mid-semester examination (20% weight)
Practical assessment (10% weight)
Final Examination (70% weight)

Leave a Reply