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 Usuários / Programas $ ls SHELL Interpreta comandos Bibliotecas ls é um comando KERNEL Cérebro/Coração do sistema operacional HARDWARE
Contexto do shell Usuários / Programas $ ls SHELL Interpreta comandos Bibliotecas Está na biblioteca? KERNEL Cérebro/Coração do sistema operacional HARDWARE
Contexto do shell Usuários / Programas $ ls SHELL Interpreta comandos Bibliotecas Preciso ler o disco... KERNEL Cérebro/Coração do sistema operacional HARDWARE
Contexto do shell Usuários / Programas $ ls SHELL Interpreta comandos 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 $ ls SHELL Interpreta comandos 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 $ ls SHELL Interpreta comandos 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 fernandocosta@gmail.com