Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyShell

TinyShell is a minimal UNIX-style shell written in C as a fun side project. It mainly focuses on understanding system calls, process management, reading manual pages, and the basic structure and inner-workings of a shell enironment.

Features

  • Custom prompt: tinyshell>#
  • Forks and executes external commands with the execve() syscall with support for command arguments like /bin/ls -lh
  • Waits until the child process is done using the waitid() syscall
  • Built-in exit command for shell termination

Building

$ make

Debugging

$ make debug

Running

$ ./tinyshell
tinyshell># /bin/echo Hello, TinyShell!
Hello, TinyShell!
tinyshell># 

Philosophy

This project aims to demystify shell internals by building one from scratch using only core system calls and minimal dependencies, embracing the UNIX philosophy

About

A minimal UNIX-style shell

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages