ush is a minimal Unix-like shell written in C.
This project is designed to be platform-independent across Unix-like systems, adhering to POSIX standards.
- Development OS: macOS
- Testing Environment: Verified on Fedora (via Podman container)
- Standards: Fully POSIX compliant
- Windows Support: Not natively supported. Recommended to use WSL2 or Podman/Docker for a seamless experience.
- Proper backslash escaping (
\\→\,\n,\t) - Builtin
echo - Tokenization supporting single and double quotes
- Pipe (
|) support - Colored prompt
Before building and running Uranium-Shell (ush), make sure the following dependencies are installed on your system:
- GCC – the GNU Compiler Collection for compiling C/C++ code.
- CMake – used to configure and generate build files.
- Ninja (recommended) or Make – build system for compiling the project.
- readline-devel – development libraries for command-line input editing and history support.
sudo dnf install gcc cmake ninja-build make readline-develsudo apt update
sudo apt install build-essential cmake ninja-build libreadline-devsudo pacman -Syu gcc cmake ninja make readlinebrew install gcc cmake ninja readlinegit clone https://github.com/selimozturk13/Uranium-Shell-ush.git
cd Uranium-Shell-ushcmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja -C buildmkdir -p build && cd build
cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make# If you used Ninja
./build/ush
# If you used Makefile
./ushUranium-Shell (ush) has been tested on the following systems:
| OS / Distro | Architecture | Compiler | Build System |
|---|---|---|---|
| macOS 13 Ventura | x86_64 | clang 14.0.3 | CMake + Ninja |
| Fedora 43 | x86_64 | gcc 15.2.1 | CMake + Ninja |
This project is developed with a strict focus on memory safety. The codebase is verified to be free of any "definitely lost" or "indirectly lost" memory leaks.
The "still reachable" blocks reported by Valgrind are exclusively related to the internal implementation of the readline library.
| Category | Status | Description |
|---|---|---|
| Definitely Lost | ✅ None | No memory leaks caused by application logic |
| Indirectly Lost | ✅ None | No chained or dependent leaks detected |
| Still Reachable | Caused by readline internal static buffers |
- Zero Leaks: All memory allocated by the application logic is properly deallocated.
- Readline Artifacts: readline and add_history use internal static buffers that persist until process termination.
These are standard library behaviors and do not indicate a flaw in the project's memory management.
Uranium Shell (ush) is licensed under the GNU General Public License v3.0 (GPLv3).
See LICENSE for details.