2024-07-01 18:40:47 +02:00
# 90s
2024-07-01 18:43:18 +02:00
Minimalist, customizable shell written in C99 with syntax highlighting.
2024-01-31 02:02:32 +01:00
2024-02-08 20:47:44 +01:00
* Disclaimer: This project is for me to learn to write Unix syscalls, code might be inefficient, feel free to point out the mistakes and open a issue for that!
2024-05-22 11:58:27 +02:00
# Preview
2024-02-04 21:30:03 +01:00
[![Valid command ](https://r2.e-z.host/3c62bb3a-a8a9-43f6-afd6-553646f51dc4/aqnpvvud.png )]()
2024-02-04 21:31:44 +01:00
[![Invalid command ](https://r2.e-z.host/3c62bb3a-a8a9-43f6-afd6-553646f51dc4/xf80dq0b.png )]()
2024-02-04 21:27:24 +01:00
2024-05-22 12:25:02 +02:00
# Features
- No dependencies except a compiler
- Showing current time and directory with custom color
- Syntax highlighting on valid commands using ANSI colors
- History navigation using up and down keys with history command
- Support for environment variables
- Editing using left and right arrow keys
- !! to repeat last command
- Pipes
- autojump to directorys
- stdin, stdout, stderr redirect
- Background jobs
2024-11-13 00:09:01 +01:00
2024-05-22 12:25:02 +02:00
## Built in commands
- cd
- help
- exit
- history
- export
- source
- j
- bg
2024-11-13 00:09:01 +01:00
2024-05-22 12:25:02 +02:00
## Todo Features
- Tab completion
- Git integration
- Allow arguments with space in double quotes
- Underline file path if it exists `echo -e "\033[4mabc\033[0m"`
- Aliases
2024-05-22 11:58:27 +02:00
# Usage
2024-01-31 02:02:32 +01:00
```sh
2024-10-12 17:13:33 +02:00
$ 90s
2024-02-16 14:45:35 +01:00
# > to redirect stdout
# < to redirect stdin
# 2> to redirect stderr
# >> to append to file
# & to run command in background
# | to pipe
# !! to repeat last command
# >& to redirect both stdout and stderr
2024-01-31 02:02:32 +01:00
```
2024-05-22 12:11:40 +02:00
# Dependencies
None
# Building
You will need to run these with elevated privilages.
```
$ make
# make install
```
2024-05-22 11:58:27 +02:00
# Notes
2024-02-16 23:32:14 +01:00
- History is either saved in HOME or XDG_CONFIG_HOME if it is defined
2024-02-18 22:46:10 +01:00
# Contributions
Contributions are welcomed, feel free to open a pull request.
# License
2024-07-01 18:40:47 +02:00
This project is licensed under the GNU Public License v3.0. See [LICENSE ](https://github.com/night0721/90s/blob/master/LICENSE ) for more information.
2024-02-18 22:46:10 +01:00
2024-05-22 11:58:27 +02:00
# Credits
2024-01-31 02:02:32 +01:00
- [Tutorial - Write a shell in C ](https://brennan.io/2015/01/16/write-a-shell-in-c/ )
- [dash ](https://github.com/danishprakash/dash )
- [Shell assignment ](https://www.cs.cornell.edu/courses/cs414/2004su/homework/shell/shell.html )
- [khol ](https://github.com/SanketDG/khol/ )