System Commands

A course on mastering the command line in a Linux environment to automate complex tasks, manage systems, and improve efficiency beyond graphical interfaces.

This course was a deep dive into the power of the command line, designed to move beyond graphical interfaces and interact directly with the operating system. We started with the fundamentals of the Linux environment, learning to diagnose hardware and software configurations. The curriculum progressed through essential skills like package management, file permissions, and I/O redirection. We then learned to combine these commands into powerful shell scripts, automate tasks, and perform advanced text processing with tools like awk and sed. The course concluded with an essential skill for any developer: version control using Git, covering everything from local repositories to collaborative workflows with pull requests.


Instructor

Prof. Gandham Phanikumar, Department of Metallurgical and Materials Engineering, IIT Madras


Course Schedule & Topics

The course is structured over 8 weeks, building from basic commands to advanced scripting and version control.

Week Primary Focus Key Topics Covered
1 Introduction to the Linux Command Line Setting up the environment, basic hardware/software diagnostic commands, and I/O redirection.
2 Package & File Management Using apt for package management, understanding file types, and managing file permissions.
3 Shell Environment & Navigation Shell variables, symbolic/hard links, exploring the filesystem, and using shell shortcuts.
4 Pipes, Regex, & Basic Scripting Using pipes, regular expressions with egrep, the find command, and writing simple Bash scripts.
5 Shell Scripting with Control Flow Command-line arguments, conditional statements (if/else), loops, and functions.
6 Advanced Text Processing Using awk for data analysis and sed for stream editing and pattern replacement.
7 Build Tools, Packaging, & Networking The make utility, file packaging (tar, zip), and basic networking concepts and diagnostics.
8 Version Control with Git Git workflow (branches, repositories), pull requests, and managing local/remote changes.

Material used

  • All learning materials, scripts, and documentation were provided through the course portal.