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.
- Curso de Shell Online: Curso em várias aulas sobre Shell.
- Programação em Bourne-Again Shell: Tutorial de Bash.
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:
- Caracteres de Controle: Artigo curto sobre caracteres de controle.
- CGI em Shell Script: Tutorial sobre programação em CGI usando Shell.
- Dialog --tudo: Tutorial sobre o Dialog.
- Expressões Regulares: Livro sobre Expressões Regulares.
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).
