Skip to content

GeeekyBoy/geeekybash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GeeekyBash

Table Of Contents:

Overview

GeeekyBash is an under-construction open-source alternative to Bash that aims to overcome known Bash input size limitations without sacrificing performance. It's completely written in pure C23 and is assumed to support all terminal enviroments supporting noncanonical mode. We strongly believe that our shell will keep evolving till the day it becomes one of the shells that are considered by Linux makers.

Features

  • Optimized for reduced memory usage (~50 KiB) ๐Ÿ’ป
  • UTF-8 characters support ๐Ÿ˜Ž
  • Infinite input buffer ๐Ÿš€
  • Commands history that shared across sessions ๐Ÿ“†
  • Infinite piping support.
  • Controllable text caret .
  • Beeping on reaching the max or min range of text caret ๐Ÿšจ
  • Support for redirecting output to a file.
  • Environment variables support.
  • Support for logical and & or.
  • All system global environment variables are loaded on startup.

Screenshots & Test Cases

Memory Consumption

Compatibility

GeeekyBash is supposed to work in all modern Linux-based CLI environments that support noncanonical mode. However, It was tested only on the following operating systems:

  • Ubuntu 20.04 LTS running in WSLg environment.

Build Instructions

JetBrains CLion

the project was originally created using CLion 2021.3.4, so all what you have to do is importing the project to CLion and run main.c.

Project Structure

  • execution: contains all libraries responsible for executing both native and built-in commands.
  • io: contains all libraries responsible for processing data input and output including parsing them.
  • store: all stored data are stored there. Environment variables & Jobs are stored in linked lists, while history is stored locally in a file called .geeekybash_history found in user home directory.
  • utils: contains general utilities that are used across the project. Currently, there are utilities for managing strings, files and paths.

License

GeeekyBash is released under the GNU AGPLv3 license.

About

Modern Bash shell alternative ๐Ÿ˜Ž

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published