simple_shell is a command line interpreter, or shell, in the tradition of the first Unix shell written by Ken Thompson in 1971. This shell is intentionally minimalistic, yet includes the basic functionality of a traditional Unix-like command line user interface.
Standard functions and system calls employed in simple_shell include:
access, execve, exit, fork, free, fstat, getline, malloc, perror, signal, stat, wait, write.
simple_shell has been tested on Ubuntu 14.04.6 and 18.04.3 LTS
Done and tested with VirtualBox on Ubuntu via Vagrant(2.2.10)
simple_shell is designed to execute commands in similar fashion to sh, with some of its basic functionality. The development of this shell is ongoing. The below features will be checked as they become available (detailed usage information available on man page):
- uses the PATH
- implements builtins
- handles command line arguments
- custom strtok function
- uses exit status
- shell continues upon Crtl+C (^C)
- handles comments (#)
- handles ;
- custom getline type function
- handles && and ||
- aliases
- variable replacement
- exit
- env
- setenv
- unsetenv
- cd
- help
- history
Run the executable file in terminal after compiling:
$ ./hsh
$ # Start of our custom `simple_shell`
$ ls -la
total 120
drwxrwxr-x 4 vagrant vagrant 4096 Nov 26 03:58 .
drwxr-xr-x 18 vagrant vagrant 4096 Nov 25 22:24 ..
-rw-rw-r-- 1 vagrant vagrant 1013 Nov 25 06:22 add_list.c
-rw-rw-r-- 1 vagrant vagrant 232 Nov 25 00:38 AUTHORS
-rw-rw-r-- 1 vagrant vagrant 2307 Nov 26 03:21 awshell.h
-rw-rw-r-- 1 vagrant vagrant 3199 Nov 26 03:21 builtins.c
-rw-rw-r-- 1 vagrant vagrant 1448 Nov 26 03:21 exec.c
-rw-rw-r-- 1 vagrant vagrant 1737 Nov 25 06:24 free_hlp.c
-rw-rw-r-- 1 vagrant vagrant 1231 Nov 26 03:21 get_builtins.c
-rw-rw-r-- 1 vagrant vagrant 944 Nov 25 06:20 get_env.c
drwxrwxr-x 8 vagrant vagrant 4096 Nov 26 03:25 .git
-rw-rw-r-- 1 vagrant vagrant 907 Nov 25 06:16 itos.c
-rwxrwxr-x 1 vagrant vagrant 2168 Nov 25 00:38 man_1_simple_shell
-rw-rw-r-- 1 vagrant vagrant 311 Nov 25 06:17 _memcpy.c
-rw-rw-r-- 1 vagrant vagrant 1102 Nov 25 06:23 path_list.c
-rw-rw-r-- 1 vagrant vagrant 2089 Nov 26 03:21 print_helpers.c
-rw-rw-r-- 1 vagrant vagrant 1675 Nov 26 03:58 README.md
-rw-rw-r-- 1 vagrant vagrant 1562 Nov 26 03:21 shell.c
-rw-rw-r-- 1 vagrant vagrant 605 Nov 25 06:23 signal.c
-rw-rw-r-- 1 vagrant vagrant 1068 Nov 26 03:21 split_str.c
-rw-rw-r-- 1 vagrant vagrant 391 Nov 25 06:22 _strcat.c
-rw-rw-r-- 1 vagrant vagrant 732 Nov 25 06:18 _strchr.c
-rw-rw-r-- 1 vagrant vagrant 680 Nov 25 06:20 _strcmp.c
-rw-rw-r-- 1 vagrant vagrant 393 Nov 26 03:21 _strcspn.c
-rw-rw-r-- 1 vagrant vagrant 852 Nov 25 06:19 _strdup.c
-rw-rw-r-- 1 vagrant vagrant 202 Nov 25 06:22 _strlen.c
-rw-rw-r-- 1 vagrant vagrant 425 Nov 25 17:34 _strspn.c
-rw-rw-r-- 1 vagrant vagrant 1390 Nov 26 03:21 _strtok.c
-rw-rw-r-- 1 vagrant vagrant 1366 Nov 26 03:21 _which.c
Andres Lopez-profesor.de.ingles@aol.com Wiston Venera-wisvem@hotmail.com

