• Nenhum resultado encontrado

Apostila Linux Dora 2a parte

N/A
N/A
Protected

Academic year: 2019

Share "Apostila Linux Dora 2a parte"

Copied!
56
0
0

Texto

(1)

SANTOS

Sistemas Operacionais

(2)

Profa. Dora 2

Índice

Criando usuário ... 03

Bloquear e desbloquear conta do usuário ... 05

Criar grupo ... 06

Permissões de arquivos ... 09

Documentação Linux ... 14

Editor VI ... 17

Criando Script ... 20

Conceito de variáveis em shell script ... 21

Lista 07 ... 25

Controle de fluxo com o if ... 25

Operadores relacionais ... 28

Operadores lógicos ... 28

Testes em arquivos ... 29

Lista 08 ... 31

Seleção múltipla ... 32

Estrutura Case ... 35

Lista 09 ... 39

Estrutura de repetição – Laço For ... 40

Lista 10 ... 45

Estrutura de repetição – Laço While ... 46

Lista 11 ... 49

Comandos de tratamento de texto ... 50

(3)

Profa. Dora 3

Capitulo 07

Criando usuário

Agora vamos acessar a VMware como superusuário, e direcionar para a pasta home, estando lá:

Criaremos um usuário joao, para tanto:

[root@01mx home]useradd joao

Definiremos sua senha de acesso:

[root@01mx home]passwd joao

Atribua para new password como sendo joao

O próprio usuário pode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga.

Se o usuário esqueceu a senha, você pode definir uma nova executando o comando como root; nesse caso o sistema pede a nova senha diretamente, sem solicitar a senha antiga.

(4)

Profa. Dora 4 Esse arquivo contém várias informações sobre cada usuário:

- o seu nome de login (ou seja, o nome que é necessário digitar para entrar no sistema);

- senha (neste caso, a informação da senha pode estar criptografada ou em outro arquivo);

- UID (User IDentification), ou seja, número de identificação do usuário;

- GID (Group IDentification), isto é, número de identificação do grupo do usuário;

- informações adicionais sobre o usuário (nome completo, dados de contato, etc);

- diretório "home", ou seja, o diretório principal de cada usuário;

- shell do usuário, uma espécie de programa que interpretará os comandos que o usuário digitar

(5)

Profa. Dora 5 1. É neste ponto que fica localizado o nome de login do usuário, neste caso, joao.

Esse nome não pode ser igual a outro já existente no sistema e, geralmente é limitado a 32 caracteres.

2. Essa posição indica a senha do usuário.

A letra x informa que a senha está armazenada e protegida dentro do arquivo /etc/shadow.

Se houver um asterisco (*) no lugar, significa que a conta está desativada.

Todavia, se não houver nada, significa que não há senha para esse usuário.

Em alguns casos, embora isso não seja recomendável, a senha pode estar inserida diretamente ali, mas criptografada;

3. Indica o número UID, é número que serve para identificar o usuário. Em geral, o sistema pode suportar UIDs que vão de 0 a 4.294.967.296. Normalmente, o UID 0 é atribuído pelo próprio GNU/Linux ao usuário root.

4. Esse é o campo que indica o GID do usuário, isto é, o número de identificação do grupo do qual ele faz parte. Assim como no UID, geralmente o usuário 0 é indicado para o grupo do usuário root. Note, no entanto, que um mesmo usuário pode fazer parte de mais de um grupo (geralmente, o GNU/Linux permite a participação do usuário em até 32 grupos).

5. Cada usuário criado no sistema tem direito a uma pasta "home", ou seja, uma pasta sua, para uso exclusivo. Em geral, essas pastas ficam dentro do diretório /home/, mas você pode definir o diretório que quiser (ou mesmo não indicar nenhum).

6. Esse é o campo que informa qual o shell (interpretador de comandos) de login que o usuário utilizará. O GNU/Linux trabalha com vários, entre eles, o bash, o sh e o csh. Caso nenhum shell seja informado, o sistema utilizará o bash como padrão.

Bloquear e Desbloquear conta do usuário

Você também pode bloquear temporariamente um usuário, sem remover o home ou qualquer outro arquivo usando o comando "passwd -l", como em:

# passwd -l joao

