Linux

System Administration and Development

January 30, 2019
Tishk International University
Computer Science Dept.
BSc
2018-2019
5 mins read

General Information

  • University: Tishk International University
  • Department: Computer Science Dept.
  • My Status: Visiting Lecturer
  • Level: BSc
  • Year: 2018-2019

Course Description

This course provides a comprehensive introduction to Linux operating systems, focusing on Ubuntu as the primary distribution. Students will learn essential Linux system administration skills, command-line operations, and development tools necessary for working in Linux environments.

The curriculum covers fundamental Linux concepts, system administration tasks, shell scripting, and network management. Students will gain hands-on experience with Linux utilities, process management, file systems, and security practices. The course emphasizes practical skills that are essential for software development, system administration, and DevOps roles.

Through laboratory exercises and projects, students will develop proficiency in Linux system management, enabling them to work effectively in enterprise environments and open-source development communities.

Prerequisites

  • Basic computer literacy
  • Understanding of operating system concepts
  • Familiarity with command-line interfaces (recommended)
  • Programming fundamentals (recommended)

Course Objectives

Upon completion of this course, students will be able to:

  • Navigate and manage Linux file systems effectively using command-line tools.
  • Configure and manage user accounts, permissions, and system security.
  • Write and execute shell scripts for automation and system administration.
  • Install, configure, and maintain software packages and services.
  • Manage system processes, services, and network configurations.
  • Implement backup strategies and system recovery procedures.
  • Use Linux development tools and web server administration.

Course Outline

Module 1: Introduction to Linux and Open Source

  • History and philosophy of Unix and Linux
  • Open source software movement and GNU/Linux
  • Linux distributions and Ubuntu overview
  • Linux system architecture and components
  • Installation and initial system setup

Module 2: Linux File System and Basic Commands

  • Linux file system hierarchy and organization
  • Essential command-line utilities (ls, cp, mv, rm, mkdir)
  • File and directory navigation and manipulation
  • File permissions and ownership management
  • Text processing commands (cat, less, grep, sed, awk)

Module 3: User and Permission Management

  • User account creation and management
  • Group management and user administration
  • File and directory access permissions
  • Special permissions and access control lists (ACLs)
  • Security best practices for user management

Module 4: Process Management and System Monitoring

  • Understanding processes and process states
  • Process monitoring and management tools
  • System resource monitoring and optimization
  • Service management and systemd
  • Performance tuning and troubleshooting

Module 5: Package Management and Software Installation

  • Package management systems (apt, dpkg)
  • Software installation, update, and removal
  • Repository management and software sources
  • Dependency resolution and package conflicts
  • Building software from source code

Module 6: Shell Scripting Fundamentals

  • Bash shell basics and environment variables
  • Control structures and loops in shell scripts
  • Functions and script organization
  • Input/output handling and file operations
  • Script debugging and error handling

Module 7: Advanced Shell Scripting

  • Regular expressions and pattern matching
  • Text processing and data manipulation
  • Automation scripts for system administration
  • Script security and best practices
  • Integration with other system tools

Module 8: System Administration Tools

  • System monitoring and logging tools
  • Configuration management and automation
  • System backup and recovery procedures
  • Performance monitoring and optimization
  • Administrative task automation

Module 9: Network Administration

  • Linux networking fundamentals
  • Network configuration and management
  • Network monitoring and troubleshooting
  • Firewall configuration and security
  • Remote access and SSH administration

Module 10: Web Development and Server Administration

  • Apache web server installation and configuration
  • MySQL database server management
  • Tomcat application server administration
  • Web development tools and environments
  • Server security and performance optimization

Module 11: Storage Management

  • Disk partitioning and file system management
  • Logical Volume Management (LVM)
  • RAID configuration and management
  • Backup strategies and data protection
  • Storage optimization and monitoring

Module 12: System Security and Recovery

  • Linux security fundamentals and best practices
  • System hardening and security configuration
  • Intrusion detection and prevention
  • System recovery and disaster planning
  • Security monitoring and incident response

Textbooks

  • [Recommended] “The Linux Command Line” by William Shotts
  • [Optional] “Ubuntu Server Administration” by Kyle Rankin

Assessment

  • Midterm Exam (20%)
  • Activities and Projects (30%)
    • Laboratory Exercises (10%)
    • Shell Scripting Projects (10%)
    • System Administration Tasks (10%)
  • Final Exam (50%)