Back
Portfolio

minishell

Ricreazione di Bash

Bash Recreation

Informazioni sul Progetto

minishell è uno dei progetti più completi nel curriculum di 42, che richiede agli studenti di creare la propria shell Unix simile a bash. Questo progetto combina molti concetti di programmazione inclusi parsing, gestione dei processi, gestione dei segnali e implementazione di comandi built-in.

La shell deve gestire l'esecuzione dei comandi, pipe, redirezioni, variabili d'ambiente, gestione dei segnali (Ctrl-C, Ctrl-D, Ctrl-\), parsing delle virgolette e implementare diversi comandi built-in. È un eccellente esercizio di programmazione di sistema e comprensione di come funzionano le shell internamente.

About This Project

minishell is one of the most comprehensive projects in the 42 curriculum, requiring students to create their own Unix shell similar to bash. This project combines many programming concepts including parsing, process management, signal handling, and built-in command implementation.

The shell must handle command execution, pipes, redirections, environment variables, signal handling (Ctrl-C, Ctrl-D, Ctrl-\), quotes parsing, and implement several built-in commands. It's an excellent exercise in systems programming and understanding how shells work internally.

Competenze Acquisite

  • Implementazione di lexer e parser
  • Creazione e gestione dei processi (fork, execve, wait)
  • Gestione dei segnali (SIGINT, SIGQUIT)
  • Implementazione di redirezione I/O e pipe
  • Gestione delle variabili d'ambiente
  • Implementazione di comandi built-in (cd, echo, env, ecc.)
  • Parsing delle virgolette ed espansione
  • Gestione degli errori e casi limite
  • Collaborazione di team e gestione del progetto

Skills Acquired

  • Lexer and parser implementation
  • Process creation and management (fork, execve, wait)
  • Signal handling (SIGINT, SIGQUIT)
  • I/O redirection and pipe implementation
  • Environment variable management
  • Built-in command implementation (cd, echo, env, etc.)
  • Quote parsing and expansion
  • Error handling and edge cases
  • Team collaboration and project management

Visualizza il PDF del progetto

View project subject PDF

Apri PDF Open PDF Vedi su GitHub View on GitHub