Resumo LPI 102: Tópico 105 - Shells, Scripts e Administração de Dados

Publicado por Perfil removido em 18/02/2013

[ Hits: 6.278 ]

 


Resumo LPI 102: Tópico 105 - Shells, Scripts e Administração de Dados



Como parte da minha preparação para a prova LPI 102, compartilho o resumo que fiz para facilitar nos dias próximos à prova. :)

Para ajudar no aprendizado, é importante associar o nome dos comandos e seus parâmetros às suas respectivas descrições. Sempre estude lendo manpages, testando comandos e parâmetros.

105.1 - Personalizar e trabalhar em ambiente shell

VARIÁVEIS:

Variáveis globais - São utilizadas por todos os processos e todos usuários do sistema.

Exemplos:
  • PATH :: Define os diretórios onde estão os comandos;
  • HOME :: Define o diretório pessoal do usuário;
  • SHELL :: Define o shell padrão do sistema.

Variáveis locais - São utilizadas apenas no shell atual, criada por usuários e scripts. Exemplo sobre como definir uma variável:

$ NOME=Pedro

Comandos:
  • env :: Exibe todas variáveis globais;
  • set :: Exibe todas as variáveis do sistema;
  • unset :: Exclui uma variável. Somente da sessão atual, se for global;
  • export :: Transforma uma variável local em global;
  • alias :: Cria uma alias (apelido) para um ou mais comandos.

Arquivos de configuração:

1. /etc/profile :: Define as varáveis globais e alias para o sistema;
2. ~/.bash_profile :: Define variáveis globais para usuários.

A sequência de leitura dos arquivos de configuração do shell, quando é iniciada com a opção de login, é a seguinte:
  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

Ao sair do shell, é lido o arquivo: ~/.bash_logout

Já no caso de iniciar um shell sem a opção de login, a sequência de leitura dos arquivos de configuração é:
  1. /etc/bash.bashrc
  2. ~/.bashrc

FUNÇÕES: As funções servem para simplificação de tarefas feitas com frequência no shell. Podem ser usadas numa sessão tradicional do shell e em scripts.

Para torná-las disponíveis em outras sessões, basta gravar no arquivo ~/.bashrc. Sua estrutura é:

function versao () {
   DIST=$(cut -d" " -f1 /etc/issue)
   ARQ=$(uname -m)
   echo "Você está usando ${DIST}, arquitetura ${ARQ}."
}

Obs.: No arquivo "~/.bashrc", coloque o caracter "}" na penúltima linha da estrutura acima.

105.2 - Escrever e editar scripts simples

Duas regras básicas na construção e execução de shell script:

1. Na primeira linha de um shell script, deverá ter a informação sobre qual interpretador de comandos ele usará. Essa primeira linha é chamada de shebang:

#!/bin/bash

2. Para serem executados, os scripts devem ter a permissão de execução (+ x).

# chmod +x script.sh

Variáveis especiais:
  • $* :: Exibe os parâmetros passados ao script;
  • $# :: Exibe o total de parâmetros passados ao script;
  • $0 :: Exibe o nome do script;
  • $n :: Exibe o parâmetro passado ao script, na posição 'n';
  • $! :: Exibe o PID do último programa executado;
  • $$ :: Exibe o PID do shell atual;
  • $? :: Exibe o código de retorno do último comando executado:

    0 (Executou com sucesso)
    * Se for diferente de zero, houve algum problema.

COMANDO read:

O comando read é usado para coleta de dados a partir da interação com o usuário.

Exemplo:

echo "Digite seu nome"; read NOME ; echo $NOME

Se a variável NOME não fosse especificada para armazenar "seu nome", o shell usaria a variável de retorno padrão REPLY.

SUBSTITUIÇÃO DE COMANDOS:

É comum utilizar uma variável para armazenar a saída de algum comando. Seguem alguns exemplos:

LINUX=`cut -d" " -f1 /etc/issue`
$ echo "Eu uso $LINUX!"


Outro:

ADM=$(head -c4 /etc/passwd)
$ echo "O super usuário do sistema é o $ADM"


Ou, para fazer algum tipo de cálculo com o comando expr, por exemplo:

ANONASC=1988; ANOATUAL=2013
$ IDADE=`expr $((ANOATUAL - ANONASC))`
$ echo $IDADE


COMANDO test:

O comando test é bastante usado em condicionais e laços (if e while, por exemplo). Principais parâmetros:

Testes em arquivos:
  • -d (Diretory) :: É um diretório;
  • -f (File) :: É um arquivo;
  • -L (Link) :: É um link simbólico;
  • -r (Read) :: O arquivo tem permissão de leitura;
  • -s (Size) :: O arquivo tem tamanho maior que zero;
  • -w (Write) :: O arquivo tem permissão de escrita;
  • -x (Execute) :: O arquivo tem permissão de leitura;
  • -ot (OlderThan) :: O arquivo é mais antigo;
  • -nt (NewerThan) :: O arquivo é mais recente.

Testes em variáveis:
  • -lt (LessThan) :: O número é menor;
  • -gt (GreaterThan) :: O número é maior;
  • -le (LessEqual) :: O número é menor ou igual;
  • -ge (GreaterEqual) :: O número é maior ou igual;
  • -eq (Equal) :: O número é igual;
  • -ne (NotEqual) :: O número é diferente;
  • -n (null) :: A string é nula;
  • -z (??) ::- A string não é nula;
  • = (Igual) :: A string é igual;
  • != (Diferente) :: A string é diferente.

USANDO O if: Um exemplo do uso do if com o comando test:

if test -d /var/log ; then
    echo "O diretório existe."
else
    echo "Diretório inexistente."
fi

O comando test pode assumir outra forma, sendo substituído por colchetes:

if [ -f /var/log/messages ] ; then
    echo "Arquivo existe."
else
    echo "É Ubuntu :p"
fi

Obs.: Ao utilizar colchetes, é necessário deixar espaços em volta deles, caso contrário, não funcionará.

COMANDO seq:

O comando seq é bastante usado com a instrução for, pois lhe entrega uma sequência numérica. Exemplo:

seq 3
1
2
3

USANDO O for:

Estrutura do for, usando o comando seq, como exemplo:

for num in $(seq 3) ; do
    echo "Número $num."
done



USANDO O while:

Estrutura do while, usando o comando test em forma de colchete:

NUM=0
while [ $NUM -lt 5 ] ; do
    NUM=$((NUM + 1))
done

105.3 - Administração de dados SQL

De acordo com os simulados que vi e do que tem no livro do Luciano Siqueira, cai basicamente:

INSERT 	    - Insere dados em uma tabela;
SELECT 	    - Consulta dados numa tabela;
WHERE 	    - Especifica uma ou mais linhas;
ORDER BY    - Ordena uma tabela;
GROUP BY    - Seleciona um grupo de dados a partir de um item especificado;
UPDATE	    - Altera dados em uma tabela;
DELETE	    - Exclui dados de uma tabela;
INNER JOIN  - Relaciona tabelas diferentes;

Referências

Como base, utilizei os livros:
  • Certificação LPI-1 - 4ªedição - Luciano Siqueira
  • Shell Script Profissional - Aurelio Marinho Jargas (recomendo)

À medida que for estudando ou achando necessário, estarei atualizando o post no meu blog. Fiquem à vontade para dar opiniões:
Inté.

Outras dicas deste autor

Instalando o Etcher no Debian 10 Buster

Instalando o aMSN 0.97-1 no Famelix 2.0

Limitando a banda no download de arquivos no Apache 2.0

Slackware com resolução 1280x768

Skin do Mandriva no aMSN

Leitura recomendada

Stream de Video no Linux Maemo para uso do N900 como Webcam

Alterando o bootsplash do SuSE

Xen 4 - Habilitando Porta Serial

Repositório RPM personalizado para CentOS 5

Localizando arquivos dentro de pacotes rpm

  

Comentários
[1] Comentário enviado por alexunix em 04/08/2015 - 12:07h


Muito Obrigado Pedro!! Estou voltando a estudar a para a 102 e Resumos dos Tópicos são de grande valia!!
;)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts