Skip to content

A basic shell interface that supports the execution of a series of commands.

Notifications You must be signed in to change notification settings

Omar7001-B/ShellX

Repository files navigation

SIMPLE-SHELL-AND-FILE-SYSTEM-FAT

version last-commit repo-top-language stars forks watchers

Table of Contents

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:

    git clone https://github.com/Omar7001-B/ShellX.git
  2. Navigate to the project directory:

    cd ShellX
  3. Compile and run the program:

    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 Handles shell and file system operations. Documentation
Disk Manages virtual disk and FAT operations. Documentation
Entry Handles directory and file entries. Documentation

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

ShellX.Demo.Video.mp4

Contribution 🤝

We welcome contributions from the community. Please fork the repository and submit pull requests for any improvements or bug fixes.

About

A basic shell interface that supports the execution of a series of commands.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages