osh is a rudimentary shell written in C for use in *nix systems. The original intent behind the shell was a project to introduce myself to systems programming, learn about the functionality of a shell, and gain more experience with C programming and Linux.
All implemented shell commands are represented as built-ins, which so far includes:
- Classic commands:
cdechoexithelp
- Custom:
sinfo: reports system information (memory usage, uptime, kernel & CPU info)
All other classic commands (not builtins) such as ls work through their native *nix implementations currently.
Other noteworthy features include:
- Single pipes
- Input redirection
- Persistent command history with GNU readline
In the top level directory, run make to create a osh executable and /build/ directory with individual object files. To clear the executable and objects, run make clean.
This project adapts much of its base code from Stephen Brennan's tutorial, which I followed to create the base functionality of osh.