MCA-20-22: Linux and Shell Programming
Type: Compulsory
Contact Hours: 4 hours/week
Examination Duration: 3 Hours
Mode: Lecture
External Maximum Marks: 75
External Pass Marks: 30(i.e. 40%)
Internal Maximum Marks: 25
Total Maximum Marks: 100
Total Pass Marks: 40(i.e. 40%)
Instructions to paper setter for End semester examination:
Total number of questions shall be nine. Question number one will be compulsory and will be consisting of short/objective type questions from complete syllabus. In addition to compulsory first question there shall be four units in the question paper each consisting of two questions. Student will attempt one question from each unit in addition to compulsory question. All questions will carry equal marks.
Course Objectives: The objectives of this course are to provide the in-depth coverage of various concepts of Linux. Linux administration is an essential course for the students.
Course Outcomes (COs) At the end of this course, the student will be able to:
MCA-20-22.1 understand the concepts and commands of Linux;
MCA-20-22.2 understand the file management and process manipulation in Linux;
MCA-20-22.3 understand the C environment under Linux and do the system administration and communication in Linux;
MCA-20-22.4 develop shell programs in Linux.
Unit – I
Introduction: History, Basic features, architecture, distributions. Installing Linux, Logging in / Logging out.
File System: Introduction to files, Organization, Assessing File systems, Structure – boot block, super block, inode block, data block.
Basic and Advanced Commands: Directory oriented commands, File oriented commands, File access permissions: chmod, umask, chgrp, groups. General purpose commands.
Unit – II
File management and Compression: Computer devices, Disk related commands: dd, du, df, dfspace, fdisk, compressing and uncompressing files.
Manipulating Processes and Signals:Basics, process states and transitions, zombie and orphan processes, process oriented commands. Handling foreground and background jobs. Process scheduling using cron, crontab, at, batch. Changing priority. Signal generation and Handling.
System calls: Files related system calls for opening, creating, reading, writing, relocating file descriptors, closing, duplicating file descriptors, linking, unlinking, accessing file status information, checking permissions, changing ownership, groups and permissions of files. Process related system calls: exec, fork, wait, exit.
Unit – III
System Administration: Booting and shutting down process. Creating, mounting and unmounting file systems. Managing User accounts: creating, modifying & deleting user accounts and groups.
Networking Tools: Communication oriented commands. ping, nslookup, telnet, arp, netstat, route, ftp, trivial file transfer protocol, finger, rlogin.
C language compiler, the make command and makefiles, general debugging techniques, debugging with gdb.
Unit – IV
Pipes and filters: Connecting processes with pipes, redirecting input and output. Filters: sort, grep, egrep, fgrep, uniq, more, pr, cut, paste, tr.
Shell Programming: Shell meaning & types; Introduction to shell scripting, shell variables, exporting shell variables, Escape mechanisms, Shell meta characters, read command, conditional statements, looping and case statements, expr statement, command line arguments, sleep and basename commands, Bourne Shell Commands, string handling, arrays, shell functions, shell programs to automate system tasks.
Text Books:
1. Harwani B.M., Unix and Shell Programming, Oxford University Press.
2. Goerzen John, Linux Programming Bible, IDG Books, New Delhi.
Reference Books:
1. Matthew Neil, Stones Richard, Beginning Linux Programming, Wiley India Pvt. Ltd.
2. Christopher Negus, Linux Bible, Wiley India Pvt. Ltd.
3. Das Sumitabha, You UNIX – The Ultimate Guide, Tata McGraw Hill
4. Richard Peterson, Linux – The Complete Reference, Tata McGraw Hill