LINUX & SHELL PROGRAMMING

Paper Code: 
DCAI 702B
Credits: 
06
Periods/week: 
12
Max. Marks: 
100.00
Objective: 

This course will help students to:

  1. Work with basic commands of Linux
  2. Implement various functionalities through shell scripting
  3. Demonstrate virtual machine.

 

     Course Learning Outcome

Learning and Teaching Strategies

Assessment Strategies-

The students will:

CO91. Recall the fundamental concepts of the Linux operating system.

CO92. Explain the architecture of the Linux operating system and the reason for open source.

CO93. Execute the basic commands of Linux to manage files and file system

CO94. Demonstrate the concepts of redirection, pipes and filters in Linux.

CO95. Write, debug and execute shell  scripts.

Approach in teaching: Interactive         Lectures, Discussion,       Tutorials, reading assignments, Demonstration, Learning activities for the students:

Self-learning assignments,   Effective           questions, Simulation,         Seminar presentation,         Giving tasks.

Class test, Semester end           examinations, Quiz,                 Solving problems                in tutorials, Assignments, Presentation, Individual and group projects .

Contents:

  • Introduction to Operating Systems, history, functions and types of operating system.
  • Process Management: Basic Concepts of process and Process Scheduling,Operation on Processes.
  • Memory Management: Basic Concepts of Logical versus Physical Address space, Swapping,Contiguous allocation (fragmentation), Paging,Segmentation.
  • Introduction of Various Linux Distribution (Red Hat Enterprise Linux, Cent OS,Fedora Projects,Debian Linux, Ubuntu, etc.), GNU-Linux connection.
  • Linux Installation, Dual booting and Virtual machines
  • Virtualization (Virtualbox, VMware, Hyper-V,...)
  • Creating a new Virtual machine
  • Configuring the VM
  • Linux GUI, Logging in, Desktop Customization.
  • General Purpose Utilities in Linux (date, cal, who, tty, uname, passwd, bc,script, echo, logging out).
  • Linux File System: file types, file inode, Home directory and Current directory
  • Navigating file system- pwd, cd, mkdir, rmdir,ls.
  • Handling regular/ordinary files-cat, cp, mv, wc, rm, cmp.
  • Basic file attributes- file permissions, changing permissions.
  • Redirection & Pipes
  • Simple filters- head, tail, cut, paste, sort, uniq, tr.
  • Regular expression-Grep utility, Shell command line, redirection, pipeline, split output, tee.
  • Working with Linux Process: Process, Shell process, Process spawning -parent and child process, Process attributes - pid, ppid, Init Process, User process & System process, ps with options.
  • The Linux Environment: Environment variable vs Local variables, set command,env command, SHELL, HOME, PATH, LOGNAME, PS1, PS2, history, ! and ~
  • Types of Text editors, using vi editor, prompt character, correcting typing errors.
  • Simple filters Head tail sort cut paste
  • grep & sed command
  • Basic shell programming Interactive scripts, shell variables, assigning values to variables,Positional parameters, command line arguments, Arithmetic in shell script, Decision taking-if else,     nested if, file tests, string tests, case control structure. Loop control structure-while and for.
  • Basics of System Administration: Root login-su User management - UID, GID,useradd, usermod, userdel Discs – Du, df
  • Linux System Administration: creating user account, assigning groups on user creation. User password management, modifying user account, Group password and login, Administrating Group with gpasswd command,modifying and deleting groups
  • Introduction to AWS: Getting Started with AWS, Basic Account Management Setting, Launching VM on cloud platform (AWS)

 

ESSENTIAL READINGS: 
  • Silbersachatz and P.Galvin, “Operating System Concepts 9th Edition- New Delhi: Wiley India- 2011.
  • Sumitabha Das, “UNIX Concepts and Applications”, Tata McGraw Hill.

 

REFERENCES: 

Suggested Reference Books

  • Mark G. Sobell, “A Practical Guide to Linux Commands, Editors and Shell Programming” Pearson Education.
  • Madnick E., Donovan J., “Operating Systems”, Tata McGraw Hill, 2001
  • B. W. Kernighan & R. Pike, “The UNIX Programming Environment”, PHI.

 

E-Resources including links

 

Reference Journals

 

  • Journal of Operating Systems Development & Trends, ISSN: 2454-9355
  • International Journal of Reconfigurable Computing, hindawi Journals. ISSN:1687-7195 (Print)

 

Academic Year: