90s

Minimalist, customizable shell written in C99 with syntax highlighting
git clone https://codeberg.org/night0721/90s
Log | Files | Refs | README | LICENSE

README.md (2054B)


      1 # 90s
      2 Minimalist, customizable shell written in C99 with syntax highlighting.
      3 
      4 * 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!
      5 
      6 # Preview
      7 [![Valid command](https://r2.e-z.host/3c62bb3a-a8a9-43f6-afd6-553646f51dc4/aqnpvvud.png)]()
      8 [![Invalid command](https://r2.e-z.host/3c62bb3a-a8a9-43f6-afd6-553646f51dc4/xf80dq0b.png)]()
      9 
     10 # Features
     11 - No dependencies except a compiler
     12 - Showing current time and directory with custom color
     13 - Syntax highlighting on valid commands using ANSI colors
     14 - History navigation using up and down keys with history command
     15 - Support for environment variables
     16 - Editing using left and right arrow keys
     17 - !! to repeat last command
     18 - Pipes
     19 - autojump to directorys
     20 - stdin, stdout, stderr redirect
     21 - Background jobs
     22 ## Built in commands
     23 - cd
     24 - help
     25 - exit
     26 - history
     27 - export
     28 - source
     29 - j
     30 - bg
     31 ## Todo Features
     32 - Tab completion
     33 - Git integration
     34 - Allow arguments with space in double quotes
     35 - Underline file path if it exists `echo -e "\033[4mabc\033[0m"`
     36 - Aliases
     37 
     38 # Usage
     39 ```sh
     40 $ ./90s
     41 
     42 # > to redirect stdout
     43 # < to redirect stdin
     44 # 2> to redirect stderr
     45 # >> to append to file
     46 # & to run command in background
     47 # | to pipe
     48 # !! to repeat last command
     49 # >& to redirect both stdout and stderr
     50 ```
     51 
     52 # Dependencies
     53 None
     54 
     55 # Building
     56 You will need to run these with elevated privilages.
     57 ```
     58 $ make
     59 # make install
     60 ```
     61 
     62 # Notes
     63 - History is either saved in HOME or XDG_CONFIG_HOME if it is defined
     64 
     65 # Contributions
     66 Contributions are welcomed, feel free to open a pull request.
     67 
     68 # License
     69 This project is licensed under the GNU Public License v3.0. See [LICENSE](https://github.com/night0721/90s/blob/master/LICENSE) for more information.
     70 
     71 # Credits
     72 - [Tutorial - Write a shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/)
     73 - [dash](https://github.com/danishprakash/dash)
     74 - [Shell assignment](https://www.cs.cornell.edu/courses/cs414/2004su/homework/shell/shell.html)
     75 - [khol](https://github.com/SanketDG/khol/)