SlideShare uma empresa Scribd logo
Bash
O poder da linha de comando!
Tchelinux.org - 2017
Sobre o palestrante
● Membro do Tchelinux desde 2009
● Servidor público federal desde 1999
● 24 anos de TI, passando por várias áreas,
● Inclusive SysAdmin entre 2001 e 2006 (o que atende ao foco desta palestra)
● A graduação ficou no meio do caminho (faltou $),
● Mas os cursos em algumas tecnologias continuaram…
● Cursando Téc. em Informática p/ Internet, IFSul Santana do Livramento
● Estudar, sempre! (mesmo que seja noutra área, não pare nunca…)
2
Agenda
1. Bash, o que é afinal?
2. Primeiros comandos
3. Oriente-se: Prompt, /home, pastas e PATH
4. Recursos e funcionalidades
5. Escrevendo scripts shell
6. Agendando um script (resumidamente)
1ª hora: Estes Slides
2ª parte: Scripting, direto no Terminal
3
Parte 1
O que é o Bash?
4
O que é o Bash?
● Bourne-again shell
● Shell - Interpretador de comandos
● Criado por Brian Fox (Projeto GNU) em 1989
● Shell mais utilizado em distribuições Linux
5
O que é Shell?
O shell é o "prompt" da linha de
comando do Unix e Linux, que recebe
os comandos digitados pelo usuário e
os executa.
O shell é aquele que aparece logo
após digitar-se a senha do usuário e
entrar na tela preta.
Ou na interface gráfica, ao clicar no
ícone do Terminal, Xterm ou Console.
6
Principais Shells
Bourne Shell
– Shell padrão do UNIX.
– Escrito por Stephen Bourne da Bell Labs, também chamado de Standard Shell
– Representação para UNIX sh
7
Principais Shells
Bourne-Again Shell
– Shell padrão do Linux
– 100 % compatível com o Bourne Shell, com comandos adicionais para Korn
Shell e C Shell.
– Criado por Brian Fox (Projeto GNU) em 1989
– Representação para Linux é bash
8
Principais Shells
Korn Shell
– Desenvolvido por David Korn da Bell Labs da AT&T.
– Atualização do Bourne Shell, com maior número de comandos
– Representação para o UNIX é ksh
9
Principais Shells
C Shell
– Desenvolvido por Bill Joy da Berkeley University
– Mais usado nos BSD
10
Parte 2
Primeiros comandos
11
Comandos ls, pwd e cd...
$ ls (lista arquivos e pastas de um diretório/pasta)
$ ls -l
$ pwd (mostra a pasta/diretório atual)
$ cd Downloads (muda de pasta/diretório)
$ cd .. (muda para o diretório/pasta pai ou superior)
12
Mais alguns comandos...
$ cat arquivo (mostra o conteúdo do arquivo)
$ head arquivo (mostra as 10 primeiras linhas de do arquivo)
$ tail arquivo (mostra as 10 últimas linhas de do arquivo)
$ cp arquivo1 arquivo2 (copia um arquivo)
$ mv arquivo1 arquivo2 (renomeia um arquivo, ou move, se mudar a pasta)
13
Parte 3
Oriente-se:
Prompt, /home, pastas e o PATH
14
AVISO - O prompt do ROOT
Prompt da linha de comando de um usuário normal: $
meunome@meuhost:~$
Prompt da linha de comando de um ROOT: # (ou sudo)
meunome@meuhost:~# (muita atenção, evite usar este prompt )
meunome@meuhost:~$ sudo comando (o sudo equivale ao #)
15
/home/meunome
meunome@meuhost:~$ (aqui o “~” representa a pasta home do usuario)
meunome@meuhost:~$ pwd (“pwd” mostra a pasta onde estamos)
/home/meunome
16
Pastas e o PATH
PATH = caminho
Há muitas pastas no seu host, mas apenas algumas são pesquisadas quando
digitamos um comando.
Estas pastas constam da variável PATH
$ echo $PATH
/
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-
oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
17
Parte 4
Recursos e Funcionalidades
18
Recursos e Funcionalidades
● Para linha de comando
● Para scripting
19
Recursos para linha de comando
● Auto-complementação
● Comandos embutidos/encadeados (já em linguagem de script)
● Suporte a variáveis
● Controle de fluxo
● Controle de loops
● Redirecionamento de Saídas
● Pedindo ajuda
20
Recurso de Auto-complementação
Ao digitar o nome do arquivo, com um TAB o shell completa automaticamente:
$ cat arq<TAB>
$ cat arquivo
E com caracteres especiais também:
$ cat arq* (lista todos arquivos que iniciam com “arq”)
(há opções de máscaras de busca, mas * é a mais utilizada)
21
Comandos embutidos/encadeados
Seu primeiro “tubo”, teste o seguinte na pasta Home do seu usuario:
$ ls | grep Down
Downloads (ele listará apenas esta pasta)
Use o “|” (pipe, “tubo” em português) para conectar comandos.
22
Variáveis
$ NOME=Sandro
$ echo $NOME
$ NOME=”${NOME} Custodio”
$ echo $NOME
$ unset NOME
$ echo $NOME
23
Controle de Fluxo
If CONDICAO
then
comando
else
comando
fi
24
case "$1" in
1) echo "Texto 1"
;;
2) echo "Texto 2"
;;
*) echo "Outras opções..."
;;
esac
Controle de Loops
while TESTE
do
comandos
done
25
for i in 1 2 3 4
do
comandos
done
for i in $( ls ); do
echo item: $i
done
Redirecionamento de Saídas
# descrição
0 Standard Input / Entrada Padrão
1 Standard Output / Saída Padrão
2 Output Error / Saída de Erro
$ ls arq > saida_normal.txt 2> saida_de_erro.txt
26
Pedindo ajuda
Documentação do próprio sistema:
$ comando --help (ajuda resumida)
$ info arquivo (mostra o tipo de arquivo)
$ man comando (manual oficial do comando, acostume-se com o “man”)
27
Parte 5
Escrevendo scripts shell
28
Scripting
● Recursos da linha de comando: Comandos encadeados, variáveis, fluxo,
loops, etc.
● Editando o script (1º script e editores disponíveis)
● Executando o script (chmod e caminho)
● Parâmetros
● Funções
● Parâmetros em funções
● Agendamento/automação
29
Escolhendo o Editor
O vi e nano são os editores padrão que vem instalados em todas as distros. Se
estiver instalado, o vim é outra opção.
vi - editor original dos Unix existe até o hoje no Linux, é muito peculiar e exige um
curso rápido para que possa ser minimamente utilizado. Os comandos de menu
são acionados por “:”. ( $ vi nome_do_script )
nano - edição intuitiva, melhor para iniciantes, com comandos de menu baseados
em combinações do Control (^tecla) ( $ nano nome_do_script )
vim - vi improved, basicamente, o vi melhorado ( $ vim nome_do_script )
30
Estrutura de um script
#!/bin/bash (1ª linha, o interpretador de comandos)
# este é um comentário
comando1
comando2
31
Executando o script
$ nome_do_script
nome_do_script: command not found
Para o erro acima, Indique a pasta local com “./”:
$ ./nome_do_script
32
Executando o script
$ ./nome_do_script
bash: ./nome_do_script: Permission denied
Solução para o erro acima:
$ chmod +x nome_do_script
33
Parâmetros
$ ./meuscript 1500 “Pedro Alvares Cabral”
Script:
#!/bin/bash
echo O Brasil foi descoberto em $1 por $2.
Saída: O Brasil foi descoberto em 1500 por Pedro Alvares Cabral.
34
Funções
Código mais limpo
Reaproveitamento de código
Melhor organização e manutenção do código
function bla {
comandos
}
35
Parâmetros em Funções
function mostra {
echo $2 $3 $1
}
mostra 1500 “O Brasil foi descoberto por” “Pedro Alvares Cabral em”
36
Ponderações...
● Comandos do Linux podem ser usados em scripts
○ ls, cd, mkdir, rmdir, ps, df, more, less, cat, date, cut, grep, sed, awk, etc.
● Praticamente todos os comandos não-interativos podem ser usados
● Encadeamento de comandos através de pipes
● Outros scripts e programas podem ser chamados por scripts
● Agendamento/automação (crontab)
37
Parte 6
Agendamento/automação
38
Agendamento/automação (bem resumidamente)
O que é a crontab? CRON é o Serviço de Agendamento de execução de
scripts e programas. Vem de cronológico, de “tempo”.
man crontab
crontab -l
crontab -e
39
Dúvidas?
Sugiro que fiquem para a segunda parte:
Scripting, fazendo scripts.
40
Sandro Custódio
sandrocustodio.blogspot.com
motofronteira.blogspot.com
linkedin.com/in/sandro-custodio
sandrocustodio@gmail.com
+55 55 99935 4273
Agradecimento a Leonardo Vaz, colega do Tchelinux, que iniciou a edição desta apresentação e ajudou na pesquisa de material.
41

Mais conteúdo relacionado

Mais procurados

Shell script
Shell scriptShell script
Shell script
Denis Costa
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxo
Frederico Madeira
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
Hugo Maia Vieira
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
Luís Eduardo
 
Shell script
Shell scriptShell script
Shell script
Carlos Melo
 
Curso shell
Curso shellCurso shell
Curso shell
cesarvianna
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
brunobione
 
Manual comandos
Manual comandosManual comandos
Manual comandos
Paulo Rijo
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
Wellington Oliveira
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
Marcelo Barros de Almeida
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
PeslPinguim
 
Shell Script
Shell ScriptShell Script
Shell Script
Wellington Oliveira
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power tools
Armando Reis
 
Dicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do LinuxDicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do Linux
Wellington Oliveira
 
Shell Script
Shell ScriptShell Script
Shell Script
Wellington Oliveira
 
Guia com mais de 500 comandos do linux explicados computeiro da depressão
Guia com mais de 500 comandos do linux explicados   computeiro da depressãoGuia com mais de 500 comandos do linux explicados   computeiro da depressão
Guia com mais de 500 comandos do linux explicados computeiro da depressão
Jesser Martins Medeiros
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
Reinaldo Lima
 
Introdução ao bash
Introdução ao bashIntrodução ao bash
Introdução ao bash
André Leon S. Gradvohl
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
Tiago
 