(6)

Profa. Dora 6 o "passwd -u", como em:

# passwd -u joao

Agora crie dois outros usuários, a saber:

maria e jose com seu respectivo login e password

Criar Grupo

Agora vamos criar um grupo, para tanto, utilizamos o comando:

Groupadd

Para facilitar a administração do sistema, pode-se utilizar o conceito de grupos de usuários com perfis semelhantes. Por exemplo, definir grupos conforme departamentos de uma empresa.

Sintaxe: groupadd <nome do grupo>

(7)

Profa. Dora 7 Groupdel

Serve para eliminar grupos do sistema

Sintaxe: groupdel <nome do grupo>

Gpasswd

Este comando é utilizado para administrar o arquivo /etc/group.

Todos os grupos podem ter administradores, membros e senhas.

O administrador do sistema (superusuário) pode ser a opção –A para definir o administrador do grupo e –M para definir os membros.

Sintaxe: gpasswd [parâmetros] usuário grupo

Exemplos:

1º) Definir a senha de um grupo

[prompt] gpasswd intranet

2º) Adicionar um usuário no grupo

[prompt] gpasswd –a jose intranet 3º) Excluir um usuário do grupo

[prompt] gpasswd –r jose intranet 4º) Remover a senha do grupo

[prompt] gpasswd –r intranet

5º) Acesso do superusuário criando uma estrutura de grupos e membros

[prompt] gpasswd –A usuário, .... –M usuário, .... gestão

(8)

Profa. Dora 8 O comando usermod modifica as configurações de uma determinada conta de usuário.

As opções mais usadas são:

-d diretório_home : Esta opção fornece o caminho completo do diretório home do usuário.

-c "nomedousuário" : Esta opção grava no arquivo passwd o nome do proprietário da conta ou qualquer outra observação e comentário importantes.

-g grupo : Esta opção fornece o grupo padrão da conta do usuário.

-s shell : Esta opção deve fornecer o caminho completo do shell utilizado pela conta. Por exemplo /bin/bash, /bin/sh.

-L : Trava a conta de usuário adicionando o sinal de "!" na senha.

-U : Destrava a conta de usuário, remove o sinal de "!" da senha.

(9)

Profa. Dora 9

Permissões de Arquivos

A cada arquivo ou diretório do sistema é associado um proprietário, um grupo e seus respectivos direitos de acesso, ou permissões.

Por exemplo:

[prompt] ls –l texto.txt

Modo de acesso Arquivo regular/especial Diretório r (leitura) examinar conteúdo listar arquivos

w (escrita) modificar o conteúdo alterar diretório

x (execução) executar o arquivo pesquisar no diretório

Comando chmod

Finalidade: Permite que se alterem as permissões de um ou mais arquivos.

Sintaxe: [prompt] chmod [opções] [permissões] [diretório/arquivo]

Existem duas notações para se aplicar o comando, a saber: o modo simbólico e o octal.

Permissão octais do chmod

Decimal associado Permissão

4 Leitura

2 Escrita

(10)

Profa. Dora 10 para tanto, levamos em consideração as seguintes especificações:

O dono poderá ler,gravar e executar → 4+2+1 = 7

O grupo poderá ler e executar → 4+1 = 5

Os outros poderão somente executar → 1

Como se sabe:

4 Leitura

2 Escrita

1 Execução

Então: [prompt]# chmod 751 texto.txt

Sintaxe: [prompt] chmod [opções] [permissões] [diretório/arquivo] Notação simbólica

Símbolo Descrição

u usuário, ou dono do arquivo

g grupo do arquivo

o outros usuários que não são os donos, nem cadastrados no grupo especificado.

(11)

Profa. Dora 11

Operador Descrição

+ concede permissão especificada

- remove permissão

= atribui somente esta permissão ao arquivo, retirando as que não se encontram especificadas, isto é, estabelece permissão independente das que já existiam.

Permissão Descrição

r concede ou remove a permissão de leitura

w concede ou remove a permissão de escrita

x concede ou remove a permissão de execução

Alteremos novamente as permissões do arquivo texto.txt utilizando a notação simbólica, de tal sorte que, serão concedidas permissões de leitura e gravação ao dono e execução ao grupo.

