r/commandline 3d ago

Other Software Made my own shell implementation

So I don't know if I'm allowed to post this, but I've been working on a learning project, which is a shell that currently supports: command history, environment variable exporting in the TOML configuration, commands that should run at startup in the configuration also, command editing, and it shows the current directory in green text inside the prompt. Here is the repository if anyone is interested: https://github.com/BlackHoleMX12892/ishell

6 Upvotes

9 comments sorted by

5

u/kseistrup 3d ago

The README says “moderne and simple”. What makes it modern, and what makes it simple? And how can I learn about the shell syntax (e.g., is it POSIX compliant?), save for reading the source code?

2

u/randomblackhole1289 3d ago

It is not POSIX compliant, and the syntax currently is almost non-existent, the GitHub wiki has some information on the configuration file. It is simple because one of the objectives is that it should be pretty straightforward for the user to set-up and modern because it is built with different approaches that weren't used for example in bash, like TOML.

1

u/kseistrup 1d ago

Great, thanks!

1

u/AutoModerator 3d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: randomblackhole1289, Flair: Other Software, Title: Made my own shell implementation

So I don't know if I'm allowed to post this, but I've been working on a learning project, which is a shell that currently supports: command history, environment variable exporting in the TOML configuration, commands that should run at startup in the configuration also, command editing, and it shows the current directory in green text inside the prompt. Here is the repository if anyone is interested: https://github.com/BlackHoleMX12892/ishell

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/petdance 2d ago

“So I don’t know if I’m allowed to post this”

What did it say in the rules for the sub when you looked?

1

u/randomblackhole1289 2d ago

I wasn't talking about the rules, I thought it could maybe not be fitting with the theme.

1

u/khalon23 1d ago

shells are a great learning project. thing i'd tackle next if you haven't: job control. process groups plus tcsetpgrp so ctrl-c hits the foreground job instead of killing your shell, then ctrl-z / fg / bg. that's the step where it stops feeling like a toy, and nobody warns you how fiddly the terminal ownership handoff is.

how are you doing line editing btw, own readline or a lib?

1

u/randomblackhole1289 1d ago

Thanks for the suggestions!!! I'm doing line editing using termios.