- Basic commands
- Wildcards
- Redirections
- Pipes
- Background jobs
- Seperate commands with ';'
- Signal handling
- Cursor movement, tab, history with libreadline
I did this mostly for the sake of learning and fun! I always wanted to have my own small shell that I can run everywhere and I can add custom features to. I am aiming to implement some other features in this later like aliasing, environmental variables and some basic if/else logics :). This project can also be seen as learning resource for people who want to learn how to make their own shell(I might write an article on this topic).
psh is available on AUR. You can install it using an AUR helper (e.g. paru):
paru -S psh
- Clone this repo.
git clone https://github.com/proh14/psh.git
cd psh
- Run
make
inside this repo's main directory.
make
- go to build directory
cd build
- run psh!
./psh
OR to install you may run the command
make install
then restart your shell and run
psh
If your willing to contribute, I must say thank you :)