Skip to content

Repository files navigation

SIMPLE-SHELL-AND-FILE-SYSTEM-FAT

versionlast-commitrepo-top-languagestarsforkswatchers

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

CommandDescription
helpProvides Help information for commands.
clsClear the screen.
quitQuit the shell.

Directory

CommandDescription
cdChanges the current directory.
dirList the contents of directory.
copyCopies one or more entry to another location.
cutCut one or more entry to another location.
mdCreates a directory.
rdRemoves a directory.
renameRenames a file.

File

CommandDescription
echoDisplays text or variables, write or append to files.
typeDisplays the contents of a text file.
delDeletes one or more files.
importImport text file(s) from your computer.
exportExport text file(s) to your computer.

Debug

CommandDescription
metaShow meta data of a file.
treeList the tree of a directory.
fatShows The Fat File System.
mdsCreates n directories.
rdsRemoves 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

ModuleSummaryDocumentation
ShellSystemHandles shell and file system operations.Documentation
DiskManages virtual disk and FAT operations.Documentation
EntryHandles 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

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages