Um mini shell escrito em Go — simples, poderoso, extensível.
Futuro lar do
oh-my-gosh✨
Gosh é um shell minimalista implementado em Go, com objetivo educacional e prático, projetado para te dar controle total sobre o terminal enquanto explora os bastidores de sistemas operacionais, processos e sinais.
- Leitura de comandos linha a linha (REPL)
- Execução de comandos externos simples (
ls,echo, etc) - Arquitetura modular (parser, executor, etc)
gosh/
├── cmd/
│ └── gosh.go # entrada da aplicação
├── internal/
│ ├── parser/ # parsing simples (tokens)
│ └── executor/ # execução de comandos externos
├── go.mod
└── README.mdgit clone https://github.com/seu-usuario/gosh.git
cd gosh
go run ./cmd/gosh.go- Execução de comandos externos
- Comandos internos (
cd,exit) - Pipes (
|) - Redirecionamento (
>,<,>>) - Execução em background (
&) - Sinais (
SIGINT,SIGTSTP, etc) - Job Control (
jobs,fg,bg,kill) - Histórico de comandos (
~/.gosh_history) - Prompt customizável (usuário, host, path)
- Autocompletar básico (TAB)
- Modo script
.goshrc
Uma suíte de extensões, temas e plugins inspirada no oh-my-zsh.
Este projeto cobre:
- Processos e fork/exec em Unix
- Sinais e controle de jobs
- Parsers e tokenização
- Goroutines, canais, sistema de arquivos
- Go idiomático e modular
MIT © Felipe Fernandes