SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
LPI 101
21 de Janeiro de 2011
Conteúdo
I Sobre essa apostila 2
II Informações Básicas 4
III GNU Free Documentation License 9
IV LPI 101 18
1 LPI 101 19
2 Plano de ensino 20
2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Determinando e Configurando Hardware 23
3.1 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 lsmod, lspci e lsusb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 Iniciando o Sistema 29
4.1 /var/log/messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 dmesg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5 kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6 init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
5 Modificando Runlevels, Desligando e Reiniciando o Sistema 33
5.1 /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Definindo e alterando runlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.4 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6 Criando Modelo de Disco Rígido 38
6.1 Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.2 /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7 Instalando um Gerenciador de Boot 40
7.1 Instalando o grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8 Gerenciando Bibliotecas Compartilhadas 44
8.1 Bibliotecas Compartilhadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9 Utilizando o Gerenciador de Pacotes do Debian 45
9.1 dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.2 APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.3 Informações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10 Gerenciando Pacotes com YUM e RPM 48
10.1 Pacotes com YUM e RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11 Trabalhando com a Linha de Comando 49
11.1 Caracteres Especiais e Coringa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
11.2 bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.3 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.4 O histórico do Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12 Processando Fluxos de Texto Utilizando Filtros 54
12.1 Filtros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
13 Gerenciamento Básico de Arquivos 55
13.1 Manipulando arquivos e diretórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.2 O comando find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
14 Utilizando Fluxos, pipes e redirects 57
14.1 Redirecionadores de saídas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
14.2 Redirecionadores de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
14.3 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15 Criando, Monitorando e Matando Processos 59
15.1 Primeiro e Segundo Plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
15.2 Enviando sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
15.3 Conferindo Processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
16 Modificando Prioridade de Execução de Processos 61
16.1 Alterando prioridades de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
17 Realizando Buscas em Arquivos de Textos com Expressões Regulares 62
17.1 Expressões Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
17.2 A família grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
17.3 Egrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
17.4 Fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
18 Edições Básicas Utilizando VI 64
18.1 Modos de Execução do VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
18.2 Teclas de Navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
18.3 Comandos do VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
19 Criando Partições e Sistemas de Arquivos 66
19.1 Fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
19.2 mkfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
19.3 Partição swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
20 Mantendo a Integridade de Sistemas de Arquivos 68
20.1 Checando sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
20.2 Analisando o Espaço em Disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
21 Controlando a Montagem de Sistemas de Arquivos 70
21.1 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
22 Gerenciando Quotas em Disco 72
22.1 Quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
23 Gerenciando Donos e Permissões de Arquivos 73
23.1 Permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
23.2 Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
23.3 Alterando permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
23.4 Permissões especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
23.5 Alterando donos e grupos de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . 75
24 Criando e Modificando links 76
24.1 Criando Hard Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
24.2 Soft Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
25 Encontrando Arquivos 78
25.1 O FHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
25.2 Localizando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
26 Considerações Finais 80
3
Parte I
Sobre essa apostila
4
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Conteúdo
O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-
ternet, disponíveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.
O formato original deste material bem como sua atualização está disponível dentro da licença
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção de
mesmo nome, tendo inclusive uma versão traduzida (não oficial).
A revisão e alteração vem sendo realizada pelo CDTC (suporte@cdtc.org.br), desde outubro
de 2006. Criticas e sugestões construtivas são bem-vindas a qualquer tempo.
Autores
A autoria deste conteúdo, atividades e avaliações é de responsabilidade de Pedro Brito (pe-
drob@cdtc.org.br).
O texto original faz parte do projeto Centro de Difusão de Tecnolgia e Conhecimento, que vem
sendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjunto
com as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiando
inclusive a comunidade Free Software junto a outras entidades no país.
Informações adicionais podem ser obtidas atréves do email ouvidoria@cdtc.org.br, ou da
home page da entidade, através da URL http://www.cdtc.org.br.
Garantias
O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-
lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizam
direta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.
Licença
Copyright ©2006,Pedro Brito (pedrob@cdtc.org.br).
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-
TILA. A copy of the license is included in the section entitled GNU Free Documentation
License.
5
Parte II
Informações Básicas
6
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-
ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do
desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.
Objetivo Específico
Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e
de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os
servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios
de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo
treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,
criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como
incentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe-
recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de
produtos de software não proprietários e de seu código fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-
dutos de software livre.
Guia do aluno
Neste guia, você terá reunidas uma série de informações importantes para que você comece
seu curso. São elas:
• Licenças para cópia de material disponível
• Os 10 mandamentos do aluno de Educação a Distância
• Como participar dos fóruns e da wikipédia
• Primeiros passos
É muito importante que você entre em contato com TODAS estas informações, seguindo o
roteiro acima.
Licença
Copyright ©2006, Pedro Brito (pedrob@cdtc.org.br).
7
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos
da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior
publicada pela Free Software Foundation; com o Capítulo Invariante SOBRE ESSA
APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-
mentação Livre GNU".
Os 10 mandamentos do aluno de educação online
• 1. Acesso a Internet: ter endereço eletrônico, um provedor e um equipamento adequado é
pré-requisito para a participação nos cursos a distância.
• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-
tica é necessário para poder executar as tarefas.
• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-
cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão
e a sua recuperação de materiais.
• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e
realizá-las em tempo real.
• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.
• 8. Flexibilidade e adaptação: requisitos necessário a mudança tecnológica, aprendizagens
e descobertas.
• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é
ponto-chave na comunicação pela Internet.
• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não
controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.
Como participar dos fóruns e Wikipédia
Você tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:
O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações
que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a
8
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que
interesse ao grupo, favor postá-la aqui.
Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do
curso, é recomendado que você faça uso do Fórum de dúvidas gerais que lhe dá recursos mais
efetivos para esta prática.
. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo
para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas
a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem
ajudar.
Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a
formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico
é recomendável ver se a sua pergunta já foi feita por outro participante.
A segunda forma se dá pelas Wikis:
Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-
ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-
dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em português pelos links:
• Página principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;
• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as
idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
9
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor
ou instrutor:
• fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá
utilizar;
• gosta que lhe façam perguntas adicionais;
• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-
que motivo a classificação foi ou não foi atribuída’;
• tece comentários completos e construtivos, mas de forma agradável (em contraste com um
reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de
ameaça e de nervosismo’)
• dá uma ajuda complementar para encorajar um estudante em dificuldade;
• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;
• ajuda o estudante a alcançar os seus objetivos;
• é flexível quando necessário;
• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
• escreve todas as correções de forma legível e com um nível de pormenorização adequado;
• acima de tudo, devolve os trabalhos rapidamente;
10
Parte III
GNU Free Documentation License
11
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
(Traduzido pelo João S. O. Bueno através do CIPSGA em 2001)
Esta é uma tradução não oficial da Licençaa de Documentação Livre GNU em Português
Brasileiro. Ela não é publicada pela Free Software Foundation, e não se aplica legalmente a dis-
tribuição de textos que usem a GFDL - apenas o texto original em Inglês da GNU FDL faz isso.
Entretanto, nós esperamos que esta tradução ajude falantes de português a entenderem melhor
a GFDL.
This is an unofficial translation of the GNU General Documentation License into Brazilian Por-
tuguese. It was not published by the Free Software Foundation, and does not legally state the
distribution terms for software that uses the GFDL–only the original English text of the GFDL does
that. However, we hope that this translation will help Portuguese speakers understand the GFDL
better.
Licença de Documentação Livre GNU Versão 1.1, Março de 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, mas
não é permitido alterá-lo.
INTRODUÇÃO
O propósito desta Licença é deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copiá-lo ou redistribui-lo,
com ou sem modificações, comercialmente ou não. Secundariamente, esta Licença mantém
para o autor e editor uma forma de ter crédito por seu trabalho, sem ser considerado responsável
pelas modificações feitas por terceiros.
Esta Licença é um tipo de "copyleft"("direitos revertidos"), o que significa que derivações do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licença Pública Ge-
ral (GNU GPL), que é um copyleft para software livre.
Nós fizemos esta Licença para que seja usada em manuais de software livre, por que software
livre precisa de documentação livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licença não está restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele é publicado como um livro impresso. Nós recomendamos esta Licença prin-
cipalmente para trabalhos cujo propósito seja de introdução ou referência.
APLICABILIDADE E DEFINIÇÕES
Esta Licença se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribuído sob os termos desta Licença.
12
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do público é um
licenciado e é referida como "você".
Uma "Versão Modificada"do Documento se refere a qualquer trabalho contendo o documento
ou uma parte dele, quer copiada exatamente, quer com modificações e/ou traduzida em outra
língua.
Uma "Seção Secundária"é um apêndice ou uma seção inicial do Documento que trata ex-
clusivamente da relação dos editores ou dos autores do Documento com o assunto geral do
Documento (ou assuntos relacionados) e não contém nada que poderia ser incluído diretamente
nesse assunto geral (Por exemplo, se o Documento é em parte um livro texto de matemática, a
Seção Secundária pode não explicar nada de matemática).
Essa relação poderia ser uma questão de ligação histórica com o assunto, ou matérias relaci-
onadas, ou de posições legais, comerciais, filosóficas, éticas ou políticas relacionadas ao mesmo.
As "Seções Invariantes"são certas Seções Secundárias cujos títulos são designados, como
sendo de Seções Invariantes, na nota que diz que o Documento é publicado sob esta Licença.
Os "Textos de Capa"são certos trechos curtos de texto que são listados, como Textos de Capa
Frontal ou Textos da Quarta Capa, na nota que diz que o texto é publicado sob esta Licença.
Uma cópia "Transparente"do Documento significa uma cópia que pode ser lida automatica-
mente, representada num formato cuja especificação esteja disponível ao público geral, cujos
conteúdos possam ser vistos e editados diretamente e sem mecanismos especiais com editores
de texto genéricos ou (para imagens compostas de pixels) programas de pintura genéricos ou
(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passível de
servir como entrada a formatadores de texto ou para tradução automática para uma variedade
de formatos que sirvam de entrada para formatadores de texto. Uma cópia feita em um formato
de arquivo outrossim Transparente cuja constituição tenha sido projetada para atrapalhar ou de-
sencorajar modificações subsequentes pelos leitores não é Transparente. Uma cópia que não é
"Transparente"é chamada de "Opaca".
Exemplos de formatos que podem ser usados para cópias Transparentes incluem ASCII sim-
ples sem marcações, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML
usando uma DTD disponibilizada publicamente, e HTML simples, compatível com os padrões, e
projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos
proprietários que podem ser lidos e editados apenas com processadores de texto proprietários,
SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edição não estejam
disponíveis para o público, e HTML gerado automaticamente por alguns editores de texto com
finalidade apenas de saída.
A "Página do Título"significa, para um livro impresso, a página do título propriamente dita,
mais quaisquer páginas subsequentes quantas forem necessárias para conter, de forma legível,
o material que esta Licença requer que apareça na página do título. Para trabalhos que não
tenham uma página do título, "Página do Título"significa o texto próximo da aparição mais proe-
minente do título do trabalho, precedendo o início do corpo do texto.
13
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
FAZENDO CÓPIAS EXATAS
Você pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou não
comercial, desde que esta Licença, as notas de copyright, e a nota de licença dizendo que esta
Licença se aplica ao documento estejam reproduzidas em todas as cópias, e que você não acres-
cente nenhuma outra condição, quaisquer que sejam, às desta Licença.
Você não pode usar medidas técnicas para obstruir ou controlar a leitura ou confecção de
cópias subsequentes das cópias que você fizer ou distribuir. Entretanto, você pode aceitar com-
pensação em troca de cópias. Se você distribuir uma quantidade grande o suficiente de cópias,
você também precisa respeitar as condições da seção 3.
Você também pode emprestar cópias, sob as mesmas condições colocadas acima, e também
pode exibir cópias publicamente.
FAZENDO CÓPIAS EM QUANTIDADE
Se você publicar cópias do Documento em número maior que 100, e a nota de licença do
Documento obrigar Textos de Capa, você precisará incluir as cópias em capas que tragam, clara
e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e
Textos da Quarta Capa na capa de trás. Ambas as capas também precisam identificar clara e
legivelmente você como o editor dessas cópias. A capa da frente precisa apresentar o titulo com-
pleto com todas as palavras do título igualmente proeminentes e visíveis. Você pode adicionar
outros materiais às capas. Fazer cópias com modificações limitadas às capas, tanto quanto estas
preservem o título do documento e satisfaçam a essas condições, pode ser tratado como cópia
exata em outros aspectos.
Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma
legível, você deve colocar os primeiros (tantos quantos couberem de forma razoável) na capa
verdadeira, e continuar os outros nas páginas adjacentes.
Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, você
precisa ou incluir uma cópia Transparente que possa ser lida automaticamente com cada cópia
Opaca, ou informar, em ou com, cada cópia Opaca a localização de uma cópia Transparente
completa do Documento acessível publicamente em uma rede de computadores, a qual o público
usuário de redes tenha acesso a download gratuito e anônimo utilizando padrões públicos de
protocolos de rede. Se você utilizar o segundo método, você precisará tomar cuidados razoavel-
mente prudentes, quando iniciar a distribuição de cópias Opacas em quantidade, para assegurar
que esta cópia Transparente vai permanecer acessível desta forma na localização especificada
por pelo menos um ano depois da última vez em que você distribuir uma cópia Opaca (direta-
mente ou através de seus agentes ou distribuidores) daquela edição para o público.
É pedido, mas não é obrigatório, que você contate os autores do Documento bem antes de
redistribuir qualquer grande número de cópias, para lhes dar uma oportunidade de prover você
com uma versão atualizada do Documento.
14
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
MODIFICAÇÕES
Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das se-
ções 2 e 3 acima, desde que você publique a Versão Modificada estritamente sob esta Licença,
com a Versão Modificada tomando o papel do Documento, de forma a licenciar a distribuição
e modificação da Versão Modificada para quem quer que possua uma cópia da mesma. Além
disso, você precisa fazer o seguinte na versão modificada:
A. Usar na Página de Título (e nas capas, se houver alguma) um título distinto daquele do Do-
cumento, e daqueles de versões anteriores (que deveriam, se houvesse algum, estarem listados
na seção "Histórico do Documento"). Você pode usar o mesmo título de uma versão anterior se
o editor original daquela versão lhe der permissão;
B. Listar na Página de Título, como autores, uma ou mais das pessoas ou entidades responsá-
veis pela autoria das modificações na Versão Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Página de Título o nome do editor da Versão Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas próprias modificações adjacente às
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licença dando ao público
o direito de usar a Versão Modificada sob os termos desta Licença, na forma mostrada no tópico
abaixo;
G. Preservar nessa nota de licença as listas completas das Seções Invariantes e os Textos de
Capa requeridos dados na nota de licença do Documento;
H. Incluir uma cópia inalterada desta Licença;
I. Preservar a seção entitulada "Histórico", e seu título, e adicionar à mesma um item dizendo
pelo menos o título, ano, novos autores e editor da Versão Modificada como dados na Página de
Título. Se não houver uma sessão denominada "Histórico"no Documento, criar uma dizendo o
título, ano, autores, e editor do Documento como dados em sua Página de Título, então adicionar
um item descrevendo a Versão Modificada, tal como descrito na sentença anterior;
J. Preservar o endereço de rede, se algum, dado no Documento para acesso público a uma
cópia Transparente do Documento, e da mesma forma, as localizações de rede dadas no Docu-
mento para as versões anteriores em que ele foi baseado. Elas podem ser colocadas na seção
"Histórico". Você pode omitir uma localização na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da versão a que ela se refira
der sua permissão;
K. Em qualquer seção entitulada "Agradecimentos"ou "Dedicatórias", preservar o título da
15
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
seção e preservar a seção em toda substância e fim de cada um dos agradecimentos de contri-
buidores e/ou dedicatórias dados;
L. Preservar todas as Seções Invariantes do Documento, inalteradas em seus textos ou em
seus títulos. Números de seção ou equivalentes não são considerados parte dos títulos da seção;
M. Apagar qualquer seção entitulada "Endossos". Tal sessão não pode ser incluída na Versão
Modificada;
N. Não reentitular qualquer seção existente com o título "Endossos"ou com qualquer outro
título dado a uma Seção Invariante.
Se a Versão Modificada incluir novas seções iniciais ou apêndices que se qualifiquem como
Seções Secundárias e não contenham nenhum material copiado do Documento, você pode optar
por designar alguma ou todas aquelas seções como invariantes. Para fazer isso, adicione seus
títulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Esses títulos preci-
sam ser diferentes de qualquer outro título de seção.
Você pode adicionar uma seção entitulada "Endossos", desde que ela não contenha qual-
quer coisa além de endossos da sua Versão Modificada por várias pessoas ou entidades - por
exemplo, declarações de revisores ou de que o texto foi aprovado por uma organização como a
definição oficial de um padrão.
Você pode adicionar uma passagem de até cinco palavras como um Texto de Capa da Frente
, e uma passagem de até 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Versão Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento já incluir um texto de capa para a mesma capa, adicionado previamente por
você ou por acordo feito com alguma entidade para a qual você esteja agindo, você não pode
adicionar um outro; mas você pode trocar o antigo, com permissão explícita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento não dão permissão por esta Licença para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Versão Modificada.
COMBINANDO DOCUMENTOS
Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob
os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na com-
binação todas as Seções Invariantes de todos os documentos originais, sem modificações, e liste
todas elas como Seções Invariantes de seu trabalho combinado em sua nota de licença.
O trabalho combinado precisa conter apenas uma cópia desta Licença, e Seções Invariantes
Idênticas com multiplas ocorrências podem ser substituídas por apenas uma cópia. Se houver
múltiplas Seções Invariantes com o mesmo nome mas com conteúdos distintos, faça o título de
16
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
cada seção único adicionando ao final do mesmo, em parênteses, o nome do autor ou editor
origianl daquela seção, se for conhecido, ou um número que seja único. Faça o mesmo ajuste
nos títulos de seção na lista de Seções Invariantes nota de licença do trabalho combinado.
Na combinação, você precisa combinar quaisquer seções entituladas "Histórico"dos diver-
sos documentos originais, formando uma seção entitulada "Histórico"; da mesma forma combine
quaisquer seções entituladas "Agradecimentos", ou "Dedicatórias". Você precisa apagar todas as
seções entituladas como "Endosso".
COLETÂNEAS DE DOCUMENTOS
Você pode fazer uma coletânea consitindo do Documento e outros documentos publicados
sob esta Licença, e substituir as cópias individuais desta Licença nos vários documentos com
uma única cópia incluida na coletânea, desde que você siga as regras desta Licença para cópia
exata de cada um dos Documentos em todos os outros aspectos.
Você pode extrair um único documento de tal coletânea, e distribuí-lo individualmente sob
esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta
Licença em todos os outros aspectos relacionados à cópia exata daquele documento.
AGREGAÇÃO COM TRABALHOS INDEPENDENTES
Uma compilação do Documento ou derivados dele com outros trabalhos ou documentos se-
parados e independentes, em um volume ou mídia de distribuição, não conta como uma Ver-
são Modificada do Documento, desde que nenhum copyright de compilação seja reclamado pela
compilação. Tal compilação é chamada um "agregado", e esta Licença não se aplica aos outros
trabalhos auto-contidos compilados junto com o Documento, só por conta de terem sido assim
compilados, e eles não são trabalhos derivados do Documento.
Se o requerido para o Texto de Capa na seção 3 for aplicável a essas cópias do Documento,
então, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa
do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.
Senão eles precisarão aparecer nas capas de todo o agregado.
TRADUÇÃO
Tradução é considerada como um tipo de modificação, então você pode distribuir traduções
do Documento sob os termos da seção 4. A substituição de Seções Invariantes por traduções
requer uma permissão especial dos detentores do copyright das mesmas, mas você pode incluir
traduções de algumas ou de todas as Seções Invariantes em adição às versões orignais dessas
Seções Invariantes. Você pode incluir uma tradução desta Licença desde que você também in-
clua a versão original em Inglês desta Licença. No caso de discordância entre a tradução e a
17
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
versão original em Inglês desta Licença, a versão original em Inglês prevalecerá.
TÉRMINO
Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expres-
samente especificado sob esta Licença. Qualquer outra tentativa de copiar, modificar, sublicen-
ciar, ou distribuir o Documento é nula, e resultará automaticamente no término de seus direitos
sob esta Licença. Entretanto, terceiros que tenham recebido cópias, ou direitos de você sob esta
Licença não terão suas licenças terminadas, tanto quanto esses terceiros permaneçam em total
acordo com esta Licença.
REVISÕES FUTURAS DESTA LICENÇA
A Free Software Foundation pode publicar novas versões revisadas da Licença de Documen-
tação Livre GNU de tempos em tempos. Tais novas versões serão similares em espirito à versão
presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupações. Veja
http://www.gnu.org/copyleft/.
A cada versão da Licença é dado um número de versão distinto. Se o Documento especificar
que uma versão particular desta Licença "ou qualquer versão posterior"se aplica ao mesmo, você
tem a opção de seguir os termos e condições daquela versão específica, ou de qualquer versão
posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o
Documento não especificar um número de Versão desta Licença, você pode escolher qualquer
versão já publicada (não como rascunho) pela Free Software Foundation.
ADENDO: Como usar esta Licença para seus documentos
Para usar esta Licença num documento que você escreveu, inclua uma cópia desta Licença
no documento e ponha as seguintes notas de copyright e licenças logo após a página de título:
Copyright (c) ANO SEU NOME.
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença
de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Soft-
ware Foundation; com as Seções Invariantes sendo LISTE SEUS TÍTULOS, com os Textos da
Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cópia da li-
cença está inclusa na seção entitulada "Licença de Documentação Livre GNU".
Se você não tiver nenhuma Seção Invariante, escreva "sem Seções Invariantes"ao invés de
dizer quais são invariantes. Se você não tiver Textos de Capa da Frente, escreva "sem Textos de
Capa da Frente"ao invés de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os
Textos da Quarta Capa.
Se o seu documento contiver exemplos não triviais de código de programas, nós recomenda-
mos a publicação desses exemplos em paralelo sob a sua escolha de licença de software livre,
18
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
tal como a GNU General Public License, para permitir o seu uso em software livre.
19
Parte IV
LPI 101
20
Capítulo 1
LPI 101
A certificação é algo muito comum entre os profissionais de informática. É uma das maneiras
que os fabricantes de hardware e software encontraram para medir o quanto um profissional
conhece de determinado assunto. A certificação profissional é muito usada pela área de recursos
humanos das empresas na escolha de profissionais em processos seletivos.
O LPI é reconhecido como a primeira organização do mundo a defender e ajudar o uso profis-
sional do Linux, Open Source e Free Software. Os exames de certificação do LPI são aplicados
em milhares de lugares no mundo, em vários idiomas e com o apoio de empresários, fabricantes
e instrutores.
21
Capítulo 2
Plano de ensino
2.1 Objetivo
Qualificar técnicos e programadores na utilização e configuração de um sistema Linux.
2.2 Público Alvo
Técnicos e Programadores que desejam obter a certificação Linux LPI.
2.3 Pré-requisitos
Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci-
mento básico acerca de computadores.
2.4 Descrição
O curso Linux LPI 101 será realizado na modalidade EAD e utilizará a plataforma Moodle como
ferramenta de aprendizagem. Ele é composto de um módulo de aprendizado que será dado nas
primeiras quatro semanas e um módulo de avaliação que será dado na quarta semana. O material
didático estará disponível on-line de acordo com as datas pré-estabelecidas no calendário.
2.5 Metodologia
O curso está dividido da seguinte maneira:
• Lição 1 - Determinando e Configurando Hardware;
• Lição 2 - Iniciando o Sistema;
• Lição 3 - Modificando Runlevels, e desligando ou reiniciando o sistema.
• Lição 4 - Criando Modelo de Disco Rígido;
• Lição 5 - Instalando um Gerenciador de Boot;
22
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
• Lição 6 - Gerenciando Bibliotecas Compartilhadas;
• Lição 7 - Utilizando o Gerenciador de Pacotes do Debian;
• Lição 8 - Gerenciando Pacotes com YUM e RPM.
• Lição 9 - Trabalhando com a Linha de Comando;
• Lição 10 - Processando Fluxos de Texto Utilizando Filtros;
• Lição 11 - Gerenciamento Básico de Arquivos;
• Lição 12 - Utilizando Fluxos, pipes e redirects;
• Lição 13 - Criando, Monitorando e Matando Processos;
• Lição 14 - Modificando Prioridade de Execução de Processos;
• Lição 15 - Realizando Buscas em Arquivos de Textos com Expressões Regulares;
• Lição 16 - Edições Básicas Utilizando VI.
• Lição 17 - Criando Partições e sistemas de Arquivos;
• Lição 18 - Mantendo a Integridade de Sistemas de Arquivos;
• Lição 19 - Controlando a Montagem de Sistemas de Arquivos;
• Lição 20 - Gerenciando Quotas em Disco;
• Lição 21 - Gerenciando Donos e Permissões de Arquivos;
• Lição 22 - Criando e Modificando Links;
• Lição 23 - Encontrando Arquivos;
• Avaliação de aprendizagem;
• Avaliação do curso.
As lições contêm o conteúdo principal. Elas poderão ser acessadas quantas vezes forem ne-
cessárias, desde que esteja dentro da semana programada. Ao final de uma lição, você receberá
uma nota de acordo com o seu desempenho. Responda com atenção às perguntas de cada li-
ção, pois elas serão consideradas na sua nota final. Caso sua nota numa determinada lição seja
menor do que 6.0, sugerimos que você faça novamente esta lição.
Ao final do curso será disponibilizada a avaliação referente ao curso. Tanto as notas das
lições quanto a da avaliação final serão consideradas para a nota final. Todos os módulos ficarão
visíveis para que possam ser consultados durante a avaliação final.
Aconselhamos a leitura da "Ambientação do Moodle"para que você conheça a plataforma de
Ensino a Distância, evitando dificuldades advindas do "desconhecimento"sobre a mesma.
Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deverá ser
enviada ao fórum. Diariamente os monitores darão respostas e esclarecimentos.
23
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
2.6 Programa
O curso LPI 101 oferecerá o seguinte conteúdo:
• Arquitetura do Sistema;
• Instalação do Linux e gerenciamento de pacotes;
• Comandos GNU e Unix;
• Dispositivos, Sistemas de Arquivos Linux e Padrão de Sistemas de Arquivos Hierárquicos.
2.7 Avaliação
Toda a avaliação será feita on-line.
Aspectos a serem considerados na avaliação:
• Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento;
• Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados.
Instrumentos de avaliação:
• Participação ativa nas atividades programadas;
• Avaliação ao final do curso;
• O participante fará várias avaliações referentes ao conteúdo do curso. Para a aprovação e
obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo
com a fórmula abaixo:
• Nota Final = ((ML x 3) + (AF x 7)) / 10
• ML = Média aritmética das lições
• AF = Avaliações
2.8 Bibliografia
• Site oficial: http://lpi.org/
• Site oficial (BR): http://www.lpibrasil.com.br/
• Site de Manuais: http://man.he.net/
• Site de Manuais: http://linuxmanpages.com/
24
Capítulo 3
Determinando e Configurando
Hardware
3.1 /proc
Mais tarde aprenderemos mais sobre o sistema de arquivos do Linux, mas agora veremos
sobre o sistema de arquivos /proc. Este não é um sistema de arquivos real no disco, mas é um
pseudo sistema de arquivos, que provê informações sobre o sistema. Neste sistema de arquivos,
o arquivo /proc/pci contém informação sobre os dispositivos no PCI bus(bus: interface de comuni-
cação entre componentes). Ultimamente tem havido alguma discussão sobre descontinuar este
arquivo em particular, tendo em vista que o comando lspci nos mostra informações similares.
Rode o comando cat /proc/pci para ver algo mais ou menos semelhante a (dependendo do seu
sistema, este arquivo pode já ter sido retirado):
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge
(rev 1).
Prefetchable 32 bit memory at 0xd0000000 [0xdfffffff].
Bus 0, device 2, function 0:
VGA compatible controller: Intel Corp. 82845G/GL [Brookdale-G] Chipset
Integrated Graphics Device (rev 1).
IRQ 11.
Prefetchable 32 bit memory at 0x88000000 [0x8fffffff].
Non-prefetchable 32 bit memory at 0x80000000 [0x8007ffff].
25
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Bus 0, device 29, function 0:
USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 1).
IRQ 11.
I/O at 0x1800 [0x181f].
Bus 0, device 29, function 1:
USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 1).
IRQ 10.
I/O at 0x1820 [0x183f].
Bus 0, device 29, function 2:
USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 1).
IRQ 5.
I/O at 0x1840 [0x185f].
Bus 0, device 29, function 7:
USB Controller: Intel Corp. 82801DB USB2 (rev 1).
IRQ 9.
Non-prefetchable 32 bit memory at 0xc0080000 [0xc00803ff].
Bus 0, device 30, function 0:
PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 129).
Master Capable. No bursts. Min Gnt=4.
Bus 0, device 31, function 0:
ISA bridge: Intel Corp. 82801DB LPC Interface Controller (rev 1).
Bus 0, device 31, function 1:
IDE interface: Intel Corp. 82801DB Ultra ATA Storage Controller
26
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
(rev 1).
IRQ 5.
I/O at 0x1860 [0x186f].
Non-prefetchable 32 bit memory at 0x60000000 [0x600003ff].
Bus 0, device 31, function 3:
SMBus: Intel Corp. 82801DB/DBM SMBus Controller (rev 1).
IRQ 9.
I/O at 0x1880 [0x189f].
Bus 0, device 31, function 5:
Multimedia audio controller: Intel Corp. 82801DB AC’97 Audio
Controller (rev 1).
IRQ 9.
I/O at 0x1c00 [0x1cff].
I/O at 0x18c0 [0x18ff].
Non-prefetchable 32 bit memory at 0xc0080c00 [0xc0080dff].
Non-prefetchable 32 bit memory at 0xc0080800 [0xc00808ff].
Bus 2, device 8, function 0:
Ethernet controller: Intel Corp. 82801BD PRO/100 VE (LOM) Ethernet
Controller (rev 129).
IRQ 9.
Master Capable. Latency=66. Min Gnt=8.Max Lat=56.
Non-prefetchable 32 bit memory at 0xc0100000 [0xc0100fff].
I/O at 0x2000 [0x203f].
Utilize lspci para comparar com esta saída.
27
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Quando o CPU (Central Processing Unit, unidade de processamento central) precisa se co-
municar com um dispositivo periférico, ele o faz atraves de uma IO port (porta de entrada/saída)
ou simplesmente port. Quando a CPU quer enviar dados ou informações de controle para o pe-
riférico, ele escreve para a porta. Quando o dispositivo contém dados ou está com status ready,
a CPU lê os dados ou o status de uma porta. A maioria dos dispositivos tem mais do que uma
porta associada, tipicamente uma pequena potência de dois, como 8, 16 ou 32. A transferência
de dados é usualmente feita byte a byte. Dispositivos não podem compartilhar portas, então, se
você tem placas ISA (Industry Standard Architecture, arquitetura padrão da indústria), você deve
certificar que cada dispositivo tem a sua própria porta ou portas designadas. Originalmente isto
era feito utilizando switches ou jumpers, no própria placa. Alguns cartões ISA mais recentes uti-
lizam um sistema chamado Plug and Play(Pnp) que será visto mais tarde. Todas as placas PCI
têm PnP.
No sistemas de arquivo /proc, o arquivo /proc/ioports nos mostra as IO ports disponíveis no
sistema. Utilize o comando cat /proc/ioports para ver a saída. Os números das portas esta-
rão em hexadecimal. Sem dúvida você verá alguns que serão familiares, como teclado, para-
lela(impressora), serial(modem) e display.
Então, como a CPU sabe que a última saída já terminou ou quando os dados estão esperando
para ser lidos? Normalmente esta informação está disponível num registrador de status, que
pode ser acessado lendo um(ou mais) das IO ports associadas com algum dispositivo. Dois
problemas óbvios podem ser percebidos neste cenário: Primeiramente a CPU tem que gastar
tempo verificando o status. Depois, se o dispositivo tem dados vindo de algum lugar, estes dados
devem ser lidos em tempo hábil, ou então eles podem ser sobrescritos pelos próximos dados que
estão chegando.
Os dois problemas de não gastar ciclos de processamento desnecessários e garantir que
dados são lidos ou escritos num tempo hábil são resolvidos pelo conceito de interrupts (inter-
rupts:interrupções). Interrupts são também chamadas de Interrupt Requests ou simplesmente
IRQ. Quando alguma coisa acontece em um dispositivo que a CPU deva saber, o dispositivo
manda um interrupt e a CPU para qualquer coisa que esteja fazendo para tratar desta situação.
Estas informações sobre interrupts também são mantidas no sistema de arquivos /proc, no
arquivo /proc/interrupts. Utilize o comando cat /proc/interrupts para ver a saída deste arquivo. Este
arquivo estará em decimal. Originalmente, cada dispositivo tinha seu próprio IRQ. Atualmente
IRQ5 pode ser usada tanto para uma placa de som ou uma segunda porta paralela (Google:
Standart IRQ Settings). Se você quisesse os dois, você deveria encontrar uma placa que poderia
ser configurada (normalmente através de jumpers) para utilizar outra IRQ, por exemplo a IRQ15,
que está livre. Hoje, os dispositivos PCI compartilham IRQs, então quando um interrompe a CPU,
um interrupt handler verifica se a interrupção é pra ele, se não for, passa para o próximo handler
na cadeia.
Foi mencionado anteriormente que a comunicação com periféricos através de IO ports acon-
teciam byte a byte. Para um dispositivo rápido, os interrupts poderiam gastar muito da capacidade
da CPU. Um método mais rápido é utilizar DMA (Direct Memory Access), na qual algumas instru-
ções de IO falam para o dispositivo onde ler ou escrever na RAM e depois o controlador de DMA
provê gerenciamento de hardware da transferencia atual de dados entre a RAM e o periférico.
Mais uma vez, esta informação pode ser visualizada através do comando cat /proc/dma.
28
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
3.2 /dev
Nesta parte da lição introduziremos um novo e importante sistema de arquivos no Linux, o
/dev. Assim como o /proc, este é um pseudo sistema de arquivos, que descreve os dispositi-
vos(devices) que estão, ou poderiam estar em um sistema Linux. No /dev você vai encontrar
entradas como /dev/hda, /dev/hda5, /dev/sda, /dev/sdb1 e assim por diante. Você vai encontrar
várias outras entradas para outros tipos de dispositivos, mas agora veremos os que começam
com /dev/hd ou /dev/sd.
Estes dispositivos que começam com /dev/hd, tais como /dev/hda ou /dev/hda5 referenciam
drives IDE. O primeiro drive no primeiro controlador IDE é /dev/hda e o segundo, se estiver pre-
sente, será /dev/hdb. Desta forma, o primeiro drive no segundo controlador IDE é /dev/hdc e o
segundo será /dev/hdd. Você pode verificar utilizando os comandos ls /dev/hd? e ls /dev/sd?
(Mais à frente serão estudados os caracteres coringa, como ’?’, portanto não se preocupe com
ele agora).
3.3 modprobe
Modprobe: Programa para adicionar e remover módulos do Kernel Linux.
O modbprobe adiciona ou remove módulos de um kernel: note que por conveniência, não
há diferença entre _ e - em nomes de módulos. O Modprobe procura no diretório de módulos
(/lib/modules/’uname -r’) por todos os módulos e outros arquivos, exceto o que estiver descrito
no arquivo opcional /etc/modprobe.conf e o diretório /etc/modprobe.d. Todos os arquivos em
/etc/modprobe.d/arch/ são ignorados.
O modprobe não faz nada com o módulo em si. Todo o trabalho de resolver os símbolos e
entender os parâmetros é feito dentro do kernel. Desta forma, falhas de módulos geralmente são
acompanhadas de mensagens do kernel, que podem ser visualizadas com o comando dmseg.
O modprobe espera que o arquivo modules.dep esteja atualizado, como foi gerado pelo dep-
mod. Este arquivo lista o que cada módulo precisa (se precisa de algo) e o modprobe utiliza isto
para adicionar ou remover estas dependências automaticamente.
Se algum argumento for dado após o modulename, eles serão passados para o kernel.
Informações adicionais podem ser encontradas através dos comandos man modprobe ou info
modprobe.
3.4 lsmod, lspci e lsusb
Lsmod: Este programa lista o status dos módulos do kernel.
Lsmod é um simples programa que formata o conteúdo de /proc/modules, mostrando quais
módulos do kernel estão atualmente em funcionamento.
Mais informações através dos comandos man lsmod ou info lsmod
Como visto anteriormente, o comando lspci lista os dispositivos PCI.
Mais informações através dos comandos man lspci ou info lspci.
Assim como seus semelhantes, o comando lsusb lista os dispositivos USB conectados.
29
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Mais informações também podem ser obtidas através dos comandos man lsusb ou info lsusb.
30
Capítulo 4
Iniciando o Sistema
4.1 /var/log/messages
Nos sistemas Linux, este é o arquivo que contém os registros de entrada e saída de usuários
no sistema. Além disso, várias outras ações realizadas em diversos sistemas são gravadas aqui,
porém tais ações têm a ver com o escopo do sistema operacional, ou seja, tudo que pode afetar
ou impactar o sistema operacional como um todo e não somente um determinado sistema que
roda nele. As consequências da falta de algum dispositivo, sistema ou configuração ou da falha
de algum destes são também registradas aqui, se houver a possibilidade de impacto em outras
partes do sistema operacional. Em alguns sistemas baseados em Unix, o correspondente a este
arquivo é o /var/log/syslog.
Utilizando o comando cat /var/log/messages poderemos visualizar o arquivo de logs, porém
este arquivo só pode ser acessado por alguém com privilégios de administrador do sistema(root).
Seu arquivo de logs pode parecer-se com isto, ou pode não ter nada a ver:
Apr 11 18:30:35 mymachine kernel: PCI: Probing PCI hardware
Apr 11 18:30:35 mymachine smartd[4701]: Opened configuration file /etc/smartd.conf
Apr 11 18:30:35 mymachine kernel: PCI: Probing PCI hardware (bus 00)
Apr 11 18:30:35 mymachine smartd[4701]: Configuration file /etc/smartd.conf parsed.
Apr 11 18:30:35 mymachine kernel: PCI: Ignoring BAR0-3 of IDE controller 00:1f.1
Apr 11 18:30:35 mymachine kernel: Transparent bridge - Intel Corp. 82801BA/CA/DB/EB PCI Bridge
Apr 11 18:30:35 mymachine modprobe: modprobe: Can’t locate module block-major-3
Apr 11 18:30:35 mymachine kernel: PCI: Using IRQ router PIIX/ICH [8086/24d0] at 00:1f.0
Apr 11 18:30:35 mymachine smartd[4701]: Device: /dev/hda, No such device or address, open() failed
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P0) ->16
Apr 11 18:30:35 mymachine smartd[4701]: Unable to register ATA device /dev/hda at line 30 of file /etc/smartd.conf
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P1) ->19
Apr 11 18:30:35 mymachine smartd[4701]: Unable to register device /dev/hda (no Directive -d removable). Exiting.
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P2) ->18
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P0) ->16
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P3) ->23
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P0) ->18
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P0) ->18
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P1) ->17
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P1) ->17
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B1,I0,P0) ->16
Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B2,I12,P0) ->18
Apr 11 18:30:35 mymachine kernel: isapnp: Scanning for PnP cards...
Apr 11 18:30:35 mymachine kernel: isapnp: No Plug & Play device found
Apr 11 18:30:35 mymachine kernel: Linux NET4.0 for Linux 2.4
Apr 11 18:30:35 mymachine kernel: Based upon Swansea University Computer Society NET3.039
Apr 11 18:30:35 mymachine kernel: Initializing RT netlink socket
Apr 11 18:30:35 mymachine kernel: apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16)
Apr 11 18:30:35 mymachine kernel: apm: disabled - APM is not SMP safe.
Apr 11 18:30:35 mymachine kernel: Starting kswapd
Apr 11 18:30:35 mymachine kernel: allocated 32 pages and 32 bhs reserved for the highmem bounces
Apr 11 18:30:35 mymachine smartd: smartd startup failed
Apr 11 18:30:35 mymachine kernel: VFS: Disk quotas vdquot_6.5.1
Apr 11 18:30:35 mymachine kernel: pty: 2048 Unix98 ptys configured
Apr 11 18:30:35 mymachine kernel: Serial driver version 5.05c (2001-07-0 with MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP
enabled
Apr 11 18:30:35 mymachine kernel: ttyS0 at 0x03f8 (irq = 4) is a 16550A
Apr 11 18:30:35 mymachine kernel: Real Time Clock Driver v1.10e
Apr 11 18:30:35 mymachine kernel: NET4: Frame Diverter 0.46
Apr 11 18:30:35 mymachine kernel: RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
31
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Apr 11 18:30:35 mymachine kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
Apr 11 18:30:35 mymachine kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Apr 11 18:30:35 mymachine kernel: ICH5: IDE controller at PCI slot 00:1f.1
Apr 11 18:30:35 mymachine kernel: ICH5: chipset revision 2
Apr 11 18:30:35 mymachine kernel: ICH5: not 100%% native mode: will probe irqs later
Apr 11 18:30:35 mymachine kernel: ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:DMA
Apr 11 18:30:35 mymachine kernel: hdc: GCR-8481B, ATAPI CD/D
4.2 dmesg
Este comando imprime (em tela ou arquivo) ou controla o ring buffer do kernel.
Este programa auxilia usuários a imprimir as mensagens de boot, ao invés de copiar as
mensagens na mão, o usuário precisa apenas de redirecionar a saída do comando: dmesg
>boot.messages
Suas opções principais são:
-c : Limpa o ring buffer após imprimi-lo.
-s TAMANHO : Imprime o buffer de tamanho TAMANHO. Por padrão isto é 16392.
-n NIVEL : Define o NÍVEL de mensagens que serão impressas. Quando esta opção é utili-
zada, dmesg NÃO VAI apagar o ring buffer.
Para maiores detalhes, utilize man dmesg ou info dmesg.
4.3 BIOS
BIOS é um acrônimo para Basic Input/Output System, ou seja, Sistema Básico de Entrada/Saída.
A BIOS é um firmware de boot, que é o primeiro código que o computador executa quando
ligado. A função inicial dela é identificar, testar e inicializar os dispositivos do sistema, tais como
monitor, disco rígido, disquete e outros.
Os programas de BIOS são armazenados em um chip e são construídos para trabalhar com
vários dispositivos, que complementam o CHIPSET do sistema. Eles provêm uma pequena biblio-
teca de funções de entrada/saída que podem ser chamadas para operar e controlar os periféricos,
tais como teclados, monitores, e assim por diante.
As BIOS de antigamente eram escritos em chips ROM (Read-Only Memory) ou PROM (Programmable
ROM), que não permitiam a alteração por usuários. Quando a complexidade e necessidade de
updates cresceu, a BIOS passou a ser escrita em chips reprogramáveis.
Mais informações em: http://en.wikipedia.org/wiki/BIOS
4.4 bootloader
Um processador central de um computador pode executar apenas os códigos encontrados
em ROMs ou RAMs (Random Access Memory). Os sistemas operacionais modernos, os pro-
gramas e seus códigos e dados estão armazenados em um dispositivo de armazenamento não
voláteis, tais como discos rígidos, cd, dvd, pen drives, dentre outros. Desta forma, quando um
computador é ligado, ele não possui um sistema operacional na ROM ou na RAM. Primeiramente
o computador deve executar um pequeno programa armazenado na ROM junto com o mínimo
32
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
de dados necessários para acessar os dispositivos não voláteis nos quais os programas e sis-
tema operacional estão armazenados e transferí-lo para a RAM, possibilitando assim o início do
sistema.
Este pequeno programa que inicia esta sequência de carregamento para a RAM é conhecido
como bootloader. A única função deste programa é carregar os outros dados e programas ne-
cessários para a RAM. Frequentemente, bootloaders de estágios múltiplos são utilizados, desta
forma, vários programas de complexidade crescente, sequencialmente, carregam um após o ou-
tro, num processo chamado chain loading (carregamento em cadeia) até que o sistema possa ser
iniciado.
Os bootloaders devem ser localizados nos primeiros 446 bytes de um disco rígido, num local
chamado MBR (Master Boot Record).
4.5 kernel
O kernel é o componente central dos sistemas Linux. Ele funciona como uma ponte entre as
aplicações e os dados processados a nível de hardware. Entre as responsabilidades do kernel
está o gerenciamento dos recursos do sistema. Geralmente como um componente básico do
sistema operacional, o kernel pode prover a camada mais baixa de abstração para os recursos
(especialmente processadores e dispositivos de E/S) que os softwares devem controlar para rea-
lizar sua função. Isto é feito pelos processos via mecanismos de comunicação entre processos e
chamadas ao sistema (system calls).
Na maioria dos sistemas, o bootloader inicia executando o kernel. O kernel então inicializa a
si próprio e inicia o primeiro processo. Após isto, o kernel normalmente não executa diretamente,
apenas em resposta a eventos externos (via system calls ou interrupts, por exemplo)
O kernel é responsável pelos recursos: CPU, memória e E/S. É função do kernel decidir qual
programa deve executar no processador e por quanto tempo (considerando que cada processa-
dor só pode rodar um programa por vez). É função do kernel decidir, em que parte da memória,
quais programas podem armazenar instruções e dados. Muitas vezes a memória disponível pode
não ser suficiente para o que todos os programas desejam, ficando assim para o kernel a respon-
sabilidade de decidir o que fazer quando não há espaço suficiente. É função do kernel também
gerenciar pedidos de aplicações para realizar E/S em um dispositivo.
4.6 init
Init, que é uma abreviação para initialization (inicialização), é o programa responsável por
criar todos os outros processos. Ele roda como um daemon e tipicamente tem o PID (process
identification) 1.
É sua função criar os processos de um script armazenado no arquivo /etc/inittab. Este arquivo
geralmente tem entradas que fazem com que o init crie ttys, que são terminais que permitem que
os usuários se loguem.
Exemplo do arquivo inittab:
# /sbin/getty invocations for the runlevels.
#
# The "id"field MUST be the same as the last
# characters of the device (after "tty").
33
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty’s go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
34
Capítulo 5
Modificando Runlevels, Desligando e
Reiniciando o Sistema
5.1 /etc/inittab
A seguir uma inittab completa:
pedro-brito@cdtcsun04:~$ cat /etc/inittab
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
35
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request–edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id"field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty’s go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
Mais a frente detalharemos um pouco esta tabela.
36
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
5.2 Definindo e alterando runlevels
O termo runlevel se refere ao modo de operação num sistema operacional Unix. Existem sete
runlevels, numerados de zero a seis, apesar de que podem ser usados até dez (de zero a nove).
Algumas vezes ’S’ é utilizado como um sinônimo para um dos levels.
A configuração exata dos runlevels variam de sistema para sistema. A seguir a tabela de
runlevels para o debian:
ID Description
0 Halt
1 Single-User mode
2-5 Full Multi-User with console logins and display manager if installed
6 Reboot
Para alterar o runlevel do sistema, utilize o comando telinit N, substituindo ’N’ pelo runlevel
desejado. Este comando requer poderes de superusuário.
Para definir o runlevel padrão, basta alterar o arquivo inittab, presente como exemplo na pá-
gina anterior.
# The default runlevel.
id:2:initdefault:
Esta é a linha a ser alterada. Basta trocar o 2 pelo runlevel desejado.
5.3 shutdown
O comando shutdown desliga o sistema de uma forma segura. Todos os usuários logados
são notificados que o sistema está sendo desligado e futuros logins são bloqueados. É possível
desligar imediatamente ou após um atraso especificado. Todos os processos são notificados que
o sistema está sendo desligado. Isto dá aos programas chance de finalizar sem erros.
Sintaxe: shutdown [opções] TEMPO [mensagem de aviso]
As principais opções são:
-r : reiniciar;
-h : desligar;
-c : cancela um desligamento agendado.
O TEMPO pode ter vários formatos. Pode ser absoluto (hh:mm). Pode ser no formato +m,
que desligará o sistema daqui a ’m’ minutos. O "now"é um alias para +0.
A mensagem de aviso opcional deve estar entre aspas duplas.
Este comando só pode ser utilizado pelo superusuário.
37
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
5.4 kill
Terminando processos de forma apropriada: O comando kill manda um sinal para um pro-
cesso. O sinal padrão para kill é TERM, que fará com que o programa finalize normalmente. O
sinal KILL (9) fará com que o programa finalize imediatamente, sem salvar os dados alterados.
Os sinais disponíveis são:
Name Num Action Description
ALRM 14 exit
HUP 1 exit
INT 2 exit
KILL 9 exit cannot be blocked
PIPE 13 exit
POLL exit
PROF exit
TERM 15 exit
USR1 exit
USR2 exit
VTALRM exit
STKFLT exit might not be implemented
PWR ignore might exit on some systems
WINCH ignore
CHLD ignore
URG ignore
TSTP stop might interact with the shell
TTIN stop might interact with the shell
TTOU stop might interact with the shell
STOP stop cannot be blocked
CONT restart continue if stopped, otherwise ignore
ABRT 6 core
FPE 8 core
ILL 4 core
QUIT 3 core
SEGV 11 core
TRAP 5 core
SYS core might not be implemented
EMT core might not be implemented
BUS core core dump might fail
XCPU core core dump might fail
XFSZ core core dump might fail
Sintaxe:
kill [ -sinal | -s sinal ] pid ...
kill [ -L | -V, –version ]
kill -l [ sinal ]
38
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Exemplos de utilização:
kill -9 -1
Mata todos os processos que você pode matar.
kill -l 11
Traduz o número 11 em um nome de sinal.
kill -L
Lista os sinais disponíveis em uma tabela(mostrada acima).
kill 123 543 2341 3453
Manda o sinal padrão, TERM (15) para todos estes programas.
39
Capítulo 6
Criando Modelo de Disco Rígido
6.1 Swap
Para ser instalado, o Linux precisa de duas partições. Uma delas será o diretório raiz do
sistema (/) e a outra será a área de swap.
A área de swap funciona como uma memória virtual. Quando dados de programas em exe-
cução não estão sendo acessados constantemente, estes dados passam para a área de swap,
liberando assim um espaço na memória RAM para permitir que mais programas rodem ao mesmo
tempo. Assim que dados na swap forem necessários, eles voltarão à memória principal, enquanto
os dados que constam lá que estão sendo menos utilizados serão colocados na swap.
Recomenda-se que a swap deve ter o dobro do tamanho da sua memória RAM, mas lembre-
se que esta regra não é universal. Você deve ser capaz de definir o próprio tamanho de swap
com base nos softwares que você pretende utilizar!
Para criar um arquivo de swap, utilize o seguinte comando:
# dd if=/dev/zero of=/particaoswap bs=1024 count=262144
Sendo bs o tamanho do bloco em bytes e count o número de blocos utilizados, o tamanho da
swap será: 1024*262144, o que dá aproximadamente 256MB.
Após criado, deve-se preparar o arquivo para ser utilizado como swap:
# mkswap particaoswap
Em seguida, iniciamos o uso do arquivo de swap:
# swapon particaoswap
Lembrando que esta partição swap estará disponível apenas durante esta sessão. Para que
esta partição criada seja montada durante a inicialização do sistema, a seguinte linha deve ser
incluída no arquivo /etc/fstab:
/particaoswap swap swap defaults 0 0
40
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
6.2 /boot
Este diretório contêm tudo que é necessário para o processo de boot, exceto arquivos de
configuração que não são necessários no momento do boot e o map installer. Desta forma, o
/boot armazena os dados que são utilizados antes que o kernel comece a executar os programas
em modo de usuário. Isto pode incluir master boot sectors salvos e sector map files.
Frequentemente este diretório está em uma partição diferente do resto do sistema operacio-
nal.
41
Capítulo 7
Instalando um Gerenciador de Boot
7.1 Instalando o grub
No primeiro setor do disco rígido, a MBR, estão as tabelas de partições e o carregador de
boot. A função do carregador de boot é encontrar o kernel a ser iniciado e carregá-lo junto a
memória.
Os dois gerenciadores mais populares do Linux são o Lilo e o Grub.
Considerando que o grub possui mais opções que o lilo, e seu utilitário de configuração é
automatizado, utilizaremos ele neste curso.
Grub é um acrônimo para Grand Unified Bootloader. Após realizar alterações, o grub será
atualizado com o comando update-grub.
Para instalar o grub na MBR, utiliza-se o comando /sbin/grub-install ou /sbin/grub, dependendo
da versão do sistema. Ao instalar o grub, ele provavelmente já listará todos os kerneis instalados.
Caso não seja, adicione ao final do menu.lst e rode o comando update-grub.
Segue abaixo um exemplo do arquivo de configuração /boot/grub/menu.lst do grub:
pedro-brito@cdtcsun04:~$ cat /boot/grub/menu.lst
# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-legacy-doc/.
## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify ’saved’ instead of a number. In this case, the default entry
# is the entry saved with the command ’savedefault’.
# WARNING: If you are using dmraid do not change this entry to ’saved’ or your
# array will desync and will not let you boot your system.
default 0
## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
42
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
timeout 5
# Pretty colours
color cyan/blue white/blue
## password [’–md5’] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command ’lock’
# e.g. password topsecret
# password –md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret
#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#
#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below
## DO NOT UNCOMMENT THEM, Just edit them to your needs
## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/sda1 ro
## default grub root device
## e.g. groot=(hd0,0)
43
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
# groot=(hd0,0)
## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true
## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false
## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=vga=791 quiet
## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false
## Xen hypervisor options to use with the default Xen boot option
# xenhopt=
## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0
## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(single-user) single
# altoptions=(single-user mode) single
## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all
## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true
## should update-grub adjust the value of the default booted system
## can be true or false
44
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
# updatedefaultentry=false
## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false
## ## End Default Options ##
title Debian GNU/Linux, kernel 2.6.26-2-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro vga=791 quiet
initrd /boot/initrd.img-2.6.26-2-686
title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.26-2-686
### END DEBIAN AUTOMAGIC KERNELS LIST
A maioria das configurações já possuem sua própria explicação no arquivo. Explicarei a seguir
como é feito a nomeação dos dispositivos listados.
title ->Nome que aparecerá no menu para escolher entre os kernels.
root ->Endereço do diretório raiz. (hd0) significa o primeiro disco rígido. (hd0,0) significa a
primeira partição do primeiro disco rígido. (hd0,1) significa a segunda partição do primeiro disco
rígido e assim sucessivamente.
kernel ->Caminho do kernel e opções de início.
initrd ->Initial ramdisk. É um sistema de arquivos temporário, utilizado para fazer preparações
antes que o verdadeiro sistema de arquivos raiz possa ser montado.
45
Capítulo 8
Gerenciando Bibliotecas
Compartilhadas
8.1 Bibliotecas Compartilhadas
Bibliotecas são arquivos para compartilhar funções comuns de programas, a todos os progra-
mas que utilizam tais funções. Quando o programa for compilado, ele vai verificar quais bibliote-
cas ele necessita e se ligará às bibliotecas necessárias, que estão em um local determinado, tais
como /lib e /usr/lib (as padrões do sistema).
Caso você deseje adicionar um novo diretório de bibliotecas, basta simplesmente incluir o
caminho completo para o diretório no arquivo /etc/ld.so.conf.
Após a alteração do arquivo, utilize o seguinte comando para que a mudança seja efetivada:
#ldconfig
46
Capítulo 9
Utilizando o Gerenciador de Pacotes do
Debian
9.1 dpkg
O dpkg é uma ferramenta para instalar, montar, remover e gerenciar pacotes Debian. O
uso principal e mais user-friendly front-end é o aptitude, porém ele não será abordado aqui.
Controlaremos o dpkg via linha de comando.
Sua sintaxe é a seguinte:
dpkg [options] action
O parâmetro action diz ao dpkg o que fazer e as options controlam o comportamento da ação.
A action -i ou –install, seguida do nome do pacote instala o pacote. Note que neste caso é
necessário já ter o arquivo do pacote salvo no seu computador.
A action -r ou –remove seguida do nome do pacote, desinstala o pacote e remove tudo, ex-
ceto os arquivos de configuração, para o caso de o pacote ser reinstalado, não ser necessário
reconfigurá-lo.
A action -P ou –purge seguida do nome do pacote é semelhante ao –remove, porém, neste
caso, os arquivos de configuração são também excluídos.
Uma desvantagem do dpkg sobre o apt é que todos os pacotes a serem instalados devem ter
sido obtidos de uma outra fonte.
9.2 APT
O APT é a principal ferramenta de gerenciamento de pacotes do Debian, na qual se pode
obter um poder muito grande no gerenciamento de pacotes, devido as suas vastas opções.
Para instalar um pacote via apt, não é necessário colocar sua versão, diferentemente do dpkg,
assim como também não é necessário obter o pacote previamente.
47
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Para instalar um pacote utiliza-se a opção install do apt-get:
# apt-get install NOME DO PACOTE
Caso você não saiba o nome do pacote que você deseja instalar, você pode buscá-lo através
do comando:
$ apt-cache search BUSCA
Este comando retornará todos os pacotes em que aparecem a palavra BUSCA e então você
pode instalar o pacote desejado. Mais de um pacote pode ser especificado quando for instalar.
Caso o programa seja um programa novo, possivelmente ele não retornará nenhum resultado
quando utilizado o comando search do apt-cache, porém, utilizando o comando:
# apt-get update.
O apt-get re-sincronizará seu índice de pacotes com o do servidor, possibilitando assim, a
inclusão de novos pacotes para a instalação. Se ainda assim o pacote desejado não aparecer
na listagem, pode-se editar o arquivo /etc/apt/sources.list, que é onde encontram-se os updates
para que os novos pacotes apareçam na listagem.
Para desinstalar um programa via apt-get, o comando necessário segue o mesmo padrão
da instalação, porém o comando agora é "remove"para manter os arquivos de configuração e
"purge"para excluir os arquivos de configuração. Assim como era com o dpkg. Novamente, mais
de um pacote pode ser selecionado por vez.
9.3 Informações
Para obter informações variadas sobre os pacotes, utilize o comando dpkg –status PACOTE,
como no exemplo, informações sobre o pacote iceweasel:
pedro-brito@cdtcsun04:~$ dpkg –status iceweasel
Package: iceweasel
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 3900
Maintainer: Eric Dorland <eric@debian.org>
Architecture: i386
Version: 3.0.6-3
Replaces: firefox (<2.0+dfsg-1), iceweasel-gnome-support (<= 3.0~ b5-2), mozilla-firefox
Provides: www-browser
Depends: fontconfig, psmisc, procps, debianutils (>= 1.16), libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1),
libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.12.0), libnspr4-0d (>= 1.8.0.10), libstdc++6 (>= 4.1.1),
xulrunner-1.9 (>= 1.9.0.3-1)
Suggests: xulrunner-1.9-gnome-support, latex-xft-fonts, xfonts-mathml, ttf-mathematica4.1,
xprint, mozplugger, libkrb53
48
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Conflicts: firefox (« 2.0+dfsg-1), iceweasel-dom-inspector (« 3.0~ b4), mozilla-firefox (« 1.5.dfsg-
1)
Conffiles:
/etc/iceweasel/pref/iceweasel.js f1bcbce2d713f2f639a9a9db7c3ad228
/etc/iceweasel/profile/chrome/userContent-example.css d3765c7d2de5626529195007f4b7144a
/etc/iceweasel/profile/chrome/userChrome-example.css 4788fdaa51b0a238cb21f5c2877ef06d
/etc/iceweasel/profile/prefs.js 99940ecd258d83b3355ab06fca0ffddb
/etc/iceweasel/profile/mimeTypes.rdf 69cdcb7e0209f2e9d29000ee1c0ee2f0
/etc/iceweasel/profile/bookmarks.html 5268a062e398d7c991f16155159088a3
/etc/iceweasel/profile/localstore.rdf ea03cc19c2a3f622fa557cd8ea9da6eb
/etc/iceweasel/iceweaselrc a7f1bcffd6febdb02e86652a60ebfd16
Description: lightweight web browser based on Mozilla
Iceweasel is a redesign of the Mozilla browser component, similar to
Galeon, K-Meleon and Camino, but written using the XUL user interface
language and designed to be lightweight and cross-platform.
This browser is based on the Firefox source-code, with minor
modifications. Historically, this browser was previously known as
Firebird and Phoenix.
49
Capítulo 10
Gerenciando Pacotes com YUM e RPM
10.1 Pacotes com YUM e RPM
Utilizando o YUM:
yum list - Lista todos os pacotes disponíveis;
yum check-update ou yum list updates - Verifica se há pacotes disponíveis para um update;
yum update - Faz o update de seu sistema;
yum update <package> - Faz o update apenas de <package>;
yum install <package(s)> - Instala um pacote específico e suas dependências;
yum info <package> - Apresenta informações básicas de um determinado pacote.
Utilizando o RPM:
rpm -q <package> - Lista os pacotes disponíveis que se relacionam a <package>(Este co-
mando pode ser utilizado para visualizar o status do pacote no sistema);
rpm -e <package> - Remove o <package>;
rpm -i <package> - Instala o pacote <package>;
rpm -ql <package> - Mostra quais arquivos estão contidos no pacote.
50
Capítulo 11
Trabalhando com a Linha de Comando
11.1 Caracteres Especiais e Coringa
’.’ - O ponto, numa linha de comando significa o diretório atual.
’..’ - Dois pontos, em uma linha de comando significa o diretório pai.
’/’ - Barra significa, em uma linha de comando, a separação entre diretórios, ou o diretório raiz
do sistema.
’~’ - O til, em uma linha de comando, significa o diretório pessoal do usuário, ou seja, sua
pasta "home".
’*’ - O asterisco significa todos, ou qualquer um. Todas as opções disponíveis serão escolhi-
das.
’?’ - A interrogação, como o asterisco significa qualquer um, mas de forma diferente, a interro-
gação deve ser APENAS um caractere, e ele TEM que existir, diferentemente do asterisco. Veja
o exemplo:
pedro-brito@cdtcsun04:~$ touch teste teste1 teste2 teste12 %Criando os arquivos teste, teste1,
teste2 e teste12%
pedro-brito@cdtcsun04:~$ ls teste %Listando os arquivos chamado "teste". Note que como
nenhum caractere coringa foi utilizado, deve aparecer somente aqueles que o nome é exatamente
igual ao pedido%
teste
pedro-brito@cdtcsun04:~$ ls teste* %Listando todos os arquivos que comecem com teste%
teste teste1 teste12 teste2
pedro-brito@cdtcsun04:~$ ls teste? %Listando todos os arquivos que comecem com teste e
tenham APENAS mais um caractere%
teste1 teste2
pedro-brito@cdtcsun04:~$ ls teste1? %Listando todos os arquivos que comecem com teste1
e contenham APENAS mais um caractere%
teste12
pedro-brito@cdtcsun04:~$ ls teste1* %Listando todos os arquivos que comecem com teste1
e tenham um número qualquer de caracteres a mais(Incluindo nenhum caractere a mais)%
teste1 teste12
[ ] - Indica uma lista de caracteres sequenciais.
{ } - Indica as seleções desejadas.
51
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
Veja o exemplo:
pedro-brito@cdtcsun04:~$ touch teste1 teste2 teste3 teste4 teste5 teste6 teste7 teste8 teste9
%Criando os arquivos teste de 1 a 9%
pedro-brito@cdtcsun04:~$ ls teste[3-9] %Listando os arquivos teste de 3 a 9%
teste3 teste4 teste5 teste6 teste7 teste8 teste9
pedro-brito@cdtcsun04:~$ ls teste1,3,5,7 %Listando os arquivos teste 1, 3, 5 e 7%
teste1 teste3 teste5 teste7
pedro-brito@cdtcsun04:~$ ls teste1-3,5-9 %Não é possível selecionar intervalos com , deve-
se especificar individualmente os que devem ser selecionados%
ls: impossível acessar teste1-3: Arquivo ou diretório não encontrado
ls: impossível acessar teste5-9: Arquivo ou diretório não encontrado
pedro-brito@cdtcsun04:~$ ls teste[1-3,5-9] %Listando os arquivos de 1 a 3 e de 5 a 9%
teste1 teste2 teste3 teste5 teste6 teste7 teste8 teste9
11.2 bash
Bash é um Shell escrito em 1987 para o projeto GNU. Ele foi baseado no Bourne Shell (sh)
criado por Stephen Bourne, daí seu nome Bash, que é um acrônimo para Bourne Again Shell(Do
inglês, Born significa nascer, então é também uma piadinha para "Shell renascido").
Na maioria das distribuições Linux, este é o shell padrão.
A seguir, alguns atalhos para facilitar a operação no bash:
Tab : Autocompleta
CTRL + a: Move o cursor para o início da linha
CTRL + e: Move o cursor para o final da linha
CTRL + p: Chama o comando utilizado anteriormente
CTRL + n: Chama o próximo comando
CTRL + l: Limpa a tela
CTRL + u: Limpa o conteúdo antes do cursor e o passa pra área de transferência
CTRL + k: Limpa o conteúdo após o cursor e o passa pra área de transferência
ALT + f: Move o cursor uma palavra adiante
ALT + b: Move o cursor uma palavra atrás
ALT + d: Apaga a palavra na frente do cursor
11.3 Variáveis
O Shell utiliza algumas variáveis para facilitar seu uso, e para prover outras informações. É
possível exportar uma variável, tornando-a disponível para as sessões do bash criadas apartir
da sessão em que a variável foi exportada. Você pode verificar a lista das variáveis locais e de
ambiente com o comando set:
pedro-brito@cdtcsun04:~/Desktop$ set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
52
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3"[1]="2"[2]="39"[3]="1"[4]="release"[5]="i486-pc-linux-gnu")
BASH_VERSION=’3.2.39(1)-release’
COLORTERM=gnome-terminal
COLUMNS=176
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-E9L3yd4s9B,guid=da5097e45bef5b1
5a4c61b474b4c944b
DESKTOP_SESSION=default
DESKTOP_STARTUP_ID=
DIRSTACK=()
DISPLAY=:0.0
EUID=1019
GDMSESSION=default
GDM_LANG=pt_BR.UTF-8
GDM_XSERVER_LOCATION=local
GNOME_DESKTOP_SESSION_ID=Default
GNOME_KEYRING_PID=31533
GNOME_KEYRING_SOCKET=/tmp/keyring-QDCU7e/socket
GPG_AGENT_INFO=/tmp/seahorse-BODIya/S.gpg-agent:31591:1
GROUPS=()
GTK_RC_FILES=/etc/gtk/gtkrc:/home/pedro-brito/.gtkrc-1.2-gnome2
HISTCONTROL=ignoreboth
HISTFILE=/home/pedro-brito/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/pedro-brito
HOSTNAME=cdtcsun04
HOSTTYPE=i486
IFS=$’ tn’
LANG=pt_BR.UTF-8
LINES=63
LOGNAME=pedro-brito
LS_COLORS=’no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35: do=01;35:bd=40;33;0 1:cd=
40;33;01:or=40;31;01: su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=0 1;31:*.tgz=01;31
:*.svgz= 01;31:*.arj=01;31:*. taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=0 1;31:*.
dz=01;31 :*.gz=01 ;31:*.bz2=01;31:*.bz=01 ;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;
31:*.rar =01;31: *.ace=01;3 1:*.zoo=01;31:*.cpio=01 ;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=
bmp=01;35:*. pbm=01;35: *.pgm=01;35:*.ppm=01;35 :*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=
png=01;35:*. svg=01;35: *.mng=01;35:*.pcx=01;35: *.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.
ogm=01;35:*.m p4=01;35:*. m4v=01;35:*.mp4v=01;35: *.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.a
01;35:*.rmv b=01;35:*.fl c=01;35:*.avi=01;35:*. fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=
01;35:*.aac=0 0;36:*.au=0 0;36:*.flac=00;36:*.mid =00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;3
00;36:*.ra=00 ;36:*.wav=00;36:’
MACHTYPE=i486-pc-linux-gnu
MAILCHECK=60
OPTERR=1
OPTIND=1
53
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
OSTYPE=linux-gnu
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
PIPESTATUS=([0]="0")
PPID=864
PS1=’[e]0;u@h: wa]$debian_chroot:+($debian_chroot)u@h:w$ ’
PS2=’>’
PS4=’+ ’
PWD=/home/pedro-brito/Desktop
SESSION_MANAGER=local/cdtcsun04:/tmp/.ICE-unix/31534
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_AUTH_SOCK=/tmp/keyring-QDCU7e/ssh
TERM=xterm
UID=1019
USER=pedro-brito
USERNAME=pedro-brito
WINDOWID=46137421
WINDOWPATH=7:7:7:7
XAUTHORITY=/home/pedro-brito/.Xauthority
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/_=env
Caso você deseje alterar alguma variável, basta digitar o nome dela, o sinal de igual e o novo
valor. Por exemplo a variável SHELL (SHELL=/bin/bash). Se eu quiser alterar o shell que eu
utilizo, basta utilizar o seguinte comando:
pedro-brito@cdtcsun04:~$ SHELL=/bin/sh
pedro-brito@cdtcsun04:~$ echo $SHELL
/bin/sh
Pronto! Agora os próximos comandos que eu executar serão interpretados pelo Bourne Shell
e não mais pelo BASH.
11.4 O histórico do Bash
Se você apertar a setinha para cima, no BASH, ele vai navegar pelo arquivo ~/.bash_history
e vai mostrar a você comandos inseridos anteriormente.
Por padrão, este arquivo guarda seus últimos 500 comandos digitados, porém, você pode al-
terar este valor, adicionando as seguintes linhas no arquivo ~/.basrc:
export HISTFILESIZE=2000
export HISTSIZE=2000
Lembrando que o Linux é case-sensitive.
Outra dica é criar o arquivo ~/.inputrc com as seguintes linhas:
"e[A": history-search-backward
54
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
"e[B": history-search-forward
Após deslogar e logar-se novamente, o efeito que estas linhas causarão é o de fazer uma
busca no ~/bash_history por contexto. Caso nada seja digitado, seu shell agirá normalmente,
porém, digite algum(ou alguns) caractere(s) e então o shell só buscará no histórico por comandos
que iniciem com os caracteres digitados.
55
Capítulo 12
Processando Fluxos de Texto
Utilizando Filtros
12.1 Filtros de Texto
Nesta parte do curso veremos alguns filtros de textos no Linux e suas funções:
cat: Concatena arquivos e imprime na saída padrão(monitor).
cut: Remove seções de cada linha de arquivos.
expand: Converte tabulações em espaços.
fmt: Reformata cada parágrafo no arquivo, ou da entrada padrão(teclado) se nenhum arquivo
for especificado.
head: Imprime na saída padrão as primeiras 10 linhas de um arquivo ou o número de linhas
desejado.
od: Escreve numa representação não ambígua bytes octais de um arquivo na saída padrão.
Pode ler do teclado.
join: Junta as linhas de dois arquivos em um campo comum.
nl: Imprime um arquivo na saída padrão com as linhas enumeradas. Pode ler do teclado.
paste: Imprime na tela as linhas de dois arquivos(ou da entrada padrão) separadas por tabu-
lações.
pr: Faz paginação de arquivos para impressão.
sed: Editor de fluxo de texto para filtrar e transformar texto.
sort: Imprime na tela as linhas de um arquivo em uma ordem específica.
split: Separa um arquivo em pedaços, cada um com determinada quantidade de linhas.
tail: Imprime na saída padrão as últimas 10 linhas de um arquivo ou o número de linhas
desejado.
tr: Traduz ou deleta caracteres lidos na entrada padrão, e os devolve para a saída padrão.
unexpand: o contrário do expand, transforma espaços em tabulações.
uniq: Descarta ou reporta linhas idênticas em um arquivo.
wc: Imprime a quantidade de linhas, palavras e bytes para cada arquivo ou a partir da entrada
padrão.
Para detalhes e utilização de cada um destes comandos, utilize o comando man <comando>em
um terminal.
56
Capítulo 13
Gerenciamento Básico de Arquivos
13.1 Manipulando arquivos e diretórios
Arquivos e diretórios são facilmente gerenciáveis no Linux através da linha de comando. É
possível criar, apagar, copiar, mover arquivos e pastas individualmente ou multiplamente.
Para criar um diretório, utilize o comando mkdir. Para criar uma pasta no diretório atual, utilize
apenas mkdir <nome da pasta>. Para criar em um diretório diferente, navegue até a pasta dese-
jada (atráves de cd(change directory)) ou especifique um caminho completo, mkdir /home/pedro-
brito/Desktop/PastaExemplo.
Para copiar ou mover um diretório e seus arquivos, utilize cp (para copiar) ou mv (para mover)
a flag -r (recursively), a pasta desejada, e o destino da pasta:
pedro-brito@cdtcsun04:~$ mkdir ~/Desktop/PastaExemplo
pedro-brito@cdtcsun04:~$ touch ~/Desktop/PastaExemplo/ArquivoExemplo
pedro-brito@cdtcsun04:~$ ls ~/Desktop/PastaExemplo
ArquivoExemplo
pedro-brito@cdtcsun04:~$ cp -rv ~/Desktop/PastaExemplo/ /home/pedro-brito/
‘/home/pedro-brito/Desktop/PastaExemplo/’ ->‘/home/pedro-brito/PastaExemplo’
‘/home/pedro-brito/Desktop/PastaExemplo/ArquivoExemplo’ ->‘/home/pedro-brito/PastaExemplo/ArquivoE
pedro-brito@cdtcsun04:~$ ls ~/Desktop/ |grep PastaExemplo
PastaExemplo
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo
PastaExemplo
pedro-brito@cdtcsun04:~$ rm -rf PastaExemplo/
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo
pedro-brito@cdtcsun04:~$ mv -v ~/Desktop/PastaExemplo/ /home/pedro-brito/
‘/home/pedro-brito/Desktop/PastaExemplo/’ ->‘/home/pedro-brito/PastaExemplo’
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo
PastaExemplo
pedro-brito@cdtcsun04:~$ ls ~/Desktop/ |grep PastaExemplo
Ao invés de utilizar rm -r pode-se utilizar rmdir para remover diretórios. Caracteres coringas
podem ser utilizados com estes comandos:
pedro-brito@cdtcsun04:~$ mkdir pasta1 pasta2 pasta3 pasta4 pasta5
57
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep pasta
pasta1
pasta2
pasta3
pasta4
pasta5
pedro-brito@cdtcsun04:~$ mv pasta[1-3] ~/Desktop/
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep pasta
pasta4
pasta5
pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/Desktop |grep pasta
pasta1
pasta2
pasta3
13.2 O comando find
Para localizar arquivos utilizando o comando find, utilize a seguinte sintaxe:
find <diretório>-<parâmetro><busca>
Sendo os parâmetros:
- name (busca por nome)
- type (busca por tipo. Tipos permitidos: c (caractere), d (diretório), f (arquivo normal), l (link
simbólico), s (socket).)
- size (busca por tamanho, utilize -size <TAM>[k,M,G], sendo k, M e G para kilobytes, me-
gabytes e gigabytes, respectivamente)
- mtime (busca por data de modificação, utilize -mtime <TEMPO>, sendo TEMPO marcado
em dias)
58
Capítulo 14
Utilizando Fluxos, pipes e redirects
14.1 Redirecionadores de saídas
O operador ’>’ e o operador ’»’ são utilizados pra redirecionar a saída de um programa em um
arquivo.
Por exemplo, utilizando o comando ls para listar o diretório, a saída seria apresentada na
saída padrão, que é a tela. Utilizando o operador ’>’ ou ’»’, poderia se redirecionar a saída para
um arquivo.
pedro-brito@cdtcsun04:~$ touch lista %Criando o arquivo lista vazio%
pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista%
0 lista
pedro-brito@cdtcsun04:~$ ls >lista %Redirecionando a saída de ls para o arquivo lista%
pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista%
46 lista
pedro-brito@cdtcsun04:~$ ls / >lista %Redirecionando a listagem do diretório raiz para o ar-
quivo lista%
pedro-brito@cdtcsun04:~$ wc -l lista %Contando novamente as linhas em lista, vemos que
tem apenas 23 linhas e não 46 + a listagem do diretório raiz. Isso acontece porque o operador
>sobrescreve todo o arquivo, caso o novo conteúdo quisesse ser adicionado ao antigo, deveria-se
utilizar o operador »%
23 lista
pedro-brito@cdtcsun04:~$ ls »lista %Adicionando agora a listagem do diretório ao final do
arquivo lista%
pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista, vemos que agora há 69
linhas, que é a soma das linhas do diretório atual com as linhas do diretório raiz(46 + 23)%
69 lista
14.2 Redirecionadores de Entrada
Para redirecionar o conteúdo de um arquivo para a entrada padrão de um comando, usa-se
’<’.
Os dados são lidos da direita pra esquerda.
Por padrão, os conteúdos redirecionados são os de stdout(tela). Caso se deseje especiicar
stderr, basta utilizar 2>. Caso deseje redirecionar os dois, utilize &>.
59
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo
LPI 101 - Guia Completo

Mais conteúdo relacionado

Mais procurados (13)

Perl
PerlPerl
Perl
 
Manualipdoc4 pt
Manualipdoc4 ptManualipdoc4 pt
Manualipdoc4 pt
 
Installdebian
InstalldebianInstalldebian
Installdebian
 
Programacao cpp
Programacao cppProgramacao cpp
Programacao cpp
 
Manipulando pacotes
Manipulando pacotesManipulando pacotes
Manipulando pacotes
 
Livro angular2
Livro angular2Livro angular2
Livro angular2
 
Material LINUX
Material LINUXMaterial LINUX
Material LINUX
 
Drivers de Dispositivos Linux
Drivers de Dispositivos LinuxDrivers de Dispositivos Linux
Drivers de Dispositivos Linux
 
Php
PhpPhp
Php
 
Programando ooo b
Programando ooo bProgramando ooo b
Programando ooo b
 
Manual Moodle
Manual MoodleManual Moodle
Manual Moodle
 
Foca linux3
Foca linux3Foca linux3
Foca linux3
 
Apostila linux francisco-araruna
Apostila linux francisco-ararunaApostila linux francisco-araruna
Apostila linux francisco-araruna
 

Destaque

國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書
國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書
國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書昱晴 尤
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafaelTiago
 
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?Chui-Wen Chiu
 
