A lightweight shell implementation written in Java, developed for the StudentHack 2025 hackathon (hosted by the University of Manchester), where it secured 1st place in the individual challenge. While Java isn't the conventional choice for shell development, this project showcases how it can be leveraged to build a functional, responsive, and feature-rich command-line interface from scratch.
- Basic command execution with support for external programs
- Output redirection (
>
,>>
,2>
,2>>
) - Tab autocompletion for commands and file paths
- Built-in commands:
echo
: Print text to standard outputpwd
: Print working directorycd
: Change directorytype
: Display command type informationexit
: Exit the shell
- Command history navigation
- Support for command arguments and options
- Ensure you have Java 11 or later installed
- Clone this repository
- Compile the project:
javac Main.java
- Run the shell:
java Main
- Improve code organization and modularity
- Implement better error handling patterns
- Enhance code documentation
- Optimize performance-critical sections
- Add comprehensive test suite (planned for future updates)
- Support for command pipelines (
|
) - Environment variable management
- Background process execution
- Custom prompt configuration
- Command aliases
- Script execution support
- Enhanced error handling and reporting
This project is licensed under the MIT License - see the LICENSE file for details.