Orbital Shell is a command shell based inspired by bash and POSIX recommendations, coded in C# NET 5.0
orbitalshell.github.io/Orbital-Shell/
Orbital Shell is a multi-platform (windows, linux, macos, arm) command shell (according to .Net Core supported platforms and APIs compatibilities), inspired by bash and POSIX recommendations.
It provides any usual bash shell feature (even if modernized) and 'user friendly' syntaxes allowing to access (get/set/call) C# objects.
Developed using C# 8 .NET 5.0 - compatible with modules and libraries targeting .NET Core 3.1 and .NET Standard 2.1
NuGet packages
package ID | type | NuGet verion ID |
---|---|---|
libraries | ||
OrbitalShell-ConsoleApp OrbitalShell-Kernel OrbitalShell-Kernel-Commands |
net5.0 classlib net5.0 classlib net5.0 classlib |
|
modules | ||
OrbitalShell-PromptGitInfo OrbitalShell-DoomFireAlgo |
shell module (net5.0) shell module (net5.0) |
|
binaries | ||
OrbitalShell OrbitalShell-win-x64 OrbitalShell-linux-musl-x64 OrbitalShell-linux-x64 OrbitalShell-linux-arm OrbitalShell-linux-arm64 OrbitalShell-osx-x64 |
CLI any dotnet platform* CLI WIN x86 CLI linux MUSL x64 CLI linux x64 CLI linux ARM CLI linux ARM x64 CLI OSX x64 |
Docker images
image ID | description | link |
---|---|---|
orbitalshell/orbital-shell | Linux Ubuntu amd64 | https://hub.docker.com/r/orbitalshell/orbital-shell |
About the project
This shell integrates the most usefull shell commands, and is intented to be extended by coding new commands or downloading new commands modules within a repository of modules. Of course it can be entirely customized by using the features integrated to the shell (scripts, functions, commands, aliases, settings, parametrization,...). Having a strong ANSI/VT-100-220-300-500 support, it provides structured and colorized display of data and information (support of ASCII, Unicode and 24 bits colors).
Find any information and documentation about this project on the project's Web Site @ Orbital SHell Git-Pages
Developers and users manuals are available in the project web site @ Orbital SHell Git-Pages (documentation)
Contribute !
You can directly FORK the project @ https://github.com/OrbitalShell/Orbital-Shell.git and start developing to prepare your first pull request, it will be well received. You can also peek an issue and start working on.
Join the orbital shell team and get advantages of the team tools on github. We can contact
- read the contribution guide lines and the code of conduct of the project
- read the project README @ https://github.com/OrbitalShell/Orbital-Shell/blob/master/README.md
- visit the project's web site @ https://orbitalshell.github.io/Orbital-Shell/
- visit the project repository @ https://github.com/OrbitalShell/Orbital-Shell/
Join the project:
⏩ ⏩ Join the project. You can send a mail to the project team @ mailto://orbital-shell@outlook.fr or to the maintener me
- Curious / beginner / intermediate / expert are all welcomed!
- A simple hello from you part and you will be welcomed and invited to join the project
👍 ! - A simple star on the project main repo and you will also be invited
👋 !
⏩ ⏩ This project is a collaborative work, any one can participate and do anything he wishes 😎 !
There are a various subjects that can be treated:
- .NET 5.0 (C# 8) programming
- develop command line parser
- develop shell commands (find,ls,grep,sed,..: add/improve any command you want!)
- develop shell scripts (.orbsh/.sh)
- Technical documentation
- Automated Tests
- Code review / validation of pull requests
- Design any new feature
- CI/CD (powered by GitHub workflows)
- build binaries / distribs / .nupkg / setups / ...
- Web site development (design, content update, ...)
- Internationalization
- Translates
The project team like to meet people and wish to share pleasure of programming and technology enthusiasm, with fun and good spirit
Features
a view of the shell running in Windows Terminal
- Is a 'bash style' POSIX command shell
- The modules that are integrated into the shell provide the most usefull shell commands (ls/dir,rm,mv,cp,find,echo,clear,more,env,set,export,history,alias,...), tests commands, text editor command, and so on... , covering the fields of file system,text files,console output, data management, user input
- modules can contains any item that the shell is intended to handle: commands, hooks, scripts/functions, settings, help, doc, assets, ...
- dedicated repositories are used to get known modules list
- modules are versioned and delivered throught nupkg packets, currently hosted at NuGet
- modules are installed into the binaries of the shell
- modules to be loaded are loaded by the shell kernel on user session startup
- modules can contains any item that the shell is intended to handle: commands, hooks, scripts/functions, settings, help, doc, assets, ...
- The shell command engine implements:
-
A command line reader with:
-
Streams standard input (stdIn), standard output (stdOut), and standard error (StdErr)
-
pipelines of commands:
-
Batches of commands (scripts)
-
Variables
- Variables can store any data of any C# object type
- Functions can be defined by a shell script or by a C# compiled source
- Aliases for command names
- Shell environment : the shell initialization feature deploy and setup a shell environment for the current user (profile folder and initialization scripts: .profile,.alias,.history,.orbsh)
-
Extensibility:
-
notice / caveat
The project orbital shell was dependent of the project DotNetConsoleAppToolkit. Now the library DotNetConsoleAppToolkit project repository is ARCHIVED since it has been integrated into the orbital-shell project repository as project OrbitalShell-ConsoleApp, so it is still under development but code has been moved to this repository
Warning: due to the average age of our main contributors, this project might contains vintage architecture,design and code. Nevertheless the source code is intensively based on young devs preferred patterns, C# 8 language usage (intellisense agrees), and it pretends to fit to good practices and architecture guidelines.
from