Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/omar7001-b/shellx
A basic shell interface that supports the execution of a series of commands.
https://github.com/omar7001-b/shellx
Last synced: 20 days ago
JSON representation
A basic shell interface that supports the execution of a series of commands.
- Host: GitHub
- URL: https://github.com/omar7001-b/shellx
- Owner: Omar7001-B
- Created: 2024-02-24T06:59:00.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-05-30T18:31:02.000Z (8 months ago)
- Last Synced: 2024-05-30T19:55:15.309Z (8 months ago)
- Language: C#
- Size: 88.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
SIMPLE-SHELL-AND-FILE-SYSTEM-FAT
## Table of Contents
- [Overview](#overview) π
- [Installation](#installation) π§
- [Usage](#usage) βοΈ
- [Commands](#commands) π»
- [General](#general) βΉοΈ
- [Directory](#directory) π
- [File](#file) π
- [Debug](#debug) π οΈ
- [Repo Structure](#repo-structure) ποΈ
- [Modules](#modules) π§©
- [ShellSystem](#shellsystem) πΌ
- [Disk](#disk) πΎ
- [Entry](#entry) π
- [Lessons Learned](#lessons-learned) π
- [Demo Video](#demo-video) π₯
- [Contribution](#contribution-) π€## Overview
Simple Shell and File System Program offers efficient file system management and navigation. It provides a range of commands for directory manipulation, file handling, and debugging tasks. Users can easily execute commands, access detailed help, and exit the shell.
## Installation
1. Clone the repository:
~~~bash
git clone https://github.com/Omar7001-B/ShellX.git
~~~
2. Navigate to the project directory:
~~~bash
cd ShellX
~~~3. Compile and run the program:
~~~bash
dotnet run
~~~## Usage
1. After running the program, you'll be prompted with a shell interface.
2. Enter a command followed by any required arguments.
3. Use the `help` command to see detailed information about each command.
4. Use the `quit` command to exit the shell.# Commands
### General
| Command | Description |
| ------- | --------------------------------------------- |
| help | Provides Help information for commands. |
| cls | Clear the screen. |
| quit | Quit the shell. |### Directory
| Command | Description |
| ------- | --------------------------------------------- |
| cd | Changes the current directory. |
| dir | List the contents of directory. |
| copy | Copies one or more entry to another location.|
| cut | Cut one or more entry to another location. |
| md | Creates a directory. |
| rd | Removes a directory. |
| rename | Renames a file. |### File
| Command | Description |
| ------- | --------------------------------------------- |
| echo | Displays text or variables, write or append to files.|
| type | Displays the contents of a text file. |
| del | Deletes one or more files. |
| import | Import text file(s) from your computer. |
| export | Export text file(s) to your computer. |### Debug
| Command | Description |
| ------- | --------------------------------------------- |
| meta | Show meta data of a file. |
| tree | List the tree of a directory. |
| fat | Shows The Fat File System. |
| mds | Creates n directories. |
| rds | Removes n directories. |## Repo Structure
~~~
βββ Program.cs
β
βββ π Disk
β ββ FatTable.cs
β ββ VirtualDisk.cs
β
βββ π Entry
β ββ Directory.cs
β ββ DirectoryEntry.cs
β ββ FileEntry.cs
β
βββ π ShellSystem
β ββ FileSystem.cs
β ββ Shell.cs
β
βββ π bin
βββ π Debug
βββ π net6.0
ββ Disk.txt
ββ πExports
ββ πImports
~~~## Modules
| Module | Summary | Documentation |
| ---------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [ShellSystem](https://github.com/Omar7001-B/ShellX/tree/master/ShellSystem) | Handles shell and file system operations. | [Documentation](https://github.com/Omar7001-B/ShellX/blob/master/ShellSystem/) |
| [Disk](https://github.com/Omar7001-B/ShellX/tree/master/Disk) | Manages virtual disk and FAT operations. | [Documentation](https://github.com/Omar7001-B/ShellX/blob/master/Disk/) |
| [Entry](https://github.com/Omar7001-B/ShellX/tree/master/Entry) | Handles directory and file entries. | [Documentation](https://github.com/Omar7001-B/ShellX/blob/master/Entry/) |## Lessons Learned
- Object-oriented programming (OOP)
- Constructors
- Inheritance
- Virtual Classes
- Override
- Overload
- Recursive algorithms (e.g., BFS)
- Data structures (e.g., dictionaries, lists)
- File system management
- String manipulation
- File I/O operations
- Directory and file manipulation
- Software testing (unit testing)## Demo Video
https://github.com/Omar7001-B/ShellX/assets/115028809/54d1e2e2-63f5-4bbb-92bd-08e9aeae2d55
# Contribution π€
We welcome contributions from the community. Please fork the repository and submit pull requests for any improvements or bug fixes.