Welcome to Minishell! This is a C project that aims to create a simple shell program, providing a command-line interface where users can execute commands and manage processes.
- Command execution: Execute commands entered by the user, including built-in commands and external programs.
- Built-in commands: Support for common shell built-in commands such as
cd
,pwd
,echo
, andexit
. - Input/output redirection: Allow input/output redirection using
<
and>
operators. - Pipeline and command chaining: Enable the execution of commands in a pipeline or chain using
|
and;
operators. - Environment variables: Support for managing environment variables, including setting, getting, and exporting variables.
- Signal handling: Proper handling of signals, including Ctrl+C (SIGINT) and Ctrl+Z (SIGTSTP).
- Job control: Basic job control features, including background execution and managing background/foreground processes.
To compile and run Minishell on your local machine, follow these steps:
- Clone the repository:
- Navigate to the project directory:
- Install the
readline
library: - Compile the code using a C compiler and link with the
readline
library: - Run the Minishell program:
- You can now start entering commands and interacting with the shell.
Minishell supports the following built-in commands:
cd <directory>
: Change the current working directory.pwd
: Print the current working directory.echo <message>
: Print the specified message.exit
: Exit the shell program.
Additional shell features such as input/output redirection, pipeline execution, environment variable management, and job control can be used as part of the command line.
Contributions are welcome! If you would like to contribute to Minishell, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear and descriptive messages.
- Push your changes to your forked repository.
- Submit a pull request, explaining your changes and why they should be merged.
Make sure to customize the content to fit your specific project details. Provide clear instructions on how to install the readline
library, compile and run the program, explain the available built-in commands and features, and include a contribution guide and contact information for users who want to get in touch with you.