curso de linux - petcocelinux.files.wordpress.com€¦ · shell script comando: $ seq imprime a...

31
Curso de Linux Aula 5 Utilidades do Shell e scripts Lucas Ricardo e Enrico Manfron [email protected]

Upload: others

Post on 16-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Curso de LinuxAula 5

Utilidades do Shell e scripts

Lucas Ricardo e Enrico [email protected]

Page 2: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

revisÃO

Page 3: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptloops condicionais (FOR):

➔ for VARIAVEL in VALOR_1,VALOR_2,...,VALOR_N;do

AÇÕES done

Page 4: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptloops condicionais (for):

➔ for i in {10..0}; do echo “$i” done

Page 5: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell Scriptcomando:

➔ $ seq <limite_1> <salto> <limite_2>◆ Imprime a mensagem na tela uma sequencia de numeros desde

limite um até limite 2 pulando n números de acordo com o salto.➔ for i in $(seq 1 5 100);

do echo “$i”

done

Page 6: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptloops condicionais (FOR):

➔ Outro for:

➔ for (( i = 0; i < 10; i++ )); doAções

done

Page 7: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptloops condicionais (FOR):

➔ for VARIAVEL in $*;do

AÇÕES done

Page 8: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptloops condicionais (whille):

➔ while [ CONDICAO ]; do AÇÕES done

Page 9: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

shell scriptfunções:

➔ nome_funcao() { AÇÕES}

Page 10: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

customizando osistema

Page 11: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemavariáveis de ambiente

➔ Variáveis que o sistema utiliza para guiar operações internas◆ Especifica opções do sistema ◆ São individuais para cada Console (“Terminal”)

Page 12: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemavariáveis de ambiente

➔ $ set

◆ Mostra as variáveis do seu usuário

➔ $ echo $NOME

◆ Mostra o valor de uma variável específica

➔ $ Export◆ Muda o valor da variável no sistema

Page 13: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemavariáveis de ambiente

➔ Exemplo:$ export TESTE=123456$ echo $TESTE$ set | grep TESTE

Page 14: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ A localização do seu sistema◆ Teste o comando locale◆ Ele mostra a sua “localização”◆ São os formatos e tipos que o seu sistema utiliza.

➔ LANG◆ Idioma do sistema

➔ LC_MESSAGES◆ Idioma das mensagens do sistema

➔ LC_ALL◆ Configura todas de uma vez para o padrão estabelecido

Page 15: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ Podemos modificar o idioma do nosso computador◆ Variável LANG

Exemplo: $ export LANG=pt_BR:pt_PT:C◆ “Dois pontos” :

● Usamos para concatenar valores e conceder opções ao sistema● Usado em qualquer variável

◆ C:● Caso os idiomas “falhem”, o sistema adota o seu idioma padrão.

Page 16: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ Para definir as variáveis eternamente!◆ Eternamente = Até trocar de computador!

➔ Edição dos arquivos de profile:➔ Arquivos de profile(perfil) são os arquivos que customizam o

sistema previamente, de acordo com o usuário logado. São eles:◆ .bash_profile◆ .bashrc◆ .profile◆ .bash_login

Page 17: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ Quando iniciamos o SO, o sistema executa os comandos nestes arquivos seguindo uma ordem:

1. /etc/profile2. .bash_profile3. .bash_login4. .profile

● ~/.bashrc - Customização do console apenas, não necessita de login.

Page 18: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ /etc/profile:◆ Arquivo com os comandos que são executados para todos os usuários no

momento do login◆ Somente o root pode alterá-lo◆ Esse arquivo é lido antes dos arquivos de configurações pessoal ◆ Ele trata o perfil de todos os usuários

Page 19: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Customizando o sistemaModificando o idioma do sistema

➔ .bash_rc:◆ Arquivo de configurações pessoais◆ Armazena suas customizações e efetiva elas em todos os consoles abertos

pelo usuário do sistema

Page 20: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Coisas úteis

Page 21: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptoPeradores:

➔ $ + ◆ Adição

➔ $ - ◆ subtração

➔ $ * ◆ Multiplicação

Page 22: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptoPeradores:

➔ $ / ◆ Divisão

➔ $ % ◆ resto

➔ $ **◆ Exponenciação

Ex: $((2**10))

Page 23: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptVariáveis especiais:

➔ $ $0 ◆ Guarda o nome do programa .

➔ $ ${1} até ${100..} ◆ Variáveis que guardam Parâmetros.

➔ $ $# ◆ Número de parâmetros.

➔ $ $* ◆ Todos os Parâmetros, como palavra única.

Page 24: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptVariáveis especiais:

➔ $ $$ ◆ guarda a pid do script atual

➔ $ $! ◆ guarda a pid do último job em segundo plano

➔ $ … ◆ parâmetro número n

Page 25: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptTruques com Váriaveis::

➔ $ ${var} ◆ mesmo que $var, só que sem conflitos

➔ $ ${#var} ◆ retorna o tamanho da palavra

➔ $ ${var:n} ◆ retorna texto a partir da posição ‘n’

➔ $ ${var#texto} ◆ corta ‘texto’ do início da string

➔ $ ${var%texto} ◆ corta ‘Texto’ do final da string

Page 26: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Shell ScriptTruques com Váriaveis::

➔ $ ${var/texto/novo} ◆ substitui texto por novo (uma vez)

➔ $ ${var//texto/novo} ◆ substitui texto por novo, sempre

➔ $ ${var/#texto/novo} ◆ idem,se texto estiver no início

➔ $ ${var/%texto/novo} ◆ idem, se texto estiver no final

Page 27: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Coisas inúteis porém divertidas

Page 28: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

coisas legais➔ $ cmatrix➔ $ fortune➔ $ sl➔ $ cowsay➔ $ xcowsay➔ $ asciiview foto.png➔ $ telnet towel.blinkenlights.nl➔ $ factor➔ $ rev➔ $ yes➔ $ espeak➔ $ figlet

Page 29: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

desafio

Page 30: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Desafioo linux não saber fazer conta?

➔ Teste o comando:◆ echo $((100+071))

***SPOILER ALERT*** ◆ Por que não resulta em 171?

➔ https://itsfoss.com/bash-challenge-5/

Page 31: Curso de Linux - petcocelinux.files.wordpress.com€¦ · Shell Script comando: $ seq    Imprime a mensagem na tela uma sequencia de numeros

Esta foi a aula 5!O nosso curso acabou ;-;

mas o Linux não acaba. (Ass: Enrico)Não se esqueça: NÓS SOMOS PREGUIÇOSOS!

Façam Scripts!

Guenta ae! Tem chamada!