Então: [prompt]# chmod u-x,g-r texto.txt

Comando chown

O comando chown permite ao root a alteração do dono e do grupo relacionado ao arquivo, ou arquivos, selecionados.

Sintaxe: [prompt] chown [novo_proprietário] [:novo_grupo] arquivos

(12)

Profa. Dora 12 ata, então mude o grupo para intranet, assim teremos:

(13)

Profa. Dora 13

Comando chgrp

O chgrp é um comando utilizado para alterar somente o grupo de um arquivo, arquivos ou diretório.

Sintaxe: [prompt] chgrp grupo arquivo

Estando na máquina Alt F2 logada como usuário maria.

Crie um arquivo vazio denominado lixo, exiba o conteúdo em formato longo.

Você verá que o dono é maria e o grupo é maria,

Então altere o grupo para intranet.

(14)

Profa. Dora 14

Capitulo 08

Documentação Linux

Finalidade: Visualizar Uma página de manual na forma de texto único com rolagem vertical.

Sintaxe: [prompt]# man [seção] [comando/arquivo]

É a seção de manual que será aberta, se omitido, mostra a primeira seção sobre o comando encontrada (em ordem crescente).

A navegação dentro das páginas de manual é feita usando-se as teclas:

q Sai da página de manual ·

PageDown ou f Rola 25 linhas abaixo ·

PageUP ou w Rola 25 linhas acima ·

SetaAcima ou k Rola 1 linha acima ·

SetaAbaixo ou e Rola 1 linha abaixo ·

r Redesenha a tela (refresh) ·

p ou g Início da página ·

h Ajuda sobre as opções da página de manual ·

s Salva a página de manual em formato texto no arquivo criado.

(15)

Profa. Dora 15 Finalidade: Mostra os comandos internos do shell bash.

(16)

Profa. Dora 16 Finalidade: As páginas tem a característica de estarem formatadas em hipertexto, facilitando a pesquisa, dica → Ao selecionar o tópico desejado deve-se teclar ENTER. A tecla d volta ao tópico anterior.

Sintaxe: [prompt]# info

Finalidade: Localiza um programa na estrutura de diretórios do path.

Sintaxe: [prompt]# which [programa/comando]

Links importantes:

http://ldp-br.conectiva.com.br/ http://trac.watter.net/ldpbr/ http://www.ubuntu-br.org/

(17)

Profa. Dora 17

Editor Linux - vi

Configurando o teclado digite direto no prompt:

[prompt]# loadkeys br-abnt2

Utilizando o editor de texto do Linux – vi. Toda vez que desejar usar o modo comando, pressione a tecla ESC.

Movimentando o cursor

k : para cima

Backspace : esquerda

Space : direita

j : para baixo

Modo de entrada:

a acrescenta texto depois do cursor

i insere texto antes do cursor

o abre uma linha de texto abaixo

O abre uma linha de texto

A acrescenta texto no fim da linha

I insere texto no início da linha

Deletando texto:

x deleta um caracter

dw deleta palavra

ex: 2dw delete duas palavras

dd deleta linha corrente

dG deleta até a última linha do arquivo

d$ deleta até o fim da linha

(18)

Profa. Dora 18 Movimentação de palavra:

w pula uma palavra

b volta uma palavra

c vai para o fim da palavra

ex: 2w pula duas palavras

$ vai para o fim da linha

^ ou O vai para o início da linha

Movendo texto:

Primeiro executar o comando deletar, depois executar o colar:

p cola abaixo do cursor

P cola acima do cursor

Controle do cursor:

G final do arquivo

#G vai para uma linha qualquer

:# vai para uma linha

Ctrl g informa a linha que você foi

Ctrl b retorna página

Ctrl f avança página

Ctrl u retorna metade da página

Ctrl d avança metade da página

Ctrl I refresh da tela

L última linha da tela

M meio da linha na tela

(19)

Profa. Dora 19 Copiando texto:

yw copia palavra corrente

yy copia a linha corrente

yG copia até a última linha do arquivo

y$ copia até o fim da linha

y^ copia até o início da linha

Alterando o texto:

r substitui caracter

R substitui todas as letras até pressionar ESC

cw altera palavra

cc altera a linha inteira

cG altera até a última linha do arquivo

c$ altera até o fim da linha

(20)

Profa. Dora 20

Capitulo 09

Criando Scripts

Quem usa Linux conhece bem o prompt de comando como o bash.

O que muita gente não sabe é que o sh ou o bash têm uma “poderosa” linguagem de script embutido nelas mesmas.

Diversas pessoas utilizam-se desta linguagem para facilitar a realização de inúmeras tarefas administrativas no Linux, ou até mesmo criar seus próprios programinhas. Patrick Volkerding, criador da distribuição Slackware, utiliza esta linguagem para toda a instalação e configuração de sua distribuição.

Você poderá criar scripts para automatizar as tarefas diárias de um servidor, para efetuar backup automático regularmente, procurar textos, criar formatações, e muito mais. Para você ver como esta linguagem pode ser útil, vamos ver alguns passos introdutórios sobre ela.

Interpretadores de comandos são programas feitos para intermediar o usuário e seu sistema. Através destes interpretadores, o usuário manda um comando, e o interpretador o executa no sistema.

Eles são a “Shell” do sistema Linux. Usaremos o interpretador de comandos bash, por ser mais “extenso” que o sh, e para que haja uma melhor compreensão das informações obtidas aqui, é bom ter uma base sobre o conceito de lógica de programação.

Uma das vantagens destes shell scripts é que eles não precisam ser compilados, ou seja, basta apenas criar um arquivo texto qualquer, e inserir comandos à ele.

(21)

Profa. Dora 21 A primeira linha indica que todas as outras linhas abaixo deverão ser executadas pelo bash (que se localiza em /bin/bash),

e a segunda linha imprimirá na tela a frase “Alo Mundo...”,

utilizando o comando echo, que serve justamente para isto.

Como você pôde ver, todos os comandos que você digita diretamente na linha de comando, você poderá incluir no seu shell script, criando uma série de comandos, e é essa combinação de comandos que forma o chamado shell script.

Contudo, para o arquivo poder se executável, você tem de atribuir o comando de executável para ele. E como citamos anteriormente, o comando chmod se encarrega disto:

chmod +x mundo

Pronto, o arquivo poderá ser executado com um simples ./mundo.

Conceito de Variáveis em shell script

Variáveis são caracteres que armazenam dados, uma espécie de atalho.

(22)

Profa. Dora 22 Valor pode ser uma frase, números, e até outras variáveis e comandos.

O valor pode ser expressado entre:

aspas (“”) - vão interpretar as variáveis que estiverem dentro do valor,

apóstrofos (”) - lerão o valor literalmente, sem interpretar nada, ou

crases (“) - vão interpretar um comando e retornar a sua saída para a variável.

Exemplo – 01:

Vamos criar um Script que através da variável nome armazene o seu nome e exiba seu conteúdo, para tanto:

Exemplo – 02:

(23)

Profa. Dora 23 Exemplo – 03:

(24)

Profa. Dora 24 Vamos criar um script aonde declaramos uma variável denominada diratual que armazenará uma string e executar um comando, exibindo o valor da variável.

Exemplo 05:

(25)

Profa. Dora 25

NOME DO ALUNO

NÚMERO

LISTA

07

Estando no diretório home, criam-se os seguintes arquivos vazios: aula1 aula2 ex1 ex2 pesq1 pesq2

Deve-se criar um script que: Crie a seguinte estrutura /

/home /home/ads /home/ads/teoria /home/ads/pratica /home/ads/pesquisa

Aonde os arquivos:

(26)

Profa. Dora 26

Capitulo 10

Controle de fluxo com o if

Controle de fluxo são comandos que vão testando algumas alternativas, e de acordo com essas alternativas, vão executando comandos. Um dos comandos de controle de fluxo mais usados é certamente o if, que é baseado na lógica “se acontecer isso, irei fazer isso, se não, irei fazer aquilo”.

Fluxograma Algoritmo Sintaxe em Linux

Se <condição> então <instrução> : <instrução> Senão

< instrução >

:

< instrução >

Fim

if [condição]

then

<instrução>

:

<instrução>

else

<instrução>

:

<instrução>

fi

Exemplo – 01:

(27)

Profa. Dora 27 Executando o script temos o seguinte resultado:

(28)

Profa. Dora 28

Operadores relacionais:

Comparação Numérica

-lt É menor que (LessThan)

-gt É maior que (GreaterThan)

-le É menor igual (LessEqual)

-ge É maior igual (GreaterEqual)

-eq É igual (EQual)

-ne É diferente (NotEqual)

Comparação com strings

= É igual

!= É diferente

-n É não nula

-z É nula

Operadores Lógicos

! NÃO lógico (NOT)

-a E lógico (AND)

(29)

Profa. Dora 29

Testes em arquivos

-b É um dispositivo de bloco

-c É um dispositivo de caractere

-d É um diretório

-e O arquivo existe

-f É um arquivo normal

-g O bit SGID está ativado

-G O grupo do arquivo é o do usuário atual

-k O sticky-bit está ativado

-L O arquivo é um link simbólico

-O O dono do arquivo é o usuário atual

-p O arquivo é um named pipe

-r O arquivo tem permissão de leitura

-s O tamanho do arquivo é maior que zero

-S O arquivo é um socket

-t O descritor de arquivos N é um terminal

-u O bit SUID está ativado

-w O arquivo tem permissão de escrita

-x O arquivo tem permissão de execução

-nt O arquivo é mais recente (NewerThan)

-ot O arquivo é mais antigo (OlderThan)

-ef O arquivo é o mesmo (EqualFile)

(30)

Profa. Dora 30 que disponibilizará os comandos embutidos no interpretador de comandos. Uma das coisas essenciais para o aprendizado é sair coletando exemplos de outros scripts e ir estudando-os minuciosamente.

Procure sempre comandos e expressões novas em outros scripts e em manpages dos comandos.

(31)

Profa. Dora 31

NOME DO ALUNO

NÚMERO

LISTA

08

Exercício 01

Que recebe o nome de um arquivo e verificar se o mesmo existe ou não no diretório home.

Exercício 02

Que recebe o caminho e procura um arquivo nesse caminho

Exercício 03

Que recebe um caminho verifica se existe ou não. Existindo recebe o nome de um arquivo e verifica se existe ou não o arquivo. Caso exista o arquivo exiba seu conteúdo.

Exercício 04

Que receba um determinado path verifique sua validade. Caso exista, receba o nome de um arquivo, verifique se o mesmo contém um texto. Caso exista o texto exiba seu conteúdo.

Exercício 05

(32)

Profa. Dora 32

Capitulo 11

Seleção Múltipla

Qual seria a estratégia para criar um script que permitisse gerar um menu escolhendo uma determinada atividade?

Para tanto, deve-se conhecer a estrutura if encadeado (por exemplo), então:

Fluxograma Algoritmo

Se <condição> então <instrução>

:

<instrução>

Senão Se <condição> então < instrução >

:

< instrução >

Senão Se <condição> então < instrução >

:

< instrução > Senão

< instrução > :

< instrução > Fim Se

Sintaxe em Linux

if <condição>; then <instrução> :

<instrução>

elif <condição >; then <instrução>

:

<instrução>

elif <condição >; then <instrução>

:

<instrução> else

<instrução> :

<instrução> fi

(33)

Profa. Dora 33 #!/bin/bash

clear;

echo “+---+”

echo “| M E N U |”

echo “| 1. Limpar a tela |”

echo “| 2. Mostrar o diretorio home |”

echo “| 3. Exibir o arquivo NOTA |”

echo “| 4. Sair |”

echo “+---+”

echo

echo –n “Qual a opção desejada ... “

read opcao

If [ $opcao = “1” ]; then

clear

echo “A tela foi limpa...” elif [ $opcao = “2” ]; then

clear

cd /home

ls

elif [ $opcao = “3” ]; then

clear

cat Nota

elif [ $opcao = “4” ]; then

exit

(34)

Profa. Dora 34 fi

Executando temos:

Se a opção for 1

Se a opção for 2

(35)

Profa. Dora 35 Se a opção for 4

Se a opção não for 1 ou 2 ou 3 ou 4, então:

Estrutura Case

Através desse comando também teremos a oportunidade de resolver estruturas seletivas que irão atender uma demanda em função da escolha de uma opção.

(36)

Profa. Dora 36 Caso <variavel> seja

opção 1) parametro ;;

opção 2) parâmento ;;

:

opção n) parametro ;;

opção *) parametro ;;

Fim Caso

case <variavel> in

1) parametro ;;

2) parametro ;;

:

n) parametro ;;

*) parametro ;;

esac

Obs.: * considera qualquer outro valor da variavel que não valida o processo de escolha feito por esse encadeamento.

Vamos criar um exemplo para utilizar essa estrutura, assim entre no vi e digite os códigos a seguir:

#!/bin/bash

Principal () {

clear;

echo “+---+”

echo “| M E N U |”

echo “| 1. Limpar a tela |”

echo “| 2. Mostrar o diretório home |”

echo “| 3. Exibir o arquivo NOTA |”

echo “| 4. Sair |”

(37)

Profa. Dora 37 echo

echo –n “Qual a opção desejada ... “; read opcao

case $opcao in

1) Limpa ;;

2) Mostra ;;

3) Exibe ;;

4) exit ;;

*) Erro ;;

esac

}

Limpa () {

clear

echo “Tela foi limpa... “

sleep 1

Principal

}

Mostra () {

clear cd /home ls sleep 1 Principal }

Exibe () {

(38)

Profa. Dora 38 sleep 1

Principal

}

Erro () {

clear

echo “Opção errada...”

sleep 1

Principal

}

Principal

Observações sobre o script:

 O comando exit finaliza o script.

 O comando sleep é um temporizador

 O termo Principal em cada estrutura do case fará sempre o retorno ao menu.

(39)

Profa. Dora 39

NOME DO ALUNO

NÚMERO

LISTA

09

Crie um script que quando executado solicite uma senha

Se a senha estiver errada encerra deve-se encerrar o script.

Caso a senha esteja correta.

Deve ser feito um menu com as seguintes características, a saber:

1. Identificar um usuário

2. Criar um usuário

3. Apagar um usuário

(40)

Profa. Dora 40

Capitulo 12

Estrutura de repetição

Laço For

O laço for vai substituindo uma variável por um valor, e vai executando os comandos pedidos, como mostrado no quadro abaixo:

Fluxograma Algoritmo Sintaxe em Linux

Para<var>ate <var> faça

<instrução>

:

<instrução>

< instrução >

:

< instrução >

Fim

for var in var; do

<instrução>

:

<instrução>

<instrução>

:

<instrução>

(41)

Profa. Dora 41 Exemplo – 01:

Façamos agora mais um script utilizando a estrutura FOR, como mostra a figura a seguir:

(42)

Profa. Dora 42 Exemplo – 02:

Faça um script que receba um número inteiro qualquer e a partir dessa informação gere a tabuada do referido número, como mostra o layout a seguir:

(43)

Profa. Dora 43 Exemplo – 03:

Vamos criar um cenário operacional, isto é, estando no diretório home, crie dois diretórios um denominado texto e outro denominado backup.

Entre no diretório texto e crie os seguintes arquivos: teoria.txt, pratica.txt, comandos.txt.

Retorne ao diretório home e crie então um script que irá gerar o backup de todos os arquivos txt e move-los para o diretório backup com extensão bkp.

(44)
(45)

Profa. Dora 45

NOME DO ALUNO

NÚMERO

LISTA

10

Para executar essa lista iremos inicialmente criar um cenário, isto é:

1. Estando no diretório home

2. Crie um diretório denominado texto

3.

Ingressando no diretório texto abra o editor de texto “vi” e digite

o seguinte texto: Testando uma estrutura de laço. Grave o

mesmo com o seguinte nome a.txt

4. Retorne ao diretório home e ai crie um script capaz de ir ao

diretório texto automaticamente e localize o arquivo a.txt e então

exiba o conteúdo do arquivo separando as palavras que o

compõem por um X na frente e um X atrás, como mostra o

layout a seguir.

(46)

Profa. Dora 46

Capitulo 13

Estrutura de repetição

Laço While

O while testa continuamente uma expressão, até que ela se torne falsa.

Fluxograma Algoritmo Sintaxe em Linux

Enquanto <condição > faça

<instrução>

:

<instrução>

< instrução >

:

< instrução >

