Este é um interpretador de comandos Shell desenvolvido em C, com o objetivo de fornecer funcionalidades básicas de um terminal.
- Heitor Scheidt
- Lucas Cicconi
- Vinicius Hardy
- Rafael Waiti
O Shell é capaz de:
-
Receber comandos:
- Via terminal (Interativamente)
- Por um batch de comandos em arquivo
- Exemplo de uso:
user@computer:~$ ./program input_example.txt
- Exemplo de uso:
-
Interpretar cada comando e decidir se é um comando interno (built-in) ou um programa externo.
-
Executar cada comando em um novo processo filho.
-
Comandos Internos (Built-in)
exit
Finaliza o Shell.
cat [OPÇÕES] [ARQUIVO]
Lista o conteúdo do(s) diretório(s)
OPÇÕES
-h Lista os comandos permitidos e utilização
ARQUIVO
<CAMINHO DO ARQUIVO>
ls [OPÇÕES]... [DIRETÓRIO]...
Lista o conteúdo do(s) diretório(s)
OPÇÕES
-a Lista todos os diretórios
-l Lista os diretórios com mais informações
-h Lista os comandos permitidos e utilização
DIRETÓRIO
<CAMINHO DO DIRETÓRIO>
cd [CAMINHO]
Muda o diretório de trabalho.
CAMINHO
<CAMINHO DO DIRETÓRIO>
path [CAMINHO]...
Define caminhos para busca de executáveis.
CAMINHO
<CAMINHO DO DIRETÓRIO>
O Shell trata condições de erro e imprime mensagens ao usuário.
Os argumentos dos comandos são separados por espaços. Não é necessário se preocupar com caracteres de escape ou argumentos com espaços entre aspas.
- Clone do cat: O binário cat lê o conteúdo do arquivo no argumento e o escreve na saída padrão ou com a extensão > para criar um novo arquivo com o conteúdo.
- Clone do ls: O binário ls lista o conteúdo do diretório atual, suportando os parâmetros -l e -a.
- Redirecionamento de Saída: A saída dos comandos pode ser redirecionada para um arquivo.
- Comandos em Paralelo: Vários comandos separados por & são executados de forma concorrente, em processos separados.
Para compilar o projeto, execute o Makefile fornecido.
make ./program [OPÇÕES]
OPÇÕES
all Builda com as libs personalizadas (ls, cat)
clean Deleta arquivos