Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 2.49 KB

README.md

File metadata and controls

74 lines (56 loc) · 2.49 KB

To build and run the shell:

sudo apt-get update
sudo apt-get install cmake
cmake .
make
./output/main

c++17 required

Theory:

  • The basic shell perform these basic operations:

    1. Load config files
    2. Run REPL loop
    3. Clean up memory to prevent leakage.
  • In the Loop part following operations are performed:

    1. Read the commands entered by the user.
    2. It will parse the commands so computer can understand the commands.
    3. Execute the commands.

Core Features:

Implemented

  1. All Linux Commands are supported.
  2. Batch Mode done (Use "rsh filename.rsh" \\ Only .rsh files allowed)
  3. Git Branch, Username, PC name and current directory display during input prompt.
  4. "exit" can be used to exit the shell and revert to default linux shell.
  5. pipes ('|') and redirections ('<' or '>' or '>>') supported.
  6. "history" command can be used to list all the commands used in current shell session.

Remaining

  1. Aliases not yet implemented.
  2. Commands containing string (" ") may not function properly.

Additional Features

Implemented

  1. Basic Text editing while entering command is supported.
  2. Command History access using ↑ and ↓ arrow key.(Limited to current shell session only)
  3. Tab Auto-Completion during input is supported.
  4. Basic Arithmetic Operation can be performed using "calc [expresssion]".
    (Here expression is any mathematical expression without a space)
  5. "google " can be used to google meaning of any word.
    (Note: An active Internet Connection is required to run this command.)

Beginner Shell Tutorial

Implemented

  1. "tutorial" command be used to run tutorial content and learn about basic shell and git commands inside shell.
  2. "tutorial level [level-number]" can be used to access practice levels and find the hidden flag using shell commands.
  3. "tutorial level [level-number] password" can be used to submit the hidden flag in grading software to pass that level.

Errors and Solutions:

  1. If cmake . fails with message : "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the",

    then run command

    sudo apt-get install libssl-dev on your terminal(tested for ubuntu 18.04 LTS)