Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/julekgwa/21sh

UNIX shell - a simple command-line interpreter
https://github.com/julekgwa/21sh

c command-line linux shell terminal terminal-emulators unix

Last synced: 2 months ago
JSON representation

UNIX shell - a simple command-line interpreter

Awesome Lists containing this project

README

        

# 21sh
Mini UNIX command interpreter.

![Demo](images/21sh.gif)

21sh uses my own implementation of libc's functions, most of them start with `ft_`

21sh implements:

* A series of builtins
* echo
* cd
* setenv
* unsetenv
* env
* exit
* History
* history n
* history -c
* ^string^string^
* !string
* !n
* !! and !-1
* CTRL+R (reverse-i-search)
* :arrow_up: UP or :arrow_down: DOWN
* Copy and Paste
* CTRL-W - Copy what is currently in front of the cursor.
* CTRL-G - Copy the entire line.
* CTRL-K - Cut or delete what is currently in front of the cursor.
* CTRL-X - Cut or delete the entire line.
* CTRL-V - Paste the last thing you deleted (using CTRL-K, CTRL-W, CTRL-G or CTRL-X ).
* Auto complete
* unset
* export
* line edition
* the “;” command line separator
* pipes “|”
* redirections “<”, “>”, “<<” & “>>”
* file descriptor aggregation (e.g. ``2>&-`` & ``1>&2``)
* Go directly to the beginning or the end of a line by pressing home and end.
* Move directly by word towards the left or the right using ctrl+LEFT and ctrl+RIGHT.
* Simple logical operators (&& and ||)
* CTRL+T for swapping characters.
* CTRL+P get previous history.
* CTRL+H delete character from cmd
* ls alias (``l`` || ``ll``)

# Installation
```
$ git clone https://github.com/julekgwa/21sh.git
```

# Usage
```
$ cd 21sh
$ make && ./21sh

```

## Authors

* **[julekgwa](https://github.com/julekgwa)**
* **[goisetsi](https://github.com/goisetsi)**

# License
MIT