MyShell is an educational Linux mini shell written in C.
The goal of this project is to learn Linux system calls, POSIX APIs, and C system programming by building a simple shell from scratch.
The shell currently supports several basic Unix commands implemented for learning purposes.
Whenever possible, this project uses low-level Linux system calls instead of higher-level library functions to better understand how Unix shells work internally.
This project is still under development, and more features will be added over time to make the shell closer to a real Unix shell.
lsls -lcattouchmkdirhistory./( run process )
>>><2>|
make./myshellmyshell> ls
myshell> ls -l
myshell> ls file
myshell> ls -l file
myshell> touch file.txt
myshell> mkdir project
myshell> cat file.txt
myshell> ls > output.txt
myshell> cat < output.txt
myshell> history
myshell> echo hello | cat- before you run the shell , compile your file you want to run , like test.c in terminal after that you can use
./test.c, it should be in current directory .
- Background execution (
&) - Environment variables
- Wildcards (
*) - Built-in commands (
export,unset,env) - HTML/CSS project documentation
This project is released under the MIT License and is intended for educational purposes.# myshell-linux-mini-shell
