Simple Shell

1. What is Shell ?


The shell is a Command Line Interface(CLI) that can be used to interact with the kernel of an Operating System OS specifically for linux. It can basically do any task that a GUI file explorer or file manager can do like navigating through folder deleting and creating files. But with more flexable features like scripting. with scripting you can automate tasks that are done frequently through out the day without the interfirence of humans and many many more you can read more about shells here.

2. Installtion

To preceed with the installation process you will need the following tools.

First Clone the repo using this command.
git clone https://github.com/mikias-abiy/simple_shell.git
              

Then, Navigate to the directory you cloned.

cd simple_shell
              

Then, Compile the source code with gcc with the following command.

gcc -std=gnu89 *.c -o hsh
              

Then, run the executable with the follwing command.

./hsh
              

Then, You should see something like this.

#cisfun$ 
              

Here is an example input output.

SHELL> gcc -std=gnu89 *.c -o hsh
SHELL> ls
a.out  AUTHORS  DEV  hsh  lenv.c  lenv.h  lmemory.h  lstring.h  main.h  memory.c  README.md  shell.c  string_2.c  string.c  text
SHELL> ./hsh 
#cisfun$ ls
a.out  AUTHORS  DEV  hsh  lenv.c  lenv.h  lmemory.h  lstring.h  main.h  memory.c  README.md  shell.c  string_2.c  string.c  text
                
#cisfun$ ls
a.out  AUTHORS  DEV  hsh  lenv.c  lenv.h  lmemory.h  lstring.h  main.h  memory.c  README.md  shell.c  string_2.c  string.c  text
                
#cisfun$ ls
a.out  AUTHORS  DEV  hsh  lenv.c  lenv.h  lmemory.h  lstring.h  main.h  memory.c  README.md  shell.c  string_2.c  string.c  text
                
#cisfun$ test 
                
#cisfun$ test
                
#cisfun$ file
Usage: file [-bcCdEhikLlNnprsSvzZ0] [--apple] [--extension] [--mime-encoding]
            [--mime-type] [-e ] [-F ]  [-f ]
            [-m ] [-P ] [--exclude-quiet]
             ...
       file -C [-m ]
       file [--help]
                
#cisfun$ jl   
./hsh : No such file or directory
#cisfun$ 
              

3. Feature supported for the moument

  • Command execution
  • Getting information about the envirnoment
  • Others comming soon.

4. Authors