Mais procurados (19)

Shell script
Shell scriptShell script
Shell script
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxo
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Shell script
Shell scriptShell script
Shell script
 
Curso shell
Curso shellCurso shell
Curso shell
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Manual comandos
Manual comandosManual comandos
Manual comandos
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power tools
 
Dicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do LinuxDicas e Princípios Básicos do Linux
Dicas e Princípios Básicos do Linux
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Guia com mais de 500 comandos do linux explicados computeiro da depressão
Guia com mais de 500 comandos do linux explicados   computeiro da depressãoGuia com mais de 500 comandos do linux explicados   computeiro da depressão
Guia com mais de 500 comandos do linux explicados computeiro da depressão
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Introdução ao bash
Introdução ao bashIntrodução ao bash
Introdução ao bash
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 

Semelhante a Bash, o poder da linha de comando! - Tchelinux.org 2017

Linux shell
Linux shellLinux shell
Linux shell
Frederico Madeira
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]
Anderson Lago
 
Oficina shell
Oficina shellOficina shell
Oficina shell
apsegundo
 
Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves Hax
Tchelinux
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
Vinícius Hax
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
webexpertise
 
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdfAULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
TarcisioCeolinJunior
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
Ivan Ribeiro
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
Jorge Ávila Miranda
 
Lpi+102
Lpi+102Lpi+102
Lpi+102
Marc Meyer
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
Jorge Ávila Miranda
 
Unidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao ShellUnidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao Shell
Juan Carlos Lamarão
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bash
Sérgio Silva
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
TzveDyor
 
Introdução aos comandos Linux
Introdução aos comandos LinuxIntrodução aos comandos Linux
Introdução aos comandos Linux
Carlos Quadros
 
shell bash Fpar aula6
shell bash Fpar aula6shell bash Fpar aula6
shell bash Fpar aula6
Geomar Matias Lima
 
Comandos do Linux
Comandos do LinuxComandos do Linux
Comandos do Linux
John Godoi
 
Trabalho so m4 rui faria
Trabalho so m4   rui fariaTrabalho so m4   rui faria
Trabalho so m4 rui faria
RuiFaria38
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!
Fábio Fernando
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
Leo Amorim
 

Semelhante a Bash, o poder da linha de comando! - Tchelinux.org 2017 (20)

Linux shell
Linux shellLinux shell
Linux shell
 
(03) shell e comandos basicos[1]
(03) shell e comandos basicos[1](03) shell e comandos basicos[1]
(03) shell e comandos basicos[1]
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves Hax
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
 
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdfAULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
AULA-3-LINUX-COMANDOS-BASICOS -atualizado 20MAI2014.pdf
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Lpi+102
Lpi+102Lpi+102
Lpi+102
 
Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Unidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao ShellUnidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao Shell
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bash
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
Introdução aos comandos Linux
Introdução aos comandos LinuxIntrodução aos comandos Linux
Introdução aos comandos Linux
 
shell bash Fpar aula6
shell bash Fpar aula6shell bash Fpar aula6
shell bash Fpar aula6
 
Comandos do Linux
Comandos do LinuxComandos do Linux
Comandos do Linux
 
Trabalho so m4 rui faria
Trabalho so m4   rui fariaTrabalho so m4   rui faria
Trabalho so m4 rui faria
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 

