Muitos têm me perguntado se estão preparados ou não para o Curso de Shell, então vou tentar tirar essa dúvida aqui.

Não é importante saber todas as opções de todos os comandos, mas sim ter a prática da programação, saber fazer um IF, um FOR, saber editar um script e executá-lo.

Como o curso será basicamente prático, escrevendo programas todos os dias, é essencial já estar habituado à rotina de editar/salvar/executar scripts e usar a linha de comando do Linux.

Como me preparar?

Quem tem a oportunidade, dê uma lida no livro de Shell do Julio Cezar Neves (www.brasport.com.br) e principalmente digite e teste os exemplos. A leitura dos Apêndices não é necessária.

Há dois tutoriais de Shell online que também podem ser usados. Novamente, digite os exemplos (NÃO COPIE E COLE!) para desenvolver a prática da programação.

Leitura Recomendada

Os documentos à seguir não são de maneira alguma obrigatórios, pois seu conteúdo será visto durante o curso. Mas para aqueles que gostam de ir adiantando as tarefas e têm tempo, o curso poderá ser melhor aproveitado:

Como saber se eu sei o básico?

Boa pergunta :)

Vamos fazer o seguinte. Aqui estão 3 exercícios que envolvem os conceitos básicos do shell como loop, condicional e manipulação de texto, bem como parâmetros, execução e linha de comando.

Se você conseguir fazê-los sozinho, você sabe o básico.

ZERADOR.SH
Recebe um número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo, numa mesma linha. Exemplo:
$ ./zerador.sh 5
5 4 3 2 1 0
$ ./zerador.sh 10
10 9 8 7 6 5 4 3 2 1 0

RELACAO.SH
Recebe dois números como parâmetro e mostra a relação entre eles. Exemplo:
$ ./relacao.sh 3 5
3 é menor 5
$ ./relacao.sh 5 3
5 é maior 3
$ ./relacao.sh 5 5
5 é igual 5

USERS.SH
Do arquivo /etc/passwd, mostra o usuário e o nome completo de cada usuário do sistema (campos 1 e 5) separados por um TAB.

Opcional: Não mostrar quando o nome completo é igual ao usuário, como em "root:x:0:0:root:/root:/bin/bash"

Exemplo:
$ ./users.sh
ftp     FTP User
nobody  Nobody
named   Domain name server
xfs     X Font Server
mysql   MySQL server
aurelio Aurelio Marinho Jargas



Para os meganerds: Todos os exercícios podem ser resolvidos com "oneliners" de menos de 80 caracteres no Bourne Shell (/bin/sh).

Voltar para a página da Apostila de Shell