A simple Unix command line interpreter as a final first quarter project.
Create a simple version of the Unix command line interpreter, with certain system calls allowed.
Is a command line interpreter that executes commands read from standard input.
- access (man 2 access)
- chdir (man 2 chdir)
- close (man 2 close)
- closedir (man 3 closedir)
- execve (man 2 execve)
- exit (man 3 exit)
- _exit (man 2 _exit)
- fflush (man 3 fflush)
- fork (man 2 fork)
- free (man 3 free)
- getcwd (man 3 getcwd)
- getline (man 3 getline)
- getpid (man 2 getpid)
- isatty (man 3 isatty)
- kill (man 2 kill)
- malloc (man 3 malloc)
- open (man 2 open)
- opendir (man 3 opendir)
- perror (man 3 perror)
- read (man 2 read)
- readdir (man 3 readdir)
- signal (man 2 signal)
- stat (__xstat) (man 2 stat)
- lstat (__lxstat) (man 2 lstat)
- fstat (__fxstat) (man 2 fstat)
- strtok (man 3 strtok)
- wait (man 2 wait)
- waitpid (man 2 waitpid)
- wait3 (man 2 wait3)
- wait4 (man 2 wait4)
- write (man 2 write)
-
_signal - Checks if a signal has been input.
-
read_line - Read the entered arguments.
-
tokenize - Parses the arguments into tokens.
-
get_env - Getting the $PATH.
-
check_path - Check if the file is in the path.
-
execute - Check if the command entered is a built in or not.
-
builtins - Default kernel commands.
-
launch - Check if the command entered is in the $PATH.
-
_fork - Create a new process to execute the command entered.
-
_error - Print the standard error.
-
_strncmp - Compare two strings in a specific range
-
_strcat - Concatenates two strings.
-
_strcmp - Compares two strings.
-
_strcpy - Copies the string.
-
_strlen - Counts string chars.
You can compile the project "printf" by do the following command:
gcc -Wall -Werror -Wextra -pedantic *.c -o hsh
./hsh
Interactive mode:
$ ls
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AUTHORS _fork.c auxiliar_functions.c check_path.c
get_env.c launch.c man_1_simple_shell simple_shell
README.md _signal.c builtins.c execute.c holberton.h
main.c read_line.c tokenize.c
---------------------------------------------------------
$ /bin/ls
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AUTHORS _fork.c auxiliar_functions.c check_path.c
get_env.c launch.c man_1_simple_shell simple_shell
README.md _signal.c builtins.c execute.c holberton.h
main.c read_line.c tokenize.c
Non interactive mode:
echo "/bin/ls" | ./hsh
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AUTHORS _fork.c auxiliar_functions.c check_path.c
get_env.c launch.c man_1_simple_shell simple_shell
README.md _signal.c builtins.c execute.c holberton.h
main.c read_line.c tokenize.c
To enter the manual use the following code:
man -l man_1_simple_shell