General
Was the project written in a compiled programming language?
Are the commands mentioned in the subject implemented from scratch, without calling any external binaries and exclusively using low-level system calls directly, without relying on built-in functions or libraries that abstract file operations?
Functional
Open a terminal and run the project.
Can you confirm that the project runs and displays a unix shell?
Open a terminal and run the project.
Can you confirm that this interpreter displays at least a simple $
and waits for you to type a command?
Try to run a command of your choice.
Can you confirm that the interpreter only validates the command if you press enter?
Try to run the command "exit"
.
Can you confirm that the interpreter terminates properly and gives back the parent's shell?
Try to run the command "echo "something!""
. Do the same in your computer terminal.
Can you confirm that the displayed message of the project is exactly the same as the computer terminal?
Try to run the command "echo something else"
(without double quotes). Do the same in your computer terminal.
Can you confirm that the displayed message of the project is exactly the same as the computer terminal?
Try to run the command "pwd"
.
Can you confirm that the interpreter displayed the current path?
Try to open the project and create a parent folder with two children folders using the command "mkdir". Then enter the parent folder and do "pwd".
Can you confirm that the interpreter displayed the current path?
Try to enter a directory of your choice by using the command "cd dir/of/your/choice"
.
Can you confirm that the interpreter took you to the correct path? Use "pwd"
to confirm.
Try to run only the command "cd"
.
Can you confirm that the interpreter took you to the users home folder? Use "pwd"
to confirm.
Try to run the command "ls"
in a directory at your choice. Do the same in your computer terminal.
Can you confirm that the output is the same in the project and in your computer terminal?
Try to run the command "ls -l -a -F"
in a directory at your choice. Do the same in your computer terminal.
Can you confirm that the output is the same in the project and in your computer terminal?
Try to run the commands "mkdir new_folder1"
and "mkdir new_folder2"
in a directory of your choice.
Can you confirm that the directory new_folder1
and new_folder2
were created?
Create a document inside the new_folder1
called new_doc.txt
with some random text inside. Try to run the command "cp new_doc.txt ../folder2"
to copy the document to the folder new_folder2
.
Can you confirm that the document new_doc.txt
is inside the new_folder2
?
Try to run the command "cat new_folder1/new_doc"
. Do the same in your computer terminal.
Can you confirm that the output is the same in the project and in your computer terminal?
Try to run the commands "mv new_folder2 new_folder1"
to move the directory new_folder2
inside of the directory new_folder1
.
Can you confirm that the directory new_folder2
is inside of the directory new_folder1
?
Try to run the command "rm -r new_folder1"
to remove what was created above.
Can you confirm that the directory new_folder1
was removed?
Bonus
+Did the student added auto complete when you are writting the commands?
+Did the student added piping?
+Did the student managed the Ctrl + C
?
+Did the student added colors to the errors or directories?
+Did the student added redirection?
+Did the student added the current path behind the $
?
+Did the student added any other features or commands to the project?