ZASH is a minimal Unix-like shell implemented in C for Linux systems. This project was created as part of an operating systems class at Cooper Union in October 2025 (ECE-357). It demonstrates fundamental system calls and process management concepts through a functional command-line interface.
- Command Parsing: Tokenizes and executes user commands with proper argument handling
- I/O Redirection: Supports input redirection (
<), output redirection (>,>>), and error redirection (2>,2>>) - Built-in Commands: Implements
cd,pwd, andexitwith appropriate functionality - Process Management: Uses fork/exec/wait to execute external commands
- Resource Tracking: Displays real, user, and system time for each command execution
- Scripting Support: Can read commands from files or standard input
- Error Handling: Comprehensive error reporting for file operations and command execution
fork()- Process creationexecvp()- Program executionwait3()- Process synchronization with resource usagedup2()- File descriptor manipulation for redirectionopen()- File operationschdir()- Directory changesgetcwd()- Current working directory retrievalgettimeofday()- Timing measurementsgetrusage()- Resource usage statistics
- Linux operating system
- GCC compiler
- Standard C libraries