Bash, o poder da linha de comando! - Tchelinux.org 2017

  • 1. Bash O poder da linha de comando! Tchelinux.org - 2017
  • 2. Sobre o palestrante ● Membro do Tchelinux desde 2009 ● Servidor público federal desde 1999 ● 24 anos de TI, passando por várias áreas, ● Inclusive SysAdmin entre 2001 e 2006 (o que atende ao foco desta palestra) ● A graduação ficou no meio do caminho (faltou $), ● Mas os cursos em algumas tecnologias continuaram… ● Cursando Téc. em Informática p/ Internet, IFSul Santana do Livramento ● Estudar, sempre! (mesmo que seja noutra área, não pare nunca…) 2
  • 3. Agenda 1. Bash, o que é afinal? 2. Primeiros comandos 3. Oriente-se: Prompt, /home, pastas e PATH 4. Recursos e funcionalidades 5. Escrevendo scripts shell 6. Agendando um script (resumidamente) 1ª hora: Estes Slides 2ª parte: Scripting, direto no Terminal 3
  • 4. Parte 1 O que é o Bash? 4
  • 5. O que é o Bash? ● Bourne-again shell ● Shell - Interpretador de comandos ● Criado por Brian Fox (Projeto GNU) em 1989 ● Shell mais utilizado em distribuições Linux 5
  • 6. O que é Shell? O shell é o "prompt" da linha de comando do Unix e Linux, que recebe os comandos digitados pelo usuário e os executa. O shell é aquele que aparece logo após digitar-se a senha do usuário e entrar na tela preta. Ou na interface gráfica, ao clicar no ícone do Terminal, Xterm ou Console. 6
  • 7. Principais Shells Bourne Shell – Shell padrão do UNIX. – Escrito por Stephen Bourne da Bell Labs, também chamado de Standard Shell – Representação para UNIX sh 7
  • 8. Principais Shells Bourne-Again Shell – Shell padrão do Linux – 100 % compatível com o Bourne Shell, com comandos adicionais para Korn Shell e C Shell. – Criado por Brian Fox (Projeto GNU) em 1989 – Representação para Linux é bash 8
  • 9. Principais Shells Korn Shell – Desenvolvido por David Korn da Bell Labs da AT&T. – Atualização do Bourne Shell, com maior número de comandos – Representação para o UNIX é ksh 9
  • 10. Principais Shells C Shell – Desenvolvido por Bill Joy da Berkeley University – Mais usado nos BSD 10
  • 12. Comandos ls, pwd e cd... $ ls (lista arquivos e pastas de um diretório/pasta) $ ls -l $ pwd (mostra a pasta/diretório atual) $ cd Downloads (muda de pasta/diretório) $ cd .. (muda para o diretório/pasta pai ou superior) 12
  • 13. Mais alguns comandos... $ cat arquivo (mostra o conteúdo do arquivo) $ head arquivo (mostra as 10 primeiras linhas de do arquivo) $ tail arquivo (mostra as 10 últimas linhas de do arquivo) $ cp arquivo1 arquivo2 (copia um arquivo) $ mv arquivo1 arquivo2 (renomeia um arquivo, ou move, se mudar a pasta) 13
  • 15. AVISO - O prompt do ROOT Prompt da linha de comando de um usuário normal: $ meunome@meuhost:~$ Prompt da linha de comando de um ROOT: # (ou sudo) meunome@meuhost:~# (muita atenção, evite usar este prompt ) meunome@meuhost:~$ sudo comando (o sudo equivale ao #) 15
  • 16. /home/meunome meunome@meuhost:~$ (aqui o “~” representa a pasta home do usuario) meunome@meuhost:~$ pwd (“pwd” mostra a pasta onde estamos) /home/meunome 16
  • 17. Pastas e o PATH PATH = caminho Há muitas pastas no seu host, mas apenas algumas são pesquisadas quando digitamos um comando. Estas pastas constam da variável PATH $ echo $PATH / usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games :/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8- oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 17
  • 18. Parte 4 Recursos e Funcionalidades 18
  • 19. Recursos e Funcionalidades ● Para linha de comando ● Para scripting 19
  • 20. Recursos para linha de comando ● Auto-complementação ● Comandos embutidos/encadeados (já em linguagem de script) ● Suporte a variáveis ● Controle de fluxo ● Controle de loops ● Redirecionamento de Saídas ● Pedindo ajuda 20
  • 21. Recurso de Auto-complementação Ao digitar o nome do arquivo, com um TAB o shell completa automaticamente: $ cat arq<TAB> $ cat arquivo E com caracteres especiais também: $ cat arq* (lista todos arquivos que iniciam com “arq”) (há opções de máscaras de busca, mas * é a mais utilizada) 21
  • 22. Comandos embutidos/encadeados Seu primeiro “tubo”, teste o seguinte na pasta Home do seu usuario: $ ls | grep Down Downloads (ele listará apenas esta pasta) Use o “|” (pipe, “tubo” em português) para conectar comandos. 22
  • 23. Variáveis $ NOME=Sandro $ echo $NOME $ NOME=”${NOME} Custodio” $ echo $NOME $ unset NOME $ echo $NOME 23
  • 24. Controle de Fluxo If CONDICAO then comando else comando fi 24 case "$1" in 1) echo "Texto 1" ;; 2) echo "Texto 2" ;; *) echo "Outras opções..." ;; esac
  • 25. Controle de Loops while TESTE do comandos done 25 for i in 1 2 3 4 do comandos done for i in $( ls ); do echo item: $i done
  • 26. Redirecionamento de Saídas # descrição 0 Standard Input / Entrada Padrão 1 Standard Output / Saída Padrão 2 Output Error / Saída de Erro $ ls arq > saida_normal.txt 2> saida_de_erro.txt 26
  • 27. Pedindo ajuda Documentação do próprio sistema: $ comando --help (ajuda resumida) $ info arquivo (mostra o tipo de arquivo) $ man comando (manual oficial do comando, acostume-se com o “man”) 27
  • 29. Scripting ● Recursos da linha de comando: Comandos encadeados, variáveis, fluxo, loops, etc. ● Editando o script (1º script e editores disponíveis) ● Executando o script (chmod e caminho) ● Parâmetros ● Funções ● Parâmetros em funções ● Agendamento/automação 29
  • 30. Escolhendo o Editor O vi e nano são os editores padrão que vem instalados em todas as distros. Se estiver instalado, o vim é outra opção. vi - editor original dos Unix existe até o hoje no Linux, é muito peculiar e exige um curso rápido para que possa ser minimamente utilizado. Os comandos de menu são acionados por “:”. ( $ vi nome_do_script ) nano - edição intuitiva, melhor para iniciantes, com comandos de menu baseados em combinações do Control (^tecla) ( $ nano nome_do_script ) vim - vi improved, basicamente, o vi melhorado ( $ vim nome_do_script ) 30
  • 31. Estrutura de um script #!/bin/bash (1ª linha, o interpretador de comandos) # este é um comentário comando1 comando2 31
  • 32. Executando o script $ nome_do_script nome_do_script: command not found Para o erro acima, Indique a pasta local com “./”: $ ./nome_do_script 32
  • 33. Executando o script $ ./nome_do_script bash: ./nome_do_script: Permission denied Solução para o erro acima: $ chmod +x nome_do_script 33
  • 34. Parâmetros $ ./meuscript 1500 “Pedro Alvares Cabral” Script: #!/bin/bash echo O Brasil foi descoberto em $1 por $2. Saída: O Brasil foi descoberto em 1500 por Pedro Alvares Cabral. 34
  • 35. Funções Código mais limpo Reaproveitamento de código Melhor organização e manutenção do código function bla { comandos } 35
  • 36. Parâmetros em Funções function mostra { echo $2 $3 $1 } mostra 1500 “O Brasil foi descoberto por” “Pedro Alvares Cabral em” 36
  • 37. Ponderações... ● Comandos do Linux podem ser usados em scripts ○ ls, cd, mkdir, rmdir, ps, df, more, less, cat, date, cut, grep, sed, awk, etc. ● Praticamente todos os comandos não-interativos podem ser usados ● Encadeamento de comandos através de pipes ● Outros scripts e programas podem ser chamados por scripts ● Agendamento/automação (crontab) 37
  • 39. Agendamento/automação (bem resumidamente) O que é a crontab? CRON é o Serviço de Agendamento de execução de scripts e programas. Vem de cronológico, de “tempo”. man crontab crontab -l crontab -e 39
  • 40. Dúvidas? Sugiro que fiquem para a segunda parte: Scripting, fazendo scripts. 40
  • 41. Sandro Custódio sandrocustodio.blogspot.com motofronteira.blogspot.com linkedin.com/in/sandro-custodio sandrocustodio@gmail.com +55 55 99935 4273 Agradecimento a Leonardo Vaz, colega do Tchelinux, que iniciou a edição desta apresentação e ajudou na pesquisa de material. 41

Notas do Editor

  1. Imagens Computadores Antigos e Teclado Binario.
  2. Bourne-again shell = falar dos outros Shell tbm Interpretador de comandos = mostar imagens de micros antigos e do teclado binário Criado por Brian Fox (Projeto GNU) em 1989 = Shell mais utilizado em distribuições Linux =
  3. Auto-complementação = Tab / Comandos embutidos = ls, cd, etc./ Linguagem de script embutida = estruturas Suporte a variáveis = set / Controle de fluxo = exit, break / Controle de loops = for, while / Funções = function
  4. Auto-complementação = Tab / Comandos embutidos = ls, cd, etc./ Linguagem de script embutida = estruturas Suporte a variáveis = set / Controle de fluxo = exit, break / Controle de loops = for, while / Funções = function
  5. mostrar exemplos
  6. mostrar exemplos