Skip to content

Minishell is a simplified UNIX shell implemented in C. It supports basic shell functionalities like cd, export, wildcard expansion, and more.

License

Notifications You must be signed in to change notification settings

emartinez-dev/minishell

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

Description

Minishell is a simplified UNIX shell implemented in C. It supports basic shell functionalities like cd, export, wildcard expansion, and more.

Table of Contents

Features

  • Built-in commands: cd, export, env, etc.
  • Environment variable expansion
  • Wildcard expansion
  • Error handling
  • Command execution
  • Signal handling

Installation

Requirements

  • GCC 9.0+
  • readline 8.2
  • Linux/MacOS or Windows Subsystem for Linux

Build and Compile

git clone git@github.com:emartinez-dev/minishell.git
cd Minishell
make

Usage

Run the shell with:

./minishell

Structure

Directories and Files

  • include/: Header files.
  • src/: Source files.
    • builtins/: Built-in shell commands.
    • executor/: Command execution logic.
    • expander/: String expansion logic.
    • parser/: Shell parsing logic.
    • prompt/: Prompt display logic.
    • signals/: Signal handling.
    • utils/: Utility functions.
    • wildcard/: Wildcard expansion logic.

Makefile

Run make to compile the Minishell executable. Additional Makefile targets:

  • clean: Removes all compiled object files.
  • fclean: Removes both compiled object files and the executable.
  • re: Runs fclean and compiles the project again.

Contributing

  1. Fork the project.
  2. Create your feature branch: git checkout -b feature/fooBar
  3. Commit your changes: git commit -am 'Add fooBar'
  4. Push to the branch: git push origin feature/fooBar
  5. Open a pull request.

License

This project is licensed under The Unlicense - see the LICENSE.md file for details.

Contact

Created by Enrique Martínez and Juan A. García - feel free to contact us!

About

Minishell is a simplified UNIX shell implemented in C. It supports basic shell functionalities like cd, export, wildcard expansion, and more.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.4%
  • Makefile 3.6%