C# classes
C#   classesC#   classes
C# classesTiago
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
La historia en diversos tiempos y lugares
La historia en diversos tiempos y lugaresLa historia en diversos tiempos y lugares
La historia en diversos tiempos y lugaresmonitatorresgutierrez
 
Express Scripts_Certificate
Express Scripts_CertificateExpress Scripts_Certificate
Express Scripts_CertificateShaqula Taylor
 
Printable 04 Dial Machine
Printable 04 Dial MachinePrintable 04 Dial Machine
Printable 04 Dial Machinegherrington
 
New Directions.PDF
New Directions.PDFNew Directions.PDF
New Directions.PDFLaura Doyle
 
Funcionamento do setup
Funcionamento do setupFuncionamento do setup
Funcionamento do setupTiago
 
Pascal
PascalPascal
PascalTiago
 
創意影片製作計畫書+個人的心得
 創意影片製作計畫書+個人的心得 創意影片製作計畫書+個人的心得
創意影片製作計畫書+個人的心得昱晴 尤
 

Destaque (14)

國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書
國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書
國立新港藝術高中學生【讓愛茁壯為公益發聲影片製作】計劃書
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafael
 
Desarrollo+
Desarrollo+Desarrollo+
Desarrollo+
 
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?
19.電腦若遇到停電或斷電,當恢復供電時如何使系統自動開啟?
 
