Giter Club home page Giter Club logo

dyshell's Introduction

Dyshell: A Customizable Interactive Shell

work in progress

Dyshell is a highly customizable interactive shell built using Go. It offers a range of built-in commands, supports job control, command history, aliases, and environment variable management. This shell aims to provide an enhanced user experience with features like command substitution, redirection, piping, and auto-completion. Dyshell is designed to be easily extensible, allowing users to add their own custom commands and quick commands to streamline their workflow.


Features

  • Built-in Commands: Essential commands like echo, exit, pwd, cd, ls, cat, touch, rm, mkdir, rmdir, history, clear, alias, unalias, export, unset, jobs, fg, bg, kill.
  • Job Control: Manage background and foreground jobs.
  • Command Substitution: Support for command substitution using $().
  • Redirection and Piping: Easily redirect input and output and pipe commands together.
  • Auto-Completion: Intelligent auto-completion for commands and file paths.
  • Custom Aliases and Environment Variables: Define and manage your own aliases and environment variables.
  • Persistent History: Command history is saved across sessions.
  • Quick Commands: Define quick commands to speed up your workflow.
  • Customizable Prompt: Set your own shell prompt to personalize your environment.

Getting Started

Prerequisites

  • Go 1.16 or later installed on your system.

Installation

Clone the repository:

git clone https://github.com/yourusername/dyshell.git
cd dyshell

Build the project:

go build -o dyshell main.go

Run Dyshell:

./dyshell

Usage

Once you have Dyshell up and running, you can start using it just like any other shell. Here are some examples to get you started:

# Navigate to a directory
cd /path/to/directory

# List files in the current directory
ls

# Create a new file
touch myfile.txt

# Display the contents of a file
cat myfile.txt

# Set an alias
alias ll='ls -la'

# Use the alias
ll

# Create a directory
mkdir mydir

# Remove a file
rm myfile.txt

# Remove a directory
rmdir mydir

# Show command history
history

# Clear the screen
clear

# Set an environment variable
export MYVAR=myvalue

# Use command substitution
echo $(ls)

Customization

Aliases

Define your own aliases to save time. For example:

alias gs='git status'

Environment Variables

Set environment variables that persist across sessions:

export MYVAR=myvalue

Quick Commands

Add quick commands to streamline repetitive tasks.

Custom Prompt

Personalize your shell prompt by editing the prompt variable in the configuration file.


Contributing

We welcome contributions! Feel free to submit issues and pull requests to improve Dyshell.


License

This project is licensed under the MIT License.

dyshell's People

Contributors

dyst0rti0n avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.