- Course Number:
- CIS 240L
- Course Title:
- Linux Installation and Configuration
- Credit Hours:
- Lecture Hours:
- Lecture/Lab Hours:
- Lab Hours:
- Special Fee:
Course DescriptionIntroduces the administration of systems utilizing the Linux operating system. Focuses on knowledge and skills necessary for day-to-day operations on a Linux system using the command line. This is the first course of a two course sequence. Prerequisites: CS 140U or instructor permission. Audit available.
Intended Outcomes for the course
On completion of this course the student should be able to:
- Design, install, and administer a simple configuration of the Linux operating system.
Course Activities and Design
The course consists of lectures, group discussion, and lab assignments. Lab assignments include both individual lab assignments and group lab assignments.
Outcome Assessment Strategies
Through exams and lab assignments students will be assessed to determine if they are able to:
1. Work effectively on the Unix command line
2. Process text streams using text processing filters
3. Perform basic file management
4. Use Unix streams, pipes, and redirects
5. Create, monitor, and kill processes
6. Modify process execution priorities
7. Perform searches of text files making use of regular expressions
8. Create partitions and file systems
9. Maintain the integrity of file systems
10. control file system mounting and unmounting
11. Set and view disk quota
12. Use file permissions to control access to files
13. Manage file ownership
14. Create and change hard and symbolic links
15. Find system files and place files in the correct location
16. Boot the system
17. Change run levels and shutdown or reboot system
18. Use and manage local system documentation
19. Find Linux documentation on the Internet
20. Write system documentation
21. Provide user support
22. Manage users and group accounts and related system files
23. Tune the user environment and system environment variables
24. Configure and use system log files to meet administrative and security needs
25. Automate system administration tasks by scheduling jobs to run in the future
26. Maintain an effective data backup strategy
Course Content (Themes, Concepts, Issues and Skills)
- Interact with shells and commands using the command line. Includes typing valid commands and command sequences, defining, referencing and exporting environment variables, using command history and editing facilities, invoking commands in the path and outside the path, using command substitution, and applying commands recursively through a directory tree.
- Send text files and output streams through text utility filters to modify the output in a useful way. Includes the use of standard Unix commands found in the GNU textiles package such as sed, sort, cut, expand, fmt, head, join, nl, od, paste, pr, split, tac, tail, tr, and wc.
- Use the basic unix commands to copy and move files and directories. Perform advanced file management operations such as copying multiple files recursively and moving files that meet a wildcard pattern. Use simple and advanced wildcard specifications to refer to files.
- Connect files to commands and commands to other commands to efficiently process textual data. Includes redirecting standard input, standard output, and standard error; and piping one command's output into another command as input or as arguments (using xargs); sending output to stdout and a file (using tee).
- Includes running jobs in the foreground and background, bringing a job from the background to the foreground and vice versa, monitoring active processes, sending signals to processes, and killing processes. Includes using commands ps, top, kill, bg, fg, and jobs.
- Run a program with higher or lower priority, determine the priority of a process, and change the priority of a running process. Includes the command nice and its relatives.
- Includes creating simple regular expressions and using related tools such as grep and sed to perform searches.
- Create disk partitions using fdisk, create hard drive and other media file systems using mkfs
- Verify the integrity of file systems, monitor free space and inodes, fix simple file system problems. Includes commands fsck, du, df.
- Mount and unmount file systems manually, configure file system mounting on bootup, configure user-mountable removable file systems. Includes managing file /etc/fstab.
- Setup disk quota for a file system, edit user quota, check user quota, and generate reports of user quota. Includes quota, edquota, repquota, quotaon commands.
- Set permissions on files, directories, and special files, use special permission modes such as suid and sticky bit, use the group field to grant file access to work groups, change default file creation mode. Includes chmod and umask commands. Requires understanding symbolic and numeric permissions.
- Change the owner or group for a file, control what group is assigned to new files created in a directory. Includes chown and chgrp commands.
- Create hard and symbolic links, identify the hard links to a file, copy files by following or not following symbolic links, use hard and symbolic links for efficient system administration.
- Understand the file system hierarchy standard, know standard file locations, know the purpose of various system directories, and find commands and files. Involves using the commands: find, locate, which, update db. Involves editing the file: /etc/update db.conf
- Guide the system through the booting process, including giving options to the kernel at boot time, and check the events in the log files. Involves using the commands: dmesg (lilo). Involves reviewing the files: /var/log/messages, /etc/lilo.conf, /etc/conf.modules | /etc/modules.conf
- Securely change the run level of the system, specifically to single user mode, halt (shutdown) or reboot. Make sure to alert users beforehand, and properly terminate processes. Involves using the commands: shutdown, init
- Use and administer the man facility and the material in /usr/doc/. Includes finding relevant man pages, searching man page sections, finding commands and man-pages related to one, configuring access to man sources and the man system, using system documentation stored in /USSR/doc/ and related places, determining what documentation to keep in /usr/doc/.
- Find and use Linux documentation at sources such as the Linux Documentation Project, vendor and third party websites, newsgroups, newsgroup archives, and mailing lists.
- Write documentation and maintain logs for local conventions, procedures, configuration and configuration changes, file locations, applications, and shell scripts.
- Provide technical assistance to users via telephone, email, and personal contact.
- Add, remove, suspend user accounts, add and remove groups, change user/group info in passwd/group databases, create special purpose and limited accounts. Includes commands useradd, userdel, groupadd, gpasswd, passwd, and file passwd, group, shadow, and gshadow.
- Modify global and user profiles to set environment variable, maintain skel directories for new user accounts, place proper commands in path. Involves editing /etc/profile and /etc/skel/.
- Configure the type and level of information logged, manually scan log files for notable activity, arrange for automatic rotation and archiving of logs, track down problems noted in logs. Involves editing /etc/syslog.conf
- Use cron to run jobs at regular intervals, use at to run jobs at a specific time, manage cron and at jobs, configure user access to cron and at services
- Plan a backup strategy, backup file systems automatically to various media, perform partial and manual backups, verify the integrity of backup files, partially or fully restore backups.