Fim

while <condição>; do

<instrução>

:

<instrução>

<instrução>

:

<instrução>

(47)

Profa. Dora 47 Exemplo 01:

Faça um script que receba um peso, sendo esse composto só por números inteiros. Caso o peso seja negativo ou maior que 300 se deve exibir a mensagem de erro “Dado errado...” dar um tempo de 2 segundos e retornar a pedir o peso. Se o peso fornecido for menor que 55 exibamos a mensagem “Nossa como você está magro”. Se o peso estiver entre 55 e 80 exiba “Você está com um bom peso” e caso o peso seja superior a 80 exiba “Você está precisando fazer um regime” dê um tempo de 2 segundos para visualizar a mensagem.

(48)

Profa. Dora 48 Exemplo 02:

Faça um script que receba por argumento um ou mais parâmetros e a partir disso seja feita uma identificação de cada argumento e sua respectiva posição. Caso não seja fornecido nenhum parâmetro exiba mensagem orientando o usuário.

Observação:

(49)

Profa. Dora 49

NOME DO ALUNO

NÚMERO

LISTA

11

Exercicio 01:

Escrever script para exibir a soma de todos os dígitos de um determinado número. Como mostra a figura a seguir:

Exercício 02:

Faça um script capaz de identificar se você irá mudar para letra Maiúscula ou Minúscula, uma vez reconhecida a escolha deve-se informar o diretório que irá sofrer essa alteração, então todos os arquivos desse diretório deverão ser remodelados em função do caractere especificado. Veja o layout abaixo para esclarecer qualquer dúvida.

(50)

Profa. Dora 50

Capitulo 14

Comandos tratamento de texto

Comando cut é um delimitador de arquivos, onde pode ser utilizado para delimitar um arquivo em colunas, numero de caracteres ou por posição de campo.

Sintaxe: cut <opções> <arquivo>

Opções mais utilizados:

-d: Especifica o caractere delimitador;

- f: Informa a posição do campo;

Exemplo: cut -d “:” -f 1,3,5 /etc/passwd

Ira mostrar as colunas 1, 3 e 5 do arquivo /etc/passwd com o delimitador “:”.

Comando sed procura e substitui padrões em textos, mostrando o resultado em STDOUT.

Sintaxe: sed <opções> 'comando e expressão relugar' <arquivo original>

Exemplo: sed -e ' /^#/d' /boot/grub/menu.lst

Nesse caso, todas as linhas em branco do arquivo /boot/grub/menu.lst serão excluídas das visualização em STDOUT (sem alterar o arquivo original).

Opção:

-e: Executa uma expressão regular;

(51)

Profa. Dora 51 g: Substituir todas as ocorrências;

d: Apagar a linha;

Nesse seu caso, pode tentar o comando abaixo, supondo que seu arquivo tenha 16 linhas (por exemplo):

# sed -e 1,4d -e 8,\$d <nome arquivo> ou

# sed -e 1,4d -e 8,16d <nome do arquivo>

Se quiser, pode criar um novo arquivo com o resultado do sed:

# sed -e 1,4d -e 8,16d <nome do arquivo original> > <nome do novo arquivo>

Comando grep procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padrão.

Sintaxe: grep [expressão] [arquivo] [opções]

Onde:

expressão

palavra ou frase que será procurada no texto. Se tiver mais de 2 palavras você deve identifica-la com aspas "" caso contrário o grep assumirá que a segunda palavra é o arquivo! Para entender melhor o funcionamento da expressão, ver o livro Expressões regulares

arquivo

Arquivo onde será feita a procura.

opções -A [número]

Mostra o [número] de linhas após a linha encontrada pelo grep.

-B [número]

Mostra o [número] de linhas antes da linha encontrada pelo grep.

(52)

Profa. Dora 52 -h, --no-filename

Não mostra os nomes dos arquivos durante a procura.

-i, --ignore-case

Ignora diferença entre maiúsculas e minúsculas no texto procurado e arquivo.

-n, --line-number

Mostra o nome de cada linha encontrada pelo grep.

-U, --binary

Trata o arquivo que será procurado como binário.

Se não for especificado o nome de um arquivo ou se for usado um hí-fen "-", grep procurará a string no dispositivo de entrada padrão. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opções são as mesmas.