C# classes
C#   classesC#   classes
C# classes
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
La historia en diversos tiempos y lugares
La historia en diversos tiempos y lugaresLa historia en diversos tiempos y lugares
La historia en diversos tiempos y lugares
 
Express Scripts_Certificate
Express Scripts_CertificateExpress Scripts_Certificate
Express Scripts_Certificate
 
Printable 04 Dial Machine
Printable 04 Dial MachinePrintable 04 Dial Machine
Printable 04 Dial Machine
 
New Directions.PDF
New Directions.PDFNew Directions.PDF
New Directions.PDF
 
Funcionamento do setup
Funcionamento do setupFuncionamento do setup
Funcionamento do setup
 
Pascal
PascalPascal
Pascal
 
創意影片製作計畫書+個人的心得
 創意影片製作計畫書+個人的心得 創意影片製作計畫書+個人的心得
創意影片製作計畫書+個人的心得
 
Health Safety Environment (HSE) Plan
Health Safety Environment (HSE) PlanHealth Safety Environment (HSE) Plan
Health Safety Environment (HSE) Plan
 

Semelhante a LPI 101 - Guia Completo

Semelhante a LPI 101 - Guia Completo (20)

Linux basico
Linux basicoLinux basico
Linux basico
 
1
11
1
 
Livro Foca linux
Livro Foca linuxLivro Foca linux
Livro Foca linux
 
Foca iniciante
Foca inicianteFoca iniciante
Foca iniciante
 
Guia Foca - Linux - Iniciante + Avançado
Guia Foca - Linux - Iniciante + AvançadoGuia Foca - Linux - Iniciante + Avançado
Guia Foca - Linux - Iniciante + Avançado
 
Instalei o Ubuntu e agora? (18.04)
Instalei o Ubuntu e agora? (18.04)Instalei o Ubuntu e agora? (18.04)
Instalei o Ubuntu e agora? (18.04)
 
Arquitetura computadores
Arquitetura computadoresArquitetura computadores
Arquitetura computadores
 
Apostila
ApostilaApostila
Apostila
 
Apostila esssa
Apostila   esssaApostila   esssa
Apostila esssa
 
Guia Foca - Linux - Avançado
Guia Foca - Linux - AvançadoGuia Foca - Linux - Avançado
Guia Foca - Linux - Avançado
 
