Skip to content
/ lsh Public

Study to learn how a Unix shell works internally.

Notifications You must be signed in to change notification settings

MarcelFeo/lsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

🐚 LSH — Learning Shell in C

LSH (Learning Shell) é um shell Unix minimalista escrito em C, desenvolvido para fins educacionais com foco em Sistemas Operacionais, Programação de Sistemas e POSIX.

O projeto implementa funcionalidades básicas de um shell real (como Bash), incluindo execução de processos, built-ins, histórico de comandos e execução em background.


🚀 Funcionalidades

✅ Shell Core

  • Leitura de comandos do usuário
  • Tokenização (parser simples)
  • Execução de programas via fork() + execvp()
  • Controle de processos com waitpid()

🧩 Built-in Commands

Comando Descrição
cd <dir> Muda o diretório atual
pwd Mostra o diretório atual
echo <msg> Imprime texto
clear Limpa a tela
history Mostra histórico de comandos
help Lista comandos internos
exit Sai do shell

⚙️ Recursos Avançados

  • Prompt colorido com diretório atual
  • Histórico de comandos em memória
  • Execução em background (&)

🧠 Exemplo de Uso

lsh:/home/user$ pwd
/home/user

lsh:/home/user$ echo Hello World
Hello World

lsh:/home/user$ sleep 5 &
[bg] process started pid=12345

lsh:/home/user$ history
1 pwd
2 echo Hello World
3 sleep 5 &

About

Study to learn how a Unix shell works internally.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages