Shell, Variáveis e exercícios

Propaganda
Formação de Administradores
de Redes Linux
LPI – level 1
Aula 2
SENAC TI
Fernando Costa
Agenda
• Introdução ao Shell
• Variáveis do shell
• Usando símbolos
coringa
• Síntese
• Exercícios
O shell
• Como todo computador necessidade de
uma interface uma humana, no linux a
mais simples delas é o shell
• Em termos técnicos o shell é um
interpretador de comandos que analisa
o texto digitado na linha de comandos e
os executa produzindo algum resultado
Contexto do shell
$ ls
Usuários / Programas
SHELL – Interpreta comandos
Bibliotecas
“ls” é um comando
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Contexto do shell
$ ls
Usuários / Programas
SHELL – Interpreta comandos
Bibliotecas
Está na biblioteca?
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Contexto do shell
$ ls
Usuários / Programas
SHELL – Interpreta comandos
Bibliotecas
Preciso ler o disco...
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Contexto do shell
Usuários / Programas
SHELL – Interpreta comandos
$ ls
Bibliotecas
Ler o disco na trilha X,
setor Y, do disco Z
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Contexto do shell
Usuários / Programas
SHELL – Interpreta comandos
$ ls
Bibliotecas
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Carregar a informação
no endereço H da
memória
Contexto do shell
Usuários / Programas
SHELL – Interpreta comandos
$ ls
Bibliotecas
KERNEL – Cérebro/Coração do sistema operacional
HARDWARE
Prompt do shell
• Você já deve ter visto este símbolo no terminal
Linux:
$
• Ele é o prompt de comandos do shell.
• Algumas variações deste símbolo são
permitidas como nome do computador, diretório
corrente, etc.
Prompt do shell
• O prompt do shell pode variar
dependendo do usuário que está
utilizando o sistema no momento.
• O sinal "$" significa que um usuário
comum é que está usando a máquina
• O sisnal "#" significa que o super-usuário
está usando o sistema.
Super-Usuário
• O super-usuário é o administrador do
sistema Linux. Ele é especial porque tem
poderes para fazer absolutamente tudo no
sistema.
• Ele é conhecido como usuário "root" ou
"raiz" traduzindo do inglês
Tipos de shell
• Existem várias shells, cada uma com suas
configurações e funcionalidades específicas. A
maior parte das diferenças existentes envolve
facilidade de operação e tipos de configuração.
• Exemplos:
– C-SHELL
– BASH (bourne again shell)
– KSH (korn shell)
Mais funcionalidades
• Além de ser um interpretador, o shell
também é um poderoso ambiente de
programação capaz de automatizar
praticamente tudo em um sistema linux.
SHELL SCRIPT
Variáveis de ambiente
• Durante a execução do bash são
mantidas algumas variáveis especiais que
contém alguma informação importante
para a execução do shell.
• Estas variáveis são carregadas no início
da execução do bash e também podem
ser configuradas manualmente em
qualquer momento.
Variáveis do prompt
• A primeira variável que iremos abordar é a
PS1 ou simplesmente Prompt String 1.
• Esta variável guarda o conteúdo do
prompt de comandos do bash quando ele
está pronto para receber comandos
Variável PS2
• Existe também a variável PS2 que guarda
o conteúdo do prompt de comandos
quando é necessário múltiplas linhas para
completar um comando
Variáveis do prompt
• Estas duas variáveis do shell não afetam
como o interpretador irá processar os
comandos recebidos, mas podem ser de
grande ajuda quando carregam
informações extras como nome do
usuário, diretório corrente, etc.
Vamos testar, abram um terminal
Variável PATH
• Outra variável importante do shell é o
PATH. O path guarda uma lista dos
diretórios que contém programas que
você poderá executar sem passar a linha
de comandos completa do caminho do
programa
Testem: $ echo $PATH
/usr/local/bin:/sbin:/bin:/usr/sbin
Diretório HOME
• Repositório do usuário, diretório similar ao
“Document And Settings” do windows.
• Para acessar o home de qualquer usuário
utilize o “~”
• Exemplos:
# cd ~
$ cd ~
# cd ~fernando
Ordem de execução
•
É importante que você saiba que o
interpretador de comandos do bash segue a
seguinte ordem para achar e executar os
comandos digitados:
1. O comando digitado é um comando interno do
interpretador de comandos?
(veremos mais em shell script)
2. Se não for, o comando é um programa executável
localizado em algum diretório listado na variável
PATH?
3. A localização do comando foi explicitamente
declarada
Visualizar as variáveis
• Uma lista completa das variáveis do shell
poderá ser obtida com o comando:
set
Criar variável
• Para criar uma variável siga os passos abaixo.
variáveis locais (somente para o shell):
TREINAMENTO=“Linux SENAC TI”
variáveis globais (visível por todos os filhos):
export TREINAMENTO
Visualizar a árvore de execução dos programas:
pstree
Palavras reservadas
• Algumas palavras não podem ser
utilizadas como variáveis, pois são o que
chamamos de palavras reservadas do
shell.
• São elas: case, do, done, elif, else, esac,
fi, for, function, if, in, select, then, until,
while e time.
Entrando com comandos
• Entrar com comandos no shell é mais do que
simplesmente digitá-los.
• Primeiro o comando precisa ser válido e estar nos
diretórios listados na variável PATH ou com sua
localização explícita.
• O comando também pode requerer opções, geralmente
precedidos pelo símbolo "-" ou "--" e por os argumentos.
• O importante é que cada comando tem sua sintaxe
única e pode haver variações dependendo da
distribuição do linux
Exemplo
• Chamada simples: “ls”
• A opção ‘-l’ (menos-ele) pode ser acrescentada para
gerar uma lista de arquivos detalhada:
Execute:
ls -l
• Podemos ainda colocar mais opções:
Execute:
ls -l -a -t
ou
ls -lat
Argumentos de programas
• Alguns comandos podem aceitar
argumentos. Para outros comandos são
necessário. Os argumentos são
parâmetros que os comandos aceitam ou
necessitam. Vejamos o comando ls:
ls -l *.txt
Opções obrigatórias
• Outra variação possível são os comandos que
precisam obrigatoriamente de uma opção para
executar uma tarefa que geralmente não são
precedidas pelo traço.
• É comum para esse tipo de comando que suas
opções sejam sucedidas por argumentos. Veja
como exemplo o comando dd:
dd if=bootdisk.img of=/dev/fd0
Dica quente
• Quase todos os comandos aceitam a opção
--help que mostra uma ajuda simples da opções
e argumentos aceitos pelo comando.
• É importante que você tenha em mente que o
Linux somente vai executar os comandos que
sejam internos do interpretador, ou comandos
cuja localização esteja na variável PATH ou
comandos chamados com seu caminho explícito
Mais de um comando
• O bash permite também que você entre
com uma sequência de comandos em
uma mesma linha. Para isso você deve
separar os comandos com o símbolo ;
(ponto-e-vírgula)
Exemplo:
echo $PS1; echo $PS2
Histórico: .bash_history
• O bash escreve em um arquivo chamado
.bash_history localizado no diretório home
de cada usuário o histórico de todos os
comandos digitados.
• Útil para fins de auditoria, relembrar a
memória ou simplesmente economizar os
dedos
Experimente:
history e cat ~/.bash_history
Atalhos do histórico
• !! Executa o último comando digitado
• !n executa o comando na linha n do
.bash_history
• !texto executa o comando mais recente
iniciado por “texto”
• !texto executa o comando mais recente
que contenha “texto”
Descobrir o SHELL
• Para descobrir o shell que você está
usando:
echo $SHELL
Navegando pela árvore
• O comando "cd" é utilizado para navegar pela árvore de
direórios. Observe que "cd" do linux é um comando, e
portanto seus argumentos devem ser separados das
letras "cd".
Exemplo: $ cd /
• O comando acima diz ao bash para ir ao diretório raiz. A
"/" é o símbolo que significa "raiz do sistema de
arquivos".
• O comando "cd" sem nenhum argumento diz ao bash
para ir ao diretório home do usuário
• O comando “cd” seguido o “~” tem a mesma função,
porém pode ir a diretórios homes de outros usuários
Onde estou?
• o comando pwd mostra o diretório
corrente, conforme o exemplo:
pwd
Caminhos
• Caminho absoluto
– se estou em qualquer diretório e quero acessar o
diretório ~fernando
cd /home/fernando
• Caminho relativo
– acessando partindo do ponto atual, por exemplo:
pwd
/usr/bin
cd ../../home/fernando
Símbolos “.” e “..”
• O símbolo ".." é utilizado para fazer referência a
um diretório imediatamente acima do corrente.
ls ../../
• O símbolo "." é utilizado para fazer referência ao
diretório corrente. É utilizado para executar um
comando em um diretório que não esteja listado
na PATH.
./imprime
Fernando Costa
www.fernandocosta.com.br
[email protected]
Download