Foca avancado
Foca avancadoFoca avancado
Foca avancado
 
Sql
SqlSql
Sql
 
Python
PythonPython
Python
 
Manual sobre a ferramenta Kate - Linux
Manual sobre a ferramenta Kate - LinuxManual sobre a ferramenta Kate - Linux
Manual sobre a ferramenta Kate - Linux
 
Index
IndexIndex
Index
 
Linux iniciantes
Linux iniciantesLinux iniciantes
Linux iniciantes
 
Linux > GUIA FOCA-Linux. 1 of 3.
Linux > GUIA FOCA-Linux. 1 of 3.Linux > GUIA FOCA-Linux. 1 of 3.
Linux > GUIA FOCA-Linux. 1 of 3.
 
Tutorial ruby
Tutorial rubyTutorial ruby
Tutorial ruby
 
Shell script
Shell scriptShell script
Shell script
 
Apostila c# iniciantes
Apostila c# iniciantesApostila c# iniciantes
Apostila c# iniciantes
 

Mais de Tiago

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodleTiago
 
Apostila cdtc dotproject
Apostila cdtc dotprojectApostila cdtc dotproject
Apostila cdtc dotprojectTiago
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascalTiago
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascalTiago
 
Python bge
Python bgePython bge
Python bgeTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharpTiago
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpTiago
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpTiago
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpTiago
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharpTiago
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantesTiago
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharpTiago
 
Classes csharp
Classes csharpClasses csharp
Classes csharpTiago
 
C# o basico
C#   o basicoC#   o basico
C# o basicoTiago
 
Csharp ebook
Csharp ebookCsharp ebook
Csharp ebookTiago
 

Mais de Tiago (20)

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
Apostila cdtc dotproject
Apostila cdtc dotprojectApostila cdtc dotproject
Apostila cdtc dotproject
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascal
 
Python bge
Python bgePython bge
Python bge
 
Curso python
Curso pythonCurso python
Curso python
 
Curso python
Curso pythonCurso python
Curso python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharp
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharp
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharp
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharp
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharp
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharp
 
Classes csharp
Classes csharpClasses csharp
Classes csharp
 
C# o basico
C#   o basicoC#   o basico
C# o basico
 
Csharp ebook
Csharp ebookCsharp ebook
Csharp ebook
 

Último

activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptxLinoReisLino
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 

Último (20)

Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 

LPI 101 - Guia Completo

  • 1. LPI 101 21 de Janeiro de 2011
  • 2. Conteúdo I Sobre essa apostila 2 II Informações Básicas 4 III GNU Free Documentation License 9 IV LPI 101 18 1 LPI 101 19 2 Plano de ensino 20 2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.7 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.8 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3 Determinando e Configurando Hardware 23 3.1 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4 lsmod, lspci e lsusb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 Iniciando o Sistema 29 4.1 /var/log/messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 dmesg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.4 bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.5 kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.6 init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1
  • 3. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 5 Modificando Runlevels, Desligando e Reiniciando o Sistema 33 5.1 /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 Definindo e alterando runlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.3 shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.4 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6 Criando Modelo de Disco Rígido 38 6.1 Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.2 /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7 Instalando um Gerenciador de Boot 40 7.1 Instalando o grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8 Gerenciando Bibliotecas Compartilhadas 44 8.1 Bibliotecas Compartilhadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9 Utilizando o Gerenciador de Pacotes do Debian 45 9.1 dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.2 APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.3 Informações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 10 Gerenciando Pacotes com YUM e RPM 48 10.1 Pacotes com YUM e RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 11 Trabalhando com a Linha de Comando 49 11.1 Caracteres Especiais e Coringa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 11.2 bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 11.3 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 11.4 O histórico do Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 12 Processando Fluxos de Texto Utilizando Filtros 54 12.1 Filtros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 13 Gerenciamento Básico de Arquivos 55 13.1 Manipulando arquivos e diretórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 13.2 O comando find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 14 Utilizando Fluxos, pipes e redirects 57 14.1 Redirecionadores de saídas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 14.2 Redirecionadores de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 14.3 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 15 Criando, Monitorando e Matando Processos 59 15.1 Primeiro e Segundo Plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 15.2 Enviando sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 15.3 Conferindo Processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 16 Modificando Prioridade de Execução de Processos 61 16.1 Alterando prioridades de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2
  • 4. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 17 Realizando Buscas em Arquivos de Textos com Expressões Regulares 62 17.1 Expressões Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 17.2 A família grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 17.3 Egrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 17.4 Fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 18 Edições Básicas Utilizando VI 64 18.1 Modos de Execução do VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 18.2 Teclas de Navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 18.3 Comandos do VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 19 Criando Partições e Sistemas de Arquivos 66 19.1 Fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 19.2 mkfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 19.3 Partição swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 20 Mantendo a Integridade de Sistemas de Arquivos 68 20.1 Checando sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 20.2 Analisando o Espaço em Disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 21 Controlando a Montagem de Sistemas de Arquivos 70 21.1 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 22 Gerenciando Quotas em Disco 72 22.1 Quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 23 Gerenciando Donos e Permissões de Arquivos 73 23.1 Permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 23.2 Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 23.3 Alterando permissões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 23.4 Permissões especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 23.5 Alterando donos e grupos de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . 75 24 Criando e Modificando links 76 24.1 Criando Hard Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 24.2 Soft Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 25 Encontrando Arquivos 78 25.1 O FHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 25.2 Localizando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 26 Considerações Finais 80 3
  • 5. Parte I Sobre essa apostila 4
  • 6. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Conteúdo O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in- ternet, disponíveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br. O formato original deste material bem como sua atualização está disponível dentro da licença GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção de mesmo nome, tendo inclusive uma versão traduzida (não oficial). A revisão e alteração vem sendo realizada pelo CDTC (suporte@cdtc.org.br), desde outubro de 2006. Criticas e sugestões construtivas são bem-vindas a qualquer tempo. Autores A autoria deste conteúdo, atividades e avaliações é de responsabilidade de Pedro Brito (pe- drob@cdtc.org.br). O texto original faz parte do projeto Centro de Difusão de Tecnolgia e Conhecimento, que vem sendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjunto com as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiando inclusive a comunidade Free Software junto a outras entidades no país. Informações adicionais podem ser obtidas atréves do email ouvidoria@cdtc.org.br, ou da home page da entidade, através da URL http://www.cdtc.org.br. Garantias O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi- lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizam direta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido. Licença Copyright ©2006,Pedro Brito (pedrob@cdtc.org.br). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS- TILA. A copy of the license is included in the section entitled GNU Free Documentation License. 5
  • 8. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Sobre o CDTC Objetivo Geral O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina- ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira. Objetivo Específico Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários, criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como incentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe- recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de produtos de software não proprietários e de seu código fonte livre, articulando redes de terceiros (dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro- dutos de software livre. Guia do aluno Neste guia, você terá reunidas uma série de informações importantes para que você comece seu curso. São elas: • Licenças para cópia de material disponível • Os 10 mandamentos do aluno de Educação a Distância • Como participar dos fóruns e da wikipédia • Primeiros passos É muito importante que você entre em contato com TODAS estas informações, seguindo o roteiro acima. Licença Copyright ©2006, Pedro Brito (pedrob@cdtc.org.br). 7
  • 9. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Software Foundation; com o Capítulo Invariante SOBRE ESSA APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu- mentação Livre GNU". Os 10 mandamentos do aluno de educação online • 1. Acesso a Internet: ter endereço eletrônico, um provedor e um equipamento adequado é pré-requisito para a participação nos cursos a distância. • 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá- tica é necessário para poder executar as tarefas. • 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân- cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal, dos colegas e dos professores. • 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo. • 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão e a sua recuperação de materiais. • 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e realizá-las em tempo real. • 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre. • 8. Flexibilidade e adaptação: requisitos necessário a mudança tecnológica, aprendizagens e descobertas. • 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é ponto-chave na comunicação pela Internet. • 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração. Como participar dos fóruns e Wikipédia Você tem um problema e precisa de ajuda? Podemos te ajudar de 2 formas: A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso: O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a 8
  • 10. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que interesse ao grupo, favor postá-la aqui. Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do curso, é recomendado que você faça uso do Fórum de dúvidas gerais que lhe dá recursos mais efetivos para esta prática. . O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem ajudar. Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico é recomendável ver se a sua pergunta já foi feita por outro participante. A segunda forma se dá pelas Wikis: Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par- ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé- dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por pessoas de todas as partes do mundo. Acesse-a em português pelos links: • Página principal da Wiki - http://pt.wikipedia.org/wiki/ Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo! Primeiros Passos Para uma melhor aprendizagem é recomendável que você siga os seguintes passos: • Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar; • Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das ferramentas básicas do mesmo; • Entrar nas lições seguindo a seqüência descrita no Plano de Ensino; • Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais. Perfil do Tutor Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores. O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar. 9
  • 11. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e, para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor ou instrutor: • fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá utilizar; • gosta que lhe façam perguntas adicionais; • identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por- que motivo a classificação foi ou não foi atribuída’; • tece comentários completos e construtivos, mas de forma agradável (em contraste com um reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de ameaça e de nervosismo’) • dá uma ajuda complementar para encorajar um estudante em dificuldade; • esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente; • ajuda o estudante a alcançar os seus objetivos; • é flexível quando necessário; • mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso, talvez numa fase menos interessante para o tutor); • escreve todas as correções de forma legível e com um nível de pormenorização adequado; • acima de tudo, devolve os trabalhos rapidamente; 10
  • 12. Parte III GNU Free Documentation License 11
  • 13. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF (Traduzido pelo João S. O. Bueno através do CIPSGA em 2001) Esta é uma tradução não oficial da Licençaa de Documentação Livre GNU em Português Brasileiro. Ela não é publicada pela Free Software Foundation, e não se aplica legalmente a dis- tribuição de textos que usem a GFDL - apenas o texto original em Inglês da GNU FDL faz isso. Entretanto, nós esperamos que esta tradução ajude falantes de português a entenderem melhor a GFDL. This is an unofficial translation of the GNU General Documentation License into Brazilian Por- tuguese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GFDL–only the original English text of the GFDL does that. However, we hope that this translation will help Portuguese speakers understand the GFDL better. Licença de Documentação Livre GNU Versão 1.1, Março de 2000 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA É permitido a qualquer um copiar e distribuir cópias exatas deste documento de licença, mas não é permitido alterá-lo. INTRODUÇÃO O propósito desta Licença é deixar um manual, livro-texto ou outro documento escrito "livre"no sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copiá-lo ou redistribui-lo, com ou sem modificações, comercialmente ou não. Secundariamente, esta Licença mantém para o autor e editor uma forma de ter crédito por seu trabalho, sem ser considerado responsável pelas modificações feitas por terceiros. Esta Licença é um tipo de "copyleft"("direitos revertidos"), o que significa que derivações do documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licença Pública Ge- ral (GNU GPL), que é um copyleft para software livre. Nós fizemos esta Licença para que seja usada em manuais de software livre, por que software livre precisa de documentação livre: um programa livre deve ser acompanhado de manuais que provenham as mesmas liberdades que o software possui. Mas esta Licença não está restrita a manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente do assunto ou se ele é publicado como um livro impresso. Nós recomendamos esta Licença prin- cipalmente para trabalhos cujo propósito seja de introdução ou referência. APLICABILIDADE E DEFINIÇÕES Esta Licença se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo detentor dos direitos autorais dizendo que ele pode ser distribuído sob os termos desta Licença. 12
  • 14. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do público é um licenciado e é referida como "você". Uma "Versão Modificada"do Documento se refere a qualquer trabalho contendo o documento ou uma parte dele, quer copiada exatamente, quer com modificações e/ou traduzida em outra língua. Uma "Seção Secundária"é um apêndice ou uma seção inicial do Documento que trata ex- clusivamente da relação dos editores ou dos autores do Documento com o assunto geral do Documento (ou assuntos relacionados) e não contém nada que poderia ser incluído diretamente nesse assunto geral (Por exemplo, se o Documento é em parte um livro texto de matemática, a Seção Secundária pode não explicar nada de matemática). Essa relação poderia ser uma questão de ligação histórica com o assunto, ou matérias relaci- onadas, ou de posições legais, comerciais, filosóficas, éticas ou políticas relacionadas ao mesmo. As "Seções Invariantes"são certas Seções Secundárias cujos títulos são designados, como sendo de Seções Invariantes, na nota que diz que o Documento é publicado sob esta Licença. Os "Textos de Capa"são certos trechos curtos de texto que são listados, como Textos de Capa Frontal ou Textos da Quarta Capa, na nota que diz que o texto é publicado sob esta Licença. Uma cópia "Transparente"do Documento significa uma cópia que pode ser lida automatica- mente, representada num formato cuja especificação esteja disponível ao público geral, cujos conteúdos possam ser vistos e editados diretamente e sem mecanismos especiais com editores de texto genéricos ou (para imagens compostas de pixels) programas de pintura genéricos ou (para desenhos) por algum editor de desenhos grandemente difundido, e que seja passível de servir como entrada a formatadores de texto ou para tradução automática para uma variedade de formatos que sirvam de entrada para formatadores de texto. Uma cópia feita em um formato de arquivo outrossim Transparente cuja constituição tenha sido projetada para atrapalhar ou de- sencorajar modificações subsequentes pelos leitores não é Transparente. Uma cópia que não é "Transparente"é chamada de "Opaca". Exemplos de formatos que podem ser usados para cópias Transparentes incluem ASCII sim- ples sem marcações, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML usando uma DTD disponibilizada publicamente, e HTML simples, compatível com os padrões, e projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos proprietários que podem ser lidos e editados apenas com processadores de texto proprietários, SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edição não estejam disponíveis para o público, e HTML gerado automaticamente por alguns editores de texto com finalidade apenas de saída. A "Página do Título"significa, para um livro impresso, a página do título propriamente dita, mais quaisquer páginas subsequentes quantas forem necessárias para conter, de forma legível, o material que esta Licença requer que apareça na página do título. Para trabalhos que não tenham uma página do título, "Página do Título"significa o texto próximo da aparição mais proe- minente do título do trabalho, precedendo o início do corpo do texto. 13
  • 15. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF FAZENDO CÓPIAS EXATAS Você pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou não comercial, desde que esta Licença, as notas de copyright, e a nota de licença dizendo que esta Licença se aplica ao documento estejam reproduzidas em todas as cópias, e que você não acres- cente nenhuma outra condição, quaisquer que sejam, às desta Licença. Você não pode usar medidas técnicas para obstruir ou controlar a leitura ou confecção de cópias subsequentes das cópias que você fizer ou distribuir. Entretanto, você pode aceitar com- pensação em troca de cópias. Se você distribuir uma quantidade grande o suficiente de cópias, você também precisa respeitar as condições da seção 3. Você também pode emprestar cópias, sob as mesmas condições colocadas acima, e também pode exibir cópias publicamente. FAZENDO CÓPIAS EM QUANTIDADE Se você publicar cópias do Documento em número maior que 100, e a nota de licença do Documento obrigar Textos de Capa, você precisará incluir as cópias em capas que tragam, clara e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e Textos da Quarta Capa na capa de trás. Ambas as capas também precisam identificar clara e legivelmente você como o editor dessas cópias. A capa da frente precisa apresentar o titulo com- pleto com todas as palavras do título igualmente proeminentes e visíveis. Você pode adicionar outros materiais às capas. Fazer cópias com modificações limitadas às capas, tanto quanto estas preservem o título do documento e satisfaçam a essas condições, pode ser tratado como cópia exata em outros aspectos. Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma legível, você deve colocar os primeiros (tantos quantos couberem de forma razoável) na capa verdadeira, e continuar os outros nas páginas adjacentes. Se você publicar ou distribuir cópias Opacas do Documento em número maior que 100, você precisa ou incluir uma cópia Transparente que possa ser lida automaticamente com cada cópia Opaca, ou informar, em ou com, cada cópia Opaca a localização de uma cópia Transparente completa do Documento acessível publicamente em uma rede de computadores, a qual o público usuário de redes tenha acesso a download gratuito e anônimo utilizando padrões públicos de protocolos de rede. Se você utilizar o segundo método, você precisará tomar cuidados razoavel- mente prudentes, quando iniciar a distribuição de cópias Opacas em quantidade, para assegurar que esta cópia Transparente vai permanecer acessível desta forma na localização especificada por pelo menos um ano depois da última vez em que você distribuir uma cópia Opaca (direta- mente ou através de seus agentes ou distribuidores) daquela edição para o público. É pedido, mas não é obrigatório, que você contate os autores do Documento bem antes de redistribuir qualquer grande número de cópias, para lhes dar uma oportunidade de prover você com uma versão atualizada do Documento. 14
  • 16. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF MODIFICAÇÕES Você pode copiar e distribuir uma Versão Modificada do Documento sob as condições das se- ções 2 e 3 acima, desde que você publique a Versão Modificada estritamente sob esta Licença, com a Versão Modificada tomando o papel do Documento, de forma a licenciar a distribuição e modificação da Versão Modificada para quem quer que possua uma cópia da mesma. Além disso, você precisa fazer o seguinte na versão modificada: A. Usar na Página de Título (e nas capas, se houver alguma) um título distinto daquele do Do- cumento, e daqueles de versões anteriores (que deveriam, se houvesse algum, estarem listados na seção "Histórico do Documento"). Você pode usar o mesmo título de uma versão anterior se o editor original daquela versão lhe der permissão; B. Listar na Página de Título, como autores, uma ou mais das pessoas ou entidades responsá- veis pela autoria das modificações na Versão Modificada, conjuntamente com pelo menos cinco dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que cinco); C. Colocar na Página de Título o nome do editor da Versão Modificada, como o editor; D. Preservar todas as notas de copyright do Documento; E. Adicionar uma nota de copyright apropriada para suas próprias modificações adjacente às outras notas de copyright; F. Incluir, imediatamente depois das notas de copyright, uma nota de licença dando ao público o direito de usar a Versão Modificada sob os termos desta Licença, na forma mostrada no tópico abaixo; G. Preservar nessa nota de licença as listas completas das Seções Invariantes e os Textos de Capa requeridos dados na nota de licença do Documento; H. Incluir uma cópia inalterada desta Licença; I. Preservar a seção entitulada "Histórico", e seu título, e adicionar à mesma um item dizendo pelo menos o título, ano, novos autores e editor da Versão Modificada como dados na Página de Título. Se não houver uma sessão denominada "Histórico"no Documento, criar uma dizendo o título, ano, autores, e editor do Documento como dados em sua Página de Título, então adicionar um item descrevendo a Versão Modificada, tal como descrito na sentença anterior; J. Preservar o endereço de rede, se algum, dado no Documento para acesso público a uma cópia Transparente do Documento, e da mesma forma, as localizações de rede dadas no Docu- mento para as versões anteriores em que ele foi baseado. Elas podem ser colocadas na seção "Histórico". Você pode omitir uma localização na rede para um trabalho que tenha sido publicado pelo menos quatro anos antes do Documento, ou se o editor original da versão a que ela se refira der sua permissão; K. Em qualquer seção entitulada "Agradecimentos"ou "Dedicatórias", preservar o título da 15
  • 17. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF seção e preservar a seção em toda substância e fim de cada um dos agradecimentos de contri- buidores e/ou dedicatórias dados; L. Preservar todas as Seções Invariantes do Documento, inalteradas em seus textos ou em seus títulos. Números de seção ou equivalentes não são considerados parte dos títulos da seção; M. Apagar qualquer seção entitulada "Endossos". Tal sessão não pode ser incluída na Versão Modificada; N. Não reentitular qualquer seção existente com o título "Endossos"ou com qualquer outro título dado a uma Seção Invariante. Se a Versão Modificada incluir novas seções iniciais ou apêndices que se qualifiquem como Seções Secundárias e não contenham nenhum material copiado do Documento, você pode optar por designar alguma ou todas aquelas seções como invariantes. Para fazer isso, adicione seus títulos à lista de Seções Invariantes na nota de licença da Versão Modificada. Esses títulos preci- sam ser diferentes de qualquer outro título de seção. Você pode adicionar uma seção entitulada "Endossos", desde que ela não contenha qual- quer coisa além de endossos da sua Versão Modificada por várias pessoas ou entidades - por exemplo, declarações de revisores ou de que o texto foi aprovado por uma organização como a definição oficial de um padrão. Você pode adicionar uma passagem de até cinco palavras como um Texto de Capa da Frente , e uma passagem de até 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos de Capa na Versão Modificada. Somente uma passagem de Texto da Capa da Frente e uma de Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade. Se o Documento já incluir um texto de capa para a mesma capa, adicionado previamente por você ou por acordo feito com alguma entidade para a qual você esteja agindo, você não pode adicionar um outro; mas você pode trocar o antigo, com permissão explícita do editor anterior que adicionou a passagem antiga. O(s) autor(es) e editor(es) do Documento não dão permissão por esta Licença para que seus nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer Versão Modificada. COMBINANDO DOCUMENTOS Você pode combinar o Documento com outros documentos publicados sob esta Licença, sob os termos definidos na seção 4 acima para versões modificadas, desde que você inclua na com- binação todas as Seções Invariantes de todos os documentos originais, sem modificações, e liste todas elas como Seções Invariantes de seu trabalho combinado em sua nota de licença. O trabalho combinado precisa conter apenas uma cópia desta Licença, e Seções Invariantes Idênticas com multiplas ocorrências podem ser substituídas por apenas uma cópia. Se houver múltiplas Seções Invariantes com o mesmo nome mas com conteúdos distintos, faça o título de 16
  • 18. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF cada seção único adicionando ao final do mesmo, em parênteses, o nome do autor ou editor origianl daquela seção, se for conhecido, ou um número que seja único. Faça o mesmo ajuste nos títulos de seção na lista de Seções Invariantes nota de licença do trabalho combinado. Na combinação, você precisa combinar quaisquer seções entituladas "Histórico"dos diver- sos documentos originais, formando uma seção entitulada "Histórico"; da mesma forma combine quaisquer seções entituladas "Agradecimentos", ou "Dedicatórias". Você precisa apagar todas as seções entituladas como "Endosso". COLETÂNEAS DE DOCUMENTOS Você pode fazer uma coletânea consitindo do Documento e outros documentos publicados sob esta Licença, e substituir as cópias individuais desta Licença nos vários documentos com uma única cópia incluida na coletânea, desde que você siga as regras desta Licença para cópia exata de cada um dos Documentos em todos os outros aspectos. Você pode extrair um único documento de tal coletânea, e distribuí-lo individualmente sob esta Licença, desde que você insira uma cópia desta Licença no documento extraído, e siga esta Licença em todos os outros aspectos relacionados à cópia exata daquele documento. AGREGAÇÃO COM TRABALHOS INDEPENDENTES Uma compilação do Documento ou derivados dele com outros trabalhos ou documentos se- parados e independentes, em um volume ou mídia de distribuição, não conta como uma Ver- são Modificada do Documento, desde que nenhum copyright de compilação seja reclamado pela compilação. Tal compilação é chamada um "agregado", e esta Licença não se aplica aos outros trabalhos auto-contidos compilados junto com o Documento, só por conta de terem sido assim compilados, e eles não são trabalhos derivados do Documento. Se o requerido para o Texto de Capa na seção 3 for aplicável a essas cópias do Documento, então, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado. Senão eles precisarão aparecer nas capas de todo o agregado. TRADUÇÃO Tradução é considerada como um tipo de modificação, então você pode distribuir traduções do Documento sob os termos da seção 4. A substituição de Seções Invariantes por traduções requer uma permissão especial dos detentores do copyright das mesmas, mas você pode incluir traduções de algumas ou de todas as Seções Invariantes em adição às versões orignais dessas Seções Invariantes. Você pode incluir uma tradução desta Licença desde que você também in- clua a versão original em Inglês desta Licença. No caso de discordância entre a tradução e a 17
  • 19. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF versão original em Inglês desta Licença, a versão original em Inglês prevalecerá. TÉRMINO Você não pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expres- samente especificado sob esta Licença. Qualquer outra tentativa de copiar, modificar, sublicen- ciar, ou distribuir o Documento é nula, e resultará automaticamente no término de seus direitos sob esta Licença. Entretanto, terceiros que tenham recebido cópias, ou direitos de você sob esta Licença não terão suas licenças terminadas, tanto quanto esses terceiros permaneçam em total acordo com esta Licença. REVISÕES FUTURAS DESTA LICENÇA A Free Software Foundation pode publicar novas versões revisadas da Licença de Documen- tação Livre GNU de tempos em tempos. Tais novas versões serão similares em espirito à versão presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupações. Veja http://www.gnu.org/copyleft/. A cada versão da Licença é dado um número de versão distinto. Se o Documento especificar que uma versão particular desta Licença "ou qualquer versão posterior"se aplica ao mesmo, você tem a opção de seguir os termos e condições daquela versão específica, ou de qualquer versão posterior que tenha sido publicada (não como rascunho) pela Free Software Foundation. Se o Documento não especificar um número de Versão desta Licença, você pode escolher qualquer versão já publicada (não como rascunho) pela Free Software Foundation. ADENDO: Como usar esta Licença para seus documentos Para usar esta Licença num documento que você escreveu, inclua uma cópia desta Licença no documento e ponha as seguintes notas de copyright e licenças logo após a página de título: Copyright (c) ANO SEU NOME. É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior publicada pela Free Soft- ware Foundation; com as Seções Invariantes sendo LISTE SEUS TÍTULOS, com os Textos da Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cópia da li- cença está inclusa na seção entitulada "Licença de Documentação Livre GNU". Se você não tiver nenhuma Seção Invariante, escreva "sem Seções Invariantes"ao invés de dizer quais são invariantes. Se você não tiver Textos de Capa da Frente, escreva "sem Textos de Capa da Frente"ao invés de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os Textos da Quarta Capa. Se o seu documento contiver exemplos não triviais de código de programas, nós recomenda- mos a publicação desses exemplos em paralelo sob a sua escolha de licença de software livre, 18
  • 20. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF tal como a GNU General Public License, para permitir o seu uso em software livre. 19
  • 22. Capítulo 1 LPI 101 A certificação é algo muito comum entre os profissionais de informática. É uma das maneiras que os fabricantes de hardware e software encontraram para medir o quanto um profissional conhece de determinado assunto. A certificação profissional é muito usada pela área de recursos humanos das empresas na escolha de profissionais em processos seletivos. O LPI é reconhecido como a primeira organização do mundo a defender e ajudar o uso profis- sional do Linux, Open Source e Free Software. Os exames de certificação do LPI são aplicados em milhares de lugares no mundo, em vários idiomas e com o apoio de empresários, fabricantes e instrutores. 21
  • 23. Capítulo 2 Plano de ensino 2.1 Objetivo Qualificar técnicos e programadores na utilização e configuração de um sistema Linux. 2.2 Público Alvo Técnicos e Programadores que desejam obter a certificação Linux LPI. 2.3 Pré-requisitos Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci- mento básico acerca de computadores. 2.4 Descrição O curso Linux LPI 101 será realizado na modalidade EAD e utilizará a plataforma Moodle como ferramenta de aprendizagem. Ele é composto de um módulo de aprendizado que será dado nas primeiras quatro semanas e um módulo de avaliação que será dado na quarta semana. O material didático estará disponível on-line de acordo com as datas pré-estabelecidas no calendário. 2.5 Metodologia O curso está dividido da seguinte maneira: • Lição 1 - Determinando e Configurando Hardware; • Lição 2 - Iniciando o Sistema; • Lição 3 - Modificando Runlevels, e desligando ou reiniciando o sistema. • Lição 4 - Criando Modelo de Disco Rígido; • Lição 5 - Instalando um Gerenciador de Boot; 22
  • 24. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF • Lição 6 - Gerenciando Bibliotecas Compartilhadas; • Lição 7 - Utilizando o Gerenciador de Pacotes do Debian; • Lição 8 - Gerenciando Pacotes com YUM e RPM. • Lição 9 - Trabalhando com a Linha de Comando; • Lição 10 - Processando Fluxos de Texto Utilizando Filtros; • Lição 11 - Gerenciamento Básico de Arquivos; • Lição 12 - Utilizando Fluxos, pipes e redirects; • Lição 13 - Criando, Monitorando e Matando Processos; • Lição 14 - Modificando Prioridade de Execução de Processos; • Lição 15 - Realizando Buscas em Arquivos de Textos com Expressões Regulares; • Lição 16 - Edições Básicas Utilizando VI. • Lição 17 - Criando Partições e sistemas de Arquivos; • Lição 18 - Mantendo a Integridade de Sistemas de Arquivos; • Lição 19 - Controlando a Montagem de Sistemas de Arquivos; • Lição 20 - Gerenciando Quotas em Disco; • Lição 21 - Gerenciando Donos e Permissões de Arquivos; • Lição 22 - Criando e Modificando Links; • Lição 23 - Encontrando Arquivos; • Avaliação de aprendizagem; • Avaliação do curso. As lições contêm o conteúdo principal. Elas poderão ser acessadas quantas vezes forem ne- cessárias, desde que esteja dentro da semana programada. Ao final de uma lição, você receberá uma nota de acordo com o seu desempenho. Responda com atenção às perguntas de cada li- ção, pois elas serão consideradas na sua nota final. Caso sua nota numa determinada lição seja menor do que 6.0, sugerimos que você faça novamente esta lição. Ao final do curso será disponibilizada a avaliação referente ao curso. Tanto as notas das lições quanto a da avaliação final serão consideradas para a nota final. Todos os módulos ficarão visíveis para que possam ser consultados durante a avaliação final. Aconselhamos a leitura da "Ambientação do Moodle"para que você conheça a plataforma de Ensino a Distância, evitando dificuldades advindas do "desconhecimento"sobre a mesma. Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deverá ser enviada ao fórum. Diariamente os monitores darão respostas e esclarecimentos. 23
  • 25. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 2.6 Programa O curso LPI 101 oferecerá o seguinte conteúdo: • Arquitetura do Sistema; • Instalação do Linux e gerenciamento de pacotes; • Comandos GNU e Unix; • Dispositivos, Sistemas de Arquivos Linux e Padrão de Sistemas de Arquivos Hierárquicos. 2.7 Avaliação Toda a avaliação será feita on-line. Aspectos a serem considerados na avaliação: • Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento; • Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados. Instrumentos de avaliação: • Participação ativa nas atividades programadas; • Avaliação ao final do curso; • O participante fará várias avaliações referentes ao conteúdo do curso. Para a aprovação e obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo com a fórmula abaixo: • Nota Final = ((ML x 3) + (AF x 7)) / 10 • ML = Média aritmética das lições • AF = Avaliações 2.8 Bibliografia • Site oficial: http://lpi.org/ • Site oficial (BR): http://www.lpibrasil.com.br/ • Site de Manuais: http://man.he.net/ • Site de Manuais: http://linuxmanpages.com/ 24
  • 26. Capítulo 3 Determinando e Configurando Hardware 3.1 /proc Mais tarde aprenderemos mais sobre o sistema de arquivos do Linux, mas agora veremos sobre o sistema de arquivos /proc. Este não é um sistema de arquivos real no disco, mas é um pseudo sistema de arquivos, que provê informações sobre o sistema. Neste sistema de arquivos, o arquivo /proc/pci contém informação sobre os dispositivos no PCI bus(bus: interface de comuni- cação entre componentes). Ultimamente tem havido alguma discussão sobre descontinuar este arquivo em particular, tendo em vista que o comando lspci nos mostra informações similares. Rode o comando cat /proc/pci para ver algo mais ou menos semelhante a (dependendo do seu sistema, este arquivo pode já ter sido retirado): PCI devices found: Bus 0, device 0, function 0: Host bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge (rev 1). Prefetchable 32 bit memory at 0xd0000000 [0xdfffffff]. Bus 0, device 2, function 0: VGA compatible controller: Intel Corp. 82845G/GL [Brookdale-G] Chipset Integrated Graphics Device (rev 1). IRQ 11. Prefetchable 32 bit memory at 0x88000000 [0x8fffffff]. Non-prefetchable 32 bit memory at 0x80000000 [0x8007ffff]. 25
  • 27. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Bus 0, device 29, function 0: USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 1). IRQ 11. I/O at 0x1800 [0x181f]. Bus 0, device 29, function 1: USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 1). IRQ 10. I/O at 0x1820 [0x183f]. Bus 0, device 29, function 2: USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 1). IRQ 5. I/O at 0x1840 [0x185f]. Bus 0, device 29, function 7: USB Controller: Intel Corp. 82801DB USB2 (rev 1). IRQ 9. Non-prefetchable 32 bit memory at 0xc0080000 [0xc00803ff]. Bus 0, device 30, function 0: PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 129). Master Capable. No bursts. Min Gnt=4. Bus 0, device 31, function 0: ISA bridge: Intel Corp. 82801DB LPC Interface Controller (rev 1). Bus 0, device 31, function 1: IDE interface: Intel Corp. 82801DB Ultra ATA Storage Controller 26
  • 28. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF (rev 1). IRQ 5. I/O at 0x1860 [0x186f]. Non-prefetchable 32 bit memory at 0x60000000 [0x600003ff]. Bus 0, device 31, function 3: SMBus: Intel Corp. 82801DB/DBM SMBus Controller (rev 1). IRQ 9. I/O at 0x1880 [0x189f]. Bus 0, device 31, function 5: Multimedia audio controller: Intel Corp. 82801DB AC’97 Audio Controller (rev 1). IRQ 9. I/O at 0x1c00 [0x1cff]. I/O at 0x18c0 [0x18ff]. Non-prefetchable 32 bit memory at 0xc0080c00 [0xc0080dff]. Non-prefetchable 32 bit memory at 0xc0080800 [0xc00808ff]. Bus 2, device 8, function 0: Ethernet controller: Intel Corp. 82801BD PRO/100 VE (LOM) Ethernet Controller (rev 129). IRQ 9. Master Capable. Latency=66. Min Gnt=8.Max Lat=56. Non-prefetchable 32 bit memory at 0xc0100000 [0xc0100fff]. I/O at 0x2000 [0x203f]. Utilize lspci para comparar com esta saída. 27
  • 29. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Quando o CPU (Central Processing Unit, unidade de processamento central) precisa se co- municar com um dispositivo periférico, ele o faz atraves de uma IO port (porta de entrada/saída) ou simplesmente port. Quando a CPU quer enviar dados ou informações de controle para o pe- riférico, ele escreve para a porta. Quando o dispositivo contém dados ou está com status ready, a CPU lê os dados ou o status de uma porta. A maioria dos dispositivos tem mais do que uma porta associada, tipicamente uma pequena potência de dois, como 8, 16 ou 32. A transferência de dados é usualmente feita byte a byte. Dispositivos não podem compartilhar portas, então, se você tem placas ISA (Industry Standard Architecture, arquitetura padrão da indústria), você deve certificar que cada dispositivo tem a sua própria porta ou portas designadas. Originalmente isto era feito utilizando switches ou jumpers, no própria placa. Alguns cartões ISA mais recentes uti- lizam um sistema chamado Plug and Play(Pnp) que será visto mais tarde. Todas as placas PCI têm PnP. No sistemas de arquivo /proc, o arquivo /proc/ioports nos mostra as IO ports disponíveis no sistema. Utilize o comando cat /proc/ioports para ver a saída. Os números das portas esta- rão em hexadecimal. Sem dúvida você verá alguns que serão familiares, como teclado, para- lela(impressora), serial(modem) e display. Então, como a CPU sabe que a última saída já terminou ou quando os dados estão esperando para ser lidos? Normalmente esta informação está disponível num registrador de status, que pode ser acessado lendo um(ou mais) das IO ports associadas com algum dispositivo. Dois problemas óbvios podem ser percebidos neste cenário: Primeiramente a CPU tem que gastar tempo verificando o status. Depois, se o dispositivo tem dados vindo de algum lugar, estes dados devem ser lidos em tempo hábil, ou então eles podem ser sobrescritos pelos próximos dados que estão chegando. Os dois problemas de não gastar ciclos de processamento desnecessários e garantir que dados são lidos ou escritos num tempo hábil são resolvidos pelo conceito de interrupts (inter- rupts:interrupções). Interrupts são também chamadas de Interrupt Requests ou simplesmente IRQ. Quando alguma coisa acontece em um dispositivo que a CPU deva saber, o dispositivo manda um interrupt e a CPU para qualquer coisa que esteja fazendo para tratar desta situação. Estas informações sobre interrupts também são mantidas no sistema de arquivos /proc, no arquivo /proc/interrupts. Utilize o comando cat /proc/interrupts para ver a saída deste arquivo. Este arquivo estará em decimal. Originalmente, cada dispositivo tinha seu próprio IRQ. Atualmente IRQ5 pode ser usada tanto para uma placa de som ou uma segunda porta paralela (Google: Standart IRQ Settings). Se você quisesse os dois, você deveria encontrar uma placa que poderia ser configurada (normalmente através de jumpers) para utilizar outra IRQ, por exemplo a IRQ15, que está livre. Hoje, os dispositivos PCI compartilham IRQs, então quando um interrompe a CPU, um interrupt handler verifica se a interrupção é pra ele, se não for, passa para o próximo handler na cadeia. Foi mencionado anteriormente que a comunicação com periféricos através de IO ports acon- teciam byte a byte. Para um dispositivo rápido, os interrupts poderiam gastar muito da capacidade da CPU. Um método mais rápido é utilizar DMA (Direct Memory Access), na qual algumas instru- ções de IO falam para o dispositivo onde ler ou escrever na RAM e depois o controlador de DMA provê gerenciamento de hardware da transferencia atual de dados entre a RAM e o periférico. Mais uma vez, esta informação pode ser visualizada através do comando cat /proc/dma. 28
  • 30. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 3.2 /dev Nesta parte da lição introduziremos um novo e importante sistema de arquivos no Linux, o /dev. Assim como o /proc, este é um pseudo sistema de arquivos, que descreve os dispositi- vos(devices) que estão, ou poderiam estar em um sistema Linux. No /dev você vai encontrar entradas como /dev/hda, /dev/hda5, /dev/sda, /dev/sdb1 e assim por diante. Você vai encontrar várias outras entradas para outros tipos de dispositivos, mas agora veremos os que começam com /dev/hd ou /dev/sd. Estes dispositivos que começam com /dev/hd, tais como /dev/hda ou /dev/hda5 referenciam drives IDE. O primeiro drive no primeiro controlador IDE é /dev/hda e o segundo, se estiver pre- sente, será /dev/hdb. Desta forma, o primeiro drive no segundo controlador IDE é /dev/hdc e o segundo será /dev/hdd. Você pode verificar utilizando os comandos ls /dev/hd? e ls /dev/sd? (Mais à frente serão estudados os caracteres coringa, como ’?’, portanto não se preocupe com ele agora). 3.3 modprobe Modprobe: Programa para adicionar e remover módulos do Kernel Linux. O modbprobe adiciona ou remove módulos de um kernel: note que por conveniência, não há diferença entre _ e - em nomes de módulos. O Modprobe procura no diretório de módulos (/lib/modules/’uname -r’) por todos os módulos e outros arquivos, exceto o que estiver descrito no arquivo opcional /etc/modprobe.conf e o diretório /etc/modprobe.d. Todos os arquivos em /etc/modprobe.d/arch/ são ignorados. O modprobe não faz nada com o módulo em si. Todo o trabalho de resolver os símbolos e entender os parâmetros é feito dentro do kernel. Desta forma, falhas de módulos geralmente são acompanhadas de mensagens do kernel, que podem ser visualizadas com o comando dmseg. O modprobe espera que o arquivo modules.dep esteja atualizado, como foi gerado pelo dep- mod. Este arquivo lista o que cada módulo precisa (se precisa de algo) e o modprobe utiliza isto para adicionar ou remover estas dependências automaticamente. Se algum argumento for dado após o modulename, eles serão passados para o kernel. Informações adicionais podem ser encontradas através dos comandos man modprobe ou info modprobe. 3.4 lsmod, lspci e lsusb Lsmod: Este programa lista o status dos módulos do kernel. Lsmod é um simples programa que formata o conteúdo de /proc/modules, mostrando quais módulos do kernel estão atualmente em funcionamento. Mais informações através dos comandos man lsmod ou info lsmod Como visto anteriormente, o comando lspci lista os dispositivos PCI. Mais informações através dos comandos man lspci ou info lspci. Assim como seus semelhantes, o comando lsusb lista os dispositivos USB conectados. 29
  • 31. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Mais informações também podem ser obtidas através dos comandos man lsusb ou info lsusb. 30
  • 32. Capítulo 4 Iniciando o Sistema 4.1 /var/log/messages Nos sistemas Linux, este é o arquivo que contém os registros de entrada e saída de usuários no sistema. Além disso, várias outras ações realizadas em diversos sistemas são gravadas aqui, porém tais ações têm a ver com o escopo do sistema operacional, ou seja, tudo que pode afetar ou impactar o sistema operacional como um todo e não somente um determinado sistema que roda nele. As consequências da falta de algum dispositivo, sistema ou configuração ou da falha de algum destes são também registradas aqui, se houver a possibilidade de impacto em outras partes do sistema operacional. Em alguns sistemas baseados em Unix, o correspondente a este arquivo é o /var/log/syslog. Utilizando o comando cat /var/log/messages poderemos visualizar o arquivo de logs, porém este arquivo só pode ser acessado por alguém com privilégios de administrador do sistema(root). Seu arquivo de logs pode parecer-se com isto, ou pode não ter nada a ver: Apr 11 18:30:35 mymachine kernel: PCI: Probing PCI hardware Apr 11 18:30:35 mymachine smartd[4701]: Opened configuration file /etc/smartd.conf Apr 11 18:30:35 mymachine kernel: PCI: Probing PCI hardware (bus 00) Apr 11 18:30:35 mymachine smartd[4701]: Configuration file /etc/smartd.conf parsed. Apr 11 18:30:35 mymachine kernel: PCI: Ignoring BAR0-3 of IDE controller 00:1f.1 Apr 11 18:30:35 mymachine kernel: Transparent bridge - Intel Corp. 82801BA/CA/DB/EB PCI Bridge Apr 11 18:30:35 mymachine modprobe: modprobe: Can’t locate module block-major-3 Apr 11 18:30:35 mymachine kernel: PCI: Using IRQ router PIIX/ICH [8086/24d0] at 00:1f.0 Apr 11 18:30:35 mymachine smartd[4701]: Device: /dev/hda, No such device or address, open() failed Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P0) ->16 Apr 11 18:30:35 mymachine smartd[4701]: Unable to register ATA device /dev/hda at line 30 of file /etc/smartd.conf Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P1) ->19 Apr 11 18:30:35 mymachine smartd[4701]: Unable to register device /dev/hda (no Directive -d removable). Exiting. Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P2) ->18 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P0) ->16 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I29,P3) ->23 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P0) ->18 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P0) ->18 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P1) ->17 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B0,I31,P1) ->17 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B1,I0,P0) ->16 Apr 11 18:30:35 mymachine kernel: PCI->APIC IRQ transform: (B2,I12,P0) ->18 Apr 11 18:30:35 mymachine kernel: isapnp: Scanning for PnP cards... Apr 11 18:30:35 mymachine kernel: isapnp: No Plug & Play device found Apr 11 18:30:35 mymachine kernel: Linux NET4.0 for Linux 2.4 Apr 11 18:30:35 mymachine kernel: Based upon Swansea University Computer Society NET3.039 Apr 11 18:30:35 mymachine kernel: Initializing RT netlink socket Apr 11 18:30:35 mymachine kernel: apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16) Apr 11 18:30:35 mymachine kernel: apm: disabled - APM is not SMP safe. Apr 11 18:30:35 mymachine kernel: Starting kswapd Apr 11 18:30:35 mymachine kernel: allocated 32 pages and 32 bhs reserved for the highmem bounces Apr 11 18:30:35 mymachine smartd: smartd startup failed Apr 11 18:30:35 mymachine kernel: VFS: Disk quotas vdquot_6.5.1 Apr 11 18:30:35 mymachine kernel: pty: 2048 Unix98 ptys configured Apr 11 18:30:35 mymachine kernel: Serial driver version 5.05c (2001-07-0 with MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP enabled Apr 11 18:30:35 mymachine kernel: ttyS0 at 0x03f8 (irq = 4) is a 16550A Apr 11 18:30:35 mymachine kernel: Real Time Clock Driver v1.10e Apr 11 18:30:35 mymachine kernel: NET4: Frame Diverter 0.46 Apr 11 18:30:35 mymachine kernel: RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize 31
  • 33. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Apr 11 18:30:35 mymachine kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4 Apr 11 18:30:35 mymachine kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Apr 11 18:30:35 mymachine kernel: ICH5: IDE controller at PCI slot 00:1f.1 Apr 11 18:30:35 mymachine kernel: ICH5: chipset revision 2 Apr 11 18:30:35 mymachine kernel: ICH5: not 100%% native mode: will probe irqs later Apr 11 18:30:35 mymachine kernel: ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:DMA Apr 11 18:30:35 mymachine kernel: hdc: GCR-8481B, ATAPI CD/D 4.2 dmesg Este comando imprime (em tela ou arquivo) ou controla o ring buffer do kernel. Este programa auxilia usuários a imprimir as mensagens de boot, ao invés de copiar as mensagens na mão, o usuário precisa apenas de redirecionar a saída do comando: dmesg >boot.messages Suas opções principais são: -c : Limpa o ring buffer após imprimi-lo. -s TAMANHO : Imprime o buffer de tamanho TAMANHO. Por padrão isto é 16392. -n NIVEL : Define o NÍVEL de mensagens que serão impressas. Quando esta opção é utili- zada, dmesg NÃO VAI apagar o ring buffer. Para maiores detalhes, utilize man dmesg ou info dmesg. 4.3 BIOS BIOS é um acrônimo para Basic Input/Output System, ou seja, Sistema Básico de Entrada/Saída. A BIOS é um firmware de boot, que é o primeiro código que o computador executa quando ligado. A função inicial dela é identificar, testar e inicializar os dispositivos do sistema, tais como monitor, disco rígido, disquete e outros. Os programas de BIOS são armazenados em um chip e são construídos para trabalhar com vários dispositivos, que complementam o CHIPSET do sistema. Eles provêm uma pequena biblio- teca de funções de entrada/saída que podem ser chamadas para operar e controlar os periféricos, tais como teclados, monitores, e assim por diante. As BIOS de antigamente eram escritos em chips ROM (Read-Only Memory) ou PROM (Programmable ROM), que não permitiam a alteração por usuários. Quando a complexidade e necessidade de updates cresceu, a BIOS passou a ser escrita em chips reprogramáveis. Mais informações em: http://en.wikipedia.org/wiki/BIOS 4.4 bootloader Um processador central de um computador pode executar apenas os códigos encontrados em ROMs ou RAMs (Random Access Memory). Os sistemas operacionais modernos, os pro- gramas e seus códigos e dados estão armazenados em um dispositivo de armazenamento não voláteis, tais como discos rígidos, cd, dvd, pen drives, dentre outros. Desta forma, quando um computador é ligado, ele não possui um sistema operacional na ROM ou na RAM. Primeiramente o computador deve executar um pequeno programa armazenado na ROM junto com o mínimo 32
  • 34. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF de dados necessários para acessar os dispositivos não voláteis nos quais os programas e sis- tema operacional estão armazenados e transferí-lo para a RAM, possibilitando assim o início do sistema. Este pequeno programa que inicia esta sequência de carregamento para a RAM é conhecido como bootloader. A única função deste programa é carregar os outros dados e programas ne- cessários para a RAM. Frequentemente, bootloaders de estágios múltiplos são utilizados, desta forma, vários programas de complexidade crescente, sequencialmente, carregam um após o ou- tro, num processo chamado chain loading (carregamento em cadeia) até que o sistema possa ser iniciado. Os bootloaders devem ser localizados nos primeiros 446 bytes de um disco rígido, num local chamado MBR (Master Boot Record). 4.5 kernel O kernel é o componente central dos sistemas Linux. Ele funciona como uma ponte entre as aplicações e os dados processados a nível de hardware. Entre as responsabilidades do kernel está o gerenciamento dos recursos do sistema. Geralmente como um componente básico do sistema operacional, o kernel pode prover a camada mais baixa de abstração para os recursos (especialmente processadores e dispositivos de E/S) que os softwares devem controlar para rea- lizar sua função. Isto é feito pelos processos via mecanismos de comunicação entre processos e chamadas ao sistema (system calls). Na maioria dos sistemas, o bootloader inicia executando o kernel. O kernel então inicializa a si próprio e inicia o primeiro processo. Após isto, o kernel normalmente não executa diretamente, apenas em resposta a eventos externos (via system calls ou interrupts, por exemplo) O kernel é responsável pelos recursos: CPU, memória e E/S. É função do kernel decidir qual programa deve executar no processador e por quanto tempo (considerando que cada processa- dor só pode rodar um programa por vez). É função do kernel decidir, em que parte da memória, quais programas podem armazenar instruções e dados. Muitas vezes a memória disponível pode não ser suficiente para o que todos os programas desejam, ficando assim para o kernel a respon- sabilidade de decidir o que fazer quando não há espaço suficiente. É função do kernel também gerenciar pedidos de aplicações para realizar E/S em um dispositivo. 4.6 init Init, que é uma abreviação para initialization (inicialização), é o programa responsável por criar todos os outros processos. Ele roda como um daemon e tipicamente tem o PID (process identification) 1. É sua função criar os processos de um script armazenado no arquivo /etc/inittab. Este arquivo geralmente tem entradas que fazem com que o init crie ttys, que são terminais que permitem que os usuários se loguem. Exemplo do arquivo inittab: # /sbin/getty invocations for the runlevels. # # The "id"field MUST be the same as the last # characters of the device (after "tty"). 33
  • 35. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF # # Format: # <id>:<runlevels>:<action>:<process> # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty’s go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 34
  • 36. Capítulo 5 Modificando Runlevels, Desligando e Reiniciando o Sistema 5.1 /etc/inittab A seguir uma inittab completa: pedro-brito@cdtcsun04:~$ cat /etc/inittab # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 35
  • 37. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request–edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id"field MUST be the same as the last # characters of the device (after "tty"). # # Format: # <id>:<runlevels>:<action>:<process> # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty’s go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 Mais a frente detalharemos um pouco esta tabela. 36
  • 38. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 5.2 Definindo e alterando runlevels O termo runlevel se refere ao modo de operação num sistema operacional Unix. Existem sete runlevels, numerados de zero a seis, apesar de que podem ser usados até dez (de zero a nove). Algumas vezes ’S’ é utilizado como um sinônimo para um dos levels. A configuração exata dos runlevels variam de sistema para sistema. A seguir a tabela de runlevels para o debian: ID Description 0 Halt 1 Single-User mode 2-5 Full Multi-User with console logins and display manager if installed 6 Reboot Para alterar o runlevel do sistema, utilize o comando telinit N, substituindo ’N’ pelo runlevel desejado. Este comando requer poderes de superusuário. Para definir o runlevel padrão, basta alterar o arquivo inittab, presente como exemplo na pá- gina anterior. # The default runlevel. id:2:initdefault: Esta é a linha a ser alterada. Basta trocar o 2 pelo runlevel desejado. 5.3 shutdown O comando shutdown desliga o sistema de uma forma segura. Todos os usuários logados são notificados que o sistema está sendo desligado e futuros logins são bloqueados. É possível desligar imediatamente ou após um atraso especificado. Todos os processos são notificados que o sistema está sendo desligado. Isto dá aos programas chance de finalizar sem erros. Sintaxe: shutdown [opções] TEMPO [mensagem de aviso] As principais opções são: -r : reiniciar; -h : desligar; -c : cancela um desligamento agendado. O TEMPO pode ter vários formatos. Pode ser absoluto (hh:mm). Pode ser no formato +m, que desligará o sistema daqui a ’m’ minutos. O "now"é um alias para +0. A mensagem de aviso opcional deve estar entre aspas duplas. Este comando só pode ser utilizado pelo superusuário. 37
  • 39. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 5.4 kill Terminando processos de forma apropriada: O comando kill manda um sinal para um pro- cesso. O sinal padrão para kill é TERM, que fará com que o programa finalize normalmente. O sinal KILL (9) fará com que o programa finalize imediatamente, sem salvar os dados alterados. Os sinais disponíveis são: Name Num Action Description ALRM 14 exit HUP 1 exit INT 2 exit KILL 9 exit cannot be blocked PIPE 13 exit POLL exit PROF exit TERM 15 exit USR1 exit USR2 exit VTALRM exit STKFLT exit might not be implemented PWR ignore might exit on some systems WINCH ignore CHLD ignore URG ignore TSTP stop might interact with the shell TTIN stop might interact with the shell TTOU stop might interact with the shell STOP stop cannot be blocked CONT restart continue if stopped, otherwise ignore ABRT 6 core FPE 8 core ILL 4 core QUIT 3 core SEGV 11 core TRAP 5 core SYS core might not be implemented EMT core might not be implemented BUS core core dump might fail XCPU core core dump might fail XFSZ core core dump might fail Sintaxe: kill [ -sinal | -s sinal ] pid ... kill [ -L | -V, –version ] kill -l [ sinal ] 38
  • 40. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Exemplos de utilização: kill -9 -1 Mata todos os processos que você pode matar. kill -l 11 Traduz o número 11 em um nome de sinal. kill -L Lista os sinais disponíveis em uma tabela(mostrada acima). kill 123 543 2341 3453 Manda o sinal padrão, TERM (15) para todos estes programas. 39
  • 41. Capítulo 6 Criando Modelo de Disco Rígido 6.1 Swap Para ser instalado, o Linux precisa de duas partições. Uma delas será o diretório raiz do sistema (/) e a outra será a área de swap. A área de swap funciona como uma memória virtual. Quando dados de programas em exe- cução não estão sendo acessados constantemente, estes dados passam para a área de swap, liberando assim um espaço na memória RAM para permitir que mais programas rodem ao mesmo tempo. Assim que dados na swap forem necessários, eles voltarão à memória principal, enquanto os dados que constam lá que estão sendo menos utilizados serão colocados na swap. Recomenda-se que a swap deve ter o dobro do tamanho da sua memória RAM, mas lembre- se que esta regra não é universal. Você deve ser capaz de definir o próprio tamanho de swap com base nos softwares que você pretende utilizar! Para criar um arquivo de swap, utilize o seguinte comando: # dd if=/dev/zero of=/particaoswap bs=1024 count=262144 Sendo bs o tamanho do bloco em bytes e count o número de blocos utilizados, o tamanho da swap será: 1024*262144, o que dá aproximadamente 256MB. Após criado, deve-se preparar o arquivo para ser utilizado como swap: # mkswap particaoswap Em seguida, iniciamos o uso do arquivo de swap: # swapon particaoswap Lembrando que esta partição swap estará disponível apenas durante esta sessão. Para que esta partição criada seja montada durante a inicialização do sistema, a seguinte linha deve ser incluída no arquivo /etc/fstab: /particaoswap swap swap defaults 0 0 40
  • 42. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF 6.2 /boot Este diretório contêm tudo que é necessário para o processo de boot, exceto arquivos de configuração que não são necessários no momento do boot e o map installer. Desta forma, o /boot armazena os dados que são utilizados antes que o kernel comece a executar os programas em modo de usuário. Isto pode incluir master boot sectors salvos e sector map files. Frequentemente este diretório está em uma partição diferente do resto do sistema operacio- nal. 41
  • 43. Capítulo 7 Instalando um Gerenciador de Boot 7.1 Instalando o grub No primeiro setor do disco rígido, a MBR, estão as tabelas de partições e o carregador de boot. A função do carregador de boot é encontrar o kernel a ser iniciado e carregá-lo junto a memória. Os dois gerenciadores mais populares do Linux são o Lilo e o Grub. Considerando que o grub possui mais opções que o lilo, e seu utilitário de configuração é automatizado, utilizaremos ele neste curso. Grub é um acrônimo para Grand Unified Bootloader. Após realizar alterações, o grub será atualizado com o comando update-grub. Para instalar o grub na MBR, utiliza-se o comando /sbin/grub-install ou /sbin/grub, dependendo da versão do sistema. Ao instalar o grub, ele provavelmente já listará todos os kerneis instalados. Caso não seja, adicione ao final do menu.lst e rode o comando update-grub. Segue abaixo um exemplo do arquivo de configuração /boot/grub/menu.lst do grub: pedro-brito@cdtcsun04:~$ cat /boot/grub/menu.lst # menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-legacy-doc/. ## default num # Set the default entry to the entry number NUM. Numbering starts from 0, and # the entry number 0 is the default if the command is not used. # # You can specify ’saved’ instead of a number. In this case, the default entry # is the entry saved with the command ’savedefault’. # WARNING: If you are using dmraid do not change this entry to ’saved’ or your # array will desync and will not let you boot your system. default 0 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). 42
  • 44. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF timeout 5 # Pretty colours color cyan/blue white/blue ## password [’–md5’] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command ’lock’ # e.g. password topsecret # password –md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ # password topsecret # # examples # # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1 # # title Linux # root (hd0,1) # kernel /vmlinuz root=/dev/hda2 ro # # # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST ### BEGIN AUTOMAGIC KERNELS LIST ## lines between the AUTOMAGIC KERNELS LIST markers will be modified ## by the debian update-grub script except for the default options below ## DO NOT UNCOMMENT THEM, Just edit them to your needs ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=/dev/sda1 ro ## default grub root device ## e.g. groot=(hd0,0) 43
  • 45. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF # groot=(hd0,0) ## should update-grub create alternative automagic boot options ## e.g. alternative=true ## alternative=false # alternative=true ## should update-grub lock alternative automagic boot options ## e.g. lockalternative=true ## lockalternative=false # lockalternative=false ## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=vga=791 quiet ## should update-grub lock old automagic boot options ## e.g. lockold=false ## lockold=true # lockold=false ## Xen hypervisor options to use with the default Xen boot option # xenhopt= ## Xen Linux kernel options to use with the default Xen boot option # xenkopt=console=tty0 ## altoption boot targets option ## multiple altoptions lines are allowed ## e.g. altoptions=(extra menu suffix) extra boot options ## altoptions=(single-user) single # altoptions=(single-user mode) single ## controls how many kernels should be put into the menu.lst ## only counts the first occurence of a kernel, not the ## alternative kernel options ## e.g. howmany=all ## howmany=7 # howmany=all ## should update-grub create memtest86 boot option ## e.g. memtest86=true ## memtest86=false # memtest86=true ## should update-grub adjust the value of the default booted system ## can be true or false 44
  • 46. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF # updatedefaultentry=false ## should update-grub add savedefault to the default options ## can be true or false # savedefault=false ## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-2-686 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro vga=791 quiet initrd /boot/initrd.img-2.6.26-2-686 title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode) root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro single initrd /boot/initrd.img-2.6.26-2-686 ### END DEBIAN AUTOMAGIC KERNELS LIST A maioria das configurações já possuem sua própria explicação no arquivo. Explicarei a seguir como é feito a nomeação dos dispositivos listados. title ->Nome que aparecerá no menu para escolher entre os kernels. root ->Endereço do diretório raiz. (hd0) significa o primeiro disco rígido. (hd0,0) significa a primeira partição do primeiro disco rígido. (hd0,1) significa a segunda partição do primeiro disco rígido e assim sucessivamente. kernel ->Caminho do kernel e opções de início. initrd ->Initial ramdisk. É um sistema de arquivos temporário, utilizado para fazer preparações antes que o verdadeiro sistema de arquivos raiz possa ser montado. 45
  • 47. Capítulo 8 Gerenciando Bibliotecas Compartilhadas 8.1 Bibliotecas Compartilhadas Bibliotecas são arquivos para compartilhar funções comuns de programas, a todos os progra- mas que utilizam tais funções. Quando o programa for compilado, ele vai verificar quais bibliote- cas ele necessita e se ligará às bibliotecas necessárias, que estão em um local determinado, tais como /lib e /usr/lib (as padrões do sistema). Caso você deseje adicionar um novo diretório de bibliotecas, basta simplesmente incluir o caminho completo para o diretório no arquivo /etc/ld.so.conf. Após a alteração do arquivo, utilize o seguinte comando para que a mudança seja efetivada: #ldconfig 46
  • 48. Capítulo 9 Utilizando o Gerenciador de Pacotes do Debian 9.1 dpkg O dpkg é uma ferramenta para instalar, montar, remover e gerenciar pacotes Debian. O uso principal e mais user-friendly front-end é o aptitude, porém ele não será abordado aqui. Controlaremos o dpkg via linha de comando. Sua sintaxe é a seguinte: dpkg [options] action O parâmetro action diz ao dpkg o que fazer e as options controlam o comportamento da ação. A action -i ou –install, seguida do nome do pacote instala o pacote. Note que neste caso é necessário já ter o arquivo do pacote salvo no seu computador. A action -r ou –remove seguida do nome do pacote, desinstala o pacote e remove tudo, ex- ceto os arquivos de configuração, para o caso de o pacote ser reinstalado, não ser necessário reconfigurá-lo. A action -P ou –purge seguida do nome do pacote é semelhante ao –remove, porém, neste caso, os arquivos de configuração são também excluídos. Uma desvantagem do dpkg sobre o apt é que todos os pacotes a serem instalados devem ter sido obtidos de uma outra fonte. 9.2 APT O APT é a principal ferramenta de gerenciamento de pacotes do Debian, na qual se pode obter um poder muito grande no gerenciamento de pacotes, devido as suas vastas opções. Para instalar um pacote via apt, não é necessário colocar sua versão, diferentemente do dpkg, assim como também não é necessário obter o pacote previamente. 47
  • 49. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Para instalar um pacote utiliza-se a opção install do apt-get: # apt-get install NOME DO PACOTE Caso você não saiba o nome do pacote que você deseja instalar, você pode buscá-lo através do comando: $ apt-cache search BUSCA Este comando retornará todos os pacotes em que aparecem a palavra BUSCA e então você pode instalar o pacote desejado. Mais de um pacote pode ser especificado quando for instalar. Caso o programa seja um programa novo, possivelmente ele não retornará nenhum resultado quando utilizado o comando search do apt-cache, porém, utilizando o comando: # apt-get update. O apt-get re-sincronizará seu índice de pacotes com o do servidor, possibilitando assim, a inclusão de novos pacotes para a instalação. Se ainda assim o pacote desejado não aparecer na listagem, pode-se editar o arquivo /etc/apt/sources.list, que é onde encontram-se os updates para que os novos pacotes apareçam na listagem. Para desinstalar um programa via apt-get, o comando necessário segue o mesmo padrão da instalação, porém o comando agora é "remove"para manter os arquivos de configuração e "purge"para excluir os arquivos de configuração. Assim como era com o dpkg. Novamente, mais de um pacote pode ser selecionado por vez. 9.3 Informações Para obter informações variadas sobre os pacotes, utilize o comando dpkg –status PACOTE, como no exemplo, informações sobre o pacote iceweasel: pedro-brito@cdtcsun04:~$ dpkg –status iceweasel Package: iceweasel Status: install ok installed Priority: optional Section: web Installed-Size: 3900 Maintainer: Eric Dorland <eric@debian.org> Architecture: i386 Version: 3.0.6-3 Replaces: firefox (<2.0+dfsg-1), iceweasel-gnome-support (<= 3.0~ b5-2), mozilla-firefox Provides: www-browser Depends: fontconfig, psmisc, procps, debianutils (>= 1.16), libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.12.0), libnspr4-0d (>= 1.8.0.10), libstdc++6 (>= 4.1.1), xulrunner-1.9 (>= 1.9.0.3-1) Suggests: xulrunner-1.9-gnome-support, latex-xft-fonts, xfonts-mathml, ttf-mathematica4.1, xprint, mozplugger, libkrb53 48
  • 50. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Conflicts: firefox (« 2.0+dfsg-1), iceweasel-dom-inspector (« 3.0~ b4), mozilla-firefox (« 1.5.dfsg- 1) Conffiles: /etc/iceweasel/pref/iceweasel.js f1bcbce2d713f2f639a9a9db7c3ad228 /etc/iceweasel/profile/chrome/userContent-example.css d3765c7d2de5626529195007f4b7144a /etc/iceweasel/profile/chrome/userChrome-example.css 4788fdaa51b0a238cb21f5c2877ef06d /etc/iceweasel/profile/prefs.js 99940ecd258d83b3355ab06fca0ffddb /etc/iceweasel/profile/mimeTypes.rdf 69cdcb7e0209f2e9d29000ee1c0ee2f0 /etc/iceweasel/profile/bookmarks.html 5268a062e398d7c991f16155159088a3 /etc/iceweasel/profile/localstore.rdf ea03cc19c2a3f622fa557cd8ea9da6eb /etc/iceweasel/iceweaselrc a7f1bcffd6febdb02e86652a60ebfd16 Description: lightweight web browser based on Mozilla Iceweasel is a redesign of the Mozilla browser component, similar to Galeon, K-Meleon and Camino, but written using the XUL user interface language and designed to be lightweight and cross-platform. This browser is based on the Firefox source-code, with minor modifications. Historically, this browser was previously known as Firebird and Phoenix. 49
  • 51. Capítulo 10 Gerenciando Pacotes com YUM e RPM 10.1 Pacotes com YUM e RPM Utilizando o YUM: yum list - Lista todos os pacotes disponíveis; yum check-update ou yum list updates - Verifica se há pacotes disponíveis para um update; yum update - Faz o update de seu sistema; yum update <package> - Faz o update apenas de <package>; yum install <package(s)> - Instala um pacote específico e suas dependências; yum info <package> - Apresenta informações básicas de um determinado pacote. Utilizando o RPM: rpm -q <package> - Lista os pacotes disponíveis que se relacionam a <package>(Este co- mando pode ser utilizado para visualizar o status do pacote no sistema); rpm -e <package> - Remove o <package>; rpm -i <package> - Instala o pacote <package>; rpm -ql <package> - Mostra quais arquivos estão contidos no pacote. 50
  • 52. Capítulo 11 Trabalhando com a Linha de Comando 11.1 Caracteres Especiais e Coringa ’.’ - O ponto, numa linha de comando significa o diretório atual. ’..’ - Dois pontos, em uma linha de comando significa o diretório pai. ’/’ - Barra significa, em uma linha de comando, a separação entre diretórios, ou o diretório raiz do sistema. ’~’ - O til, em uma linha de comando, significa o diretório pessoal do usuário, ou seja, sua pasta "home". ’*’ - O asterisco significa todos, ou qualquer um. Todas as opções disponíveis serão escolhi- das. ’?’ - A interrogação, como o asterisco significa qualquer um, mas de forma diferente, a interro- gação deve ser APENAS um caractere, e ele TEM que existir, diferentemente do asterisco. Veja o exemplo: pedro-brito@cdtcsun04:~$ touch teste teste1 teste2 teste12 %Criando os arquivos teste, teste1, teste2 e teste12% pedro-brito@cdtcsun04:~$ ls teste %Listando os arquivos chamado "teste". Note que como nenhum caractere coringa foi utilizado, deve aparecer somente aqueles que o nome é exatamente igual ao pedido% teste pedro-brito@cdtcsun04:~$ ls teste* %Listando todos os arquivos que comecem com teste% teste teste1 teste12 teste2 pedro-brito@cdtcsun04:~$ ls teste? %Listando todos os arquivos que comecem com teste e tenham APENAS mais um caractere% teste1 teste2 pedro-brito@cdtcsun04:~$ ls teste1? %Listando todos os arquivos que comecem com teste1 e contenham APENAS mais um caractere% teste12 pedro-brito@cdtcsun04:~$ ls teste1* %Listando todos os arquivos que comecem com teste1 e tenham um número qualquer de caracteres a mais(Incluindo nenhum caractere a mais)% teste1 teste12 [ ] - Indica uma lista de caracteres sequenciais. { } - Indica as seleções desejadas. 51
  • 53. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF Veja o exemplo: pedro-brito@cdtcsun04:~$ touch teste1 teste2 teste3 teste4 teste5 teste6 teste7 teste8 teste9 %Criando os arquivos teste de 1 a 9% pedro-brito@cdtcsun04:~$ ls teste[3-9] %Listando os arquivos teste de 3 a 9% teste3 teste4 teste5 teste6 teste7 teste8 teste9 pedro-brito@cdtcsun04:~$ ls teste1,3,5,7 %Listando os arquivos teste 1, 3, 5 e 7% teste1 teste3 teste5 teste7 pedro-brito@cdtcsun04:~$ ls teste1-3,5-9 %Não é possível selecionar intervalos com , deve- se especificar individualmente os que devem ser selecionados% ls: impossível acessar teste1-3: Arquivo ou diretório não encontrado ls: impossível acessar teste5-9: Arquivo ou diretório não encontrado pedro-brito@cdtcsun04:~$ ls teste[1-3,5-9] %Listando os arquivos de 1 a 3 e de 5 a 9% teste1 teste2 teste3 teste5 teste6 teste7 teste8 teste9 11.2 bash Bash é um Shell escrito em 1987 para o projeto GNU. Ele foi baseado no Bourne Shell (sh) criado por Stephen Bourne, daí seu nome Bash, que é um acrônimo para Bourne Again Shell(Do inglês, Born significa nascer, então é também uma piadinha para "Shell renascido"). Na maioria das distribuições Linux, este é o shell padrão. A seguir, alguns atalhos para facilitar a operação no bash: Tab : Autocompleta CTRL + a: Move o cursor para o início da linha CTRL + e: Move o cursor para o final da linha CTRL + p: Chama o comando utilizado anteriormente CTRL + n: Chama o próximo comando CTRL + l: Limpa a tela CTRL + u: Limpa o conteúdo antes do cursor e o passa pra área de transferência CTRL + k: Limpa o conteúdo após o cursor e o passa pra área de transferência ALT + f: Move o cursor uma palavra adiante ALT + b: Move o cursor uma palavra atrás ALT + d: Apaga a palavra na frente do cursor 11.3 Variáveis O Shell utiliza algumas variáveis para facilitar seu uso, e para prover outras informações. É possível exportar uma variável, tornando-a disponível para as sessões do bash criadas apartir da sessão em que a variável foi exportada. Você pode verificar a lista das variáveis locais e de ambiente com o comando set: pedro-brito@cdtcsun04:~/Desktop$ set BASH=/bin/bash BASH_ARGC=() BASH_ARGV=() 52
  • 54. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="3"[1]="2"[2]="39"[3]="1"[4]="release"[5]="i486-pc-linux-gnu") BASH_VERSION=’3.2.39(1)-release’ COLORTERM=gnome-terminal COLUMNS=176 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-E9L3yd4s9B,guid=da5097e45bef5b1 5a4c61b474b4c944b DESKTOP_SESSION=default DESKTOP_STARTUP_ID= DIRSTACK=() DISPLAY=:0.0 EUID=1019 GDMSESSION=default GDM_LANG=pt_BR.UTF-8 GDM_XSERVER_LOCATION=local GNOME_DESKTOP_SESSION_ID=Default GNOME_KEYRING_PID=31533 GNOME_KEYRING_SOCKET=/tmp/keyring-QDCU7e/socket GPG_AGENT_INFO=/tmp/seahorse-BODIya/S.gpg-agent:31591:1 GROUPS=() GTK_RC_FILES=/etc/gtk/gtkrc:/home/pedro-brito/.gtkrc-1.2-gnome2 HISTCONTROL=ignoreboth HISTFILE=/home/pedro-brito/.bash_history HISTFILESIZE=500 HISTSIZE=500 HOME=/home/pedro-brito HOSTNAME=cdtcsun04 HOSTTYPE=i486 IFS=$’ tn’ LANG=pt_BR.UTF-8 LINES=63 LOGNAME=pedro-brito LS_COLORS=’no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35: do=01;35:bd=40;33;0 1:cd= 40;33;01:or=40;31;01: su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=0 1;31:*.tgz=01;31 :*.svgz= 01;31:*.arj=01;31:*. taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=0 1;31:*. dz=01;31 :*.gz=01 ;31:*.bz2=01;31:*.bz=01 ;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01; 31:*.rar =01;31: *.ace=01;3 1:*.zoo=01;31:*.cpio=01 ;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif= bmp=01;35:*. pbm=01;35: *.pgm=01;35:*.ppm=01;35 :*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff= png=01;35:*. svg=01;35: *.mng=01;35:*.pcx=01;35: *.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*. ogm=01;35:*.m p4=01;35:*. m4v=01;35:*.mp4v=01;35: *.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.a 01;35:*.rmv b=01;35:*.fl c=01;35:*.avi=01;35:*. fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv= 01;35:*.aac=0 0;36:*.au=0 0;36:*.flac=00;36:*.mid =00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;3 00;36:*.ra=00 ;36:*.wav=00;36:’ MACHTYPE=i486-pc-linux-gnu MAILCHECK=60 OPTERR=1 OPTIND=1 53
  • 55. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF OSTYPE=linux-gnu PATH=/usr/local/bin:/usr/bin:/bin:/usr/games PIPESTATUS=([0]="0") PPID=864 PS1=’[e]0;u@h: wa]$debian_chroot:+($debian_chroot)u@h:w$ ’ PS2=’>’ PS4=’+ ’ PWD=/home/pedro-brito/Desktop SESSION_MANAGER=local/cdtcsun04:/tmp/.ICE-unix/31534 SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor SHLVL=1 SSH_AUTH_SOCK=/tmp/keyring-QDCU7e/ssh TERM=xterm UID=1019 USER=pedro-brito USERNAME=pedro-brito WINDOWID=46137421 WINDOWPATH=7:7:7:7 XAUTHORITY=/home/pedro-brito/.Xauthority XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/_=env Caso você deseje alterar alguma variável, basta digitar o nome dela, o sinal de igual e o novo valor. Por exemplo a variável SHELL (SHELL=/bin/bash). Se eu quiser alterar o shell que eu utilizo, basta utilizar o seguinte comando: pedro-brito@cdtcsun04:~$ SHELL=/bin/sh pedro-brito@cdtcsun04:~$ echo $SHELL /bin/sh Pronto! Agora os próximos comandos que eu executar serão interpretados pelo Bourne Shell e não mais pelo BASH. 11.4 O histórico do Bash Se você apertar a setinha para cima, no BASH, ele vai navegar pelo arquivo ~/.bash_history e vai mostrar a você comandos inseridos anteriormente. Por padrão, este arquivo guarda seus últimos 500 comandos digitados, porém, você pode al- terar este valor, adicionando as seguintes linhas no arquivo ~/.basrc: export HISTFILESIZE=2000 export HISTSIZE=2000 Lembrando que o Linux é case-sensitive. Outra dica é criar o arquivo ~/.inputrc com as seguintes linhas: "e[A": history-search-backward 54
  • 56. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF "e[B": history-search-forward Após deslogar e logar-se novamente, o efeito que estas linhas causarão é o de fazer uma busca no ~/bash_history por contexto. Caso nada seja digitado, seu shell agirá normalmente, porém, digite algum(ou alguns) caractere(s) e então o shell só buscará no histórico por comandos que iniciem com os caracteres digitados. 55
  • 57. Capítulo 12 Processando Fluxos de Texto Utilizando Filtros 12.1 Filtros de Texto Nesta parte do curso veremos alguns filtros de textos no Linux e suas funções: cat: Concatena arquivos e imprime na saída padrão(monitor). cut: Remove seções de cada linha de arquivos. expand: Converte tabulações em espaços. fmt: Reformata cada parágrafo no arquivo, ou da entrada padrão(teclado) se nenhum arquivo for especificado. head: Imprime na saída padrão as primeiras 10 linhas de um arquivo ou o número de linhas desejado. od: Escreve numa representação não ambígua bytes octais de um arquivo na saída padrão. Pode ler do teclado. join: Junta as linhas de dois arquivos em um campo comum. nl: Imprime um arquivo na saída padrão com as linhas enumeradas. Pode ler do teclado. paste: Imprime na tela as linhas de dois arquivos(ou da entrada padrão) separadas por tabu- lações. pr: Faz paginação de arquivos para impressão. sed: Editor de fluxo de texto para filtrar e transformar texto. sort: Imprime na tela as linhas de um arquivo em uma ordem específica. split: Separa um arquivo em pedaços, cada um com determinada quantidade de linhas. tail: Imprime na saída padrão as últimas 10 linhas de um arquivo ou o número de linhas desejado. tr: Traduz ou deleta caracteres lidos na entrada padrão, e os devolve para a saída padrão. unexpand: o contrário do expand, transforma espaços em tabulações. uniq: Descarta ou reporta linhas idênticas em um arquivo. wc: Imprime a quantidade de linhas, palavras e bytes para cada arquivo ou a partir da entrada padrão. Para detalhes e utilização de cada um destes comandos, utilize o comando man <comando>em um terminal. 56
  • 58. Capítulo 13 Gerenciamento Básico de Arquivos 13.1 Manipulando arquivos e diretórios Arquivos e diretórios são facilmente gerenciáveis no Linux através da linha de comando. É possível criar, apagar, copiar, mover arquivos e pastas individualmente ou multiplamente. Para criar um diretório, utilize o comando mkdir. Para criar uma pasta no diretório atual, utilize apenas mkdir <nome da pasta>. Para criar em um diretório diferente, navegue até a pasta dese- jada (atráves de cd(change directory)) ou especifique um caminho completo, mkdir /home/pedro- brito/Desktop/PastaExemplo. Para copiar ou mover um diretório e seus arquivos, utilize cp (para copiar) ou mv (para mover) a flag -r (recursively), a pasta desejada, e o destino da pasta: pedro-brito@cdtcsun04:~$ mkdir ~/Desktop/PastaExemplo pedro-brito@cdtcsun04:~$ touch ~/Desktop/PastaExemplo/ArquivoExemplo pedro-brito@cdtcsun04:~$ ls ~/Desktop/PastaExemplo ArquivoExemplo pedro-brito@cdtcsun04:~$ cp -rv ~/Desktop/PastaExemplo/ /home/pedro-brito/ ‘/home/pedro-brito/Desktop/PastaExemplo/’ ->‘/home/pedro-brito/PastaExemplo’ ‘/home/pedro-brito/Desktop/PastaExemplo/ArquivoExemplo’ ->‘/home/pedro-brito/PastaExemplo/ArquivoE pedro-brito@cdtcsun04:~$ ls ~/Desktop/ |grep PastaExemplo PastaExemplo pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo PastaExemplo pedro-brito@cdtcsun04:~$ rm -rf PastaExemplo/ pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo pedro-brito@cdtcsun04:~$ mv -v ~/Desktop/PastaExemplo/ /home/pedro-brito/ ‘/home/pedro-brito/Desktop/PastaExemplo/’ ->‘/home/pedro-brito/PastaExemplo’ pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep PastaExemplo PastaExemplo pedro-brito@cdtcsun04:~$ ls ~/Desktop/ |grep PastaExemplo Ao invés de utilizar rm -r pode-se utilizar rmdir para remover diretórios. Caracteres coringas podem ser utilizados com estes comandos: pedro-brito@cdtcsun04:~$ mkdir pasta1 pasta2 pasta3 pasta4 pasta5 57
  • 59. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasília/DF pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep pasta pasta1 pasta2 pasta3 pasta4 pasta5 pedro-brito@cdtcsun04:~$ mv pasta[1-3] ~/Desktop/ pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/ |grep pasta pasta4 pasta5 pedro-brito@cdtcsun04:~$ ls /home/pedro-brito/Desktop |grep pasta pasta1 pasta2 pasta3 13.2 O comando find Para localizar arquivos utilizando o comando find, utilize a seguinte sintaxe: find <diretório>-<parâmetro><busca> Sendo os parâmetros: - name (busca por nome) - type (busca por tipo. Tipos permitidos: c (caractere), d (diretório), f (arquivo normal), l (link simbólico), s (socket).) - size (busca por tamanho, utilize -size <TAM>[k,M,G], sendo k, M e G para kilobytes, me- gabytes e gigabytes, respectivamente) - mtime (busca por data de modificação, utilize -mtime <TEMPO>, sendo TEMPO marcado em dias) 58
  • 60. Capítulo 14 Utilizando Fluxos, pipes e redirects 14.1 Redirecionadores de saídas O operador ’>’ e o operador ’»’ são utilizados pra redirecionar a saída de um programa em um arquivo. Por exemplo, utilizando o comando ls para listar o diretório, a saída seria apresentada na saída padrão, que é a tela. Utilizando o operador ’>’ ou ’»’, poderia se redirecionar a saída para um arquivo. pedro-brito@cdtcsun04:~$ touch lista %Criando o arquivo lista vazio% pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista% 0 lista pedro-brito@cdtcsun04:~$ ls >lista %Redirecionando a saída de ls para o arquivo lista% pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista% 46 lista pedro-brito@cdtcsun04:~$ ls / >lista %Redirecionando a listagem do diretório raiz para o ar- quivo lista% pedro-brito@cdtcsun04:~$ wc -l lista %Contando novamente as linhas em lista, vemos que tem apenas 23 linhas e não 46 + a listagem do diretório raiz. Isso acontece porque o operador >sobrescreve todo o arquivo, caso o novo conteúdo quisesse ser adicionado ao antigo, deveria-se utilizar o operador »% 23 lista pedro-brito@cdtcsun04:~$ ls »lista %Adicionando agora a listagem do diretório ao final do arquivo lista% pedro-brito@cdtcsun04:~$ wc -l lista %Contando as linhas em lista, vemos que agora há 69 linhas, que é a soma das linhas do diretório atual com as linhas do diretório raiz(46 + 23)% 69 lista 14.2 Redirecionadores de Entrada Para redirecionar o conteúdo de um arquivo para a entrada padrão de um comando, usa-se ’<’. Os dados são lidos da direita pra esquerda. Por padrão, os conteúdos redirecionados são os de stdout(tela). Caso se deseje especiicar stderr, basta utilizar 2>. Caso deseje redirecionar os dois, utilize &>. 59