O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
2. Palestrante
● Engenheiro de Computação pela FURG
● Analista de TI no Centro de Ciências
Computacionais – FURG
● Sóciofundador da Zetaflops – Computação de
Alto Desempenho
● Usuário Linux desde 2004
2
3. Conteúdo
● Filosofia dos sistemas Unix e como os
programas se comunicam
● O que é shell? O que é bash?
● Entrada e saída em bash
● Estruturas de controle no bash (for, if, while)
● Alguns utilitários interessantes: awk, head, tail,
sort, etc
3
6. Filosofia dos sistemas Unix
Armazene dados em arquivos de texto
● Cabível de edição manual
● Mais fácil escrever programas que manipulem
esses arquivos
6
10. Shell
● O Shell é o prompt de comando do Linux
● Ele lê o que o usuário digita, interpreta o
comando e o executa
● Como um Command do MSDOS, mas
melhorado
10
11. Shell Script
● Chamamos de Shell Script, um arquivo
contendo comandos do terminal, sob a forma
de um programa executável
11
12. Utilidade
● Executar tarefas repetidas no Shell
● Integração de tarefas complexas com cron
● Operações com múltiplos arquivos e diretórios
● Reaproveitamento do SEU tempo
12
13. Bash
O bash é um dos possíveis interpretadores
disponíveis no prompt de comando.
Geralmente é o mais usado e é o shell padrão
da maioria das distribuições Linux
Outras possibilidades: ksh, csh, etc
13
15. Criando um shell script
● Criar um arquivo de texto normal.
● A primeira linha do arquivo deve ser:
!#/bin/bash
A linha acima diz que o interpretador é o bash
● Salvar o arquivo
chmod +x meu_primeiro_script.bash
15
17. Observação
● A extensão é opcional, apenas facilita ao
usuário, a primeira linha do arquivo é que diz
quem vai interpretar o arquivo
● Alguns usam a extensão .sh, mas geralmente é
um arquivo bash (verificar antes de executar!)
17
18. Atribuição de variáveis
● Atribui valor a uma variável
a=1
Importante: A atribuição não pode ter espaços
nem antes nem depois da igualdade, senão o
Bash acusa um erro
18
20. Atribuição de variáveis
● Se você precisar que a variável fique acessível
em processos filho do shell atual é preciso usar
export
export OUTRO_SHELL=”ola shell”
20
21. Acessando variáveis
● Com exceção do let, para acessar uma variável
devemos adicionar $ na frente do nome da
mesma.
Ex:
numero=10
outro_numero=$numero
21
22. Mostrando dados na tela
● Para mostrar dados na tela existe o comando
echo
Ex: echo “ola publico”
● O mesmo com variáveis
● Ex: echo $a
22
23. Variáveis dentro de strings
● Para imprimir o valor de variáveis concatenado
com strings usados { e }
Ex:
str0=“string0”
echo “minha string é ${str0}”
● Mostra na tela “minha string é string0”
23
24. Leitura do teclado
read var_resposta
● O valor de var_resposta é tudo que o usuário
digitar, incluindo espaços
24
25. Testes
● O comando test realiza … testes
● Cada operação de test possui um parâmetro.
Por exemplo para testar se um arquivo existe o
parâmetro é “f”
Ex:
test f arquivo.txt
25
33. awk
● Linguagem de programação para manipulação
de strings
● Ex:
echo "1:2:3:4" | awk F : '{print $2}'
Mostra o segundo item da string, ou seja “2”,
usando o separador “:”
33
34. sed
● Substitui trechos de texto em arquivos
sed s/OLD/NEW/ FILE
sed s/admin/master/ /etc/group
34
36. uniq, sort, wc
● uniq: Retira linhas contíquas repetidas
uniq arquivo.txt
● sort: Ordena um arquivo
sort arquivo.txt
● wc: Conta palavras, linhas e caracteres de um
arquivo
wc l arquivo.txt (mostra as linhas)
36
37. head, tail, less
● Head: Mostra as primeiras linhas de um arquivo
head arquivo.txt
● Tail: Mostra as últimas linhas de um arquivo
tail arquivo.txt
● Less: Mostra o conteúdo de um arquivo de
forma paginada
less arquivo.txt
37
38. Mais comandos
● http://wiki.ubuntubr.org/ComandosBasicos Comandos
básicos e alguns um pouco mais avançados
● http://www.cyberciti.biz/tips/toplinuxmonitoringtools.htm
Para administradores de sistema
38