Mishell este un shell interactiv scris în Rust, proiectat pentru flexibilitate și extensibilitate. Oferă o abordare modernă a caracteristicilor clasice ale shell-urilor, fiind în același timp o bază pentru învățare și experimentare în dezvoltarea de shell-uri.
-
Pipe-uri și Redirecționări
Execută secvențe complexe de comenzi prin conectarea ieșirilor și intrărilor între comenzi sau redirecționarea fluxurilor către fișiere. Exemplu:
ls | grep "test" > results.txt
-
Variabile de Mediu Gestionează variabilele de mediu fără efort, cu suport pentru export, modificare și utilizare. Exemplu:
export PATH=/usr/bin:$PATH echo $PATH
-
Gestionarea Semnalelor
Răspunde la semnalele sistemului precum
Ctrl+C(terminare) șiCtrl+Z(suspendare). -
Personalizarea Promptului
Creează o experiență personalizată prin modificarea promptului pentru a include elemente precum numele utilizatorului, numele gazdei sau directorul curent.
-
Fișier de Configurare și Alias-uri
Încarcă configurații personalizate și definește comenzi rapide utilizând un fișier extern (ex.
.mishellrc). Exemplu:alias ll="ls -la"
-
Raportarea Erorilor
Oferă feedback clar pentru comenzi sau erori de sintaxă nevalide, cu stări de ieșire bine definite.
-
Completare Automată (Tab Completion)
Autocomplete pentru comenzi și nume de fișiere pentru o experiență mai fluentă.
-
Expansiune de Comenzi
Suport extins pentru sintaxe avansate precum
$()sau` `pentru executarea de comenzi în subshell. Exemplu:echo "Astăzi este $(date)"
-
Compilare și Rulare
Compilează Mishell folosind
cargo:cargo build --release ./mishell
-
Configurație
Creează un fișier
.mishellrcîn directorul tău principal pentru alias-uri și setări personalizate. -
Comenzi Suportate
- Pipe-uri și redirecționări:
|,>,< - Gestionarea variabilelor de mediu:
export,$VAR - Comenzi interne:
cd,exit,help
- Pipe-uri și redirecționări:
-
Scurtături
Ctrl+C: Întrerupe comanda curentă.Ctrl+D: Iese din shell.Tab: Completează automat comenzile (dacă este activat).
- Implementarea funcționalităților de bază (ex. pipe-uri, redirecționări, variabile de mediu).
- Extinderea la funcționalități extra, precum completarea automată și expansiunea comenzilor.
Contribuțiile sunt binevenite! Indiferent dacă rezolvi bug-uri, adaugi funcționalități sau îmbunătățești documentația, poți face un fork și trimite un pull request.
Mishell este software open-source licențiat sub Licența MIT.