Exemplo: grep "capitulo" texto.txt, ps ax|grep inetd, grep "capitulo" texto.txt -A 2 -B 2.

Comando tr é usado para converter caracteres, ou melhor, trocar um conjunto por outro.

As opções mais usadas são:

-d : Elimina os caracteres especificados.

-s : Comprime a seqûencia de caracteres repetidos.

Exemplo: fernandopaiva@Tux:$ cat arquivo.txt | tr a-z A-Z

Neste exemplo o comando tr troca todas as letras de a a z para maiúsculas.

(53)

Profa. Dora 53 Sintaxe: uniq <arquivo>

Exemplo: Imagine que você tem um arquivo com alguns nomes como é mostrado a seguir: #cat nomes Jonathan Lilian Lilian Danilo Daphne Daphne Jonathan #uniq nomes Jonathan Lilian Danilo Daphne Jonathan

Comando short permite organizar um arquivo em ordem crescente (A-Z) ou decrescente (Z-A).

Sintaxe crescente: short <nome do arquivo>

Sintaxe decrescente: short –r <nome do arquivo>

Comando paste permite combinar vários arquivos em um só estabelecendo uma linha de equivalência entre as linhas dos diversos arquivos, separando os campos com TAB.

(54)

Profa. Dora 54 #cat pessoas

Lilian

Jonathan

Danilo

Daphne

#cat email

lilian@bol.com.br

jonathan@yahoo.com

danilo@terra.com.br

daphne@globo.com

#paste pessoas email

Lilian lilian@bol.com.br

Jonathan Jonathan@yahoo.com

Danilo danilo@terra.com.br

(55)

Profa. Dora 55

NOME DO ALUNO

NÚMERO

LISTA

12

1. Recebe dois números como parâmetro e mostra a relação entre eles. Exemplo:

prompt$ ./relacao.sh 3 5

3 é menor que 5

prompt$ ./relacao.sh 5 3

5 é maior que 3

prompt$ ./relacao.sh 5 5

5 é igual a 5

2. Recebe um número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo, em uma mesma linha.

Exemplo:

prompt$ ./zerador.sh 5

5 4 3 2 1 0

prompt$ ./zerador.sh 10

10 9 8 7 6 5 4 3 2 1 0

3. Recebe duas palavras como parâmetro e verifica se a primeira palavra está contida dentro da segunda. Só mostra mensagem informativa em caso de sucesso, do contrário não mostra nada.

Exemplo:

(56)

Profa. Dora 56

prompt$ ./substring.sh banana prompt$ ./substring.sh

4. Mostra na tela "grudados" todos os parâmetros recebidos na linha de comando, como uma única palavra.

Exemplo:

prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazul

5. 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.

Exemplo:

prompt$ ./users.sh ftp FTP User

nobody Nobody

named Domain name server xfs X Font Server

mysql MySQL server

6. Do arquivo /etc/passwd, mostra todos os shells (último campo) que os usuários usam. Não mostrar linhas repetidas.

Referências

Documentos relacionados

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

1. No caso de admissão do cliente, a este e/ou ao seu representante legal são prestadas as informações sobre as regras de funcionamento da ESTRUTURA RESIDENCIAL

“organização do sistema”, especialmente no que diz W Ministério da Saúde (MS), das Secretarias Estaduais de Saúde (SES) e das Secretarias Municipais de Saúde (SMS) e

Programa de Formação de Agentes Locais de Vigilância em Saúde - PROFORMAR Coordenação Geral.. Carlos Eduardo

2 Gire o botão de volume para selecionar uma categoria e, em seguida, pressione o botão.. 3 Gire o botão de volume para a estação desejada e, em seguida, pressione

A combinação dessas dimensões resulta em quatro classes de abordagem comunicativa, que podem ser exemplificadas da seguinte forma: interativo/dialógico: professor e

O planejamento fatorial foi aplicado satisfatoriamente para a otimização dos parâmetros da técnica de voltametria linear de redisso- lução anódica no desenvolvimento

O objetivo deste trabalho foi avaliar a influência do peso inicial, do período de alimentação e da temperatura ambiente no ganho de peso e nos parâmetros biológicos