Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/julekgwa/21sh
- Owner: julekgwa
- Created: 2016-12-02T18:43:03.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-23T06:53:33.000Z (almost 6 years ago)
- Last Synced: 2024-08-03T18:14:24.871Z (6 months ago)
- Topics: c, command-line, linux, shell, terminal, terminal-emulators, unix
- Language: C
- Size: 1.6 MB
- Stars: 18
- Watchers: 5
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- AwesomeInterpreter - 21sh
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