responsvel
pelo
Introduo
Este curso destinado a usurios, especialistas de suporte e desenvolvedores de software que desejam aprender
a utilizar o Linux, um ambiente computacional moderno,
gil e com um sistema operacional extremamente estvel e verstil. O curso destina-se tambm aos administradores de sistemas Windows e aos profissionais que desejam iniciar os estudos para a certificao LPIC1, do Linux
Professional Institute.
Este livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados em sala de aula, apoiando
profissionais na disseminao deste conhecimento em
suas organizaes ou localidades de origem.
Introduo ao Linux
ao Linux
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
ISBN 978-85-63630-19-3
9 788563 630193
Ministrio da
Cincia, Tecnologia
e Inovao
responsvel
pelo
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
Ministrio da
Cincia, Tecnologia
e Inovao
Introduo
ao Linux
Arthur Peixoto
Andreia Gentil Bonfante
Introduo
ao Linux
Arthur Peixoto
Andreia Gentil Bonfante
Rio de Janeiro
Escola Superior de Redes
2013
Nelson Simes
Diretor de Servios e Solues
Luiz Coelho
Edio
Pedro Sangirardi
Reviso Tcnica
Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa,
Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato e Renato Duarte
Capa, projeto visual e diagramao
Tecnodesign
Verso
1.1.0
Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de
contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e
Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuio
Bibliografia: p. 193-194.
ISBN 978-85-63630-19-3
1. Linux (Sistema operacional de computador). 2. Sistema operacional (computadores).
3. UNIX Shell (Programa de computador). I. Bonfante, Andreia. II. Braga, Marcelo. III. Titulo.
CDD 005.40469
Sumrio
1. Histrico e instalao
O que um Sistema Operacional?1
Arquitetura do sistema operacional Unix2
Caractersticas principais3
Histrico do Unix5
Verses do Unix5
Similares Unix7
Distribuies Linux8
Exerccio de fixao 1 Entendendo as licenas Unix e GPL8
Red Hat Enterprise Linux8
CentOS9
Debian9
Ubuntu10
Mandriva Linux10
Slackware11
Exerccio de fixao 2 Conhecendo as distribuies Linux11
A escolha da distribuio Linux11
Razes para utilizar o Linux12
Hardwares suportados12
Lista de verificao de hardware13
Requisitos mnimos de hardware13
Instalando o Linux14
Criao da mquina virtual14
Programa de instalao do Linux15
iii
2. Utilizao do sistema
Configuraes iniciais21
Informaes da licena21
Criando uma conta de usurio21
Configurando data e hora21
Habilitao e configurao do Kdump22
Ambiente grfico22
Iniciando e finalizando o Servidor X22
Configurando o Servidor X23
Arquivo xorg.conf23
Abrindo uma sesso26
GNOME desktop26
Menu Aplicativos27
Menu Locais28
Menu Sistema28
Aplicaes28
Configurando o GNOME29
KDE desktop30
Lanador de aplicaes31
Aplicaes do KDE33
Configurando o KDE34
Documentao35
Roteiro de Atividades 237
Atividade 2.1 Conhecendo o ambiente grfico 37
Atividade 2.2 Conhecendo os gerenciadores de arquivos37
Atividade 2.3 Trabalhando com arquivos e diretrios37
iv
3. Organizao do Linux
Sistema de arquivos do Linux39
Exerccio de fixao 1 Conhecendo o sistema de arquivos40
Exerccio de fixao 2 Estrutura de diretrios40
Montando e desmontando um dispositivo41
Inode41
Tipos de arquivos42
Arquivo regular42
Diretrio42
Arquivos de dispositivos43
Named pipes44
Para que servem os links45
Exerccio de fixao 3 Links45
Sockets46
Atributos dos arquivos46
Permisses de arquivos47
Exerccio de fixao 4 Atributos e permisses de arquivos50
Operaes com arquivos e diretrios50
Exerccio de fixao 5 Criando arquivos52
Criando diretrios52
Exerccio de fixao 6 Criando diretrios53
Copiando arquivos e diretrios53
Removendo arquivos e diretrios54
Exerccio de fixao 7 Removendo arquivos54
Movendo arquivos e diretrios54
Exerccio de fixao 8 Renomeando arquivos55
Listando arquivos e diretrios55
Exerccio de fixao 9 Listando arquivos56
Procurando arquivos e diretrios56
Navegando pela rvore de diretrios57
Empacotando e compactando arquivos e diretrios58
Exerccio de fixao 10 Pgina de manuais60
Roteiro de Atividades 361
Atividade 3.1 Conhecendo os arquivos61
Atividade 3.2 Criando arquivos61
Atividade 3.3 Criando diretrios e copiando arquivos61
Atividade 3.4 Empacotando e compactando arquivos61
Atividade 3.5 Removendo arquivos e diretrios61
v
4. Desvendando o Linux
Entrada e sada padro de dados e sada padro de erros63
Redirecionamento de entrada e sada64
Pipe ou canalizao66
Exerccio de fixao 1 Comando sort68
Comandos para manipulao de arquivos68
Substituindo nomes de arquivos68
Visualizando o contedo de arquivos68
Exerccio de fixao 2 Visualizando contedo de arquivos69
Contabilizando o contedo de arquivos70
Exibindo o contedo inicial e final de arquivos70
Exerccio de fixao 3 Exibindo o contedo de arquivos71
Selecionando trechos de arquivos71
Comparao entre arquivos74
Ordenao em arquivos75
Roteiro de Atividades 477
Atividade 4.1 Pesquisando em arquivos77
Atividade 4.2 Contabilizando arquivos77
Atividade 4.3 Controlando a exibio do contedo de arquivos77
Atividade 4.4 Combinando comandos para criar novas funcionalidades77
5. Edio de texto
Processadores de texto79
Editores de texto79
Editor Vi80
Modos do editor Vi82
Exerccio de fixao 1 Primeiro arquivo com Vi87
Roteiro de Atividades 591
Atividade 5.1 Criando um texto no Vi91
Atividade 5.2 Usando recursos bsicos do Vi91
Atividade 5.3 Combinando recursos do Vi92
Atividade 5.4 Execuo de comandos diversos92
Atividade 5.5 Execuo de comandos avanados92
vi
6. Shell
Noes bsicas93
Gerenciamento de processos95
Criao de processos96
Processos em background e daemons98
Sinais do sistema99
Visualizao de processos101
Variveis de ambiente102
Uso de aspas simples, duplas e barra invertida 104
Exerccio de fixao 1 Visualizao de processos104
Exerccio de fixao 2 Visualizao de processos em tempo real105
Exerccio de fixao 3 Visualizao de rvore de processos105
Shell Script105
Exerccio de fixao 4 Criando um script simples107
Variveis do Shell Script 107
Escopo das variveis109
Expresses e testes110
Comando read113
Parmetros de linha de comando (variveis especiais)114
Roteiro de Atividades 6117
Atividade 6.1 Exibindo processos em estados especficos117
Atividade 6.2 Executando processos em background117
Atividade 6.3 Utilizando um daemon117
Atividade 6.4 Usando testes dentro dos scripts117
Atividade 6.6 Lendo variveis e usando expresses nos scripts117
Atividade 6.7 Utilizando parmetros118
Atividade 6.8 Utilizando parmetros e testes118
Atividade 6.9 Utilizando testes de diretrio118
Atividade 6.10 Listando arquivos passados por parmetro118
7. Shell Script
Estruturas de deciso119
Comando if119
Comando if tipos de condio121
vii
8. Shell Script
Estruturas de repetio137
Comando for137
Exerccio de fixao 1 Alterando o valor da varivel IFS 140
Comandos while e until140
Funes141
Exerccio de fixao 2 Etapas do script147
Arrays147
Roteiro de Atividades 8151
Atividade 8.1 Verificando permisso dos arquivos151
viii
9. Instalao de aplicaes
Aplicaes no sistema operacional Linux153
Linguagens de programao 154
Instalando aplicaes a partir de seus cdigos-fontes156
Obteno dos arquivos-fontes156
Verificao do ambiente para a compilao156
Compilao157
Instalao157
Instalando aplicaes a partir de arquivos binrios158
Pacotes RPM159
Dependncias161
Exerccio de fixao 1 Gerenciador de pacotes RPM162
YUM163
Configurando o YUM163
Utilizando o YUM164
APT168
Configurando o APT168
Utilizando o APT168
Dicas sobre gerenciadores de pacotes170
Exerccio de fixao 2 Gerenciador de pacotes APT171
Roteiro de Atividades 9173
Atividade 9.1 Encontrando bibliotecas utilizadas por um programa173
Atividade 9.2 Instalando uma aplicao a partir do seu cdigo-fonte173
Atividade 9.3 Instalando uma aplicao a partir de um arquivo binrio173
Atividade 9.4 Instalando um pacote rpm173
ix
Bibliografia 193
A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.
xi
Sobre o curso
Esse o curso introdutrio da trilha de Administrao de Sistemas. Seu objetivo introduzir o aluno ao mundo Linux. O sistema operacional (SO) utilizado o CentOS, que
baseado em RedHat, gratuito e extremamente estvel, alm de suportar todos os servios
necessrios a um ambiente web.
O curso composto de 10 captulos de embasamento terico e atividades correlatas para
aprendizado e fixao do conhecimento. O curso tem como objetivo apresentar as facilidades de administrao e gerenciamento, que sero exploradas com maior profundidade nos
demais cursos da rea de Administrao de Sistemas da Escola Superior de Redes da RNP.
A quem se destina
Este curso destinado a usurios, especialistas de suporte e desenvolvedores de software
que desejam aprender a utilizar o Linux, um ambiente computacional moderno, gil e com
um sistema operacional extremamente estvel e verstil.
O curso destina-se tambm aos administradores de sistemas Windows e aos profissionais
que desejam iniciar os estudos para a certificao LPIC1, do Linux Professional Institute.
xii
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).
Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo
Indica um documento como referncia complementar.
Smbolo
Indica um vdeo como referncia complementar.
Smbolo
Indica um arquivo de adio como referncia complementar.
Smbolo
Indica um aviso ou precauo a ser considerada.
Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.
Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.
Permisses de uso
Todos os direitos reservados RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citao: PEIXOTO, Arthur Mendes; BONFANTE, Andreia Gentil. Introduo ao
Linux. Rio de Janeiro: Escola Superior de Redes, 2013.
xiii
Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao:
Escola Superior de Redes RNP
Endereo: Av. Lauro Mller 116 sala 1103 Botafogo
Rio de Janeiro RJ 22290-906
E-mail: info@esr.rnp.br
Sobre os autores
Arthur Mendes Peixoto possui mais de 26 anos de experincia na rea de Redes de Comunicao de Dados e Engenharia de Sistemas, com Dissertao de Mestrado em Anlise de
Performance de Sistemas Distribudos, no Instituto Militar de Engenharia - IME. Participou
do desenvolvimento e implantao das primeiras redes com tecnologias ATM, Frame Relay,
IP/ MPLS. Foi consultor de grandes projetos como o Backbone IP do Plano Nacional de Banda
Larga (PNBL) da Telebrs. Trabalhou por 22 anos no setor de Telecomunicaes da Embratel,
atuando na prospeco de novas tecnologias para as Redes de Nova Gerao NGN. Participou de testes e verificaes de requisitos de RFPs, nos pases: EUA, Canad, Japo, Frana,
Espanha e Mxico. Atuou no desenvolvimento de sistemas no CPqD - Campinas (SP).
Andreia Gentil Bonfante possui graduao em Bacharelado em Cincias de Computao
pela Universidade Estadual de Londrina, mestrado e doutorado em Cincias da Computao e Matemtica Computacional pela Universidade de So Paulo. Atualmente professora/pesquisadora da Universidade Federal de Mato Grosso. Tem experincia na rea de
Cincia da Computao, com nfase em Inteligncia Artificial, atuando principalmente nos
seguintes temas: Processamento de Lngua Natural, Minerao de Textos e Aprendizado de
Mquina. Atua na Educao a Distncia como Coordenadora da Especializao em Informtica na Educao. Atuou tambm como instrutora dos cursos de Introduo ao Linux da
Escola Superior de Redes na Unidade de Cuiab.
Marcelo Castellan Braga possui graduao em Engenharia Eletrnica pelo CEFET-RJ,
ps-graduao em Anlise, Projeto e Gerncia de Sistemas pela PUC-RJ e mestrado em
informtica pela UNIRIO. Atualmente scio diretor da MCB Tech, empresa que presta consultoria em redes de computadores, servios de internet, segurana de dados e desenvolvimento de software. Atuou durante mais de 10 anos na rea de TI em empresas como Rede
Nacional de Ensino e Pesquisa (RNP) e Embratel.
Sergio Ricardo Alves de Souza possui mais de 35 anos de experincia na rea de Administrao e Suporte de Sistemas. Trabalhou em empresas como: Burroughs (UNISYS), ARSA
(Infraero), Cobra Computadores, LNCC e outras. Consultoria e treinamento em empresas
como: Fiocruz, Jardim Botnico, Museu Goeldi, Cefet-MG, IBM Brasil. Participou do desenvolvimento e implantao de cursos profissionalizantes em Informtica em Petrpolis FAETC. Participou do projeto de criao do Instituto Superior de Tecnologia em Cincia da
Computao de Petrpolis. Possui Notrio Saber em Informtica pelo LNCC.
xiv
1
Compreender o que um Sistema Operacional e estudar a arquitetura do sistema
operacional Unix.
conceitos
objetivos
Histrico e instalao
11 Interpretar comandos: necessrio que o sistema interaja com o usurio. O interpretador de comandos recebe os pedidos ou os comandos e compreende o que o usurio
deseja executar. Aps interpretar o comando, encaminha pedidos aos outros mdulos do
Sistema Operacional, especializados em atender esses pedidos.
Estas funes bsicas so as mnimas necessrias para o funcionamento de um computador. Veremos que um sistema operacional pode ter muitas outras funes que definem
sua especializao.
Dependendo do tipo de aplicao que um computador vai suportar, seu Sistema Operacional pode necessitar de executar funes especiais, alm das bsicas apresentadas anteriormente. Um Sistema Operacional que se destina a aplicaes pessoais deve ter interface
grfica bem desenvolvida para facilitar a utilizao por usurios leigos em sistemas. H
aqueles que se destinam a aplicaes em tempo real, ou seja, que so sensveis a retardos,
conforme ocorre com alguns controles de processos industriais. Existem computadores que
so compartilhados, atendendo a usurios de uma empresa ou departamento, que necessitam realizar diversas tarefas simultneas (multitarefa), ou que permitem vrios usurios
conectados simultaneamente (multiusurio). Esses computadores necessitam de Sistemas
Operacionais que realizem funes especiais, como:
11 Controle de acesso: administra o acesso de mltiplos usurios s informaes armazenadas e aos dados em memria, garantindo a confidencialidade dessas informaes.
funo do Sistema Operacional garantir o sigilo s informaes de cada usurio, restringindo o acesso a essas informaes a outros usurios que utilizem o mesmo sistema.
11 Gerncia de contabilizao: contabiliza todas as atividades do sistema, armazenando em
disco as informaes relativas s estatsticas de utilizao, para posterior emisso de relatrios.
Veremos que, desde o nascimento do Unix at os dias atuais, alm das funcionalidades
bsicas e especiais, vrias outras funes foram agregadas ao Sistema Operacional,
tornando-o um sistema de grande complexidade e aplicabilidade, ou seja, um Sistema
Operacional multi-purpose.
Figura 1.1
Diviso do Sistema
Operacional Unix.
Caractersticas principais
11 Portabilidade.
11 Multiusurio.
11 Multiprocessamento.
11 Estrutura hierrquica de diretrios.
11 Interpretador de comandos (shell).
11 Pipelines.
11 Utilitrios.
11 Desenvolvimento de software.
11 Maturidade.
O Unix um Sistema Operacional muito flexvel, com grande nmero de funcionalidades.
Principais caractersticas:
11 Portabilidade: o Unix portvel, ou seja, pode ser adaptado facilmente para ser executado em diferentes arquiteturas de hardware. Sua adequao a um novo hardware
rpida e exige pequeno esforo de programao. Talvez essa seja a caracterstica mais
cantes diferentes. A portabilidade se estende, tambm, para os programas e pacotes de
software escritos para o Unix, o que promoveu grande desenvolvimento de aplicativos e
intensificou sua expanso no mercado.
11 Multiusurio: o Unix foi concebido para ser um sistema multiusurio, suportando conexes simultneas de diversos usurios. Com isso, possvel melhor utilizao da capacidade de processamento e da manipulao e armazenamento das informaes do sistema
de computao. Para isso, o Sistema Operacional possui ferramentas de segurana para
permitir o isolamento das atividades de cada usurio.
importante desse Sistema Operacional, que permitiu sua adoo por centenas de fabri-
Time slice
Swap
3
4
Figura 1.2
Multiprocessamento: execuo de
mltiplas tarefas ao
mesmo tempo.
4
Multi processamento
Vendas
Compras
Leste
Folha de pagamento
Oeste
Arquivos
de contas
a pagar
Relatrios
de venda
Arquivos
de salrios
Arquivos
de cartes
de ponto
Relatrios
de vendas
Figura 1.3
Estrutura de hierarquia do sistema de
armazenamento de
informaes.
Introduo ao Linux
Unix e utilizada para a execuo de funes mais complexas. Muitas vezes, novas tarefas
exigem apenas que programas j existentes e tambm utilitrios sejam combinados para a
execuo de uma nova funo, sem a necessidade de desenvolver um novo programa.
Entrada
padro
Comando 1
$ Comando1
Comando 2
| Comando2
Comando 3
| Comando3
Comando 4
Comando4
Sada
padro
Figura 1.4
Uso de pipelines
ou pipes.
11 Utilitrios: o Unix incorpora centenas de programas utilitrios para funes como: seleo
de dados, processamento de texto e busca de informaes. Essas facilidades formam um
conjunto de ferramentas que permitem a execuo de diversos tipos de tarefas.
11 Desenvolvimento de software: o Unix tambm conhecido como uma plataforma de
desenvolvimento de software, pois possui ferramentas que suportam todas as fases do
processo de desenvolvimento, desde a preparao at a depurao. Devido sua portabilidade, esses softwares podem ser utilizados em microcomputadores ou em computadores de grande porte.
11 Maturidade: o Unix um Sistema Operacional slido, testado e aprovado pelo mercado,
que vem sendo utilizado h mais de trs dcadas, tendo atingido o estado de maturidade. Dessa forma, alm de sua flexibilidade e inmeras funcionalidades, tem tambm
como caracterstica a confiabilidade, o que o torna, atualmente, o Sistema Operacional
preferido para sistemas que suportam aplicaes crticas.
Histrico do Unix
O Unix surgiu no Bell Laboratories em 1969, a partir do trabalho de Ken Thompson na
evoluo de outro Sistema Operacional, o Multics. No desenvolvimento do Unix, Thompson
sentiu a necessidade de escrev-lo para diferentes tipos de arquiteturas e decidiu fazer o
Unix independentemente da mquina em que fosse executado, criando a linguagem B. Essa
linguagem evoluiu para a linguagem C, desenvolvida por Dennis Ritchie, o que permitiu
reescrever o Unix e torn-lo portvel para diferentes arquiteturas. Devido caracterstica de
portabilidade do Unix, no incio da dcada de 1980 foram desenvolvidos diversos pacotes de
programas, que foram utilizados por diferentes fabricantes, tornando mundialmente conhecidos o Unix, a linguagem C e seus aplicativos.
O Unix se tornou um Sistema Operacional bastante conhecido, no somente no mundo acadmico, como tambm no meio comercial. Os sistemas Unix-based e similares ao Unix proliferaram, sendo oferecidos por diversos fabricantes de computadores, desde os pessoais at os
mainframes, sempre mantendo suas caractersticas bsicas, tornando-o um padro de fato.
Verses do Unix
11 Unix Sexta Edio.
11 PWB Unix.
11 Unix Verso 7.
11 Unix System III.
11 Unix System V.
As verses do Unix so aquelas licenciadas exclusivamente pela AT&T, que podem ostentar o
nome Unix. Uma variedade de verses, algumas mais famosas e outras menos foram desenvolvidas desde seu surgimento. Principais verses do Unix:
11 Unix Sexta Edio: a mais antiga verso licenciada, na maioria dos casos para instituies educacionais, no havendo nenhuma verso comercial dessa verso. Essa verso foi
lanada em 1975.
11 PWB Unix: verso especializada desenvolvida pelo Bell Labs, que inclui facilidades para
desenvolvimento de software por grandes equipes de programadores. Essa verso foi
lanada em 1977.
Introduo ao Linux
Alguns desses sistemas similares ao Unix mostraram grandes variaes nas interfaces grficas, protocolos de redes, utilitrios de gerenciamento, administrao de perifricos, entre
outras. O desenvolvimento de um cdigo-fonte novo, independente da AT&T, e que constitusse de fato um padro surgiu, ento, como uma necessidade.
Similares Unix
11 Desenvolvimento de um cdigo-fonte novo, independente da AT&T.
Para pensar
Uma das vantagens de seu cdigo estar disponvel na internet ter vrios grupos
dedicados a aprimorar ferramentas e recursos para o sistema, fazendo com que
este esteja sempre atualizado, seguro, estvel e confivel, constituindo uma plataforma de desenvolvimento que se tornou um padro de fato.
Distribuies Linux
11 Como funciona a GPL?
A partir do copyleft, qualquer usurio pode usar, alterar e redistribuir o software livre.
Muitas distribuies Linux comerciais surgiram dessa maneira, acoplando ao kernel utilitrios, interfaces grficas, aplicaes matemticas e cientficas, sistemas gerenciadores de
bancos de dados, entre outros, que so colocados no mercado junto com a documentao e
as instrues para a instalao do sistema.
A seguir, so apresentadas algumas caractersticas das principais distribuies Linux.
Exerccio de fixao 1 e
Entendendo as licenas Unix e GPL
Quais as diferenas entre as licenas do Unix e da GPL do Linux? Tendo como base o
enfoque do usurio, dos desenvolvedores de aplicativos, dos fabricantes de hardware e dos
Introduo ao Linux
zao do sistema.
11 Verstil, aceita diversas opes de configurao de recursos do sistema.
11 Patrocnio do projeto Fedora.
A distribuio Red Hat Enterprise Linux incorpora facilidades, como programas de configurao
de recursos do sistema, interfaces grficas, especializaes para verses cliente e servidor e
aplicativos como sutes de escritrio. Com ela, fornecido o ambiente grfico X-Window, contendo o gerenciador de janelas KDE, desenvolvido por um projeto de software livre.
Uma grande vantagem dessa distribuio a facilidade de instalao, excelente para os
iniciantes em Linux. Funcionalidades como pacotes pr-compilados e gerenciadores de
pacotes como o RPM e o YUM, que automatizam todo o processo de instalao e a atuali-
A Red Hat est patrocinando o projeto Fedora juntamente com a comunidade formada por
desenvolvedores de software, que do suporte ao desenvolvimento de software livre.
O objetivo desse projeto da comunidade Linux manter um Sistema Operacional completo,
de aplicao geral, com o cdigo-fonte totalmente aberto e gratuito.
CentOS
11 Compatvel com Red Hat Enterprise Linux.
Visite http://www.
centos.org para saber
mais detalhes sobre a
distribuio CentOS.
tribudo sob a licena GNU/GPL para aplicaes com servidores de pequeno, mdio e grande
porte e mantido por uma ativa e crescente comunidade de usurios denominada CentOS
Project. Alm disso, possui diversas vantagens sobre outras distribuies: rpida correo
de bugs e vulnerabilidades, grande rede de repositrios para download, vrias opes de
suporte como chat, IRC, listas de e-mail, fruns e um FAQ dinmico e abrangente. Tambm
possvel obter suporte comercial oferecido por empresas parceiras.
Debian
11 Desenvolvido por um grupo diversificado de programadores.
11 Preferido pelos programadores mais experientes.
11 Pacotes pr-compilados no formato DEB.
11 Ferramentas de gerenciamento de pacotes: APT e Aptitude.
a Red Hat, desde que no faam parte de notas de copyright, entre outras. O CentOS dis-
Acesse o endereo
http://www.debian.org
para saber mais
detalhes.
pr-compilados no formato DEB e ferramentas de gerenciamento de pacotes muito versteis, como o APT e o Aptitude.
Ubuntu
11 Desenvolvido com foco em segurana.
w
Para mais detalhes,
acesse http://www.
ubuntu.com (pgina em
ingls).
Mandriva Linux
11 Fuso da Mandrake com a Conectiva.
Introduo ao Linux
guraes podem ser realizadas tanto em modo grfico quanto em modo texto, e dispem
10
w
Para mais detalhes,
acesse o site http://
www.mandriva.com.
No site, h um link para
a comunidade de
desenvolvedores.
Slackware
11 Uma das mais populares distribuies Linux.
Exerccio de fixao 2 e
Conhecendo as distribuies Linux
Acesse o site das principais distribuies Linux, verifique o enfoque de cada distribuio
(uso em servidores, uso em estaes de trabalho, uso domstico etc.), verifique tambm se
as distribuies possuem suporte comercial, listas de discusso, suporte a mltiplos idiomas
e plataformas, e examine a forma de obt-las (via download, compra de CDs ou DVDs etc.).
11 Red Hat.
11 SlackWare.
11 CentOS.
11 Debian.
11 Mandriva.
11 Ubuntu.
w
Saiba mais sobre a
distribuio Slackware
no endereo http://
www.slackware.com.
com pacotes nativos da distribuio Red Hat Enterprise Linux. Vem com ambiente grfico
11
Hardwares suportados
Na URL http://www.linux-drivers.org podemos consultar a lista de hardwares compatveis
mantida pelas principais distribuies Linux. necessrio investigar a compatibilidade de
um hardware antes de compr-lo. Alguns distribuidores possuem uma classificao adicional, listando hardwares e softwares certificados, isto , que foram oficialmente testados
atravs de um programa de certificao que garante o funcionamento com o Linux.
Como encontrar hardware compatvel?
11 Acesse http://www.linux-drivers.org.
11 Linux Hardware Compatibility List & Drivers: ndice de lista de hardwares compatveis
mantida pelas principais distribuies Linux.
Classificaes:
11 Compatvel: suportado pelo kernel do Linux.
Introduo ao Linux
12
11 Driver em verso Alpha ou Beta: o kernel ainda no suporta, mas pode ser compilado
e adicionado como um mdulo. No h nenhuma garantia de funcionamento e no
recomendado em ambiente de produo.
11 No suportado: hardwares testados com funcionamento no confirmado.
CPU
Tipo e velocidade.
Memria RAM
Capacidade.
Teclado
Marca e modelo.
Mouse
Discos rgidos
Drive de CD/DVD
Marca e tipo.
Placa de rede
Placa de vdeo
Monitor
Marca e modelo.
Placa de som
Marca e modelo.
Dispositivos USB
Marca e modelo.
Dados coletados
Tabela 1.1
Lista de verificao
de hardware.
Dispositivo
deve-se ter um processador com velocidade igual ou maior de um Pentium III de 700 MHz.
13
Instalando o Linux
Neste item veremos como criar uma mquina virtual para instalarmos o Linux e o passo a
passo do programa de instalao.
Introduo ao Linux
14
Para iniciar a mquina virtual, basta selecion-la, como mostra a Figura 1.5, e clicar no boto
Iniciar. Na primeira vez que a mquina virtual iniciada, o assistente de primeira execuo
automaticamente executado. Esse assistente possibilita a seleo da mdia de instalao
do Sistema Operacional na mquina virtual. Nessa etapa deve ser selecionado o drive de
CD/DVD do hospedeiro. Aps a seleo do local onde est inserida a mdia de instalao,
exibida uma tela com os dados selecionados. Confirme se esto corretos e em seguida
clique no boto Iniciar.
Figura 1.5
Iniciando a
mquina virtual.
15
11 Seleo do idioma: essa tela mostra os idiomas disponveis para o processo de instalao. Escolha Portuguese (Brazilian) (Portugus (Brasil)).
11 Seleo do teclado: em seguida deve ser selecionado o modelo do teclado. Com base no
idioma selecionado antes, o instalador sugere o modelo mais apropriado, que neste caso
o Portugus Brasileiro (ABNT2).
11 Selecionando o tipo de dispositivo que ser utilizado na instalao: esta etapa
apresenta duas opes: Basic Storage Devices, que inclui discos IDE, SATA, SCSI etc. e
Specialized Storage Devices, que inclui dispositivos de armazenamento mais complexos
como Storage Area Networks (SANs). Selecione a opo Basic Storage Devices.
11 Inicializando o disco rgido: neste momento o instalador analisa o disco rgido e caso
no encontre nenhum sistema de arquivos, emitir um aviso solicitando a inicializao do
disco. Esse processo apagar todas as informaes existentes no disco. Se a instalao
estiver sendo feita em uma mquina virtual, no se preocupe, pois essa ao no apagar
nenhuma informao no hospedeiro. Clique no boto Sim, descarte qualquer dado.
11 Configurao da rede: nesta etapa podem ser utilizados dois tipos de configurao:
11 Configurao automtica via Dynamic Host Configuration Protocol (DHCP): essa
a opo padro, onde deve ser informado somente o nome da mquina. As outras
informaes necessrias para integrao rede e acesso internet, como endereo IP,
mscara de rede, gateway, servidores de DNS etc. so fornecidas automaticamente pelo
servidor DHCP da rede.
11 Configurao manual: para configurar a rede manualmente, preciso clicar no boto
Configure Network. Nesse caso, necessrio possuir um endereo IP, mscara de rede,
endereo IP do gateway e dos servidores de DNS para integrao rede e acesso internet.
11 Seleo do Fuso Horrio: nesta etapa definido o fuso horrio de acordo com a localizao fsica do sistema. Selecione a opo Amrica/So Paulo e deixe marcada a opo
O relgio do sistema utiliza o UTC.
11 Senha de Administrador (usurio root): o administrador do sistema possui plenos privilgios, podendo instalar, alterar ou remover qualquer programa, arquivo ou diretrio.
A escolha dessa senha deve ser criteriosa, pois caso algum a descubra, poder causar
srios danos ao sistema.
11 Tipo de particionamento: nesta etapa definido o tipo de particionamento que ser
utilizado. Selecione a opo Create Custom Layout.
11 Particionando o disco rgido: aps inicializar o disco, o programa de instalao abre o
gerenciador de parties. Caso o disco tenha sido inicializado anteriormente, ele ser
exibido sem nenhuma partio, mostrando todo o espao livre existente. Ao menos
duas parties so necessrias para o funcionamento do Linux: uma para o sistema e
outra para a rea de memria virtual (swap). As principais vantagens de se particionar
um disco so: segurana, devido ao isolamento de falhas, e independncia entre as
parties, evitando problemas no sistema caso a capacidade de alguma partio se
Introduo ao Linux
esgote. importante ressaltar que o dimensionamento das parties deve ser feito com
16
bastante critrio, para que no ocorram situaes onde o tamanho de uma partio se
esgote, enquanto outras parties ainda possuam bastante espao disponvel. Nesta
instalao sero criadas as seguintes parties:
11 /: essa partio a base de todo o sistema, sendo conhecida como partio raiz e simbolizada pela barra (/). Nesta instalao ser alocado 5 GB de espao em disco para a
partio raiz, que usar o tipo de sistema de arquivos ext4.
11 /boot: nessa partio que fica localizado o kernel do Linux. Essa partio precisa ser
primria, pois ser acessada pelo BIOS para fazer a carga do Sistema Operacional. Nesta
instalao ser alocado 100 MB de espao em disco para a partio /boot. Essa partio
utilizar o tipo de sistema de arquivos ext4.
11 /var: nessa partio que ficam arquivos de sistema, como arquivos de log, e-mail etc.
Nesta instalao ser alocado 3 GB de espao em disco para a partio /var. Essa partio utilizar o tipo de sistema de arquivos ext4.
11 /usr: nessa partio que os programas, manuais etc. so instalados. Nessa instalao
ser alocado 5 GB de espao em disco para a partio /usr. Essa partio utilizar o tipo
de sistema de arquivos ext4.
11 swap: essa partio utilizada como memria virtual e no possui ponto de montagem.
Seu tipo de sistema de arquivos swap e seu tamanho deve ser o dobro da quantidade
de memria RAM instalada no sistema. Nesta instalao sero alocados 2 GB de espao
em disco para a partio swap.
A Figura 1.6 mostra a tela onde selecionado o tipo de partio que ser criado. Nesta instalao sero utilizadas somente parties padro.
Figura 1.6
Escolha do tipo
de partio no
disco rgido.
Outras parties podem ser criadas dependendo do tipo de aplicao a que o servidor se
no esquema citado anteriormente em determinados casos.
importante ressaltar que o BIOS suporta apenas quatro parties primrias. Sendo assim,
se mais parties forem requeridas, trs parties devero ser criadas como primrias e a
quarta dever ser do tipo estendida, que pode ser subdividida em at 255 parties lgicas.
Uma partio estendida no pode conter dados, mas somente parties lgicas. Uma partio
lgica, por sua vez, no pode ser utilizada para iniciar a carga de um Sistema Operacional.
A Figura 1.7 mostra a tela de criao de parties, com suas opes. O campo Ponto de
montagem define o local da rvore de diretrios onde a partio ser montada.
destina, assim como pode ser desnecessria a criao de algumas das parties utilizadas
17
O campo Tipo de sistema de arquivos define o tipo de sistema de arquivos que ser utilizado para formatar a partio. O campo Tamanho (MB) define o tamanho da partio em
megabytes. Alm desses campos bsicos, temos a opo de definir a partio como primria
e optar pela criptografia dos dados que sero armazenados.
Figura 1.7
Opes para
a criao de
parties.
11 Gerenciador de boot: nessa etapa definido o local do disco onde ser instalado o
gerenciador de boot (boot loader) ou mdulo inicializador do sistema. Os principais
gerenciadores de boot do Linux so o Grub e o Lilo. O CentOS utiliza por padro o Grub,
que pode ser instalado no MBR ou no setor de boot da partio ativa. Utilizaremos a
configurao sugerida pelo programa de instalao, que instala o Grub no MBR. Para
isso, basta deixar a opo Install boot loader on /dev/sda e clicar no boto Avanar.
Nessa tela tambm possvel adicionarmos outros sistemas operacionais que estejam
instalados no disco para serem carregados pelo Grub.
11 Pacotes de aplicaes: nessa etapa definida uma categoria de instalao. O instalador
pr-agrupa conjuntos de aplicaes classificando-as nas seguintes categorias: Desktop,
Minimal Desktop, Minimal, Basic Server, Database Server, Web Server, Virtual Host e
Software Development Workstation. Selecione a opo Desktop. Alm disso, tambm
so definidos os repositrios que sero utilizados para fazer o download dos pacotes.
Nesse caso no ser necessrio incluir nenhum repositrio extra.
11 Instalao dos pacotes: aps a formatao das parties, o instalador inicia o processo
de instalao dos pacotes, processo que pode demorar cerca de 15 a 30 minutos, dependendo da performance do computador utilizado e das aplicaes que sero instaladas.
Fim da instalao: terminada a instalao, o programa de instalao ejetar o DVD e dar
ao aluno os parabns por ter finalizado a instalao. preciso retirar o DVD e clicar no
Introduo ao Linux
boto Reinicializar.
18
Roteiro de Atividades 1
Atividade 1.1 Conhecendo as distribuies Linux
1. Qual das distribuies Linux utiliza o gerenciador de pacotes RPM ou YUM?
2. Qual das distribuies Linux vem com o gerenciador de janelas fvwm?
3. Qual das distribuies Linux possui pacotes de software pr-compilados no formato DEB?
4. Quais so as ferramentas de gerenciamento de pacotes utilizadas no Debian e no Ubuntu?
5. Cite dois sistemas baseados em Red Hat.
19
no cone de um CD.
4. Escolha a opo Selecionar uma arquivo de CD/DVD virtual....
5. Escolha a imagem do CentOS no desktop e inicie a mquina virtual.
6. Execute o programa de instalao do CentOS.
7. Teste de integridade da mdia de instalao Skip.
8. Seleo do idioma Portuguese (Brazilian).
9. Seleo do modelo do teclado Portugus Brasileiro (ABNT2).
10. Seleo do tipo de dispositivo de armazenamento Basic Storage Devices.
11. Configurao da rede configurao automtica (padro); inserir somente o nome
da mquina.
12. Seleo do fuso horrio selecionar o fuso Amrica/So Paulo e deixar marcada a
Introduo ao Linux
Inicialize o sistema pela primeira vez e faa login e logout nele utilizando a conta criada
20
2
objetivos
Utilizao do sistema
Conhecer as funcionalidades da interface grfica X-Window e dos ambientes de
desktop GNOME e KDE.
conceitos
Configuraes iniciais
Aps o trmino bem-sucedido da instalao do Linux e a reinicializao do sistema a partir
do disco rgido, o Sistema Operacional ser carregado pela primeira vez em sua mquina.
A primeira inicializao disponibiliza um servio de configurao do sistema, em que so
mostradas diversas janelas de configurao que sero descritas a seguir.
Informaes da licena
Nesta etapa so informadas as regras de licenciamento. preciso concordar com o acordo
Saiba mais
O NTP permite manter
o relgio de um computador com a hora
sempre certa e com
grande exatido. Originalmente idealizado
por David L. Mills, da
Universidade do Delaware, o NTP foi utilizado
pela primeira vez antes
de 1985, sendo ainda
hoje muito popular e
um dos mais antigos
protocolos da internet.
21
Ambiente grfico
Servidor X (X Server):
X tambm pode ser iniciado manualmente pelo usurio atravs dos comandos xinit ou startx.
Em caso de mau funcionamento, podemos finalizar o Servidor X pressionando simultaneamente as teclas Crtl+Alt+Backspace, porm, isso no recomendvel durante a operao
normal do sistema, pois o trmino abrupto de aplicaes pode causar perda de dados.
A melhor forma de finalizar o Servidor X utilizando a opo de sada ou logout existente no
gerenciador de janelas, onde possvel escolher entre desligar o computador, reinici-lo ou
simplesmente fechar a sesso de trabalho.
22
Configurando o Servidor X
O Servidor X.Org suporta vrios mecanismos para suprir e obter configuraes e parmetros dinmicos do sistema. A ordem de precedncia dos mecanismos :
1. Opes passadas atravs da linha de comando.
2. Variveis de ambiente.
3. Opes definidas nos arquivos de configurao xorg.conf;.
4. Autodeteco.
5. Valores defaults do sistema.
Arquivo xorg.conf
O X.Org no possui um utilitrio de configurao. Em ves disso, ele mesmo tenta gerar
uma configurao vlida com base em uma srie de autodeteces. possvel executar o
comando XOrg configure para gerar um arquivo de configurao. O arquivo de configurao do X.Org, o xorg.conf, fica localizado no diretrio /etc/X11 e dividido em sesses, que
so descritas abaixo.
11 Files: possui os paths completos para arquivos que o servidor X necessita para funcionar,
como tipos de fontes.
11 ServerFlags: possui opes de configurao globais do servidor X.
11 Module: responsvel pelo carregamento dinmico de mdulos do servidor X.
11 InputDevice: possui configuraes de dispositivos de entrada de dados, como teclados e
mouses. Deve existir um bloco InputDevice para cada dispositivo de entrada.
11 Device: possui configuraes de dispositivos de vdeo. Deve existir pelo menos um dispositivo de vdeo instalado.
11 Monitor: possui configuraes de monitores de vdeo. Deve existir pelo menos um
monitor de vdeo instalado.
11 Modes: opcional e possui configuraes sobre modos de tela disponveis para o(s)
monitor(es).
11 Screen: possui configuraes de dispositivos e monitores de vdeo.
11 ServerLayout: agrega as sesses Screen e InputDevice.
11 DRI: opcional e possui informaes sobre a infraestrutura de renderizao direta (DRI).
11 Vendor: possui configuraes personalizadas para cada fabricante.
Section Files
FontPath
/usr/X11/lib/X11/fonts/75dpi/:unscaled
FontPath
/usr/X11/lib/X11/fonts/100dpi/:unscaled
FontPath
/usr/X11/lib/X11/fonts/freefont/
FontPath
/usr/X11/lib/X11/fonts/latin2/
FontPath
/usr/X11/lib/X11/fonts/local/
Sesso Files
23
FontPath
/usr/X11/lib/X11/fonts/sharefont/
FontPath
/usr/X11/lib/X11/fonts/TTF/
EndSection
Sesso Module
Section Module
Load
i2c
Load
bitmap
Load
dri
Load
extmod
Load
freetype
EndSection
Sesso InputDevice
Section InputDevice
Identifier
Generic Keyboard
Driver
kbd
Option
CoreKeyboard
Option
XkbRules
xorg
Option
XkbModel
abnt2
Option
XkbLayout
Option
XkbVariant
br
abnt2
EndSection
Section InputDevice
Identifier
Configured Mouse
Driver
mouse
Option
CorePointer
Option
Device
Option
Protocol
Introduo ao Linux
Option
24
EndSection
/dev/input/mice
auto
ZAxisMapping 4 5 6 7
Sesso Device
Section Device
Identifier
Driver
vesa
BusID
PCI:1:0:0
EndSection
Sesso Monitor
Section Monitor
Identifier
Monitor Genrico
Option
DPMS
HorizSync
28-64
VertRefresh
43-60
EndSection
Sesso ServerLayout
Section ServerLayout
Identifier
Default Layout
Screen
Default Screen
InputDevice
Generic Keyboard
InputDevice
Configured Mouse
EndSection
Sesso Screen
Section Screen
Identifier
Default Screen
Device
DefaultDepth
Monitor Genrico
24
SubSection Display
Depth
Modes
1024768
EndSubSection
SubSection Display
Depth
Monitor
8
25
Modes
1024768
EndSubSection
SubSection Display
Depth
15
Modes
1024768
EndSubSection
SubSection Display
Depth
16
Modes
1024768
EndSubSection
SubSection Display
Depth
24
Modes
1024768
EndSubSection
EndSection
CentOS
Introduo ao Linux
GNOME desktop
26
Aps realizar o login no sistema, ser exibida a janela principal do gerenciador GNU Network
Object Model Environment (GNOME), que o gerenciador padro do CentOS. O GNOME
desktop composto da tela inteira, incluindo os cones e painis. A rea vazia da tela
chamada apenas de desktop ou rea de trabalho.
Distribuio Linux
de classe Enterprise
derivada de cdigos
fonte gratuitamente
distribudos pela
Red Hat Enterprise
Linux e mantida pelo
CentOS Project.
Figura 2.2
Janela principal
do gerenciador
GNOME.
Menu Aplicativos
Permite o acesso a diversos programas de forma rpida. Esse menu contm diversas categorias:
11 Acessrios: aplicaes como calculadora, captura de tela, dicionrio, entre outras.
27
Menu Locais
Permite o acesso a locais pr-definidos e a alguns outros recursos do sistema.
11 Pasta pessoal: mostra os arquivos e pastas do diretrio home do usurio, usando o
gerenciador de arquivos Nautilus.
11 Mostrar rea de trabalho: exibe o contedo da rea de trabalho atravs do Nautilus.
11 Documentos: mostra a pasta documentos, localizada no diretrio home do usurio.
11 Msica: exibe a pasta msica, localizada no diretrio home do usurio.
11 Imagens: mostra a pasta imagens, localizada no diretrio home do usurio.
11 Vdeos: exibe a pasta vdeos, localizada no diretrio home do usurio.
11 Downloads: mostra a pasta downloads, localizada no diretrio home do usurio.
11 Computador: exibe os dispositivos de armazenamento do computador.
11 Rede: mostra os servidores disponveis na rede.
11 Conectar ao servidor: conecta a um servidor remoto, utilizando protocolos como FTP,
SSH, HTTP, entre outros.
11 Pesquisar por arquivos: procura por pastas e arquivos no computador.
11 Documentos recentes: exibe uma lista com os documentos abertos recentemente.
Menu Sistema
Permite o acesso a ferramentas para administrao e configurao do sistema e do
ambiente computacional.
11 Preferncias: acesso a diversos itens de configurao, como vdeo, teclado, gerenciamento de energia, entre outros.
11 Administrao: acesso a diversas ferramentas de administrao do sistema, como configurao de regras de firewall, atualizao de software, gerenciamento de servios, entre outros.
11 Ajuda: abre o aplicativo de ajuda do GNOME.
11 Sobre este computador: acesso a diversas informaes sobre o computador, como processos em execuo, monitoramento de recursos de hardware, entre outros.
11 Bloquear tela: bloqueia a sesso de trabalho atual. Para desbloque-la, o usurio deve
informar sua senha.
11 Encerrar sesso: finaliza a sesso de trabalho atual.
11 Desligar: desligar ou reiniciar o computador ou, ainda, entrar no modo de hibernao.
Aplicaes
Emulador de Terminal: xterm
Introduo ao Linux
28
utilizando comandos sem sair do ambiente grfico. A Figura 2.4 mostra a tela do terminal do
xterm, que o emulador de terminal padro do GNOME.
Figura 2.3
Terminal do sistema
GNOME.
Navegador de arquivos
O navegador de arquivos possui um painel lateral e barras de ferramentas, localizao e
status, que podem ser habilitados ou desabilitados atravs do menu Ver. Possui tambm
trs modos de exibio: cones, lista e compacta. Com o navegador de arquivos possvel
apagar, mover, copiar ou renomear arquivos selecionados, clicando e arrastando ou escolhendo uma opo no menu. A Figura 2.4 mostra a tela do navegador de arquivos do GNOME.
Figura 2.4
Navegador de
arquivos do
GNOME.
Configurando o GNOME
Para adicionar um cone no painel do GNOME, basta clicar com o boto direito do mouse
sobre o painel e selecionar a opo Adicionar ao painel. A janela da Figura 2.5 apresenta os
Figura 2.5
Adicionando um
cone ao painel.
29
Para configurar a aparncia do desktop e das aplicaes, basta clicar com o boto direito do
mouse sobre o desktop e selecionar a opo Alterar plano de fundo. A janela da Figura 2.6
ento exibida, possibilitando a alterao do tema atual, do plano de fundo e das fontes
utilizadas no desktop e nas aplicaes.
Figura 2.6
Preferncias de
aparncia.
KDE desktop
Como vimos anteriormente, antes de fazer o login, podemos escolher o gerenciador de
desktop que vamos utilizar. Os gerenciadores GNOME e KDE so bastante semelhantes,
tendo em vista que ambos se propem a realizar as mesmas funes e so manipulados de
forma bastante semelhante. Para utilizar o KDE, o usurio deve selecion-lo na tela de login.
O KDE desktop a tela inteira, incluindo os cones e painis. O espao na tela onde no h
cones ou painis chamado de desktop ou rea de trabalho.
O KDE possui facilidades de configurao semelhantes ao GNOME: podemos adicionar e
remover cones do painel do KDE da mesma forma
, novos painis podem ser criados e arrastados para qualquer canto da tela e novos cones podem ser adicionados da mesma forma
como no painel principal.
Introduo ao Linux
30
Figura 2.7
KDE Desktop e
suas principais
informaes.
Lanador de aplicaes
O lanador de aplicaes facilita o acesso s aplicaes instaladas, arquivos do usurio e favo-
Figura 2.8
Lanador
de aplicaes.
ritos. A Figura 2.8 mostra o lanador de aplicaes e suas abas, que sero descritas a seguir.
31
Favoritos
A aba Favoritos contm as aplicaes e locais os favoritos do usurio. As aplicaes mais
utilizadas e os locais mais acessados passam a fazer parte automaticamente dos favoritos.
Para incluir uma aplicao aos favoritos, basta clicar sobre seu cone com o boto direito do
mouse e clicar na opo Adicionar aos favoritos. Por padro, a lista de favoritos contm o
navegador
Konqueror
, um atalho para as ferramentas de configurao do sistema e o gerenciador de arquivos dolphin.
Aplicativos
A aba Aplicativos possui diversas categorias de aplicaes que sero descritas a seguir:
11 Administrao: ferramentas de administrao do Sistema Operacional. Entre essas
ferramentas, podemos destacar: configurao do firewall, gerenciamento de servios,
gerenciamento de contas de usurios, entre outras.
11 Configuraes: diversos utilitrios de configurao, como: configurao de impressora,
teclado, mouse, rede, entre outros.
11 Desenvolvimento: aplicaes para desenvolvimento de software.
11 Escritrio: um conjunto de aplicaes para o escritrio, como processador de texto,
planilha eletrnica, apresentaes de slides, entre outras.
11 Grficos: contm editores e visualizadores de imagens.
11 Internet: contm navegadores, clientes de e-mail, programas de bate-papo, entre outros.
11 Jogos: contm possui jogos diversos.
11 Multimdia: possui reprodutores de arquivos de udio e vdeo.
11 Sistema: contm diversos utilitrios de configurao, como: ferramentas de configurao
de disco, gerenciador de arquivos, visualizadores de arquivos de log, emuladores de
terminal, entre outros.
11 Utilitrios: contm utilitrios, como alarmes, calculadora, editores de texto, entre outros.
11 Ajuda: exibe o aplicativo de ajuda do KDE.
11 Arquivos pessoais: abre o diretrio home do usurio no gerenciador de arquivos dolphin.
11 Procurar arquivos/pastas: buscas por arquivos e diretrios do sistema.
Computador
A aba Computador possibilita ao acesso s mdias de armazenamento instaladas no computador, locais e configuraes do sistema. A seguir, so descritas as opes presentes na
aba Computador.
11 Configuraes do sistema: ferramentas de configurao do sistema divididas em categorias, como rede e conectividade, administrao do computador, entre outras.
Introduo ao Linux
Usados recentemente
A aba Usados recentemente exibe as aplicaes e os documentos que foram abertos
recentemente pelo usurio.
Sair
A aba Sair possui opes para finalizao da sesso de trabalho e do computador.
11 Sair: finaliza a sesso de trabalho atual.
11 Bloquear: bloqueia a sesso. Para desbloque-la, o usurio deve informar sua senha.
11 Trocar usurio: mantm a sesso de trabalho aberta, mas permite que outro usurio
faa login no sistema.
11 Suspender para o disco: pausa o computador sem encerrar a sesso de trabalho atual.
11 Reiniciar: reinicia o computador.
11 Desligar: desliga o computador.
Aplicaes do KDE
Konqueror
O Konqueror possui funcionalidades de navegador web e gerenciador de arquivos. A Figura 2.9
mostra a funcionalidade de gerenciador de arquivos. Pode-se escolher entre vrias formas
de exibio de acordo com a preferncia do usurio. Os modos de exibio disponveis so:
cones, detalhes, colunas, emulador de terminal e visualizar o tamanho do arquivo. Pode-se
apagar, mover, copiar ou renomear arquivos e diretrios, selecionando-os, clicando e arras-
Figura 2.9
Konqueror: navegador web e gerenciador de arquivos.
33
Konsole
Assim como o GNOME, o KDE tambm possui um simulador de terminal de linha de
comando, que o Konsole. Ele executa funes do sistema utilizando comandos sem sair do
ambiente grfico. A Figura 2.10 mostra a tela do Konsole.
Configurando o KDE
Para configurar a aparncia do desktop, basta clicar com o boto direito do mouse sobre o
desktop e selecionar a opo Configuraes da rea de trabalho. A janela da Figura 2.11
Figura 2.10
Konsole: simulador
de terminal de linha
de comando.
Figura 2.11
Configurando a aparncia do desktop.
Introduo ao Linux
34
Figura 2.12
Alterando configuraes do sistema.
Documentao
A seguir so disponibilizadas referncias sobre documentao do GNOME e do KDE.
Documentao on-line:
GNOME: http://library.gnome.org
KDE: http://www.kde.org/documentation
Para documentao local, utilize o comando atravs de um Xterm:
35
36
Introduo ao Linux
Roteiro de Atividades 2
Atividade 2.1 Conhecendo o ambiente grfico
1. Identifique o ambiente grfico que est sendo utilizado.
2. Altere o plano de fundo.
3. Adicione um widget rea de trabalho.
4. Altere o idioma.
5. Adicione o xterm ao painel.
6. Altere as configuraes de gerenciamento de energia, de modo que o computador
4. Apagar um arquivo.
37
38
Introduo ao Linux
3
Entender os conceitos de sistemas de arquivos hierrquicos e as caractersticas do
sistema de arquivos do Linux; conhecer os tipos de arquivos, suas similaridades,
diferenas, atributos e facilidades de segurana.
conceitos
objetivos
Organizao do Linux
39
bin
boot
dev
etc
home
lib
mnt
opt
proc
root
sbin
Exerccio de fixao 1 e
Conhecendo o sistema de arquivos
Desenhe a rvore do sistema de arquivos at o terceiro nvel hierrquico. No terceiro nvel,
basta listar no mximo trs diretrios, se houver. Considerar o ponto de partida, o diretrio
raiz ( / ), como o primeiro nvel hierrquico.
Exerccio de fixao 2 e
Estrutura de diretrios
O objetivo deste exerccio propor um melhor entendimento da estrutura bsica de diret-
Introduo ao Linux
40
1. - /
2. - /bin
3. - /boot
4. - /dev
5. - /etc
( ) Bibliotecas dinmicas.
6. - /home
7. - /lib
8. - /mnt
tmp
usr
var
Figura 3.1
Estrutura hierrquica de diretrios
do Linux.
9. - /sbin
10. - /tmp
11. - /usr
12. - /usr/Bin
13. - /usr/share/doc
14. - /var
Inode
O inode identificado por um nmero nico, que atribudo a cada arquivo do sistema.
Assim, o arquivo de usurios e senhas do sistema pode ser identificado, por exemplo,
pelo nmero 2217, enquanto um arquivo-texto de um usurio pode ser identificado pelo
nmero 456. O Linux organiza os discos rgidos em sequncia de blocos. O contedo de um
arquivo pode ser armazenado em um ou mais blocos, que podem estar espalhados pelo
disco e no estarem dispostos de forma sequencial. O inode uma estrutura de dados,
com informaes que permitem encontrar os dez primeiros blocos desse arquivo. Alm da
lista de locais dos dez primeiros blocos, o inode guarda outras informaes importantes a
respeito de um arquivo, como: tipo, permisses associadas, proprietrio, grupo, tamanho,
ltima vez em que foi modificado etc. Quando o arquivo aberto, o inode fica disponvel
na memria principal, permitindo, com isso, que os primeiros dez blocos de um arquivo
possam ser encontrados rapidamente, pois o acesso memria bem mais rpido que ao
disco. Assim, o inode serve tambm para aumentar a eficincia de acesso ao contedo de
arquivos pequenos no Linux. Quando um arquivo maior do que dez blocos, o Linux passa
a utilizar tcnicas de acesso indireto, onde as posies do dcimo-primeiro bloco em diante
so armazenadas no mais no inode, mas em outro bloco no disco, chamado de bloco
indireto. As posies dos blocos indiretos ficam armazenadas no inode e, para acessar um
bloco indiretamente, passa a ser necessrio tanto um acesso ao inode quanto um acesso ao
bloco indireto no disco, o que obviamente aumenta o tempo de acesso ao contedo e reduz
a eficincia de acesso a arquivos grandes (maiores que 10 blocos). Mesmo o acesso indireto
limitado para arquivos muito extensos. Assim, pode ser utilizado o mtodo indireto duplo,
onde um bloco chamado de bloco indireto duplo contm as posies de outros blocos indiretos e estes, por sua vez, contm as localizaes dos blocos do arquivo. Os blocos indiretos
duplos tambm so armazenados no disco e tm suas posies guardadas no inode.
GNOME
41
Para permitir tamanhos ilimitados de arquivos, esse processo pode ser expandido
atravs de uma hierarquia de blocos indiretos, com blocos indiretos nicos, duplos,
triplos e, dessa forma, aumentar sem limitaes o contedo dos arquivos.
Tipos de arquivos
No Linux todo objeto que manipulado pelo Sistema Operacional representado por um
arquivo, incluindo diretrios, dispositivos de hardware e conexes de rede. Para identificar
o tipo do arquivo, o Sistema Operacional consulta as informaes contidas em seu inode.
A seguir so apresentados os tipos de arquivos existentes no Linux.
l
Saiba mais
Arquivo regular
A estrutura bsica que o Linux utiliza para armazenar informaes o arquivo. Nos arquivos
so armazenados todos os tipos de dados, desde textos at instrues em cdigo de
mquina. Es
s
a a estrutura utilizada para armazenar todos os tipos de informaes necessrias para a operao do sistema. A identificao dos arquivos por nmeros utilizada
apenas internamente pelo sistema
,
j que, na prtica, alm de tediosa, a identificao numrica perde o sentido. Dessa forma, o sistema permite a identificao dos arquivos atravs de
nomes. O nome do arquivo pode ter qualquer sequncia de at 256 caracteres, mais do que
suficiente para descrever o contedo do arquivo, dando um sentido identificao. Para um
sistema com milhares de arquivos, pouco provvel que no sejam escolhidos nomes que j
estejam sendo utilizados por outros arquivos.
Caracteres curinga
Tm a funo de substituir outros caracteres, pois ao aparecerem numa determinada
posio, indicam que os nomes de arquivos que atendem condio solicitada podem ter
quaisquer caracteres naquela posio. O caractere curinga * (sem aspas) pode substituir um nome ou um conjunto de caracteres numa determinada posio de um nome de
arquivo. Por exemplo: P* significa que todos os nomes de arquivos que comeam com
P, seguidos de quaisquer conjuntos de caracteres at o tamanho mximo de 256 caracteres, atendem condio solicitada. O caractere curinga ? (sem aspas) pode substituir
uma letra, em determinada posio do nome, por qualquer caractere. Por exemplo: P??A
significa que todos os nomes de arquivos com quatro caracteres que comeam por P e
terminam com A atendem condio solicitada.
Diretrio
11 Conjunto de arquivos.
42
Diretrio
Disco rgido
Vendas
8014
Compras
0412
Salrios
5467
Relatrios
8015
Figura 3.2
Localizao
de arquivos no
disco rgido.
Arquivo
# 0412
Arquivo
# 8014
Arquivo
# 8015
Arquivo
# 5467
O Linux
permite organizar arquivos agrupando-os em diretrios. Um diretrio desempenha a mesma funo de uma gaveta de armrio para arquivamento, agrupando todos
os arquivos num lugar comum onde possam ser facilmente encontrados. Assim, o usurio
ganha flexibilidade para agrupar arquivos de forma lgica. Por exemplo, ao criar arquivos
com os resultados das vendas das filiais de uma empresa, ele pode agrupar esses arquivos
em diretrios com o mesmo nome do local da filial. Os diretrios tambm podem ter nomes
compostos por at 256 caracteres. recomendado tambm que o nome do diretrio faa
referncia ao seu contedo. Cada usurio do sistema tem seu diretrio pessoal, que geralmente possui o mesmo nome do usurio.
Arquivos de dispositivos
11 Os dispositivos no Linux so referenciados por arquivos.
. Os dispositivos so tratados como arquivos especiais e manipulados como arquivos comuns do sistema. Os arquivos de dispositivos podem ser de dois tipos:
11 Arquivos de dispositivos orientados a caractere: realizam suas transferncias de
dados byte a byte e de modo sequencial. As portas seriais so exemplos de dispositivos
orientados a caractere. Esse tipo de arquivo representado pela letra c.
11 Arquivos de dispositivos orientados a blocos de caracteres: realizam suas transferncias de dados em blocos de tamanho que pode variar entre 512 bytes e 32 Kbytes, sendo
o acesso feito de modo aleatrio. Os discos rgidos e as unidades de fita so exemplos de
Alguns dispositivos s podem ser acessados no modo caractere, como terminais e impressoras, pois no tm recursos para o acesso bloco a bloco. Outros dispositivos permitem o
acesso bloco a bloco, como discos e fitas, mas podem, tambm, ser acessados caractere a
caractere, dependendo da operao efetuada. Por exemplo: na formatao de um disco,
os blocos ainda no existem, logo, o acesso inicial a esse dispositivo deve ser orientado a
caractere. Existem outras situaes em que os dispositivos orientados a blocos podem ser
acessados caractere a caractere como, por exemplo, para a execuo de cpias de segurana; entretanto, o contrrio no ocorre, ou seja, os dispositivos orientados a caractere no
podem ser acessados pelo modo bloco a bloco. Por conveno, todos os dispositivos de E/S
no Linux recebem nomes individuais de arquivo e so agrupados no diretrio /dev, que a
Disco
Utilitrios
Unix
Impressoras
Sistema de
arquivos
Unix
Programas
do usurio
Fitas
Terminais
Linhas de
comunicao
Figura 3.3
Arquivos de
dispositivos.
# cp vendas relatrios
O mesmo comando pode ser utilizado para copiar o arquivo para a impressora:
# cp vendas /dev/lp
Introduo ao Linux
letra b.
44
Named pipes
Permitem que dois processos possam trocar informaes por intermdio de um
canal bidirecional.
Pipes convencionais so os dados que entram em um extremo do canal saem no outro
extremo, definindo um sentido de comunicao.
O Linux prov uma funcionalidade de comunicao entre processos denominada named pipe.
O named pipe permite a comunicao bidirecional entre dois processos executados no mesmo
Sistema Operacional. Um named pipe referenciado pelos processos que conecta atravs de
seu nome e faz parte do sistema de arquivos. Quando criamos os named
pipes
, eles so associados a diretrios e a permissionamentos de acesso, assim como os arquivos regulares.
Os named pipes podem ser criados atravs dos comandos mkfifo ou mknod e removidos com o comando rm ou por meio da chamada de sistema unlink.
Alm do named pipe existe tambm o pipe convencional, representado pelo caractere
|, que utilizado em comunicaes unidirecionais, conectando a sada de um processo
entrada de outro. Os pipes funcionam da mesma forma que os descritores de arquivos
padro, apenas lendo a informao de entrada e escrevendo-a na sada, sem a preocupao
com o modo como ela ser tratada pelos processos envolvidos na comunicao. A diferena
entre o named pipe e o pipe convencional que, nesse ltimo, os processos conectados
devem possuir uma relao de pai para filho ou serem irmos. Alm disso, o named pipe
precisa ser explicitamente encerrado aps seu uso, ao contrrio do pipe convencional, que
encerrado automaticamente aps a execuo dos processos que ele conecta.
Entrada
Processo
envia dados
Sada
Canalizao
Processo
recebe dados
Exerccio de fixao 3 e
Links
Pesquise a diferena entre HardLink e SoftLink.
Figura 3.4
Comunicao entre
processos utilizando pipes.
45
Sockets
Mecanismos para troca de dados entre processos.
Os processos podem estar sendo executados no mesmo computador ou em computadores diferentes conectados atravs da rede. Uma vez estabelecida a conexo, os dados
podem trafegar nos dois sentidos at uma das pontas encerrar a conexo.
Os sockets so utilizados para a comunicao bidirecional entre dois processos, que podem
ser executados no mesmo computador ou em computadores diferentes. Os principais tipos
de sockets utilizados no Linux so: Unix domain socket ou Inter Process Communication
socket (IPC socket), que utilizado para a comunicao entre processos executados em um
mesmo sistema operacional, e o socket de rede, que utilizado para a comunicao entre
processos executados em computadores diferentes, interligados por uma rede. Existem
casos em que os sockets de rede so criados para comunicao entre processos que so
executados no mesmo computador.
Introduo ao Linux
46
drwxr-xr-x
-rw-r--r--
5 root
1 root
root
root
GNUstep
Xrootenv.0
Nome do arquivo
Tipo do
arquivo
Dono do
arquivo
(owner)
Nmero
de links
do arquivo
Grupo de
usurios
(group)
Data da ltima
modicao
Tamanho
em bytes
Permisses de arquivos
O Linux um sistema projetado para ser multiusurio. Para suportar operaes em
ambientes com mltiplos usurios, o Linux dispe de mecanismos que restringem o acesso
a arquivos e diretrios, baseados na identificao do usurio que solicita o acesso, e ao
modo de acesso atribudo a cada arquivo e diretrio.
Todo arquivo e diretrio associado a um usurio que chamado de dono (owner).
O usurio que inicialmente cria o arquivo o dono do arquivo. Cada usurio pode pertencer a um ou mais conjuntos de usurios que so chamados de grupo. Cada arquivo
ou diretrio associado a um grupo, que atribudo ao arquivo quando este criado.
Da mesma forma, o usurio que inicialmente cria o arquivo ou diretrio determina o
grupo que pode acess-lo. Esse grupo associado ao novo arquivo ou diretrio o grupo
primrio do usurio que os criou. Tanto o dono como o grupo de um arquivo podem ser
alterados. As permisses de acesso, conhecidas como modos de acesso, determinam
Figura 3.5
Sada do comando
ls com a opo l.
Permisses
de acesso
(access modes)
as operaes que um usurio pode realizar em um arquivo. A seguir esto os trs tipos
bsicos de permisso que podem ser aplicadas a um arquivo ou diretrio.
47
Introduo ao Linux
48
Modo octal
Modo binrio
Tipo de permisso
000
Sem permisso.
001
Permisso de execuo.
010
Permisso de escrita.
011
100
Permisso de leitura.
101
Tabela 3.1
Sintaxes do
comando chmod.
Modo octal
Modo binrio
Tipo de permisso
110
111
O exemplo a seguir mostra o comando chmod com a sintaxe que utiliza a base octal:
Correspondentes binrios:
11 Cada dgito binrio corresponde a uma letra: r, w e x:
0: indica ausncia da permisso.
1: indica concesso da permisso.
11 So trs nmeros octais, correspondentes a trs dgitos binrios (0=000 a 7=111). Um
nmero para o dono, um para o grupo e um para outros. Exemplo:
100
4
Caso haja uma tentativa de um usurio acessar um arquivo para realizar determinada ao,
mesmo ele pertencendo ao grupo ou sendo dono do arquivo, se ele no tiver permisso
para realizar a ao pretendida, receber a mensagem access denied (acesso negado).
Tabela 3.2
Permisses
de acesso para
arquivos
e diretrios.
Modo
Executar o arquivo.
Permisses:
11 Dono (owner): proprietrio do arquivo.
11 Grupo (group): grupo primrio do dono do arquivo.
11 Outros (others): outros usurios que no so donos e que no fazem parte do grupo.
49
Exerccio de fixao 4 e
Atributos e permisses de arquivos
Que permisso est sendo concedida ao dono, usurio e grupo em relao aos arquivos abaixo?
11 Chmod 750 atividade1
11 Chmod 000 atividade2
11 Chmod ug-x atividade3
11 Chmod o+x atividade4
11 Chmod 680 atividade5
Especifique os tipos de arquivos seguintes, suas permisses e sintaxes no padro octal:
11 brwxr-x-wx
root
aluno
arquivo1
11 c---rw---x
aluno
aluno
arquivo1
11 -------rwx
root
aluno
arquivo1
11 lrwxrwxrwx
11 drw-rw----
root
root
arquivo1
11 c---------
root
root
arquivo1
11 srwx----wx
root
root
arquivo1
11 pr-xr-xr-x
root
aluno
arquivo1
Introduo ao Linux
11 O comando ls pode ter sua listagem redirecionada da sada padro (o monitor) para o
50
# ls > listadearquivos
Toda vez que executamos um comando, digitamos as opes e parmetros por intermdio
do teclado e ento recebemos sua resposta no monitor. O Linux possui um dispositivo
padro de entrada e outro de sada, que so respectivamente o teclado e o monitor.
Podemos redirecionar, ou seja, alterar a entrada ou a sada padro dos comandos utilizando os sinais < e >, respectivamente. Essa caracterstica do Linux conhecida como
redirecionamento de entrada e sada. Dessa forma, os dados provenientes da entrada
padro (o teclado) podem ser direcionados para outro tipo de sada, como um arquivo
existente ou um novo arquivo que ser criado. Podemos, por exemplo, criar um arquivo
que contenha a listagem de todos os arquivos do diretrio home do usurio. Para isso,
devemos executar o seguinte comando no diretrio home desse usurio:
# ls > listadearquivos
O comando ls lista todos os arquivos do diretrio, redirecionando essa listagem da sada
padro (o monitor) para o novo arquivo listadearquivos, criando o arquivo no diretrio home
do usurio. Na verdade, podemos criar arquivos utilizando diversos comandos, simplesmente
redirecionando a sada padro para um novo arquivo. Podemos utilizar o comando cat para
concatenar dois arquivos existentes e gerar um novo arquivo, como no exemplo:
, com o contedo do
arquivo1 seguido
um novo arquivo:
um arquivo existente. Caso esse arquivo no exista, ser criado na data e hora especifi-
51
Exerccio de fixao 5 e
Criando arquivos
1. Qual a diferena entre os sinais > e >> utilizados no redirecionamento?
2. Qual a diferena entre os sinais < e >?
3. Qual a diferena entre os comandos touch e cat na criao de arquivos?
Criando diretrios
11 Quando o usurio faz login no sistema, ele automaticamente direcionado ao seu
diretrio home, onde possui permisso para criar seus arquivos e diretrios.
11 A separao dos arquivos em seus diretrios home facilita aos usurios encontrarem
os seus arquivos e mant-los protegidos de outros usurios.
Para a criao de diretrios, utilizado o comando mkdir.
Quando o usurio faz login em um sistema Linux, ele automaticamente direcionado para
o seu diretrio home, onde tem permisso para criar arquivos e diretrios. Essa separao
dos arquivos de cada usurio em seus diretrios pessoais facilita o usurio a encontrar os
seus arquivos e mant-los reservados, protegidos dos demais usurios e de outros grupos
de usurios, ao qual ele no pertence. Para a criao de diretrios, utilizado o comando
mkdir, cuja sintaxe :
# mkdir documentos
# cd documentos (direciona para o novo diretrio criado)
# mkdir planilhas
A segunda forma feita utilizando um nico comando. Para gerar a hierarquia dos diretrios
e subdiretrios, devemos digitar o nome do diretrio, incluindo os diretrios de hierarquia
Introduo ao Linux
52
como no exemplo:
# mkdir -p documentos/planilhas
# mkdir documentos
# cd documentos (direciona para o novo diretrio criado)
# mkdir planilhas
Ou criando os diretrios recursivamente, utilizando um nico comando:
# mkdir -p documentos/planilhas
Exerccio de fixao 6 e
Criando diretrios
Qual a diferena entre os comandos mkdir e mkdir p?
# cp /home/aluno/documento.txt /tmp
# cp /home/aluno/documento.txt /tmp/documento2.txt
# cp -r /home/aluno /tmp
Se o diretrio corrente for /home/aluno, o caminho relativo pode ser utilizado:
# cp documento.txt /tmp
Se, ao contrrio, estivermos localizados no diretrio de destino (/tmp), o comando pode ser
# cp ../home/aluno/documento.txt .
O comando de cpia exige que sempre sejam definidas a origem e o destino, mesmo de
forma simplificada. Caso contrrio, ser exibida uma mensagem de erro. Pode-se utilizar,
tambm, os caracteres curinga * e ? sem aspas. Dessa forma, todos os arquivos que
atenderem especificao mltipla sero copiados. O comando do exemplo abaixo copia
todos os arquivos que tm seus nomes comeando pela palavra planilha do diretrio
/home/aluno para o diretrio /tmp.
# cp /home/aluno/planilha* /tmp
53
A cpia de arquivos possui diversas utilidades, como transportar arquivos entre compu-
tadores utilizando uma mdia removvel, gerar cpias de segurana, entre outras. Sintaxe
do comando de cpia:
# cp /home/aluno/documento.txt /tmp
# cp /home/aluno/documento.txt /tmp/documento2.txt
# cp -r /home/aluno /tmp
# cp ../home/aluno/documento.txt .
# cp /home/aluno/planilha* /tmp
# rm -[opes] arquivo
Onde o nome do arquivo pode conter os diretrios do caminho na estrutura hierrquica at
o local do arquivo, seguido do nome do arquivo. A remoo de arquivos deve ser feita com
ateno, pois nem sempre ser solicitada, pelo sistema, a confirmao do usurio para a
execuo da remoo. Da mesma forma que, para a cpia, a remoo de todos os arquivos,
inclusive os diretrios, pode ser feita utilizando o comando rm com a opo -r. Diretrios
sem contedo tambm podem ser removidos com o comando rmdir.
Exerccio de fixao 7 e
Removendo arquivos
11 O que faz o comando rm rif ?
Introduo ao Linux
Exemplos de uso:
# mv /home/aluno/documento.txt /tmp
# mv /home/aluno/documento.txt /home/aluno/documento2.txt
O comando mv pode ser utilizado de duas formas: para mover arquivos da origem para
o destino ou para renomear arquivos, trocando apenas seu nome, mantendo-o no diretrio original. As mesmas regras vistas para os comandos cp e rm tambm se aplicam ao
comando mv, cuja sintaxe :
# mv /home/aluno/documento.txt /tmp
Para renomear o arquivo documento.txt para documento2.txt, devemos executar o
comando:
# mv /home/aluno/documento.txt /home/aluno/documento2.txt
Exerccio de fixao 8 e
Renomeando arquivos
O comando mv tambm serve para renomear arquivos?
comandos anteriores tambm podem ser aplicadas ao comando ls. Sua sintaxe :
11 # ls [opes] arquivo
Uma das opes mais utilizadas pelo usurio a opo -l, para listar arquivos e diretrios no formato longo, com os seguintes detalhes:
11 Tipo do arquivo, permisses, nmero de links, dono do arquivo, grupo do arquivo,
tamanho em bytes, data da ltima alterao e nome.
22 Os comandos ll, dir e vdir tambm podem ser utilizados com pequenas diferenas
em relao ao comando ls.
O comando ls utilizado para listar arquivos e diretrios. Sua sintaxe :
Uma das opes mais utilizadas do comando ls a opo -l, que permite listar arquivos e
diretrios no formato longo, que exibe uma srie de informaes as respeito dos arquivos
listados, como: permisses de acesso, nmero de links, dono do arquivo, grupo do arquivo,
tamanho em bytes, data da ltima alterao e nome do arquivo. O comando ls tambm
pode utilizar as mesmas regras aplicadas aos comandos anteriores.
Existem variaes do comando ls que podem ser utilizadas com as mesmas funcionalidades.
Os comandos ll, dir e vdir tambm podem ser utilizados para listar arquivos. O comando ll
possui a mesma funo do comando ls com as opes -la. O comando dir possui a mesma
funo do comando ls utilizado sem opes. J o comando vdir possui a mesma funo
# ls -[opes] [arquivo]
do comando ls utilizado com a opo -l. importante ressaltar que as mesmas opes do
comando ls podem ser utilizadas para os comandos ll, dir ou vdir.
55
Exerccio de fixao 9 e
Listando arquivos
O que significam as opes lat do comando ls?
Introduo ao Linux
# locate oo
56
o raiz /.
Cada caminho representado por uma sequncia nica de diretrios separados pelo caractere / (sem aspas), que o nome do caminho (path name). Existem dois tipos de caminhos:
11 Caminhos absolutos, iniciados no diretrio-raiz.
11 Caminhos relativos, iniciados no diretrio corrente (sem utilizar a barra inicial).
22 O Linux possui dois tipos especiais de nomes de diretrios: diretrio ponto ., que
significa o diretrio corrente, como vimos anteriormente, e diretrio dois pontos
.., que representa o diretrio um nvel acima do diretrio corrente. O diretrio
que fica num nvel imediatamente acima do corrente tambm chamado de
diretrio-pai (parent directory). Esses dois tipos especiais de diretrios so muito
utilizados para a navegao na estrutura de diretrios do Linux. Se o diretrio
corrente o /home/aluno, por exemplo, podemos fazer referncia ao diretrio /
home somente digitando ... Outro exemplo seria o caminho ../aluno/documentos,
que significaria o mesmo que /home/aluno/documentos.
Existem dois tipos especiais de nomes de diretrios utilizados para a navegao na
estrutura de diretrios do Linux:
11 Ponto (.), que representa o diretrio corrente.
11 Dois pontos (..), que representa o diretrio um nvel acima do diretrio corrente.
O caminho ../aluno/documentos significa o mesmo que /home/aluno/documentos.
O diretrio que fica um nvel imediatamente acima do diretrio corrente chamado de
diretrio-pai (parent directory).
Conforme vimos anteriormente, os diretrios do Linux so organizados hierarquicamente
numa estrutura do tipo rvore invertida. O diretrio que fica no nvel hierrquico mais alto
ou no topo da rvore de diretrios o diretrio-raiz, representado pela barra normal (/).
Essa forma de estrutura em rvore permite que possa haver arquivos ou diretrios com os
mesmos nomes, diferenciados pelo sistema como elementos distintos devido aos caminhos diferentes (paths) percorridos na estrutura. Cada caminho representado por uma
sequncia de diretrios separados pelo caractere / (sem aspas). Essa sequncia representa
o nome do caminho (path name) do arquivo ou diretrio.
Existem dois tipos de caminhos: os absolutos, que se iniciam sempre no diretrio-raiz, e os
relativos, que so baseados no diretrio corrente, em vez de se utilizar o diretrio-raiz como
incio do caminho. Diferentemente do caminho absoluto, sempre iniciado com /, o caminho
diretrio-raiz, passa a ser trabalhoso utilizar o caminho absoluto como identificador desse
diretrio. mais conveniente utilizar o caminho relativo.
Alm dessas facilidades, existem os comandos pwd e cd para a navegao nos diretrios.
O primeiro passo para navegar na estrutura saber o local onde estamos. O comando
pwd (print working directory) utilizado para mostrar o diretrio corrente, retornando o
caminho completo de identificao desse diretrio. O comando pwd um dos mais simples
do Linux, pois no tem opes nem entrada e s produz uma linha de sada. Outro comando
utilizado para navegao na rvore de diretrios o cd, que tem a funo de mudar a localizao do usurio para outro diretrio. No exemplo, o comando cd utilizado para navegar
relativo nunca comea com /. Quando um subdiretrio est muitos nveis abaixo do
at o diretrio /home/aluno:
57
# cd /home/aluno
O comando pwd mostra o diretrio corrente e um dos mais simples, pois no tem
# cd /home/aluno
Introduo ao Linux
58
internet. Os comandos gzip e bzip2 podem ser utilizados para compactar arquivos enquanto
os comandos gunzip e bunzip2 podem ser utilizados para descompactar arquivos. As sintaxes desses comandos:
Existem dois comandos que podem ser utilizados para compresso de arquivos
(gzip e bzip2) e dois comandos que podem ser utilizados para descompresso de
arquivos (gunzip e bunzip2), com os formatos:
corrente. Se, no entanto, desejarmos transport-los para uma fita, supondo que seu
dispositivo esteja montado, deve-se especificar o caminho correspondente ao arquivo que
representa o dispositivo, como mostra o exemplo:
Os arquivos gerados pela execuo dos comandos anteriores sero gerados no diretrio
59
Para transportar o arquivo para uma fita, supondo que seu dispositivo esteja montado,
Exerccio de fixao 10 e
Pgina de manuais
Qual dos comandos a seguir podemos utilizar para localizar o diretrio no qual est armazenada a pgina de manual de um determinado comando no Linux?
a. which
b. w
c. slocate
d. whereis
Introduo ao Linux
e. man
60
Roteiro de Atividades 3
Atividade 3.1 Conhecendo os arquivos
Indique as letras que representam os seguintes tipos de arquivos:
Regular
Bloco
Socket
Pipe
Arquivos
Diretrios
Links simblicos
lizando comandos diferentes em cada caso. Ao criar um dos arquivos, entre com algumas
linhas de dados pelo teclado.
2. Faa com que o arquivo vazio fique igual ao arquivo com contedo.
num arquivo chamado exemplos.tar.gz. Use um nico comando para efetuar esta operao.
6. Crie um diretrio chamado exemplos2 e mova o arquivo exemplos.tar.gz para o dire-
o arquivo exemplos.tar.gz.
trio exemplos2.
61
62
Introduo ao Linux
4
Utilizar o redirecionamento padro de arquivos de entrada, sada e erro, para arquivos
normais ou arquivos de dispositivos e criar funes a partir de uma sequncia de
comandos com a utilizao de canalizaes ou pipes.
conceitos
bem definidas.
11 Os comandos obtm dados como entrada, executam o processamento desses dados
e fornecem resultados como sada.
11 No Linux, a entrada padro de dados o teclado, a sada padro de dados o monitor
e a sada padro de erros tambm o monitor.
Nesta sesso de aprendizagem veremos com mais detalhes alguns conceitos bsicos do
Linux, importantes para entendermos o funcionamento desse Sistema Operacional. Como
todos os elementos no Linux so representados por arquivos, necessitamos conhecer
tambm as formas de manipulao do contedo dos arquivos, assim como j vimos algumas
operaes no sistema de arquivos. A maior parte dos programas utilitrios do Linux desempenha uma funo simples e bem definida. Eles obtm dados como entrada, executam o
processamento desses dados e fornecem resultados como sada. Todo programa, quando
executado, possui uma entrada e uma sada de dados e uma sada de erros. No Linux, a
entrada padro de dados o teclado, a sada padro de dados o monitor e a sada padro
de erros tambm o monitor. A Figura 4.1 mostra a entrada e a sada padro de dados e a
sada padro de erros.
objetivos
Desvendando o Linux
63
Utilitrio
ou programa
do usurio
Entrada
padro
Sada
de erro
padro
Sada
padro
Figura 4.1
Entrada e sadas
padro.
# consulta 12345
Cliente n:12345
Nome: Aluno1
Endereo: Av. Atlntica, 110
Cidade: Rio de Janeiro
Estado: RJ
O Linux oferece a possibilidade de alterar a entrada e a sada padro de dados, bem
Introduo ao Linux
poderia, ainda, conduzir a erros de digitao. Alternativamente, a listagem dos nmeros dos
clientes pode ser colocada em um arquivo chamado nmeros, editando-o previamente, com
um dos utilitrios de edio de texto do Linux. Poderemos, ento, redirecionar a entrada padro
do comando consulta atravs do smbolo <, que significa a entrada padro do sistema:
Entrada
padro
Figura 4.2
Redirecionamento
de entrada e sada.
Utilitrio
ou programa
do usurio
Sada
de erro
padro
Arquivo
clientes
Sada
padro
Arquivo
nmeros
65
Pipe ou canalizao
Os utilitrios do Linux desempenham funes especficas. Tarefas mais complexas so
Introduo ao Linux
Comando 1
Comando 2
Utilizando o exemplo anterior, vamos colocar os clientes em ordem numrica e mostrar suas
respectivas informaes por intermdio do programa consulta na tela do monitor.
Para executar estas duas funes, devemos executar os comandos:
66
Figura 4.3
Canalizao
ou pipe.
# sort numeros > temp (ordena os nmeros de identificao dos clientes em ordem crescente.)
# ./consulta < temp (lista os dados dos clientes, segundo a ordenao anterior.)
O mesmo resultado pode ser conseguido ao se utilizar uma canalizao ou pipe, que
representado pelo caractere |.
Redireciona
entrada
Sort
Consulta
O Linux manipula automaticamente o fluxo de dados de um programa para o outro, produzindo o mesmo efeito de uma execuo de um programa que contm vrias instrues.
Geralmente, os arquivos de sada intermedirios de uma canalizao no so utilizados fora
dela, pois os seus dados no so armazenados para serem utilizados por outros programas
ou pelo usurio. O sistema simplesmente descarta esses dados depois que a canalizao
terminou de ser executada. Para preservar a sada de um arquivo intermedirio no interior
de uma canalizao, para processamento posterior, podemos utilizar o comando tee como
parte da canalizao. O exemplo abaixo mostra como funciona o comando tee, que copia
cada linha do arquivo de entrada para o arquivo de sada, passando todos os dados que
recebe do comando sort para o programa consulta, mas tambm copia sua sada para o
arquivo especificado como parmetro, que neste exemplo o arquivo temp.
Figura 4.4
Combinao de
comandos utilizando pipes.
Sada
padro
67
Exerccio de fixao 1 e
Comando sort
1. Qual a utilidade do comando sort?
2. Atravs da pgina de manual do comando, encontre a opo que organiza o arquivo com
O comando mv move o arquivo da origem para o destino, fazendo uma cpia no local
Introduo ao Linux
68
# cat arquivo
O resultado da concatenao ser o prprio arquivo, pois no h nenhum outro arquivo
especificado no comando para ser concatenado. O problema do comando cat que, se o
tamanho do texto contido no arquivo ultrapassar o nmero de linhas da tela do monitor,
ele continuar mostrando o arquivo at o final, sem pausas, de forma que a tela s pare de
rolar quando todo o contedo do arquivo for exibido. Logo, s sero mostradas na tela as
ltimas linhas do arquivo, e no veremos as linhas anteriores, ou melhor, elas sero mostradas rapidamente na tela, no havendo tempo reservado para a sua leitura. Para evitar o
problema de visualizao de arquivos maiores que o nmero de linhas da tela, devemos utilizar os comandos more ou less, que listam o arquivo dando uma pausa na listagem quando
ela preenche toda a tela, permitindo que se controle a exibio do contedo. A sintaxe
desses comandos pode ser vista abaixo:
O comando cat tem a funo principal de concatenar arquivos, mas pode ser utilizado
Exerccio de fixao 2 e
Visualizando contedo de arquivos
Quais recursos o comando less possui a mais que o comando more?
69
# wc [opes] arquivo
Caso no seja especificado nenhum arquivo, o comando wc l a entrada padro. O comando
do exemplo a seguir lista o contedo do diretrio corrente e direciona a sua sada para a
entrada do comando wc que, com a opo -l, conta o nmero de linhas listadas pelo comando
ls l e fornece, como resultado, o nmero de arquivos e diretrios contidos no diretrio /etc.
# ls -l /etc | wc -l
Como a primeira linha da sada do comando ls l no um arquivo ou diretrio, devemos
descont-la do resultado. Veremos, nos prximos itens, comandos mais complexos, que permitem obter resultados exatos para a contagem de contedos. O comando wc tambm pode
ser utilizado para determinar que dois arquivos no so idnticos, mostrando que no tm o
mesmo nmero de linhas, palavras ou caracteres. No entanto, se tiverem nmeros idnticos
de linhas, palavras e caracteres, existe uma grande probabilidade de que sejam idnticos,
mas no h garantia total.
O comando wc conta e imprime o nmero de caracteres, de palavras ou de linhas
de um arquivo:
# wc [opes] [arquivo]
Opes do comando wc:
11 -l: conta o nmero de linhas do arquivo.
11 -w: conta o nmero de palavras do arquivo.
11 -c: conta o nmero de caracteres do arquivo.
Caso no seja especificado nenhum arquivo, o comando wc l a entrada padro. Se no
for escolhida uma opo, o comando wc conta e retorna todas as opes anteriores.
Introduo ao Linux
tela e seu contedo ser precedido pelo nome do arquivo como mostra o exemplo:
70
# head -5 relatorio.txt
# head -5 relatorio.txt
11 O comando tail mostra as ltimas linhas de um arquivo. O comando do exemplo
abaixo exibe as ltimas quinze linhas do arquivo relatrio.txt.
Exerccio de fixao 3 e
Exibindo o contedo de arquivos
Que sadas sero mostradas com os comandos abaixo?
11 Ls -la .
11 Ls l ..
11 Ls l /etc/resolv.conf | wc l
11 Ls /etc | wc -c
residam no mesmo estado, na mesma cidade ou na mesma rua. Existem vrios utilitrios do
71
Linhas
rejeitadas
Texto
original
GREP
Arquivos
de entrada
Linhas
escolhidas
Arquivo
de sada
Figura 4.5
Funcionamento do
comando grep.
Padres
O usurio especifica um padro que ser utilizado pelo comando grep para fazer a pesquisa nos arquivos de entrada. Esse utilitrio examina as linhas do arquivo, verificando se
cada uma contm o padro especificado. Quando o padro encontrado, a linha copiada
para o arquivo de sada, ou para a tela do terminal, se for utilizada a sada padro. Se a
linha no contm o padro, rejeitada, isto , no copiada no arquivo de sada.
Quando o comando grep termina de pesquisar os arquivos de entrada, o arquivo de sada
vai conter todas as linhas que contm os padres desejados. A sintaxe do comando grep :
# cat clientes
12341 Aluno1 Rua Gois, 25 Planaltina DF
12342 Aluno2 Av. Beira Rio, 1005 Vitria ES
Saiba mais
O utilitrio grep
tambm funciona
como um filtro de
canalizao. Quando
utilizado em uma
canalizao, seleciona
algumas sadas do
programa ou comando
anterior e envia o resultado para a entrada do
programa seguinte que
ir process-las.
Introduo ao Linux
72
grep
), que funciona similarmente ao comando grep, mas no reconhece nenhum caractere especial em
expresses regulares. Todos os caracteres representam apenas a si mesmos, no havendo
11 Caracteres entre parnteses (xyz), como por exemplo egrep love(able|ly), permitem
significados metafricos.
73
primeira diferena.
O exemplo a seguir compara dois arquivos que tm um caractere diferente na posio
17 da linha 10:
Arquivo 1
de entrada
CMP
Localizao
das diferenas
Arquivo 2
de entrada
Introduo ao Linux
74
Figura 4.6
Funcionamento do
comando cmp.
Outro comando utilizado para comparar arquivos o diff, que exibe as diferenas entre eles,
gerando uma lista de procedimentos que podem ser aplicados ao arquivo original, usando o
utilitrio patch, para tornar os arquivos idnticos. O comando diff possui mais recursos que o
comando cmp. A sada do comando diff uma lista de aes a serem editadas que, quando aplicadas ao contedo do primeiro arquivo, geram o arquivo editado. As aes a serem editadas
incluem adio de uma linha, eliminao de uma linha ou, ento, mudana em uma linha.
11 O comando diff gera aes que incluem adio de uma linha, eliminao de uma linha
Ordenao em arquivos
O comando sort obtm as linhas de um ou mais arquivos de entrada e produz um
75
Se quisermos ordenar o arquivo por estado, deveremos utilizar o comando a seguir, que
ordena alfabeticamente pelo nmero da coluna especificada na opo -k:
Introduo ao Linux
76
Roteiro de Atividades 4
Atividade 4.1 Pesquisando em arquivos
1. Copie ou crie o arquivo atividade, contendo as seguintes linhas:
abcdefghijklmUnixnopqrstuvwxyz
abcdefghiUnixjklmnopqrstuvwxyzUnix
abcdefghijklmnopqrstuvwxyzLinux
abcdefghijklmnopqrstuUnixvwxyz
Unixabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyzUnix
abcdefghijklmnopLinuxqrstuvwxyz
abcdefghUnixijklmnopqrstuUnixvwxyz
Supondo que voc no conhea o contedo do arquivo, mas imagina que deveria haver a
palavra Unix em todas as suas linhas, utilize uma linha de comando para mostrar na tela as
linhas, com seus respectivos nmeros, nas quais est faltando a palavra Unix; salve esse
resultado no arquivo chamado atividade_temp.
12348
Aluno8
Rio de Janeiro
RJ
12347
Aluno7
Porto Alegre
RS
12346
Aluno6
Salvador
BA
12345
Aluno5
Rio de Janeiro
RJ
12344
Aluno4
Braslia
DF
12343
Aluno3
Rua Guarani
Campinas
SP
# sort -n clientes
77
12342
Aluno2
Vitria
ES
12341
Aluno1
Rua Gois, 25
Planaltina
DF
Passo a passo significa que, a cada execuo do comando, uma linha ser colocada
Introduo ao Linux
78
5
Conhecer as formas de entrar e sair do editor Vi, bem como seus comandos de
movimentao, insero e remoo de texto; salvar as modificaes e procurar
por padres de caracteres e palavras no texto.
conceitos
Processadores de texto
Os processadores de texto oferecem suporte criao, edio e formatao de documentos
que suportam incluso de textos, tabelas, equaes cientficas, entre outros, utilizando um
conjunto de funcionalidades prprias. O Linux oferece um conjunto de ferramentas para
processamento de texto, com destaque para o Writer, do pacote Open Office.
As primeiras aplicaes do Unix foram as de criao de documentos de texto e de desenvolvimento de software, que exigiram o desenvolvimento de ferramentas eficientes de processamento de texto. As ferramentas de processamento de texto do Linux so uma famlia de
utilitrios que atuam em todas as fases de preparao de um documento.
Nesta sesso de aprendizagem, no abordaremos o uso de processadores de texto, destacando apenas alguns editores de texto mais utilizados do Linux, com destaque para o editor
Vi, que ser visto em detalhes.
Editores de texto
Os editores de texto so utilizados para a edio de arquivos que contenham somente texto,
sem qualquer tipo de formatao. Eles permitem a entrada, remoo ou substituio de
texto, alm de oferecer diversas funcionalidades: busca, correo de erros, cpia e colagem
de texto, entre outros
. Os editores de texto podem ser divididos em duas categorias: os editores de tela que exibem o texto na tela inteira e os editores de linha que exibem o contedo
do arquivo linha a linha. Esta sesso de aprendizagem ser baseada no editor de textos Vi,
que ser visto no prximo tpico. Por isso, no entraremos em detalhes no modo de utilizao dos outros editores apresentados a seguir.
11 Emacs: um editor de texto de tela cheia que foi desenvolvido por Richard Stallman, guru
e fundador da Free Software Foundation. O Emacs um poderoso ambiente de edio de
objetivos
Edio de texto
textos, que inclui funes adicionais chamadas de extenses. Entre essas funes esto
79
o envio de e-mails de dentro do editor, a converso de dados de arquivos em outros formatos e at mesmo a compilao de programas editados pelo Emacs. Para abrirmos um
arquivo utilizando o editor Emacs, devemos utilizar o comando emacs, seguido do nome
do arquivo. Se o arquivo especificado na linha de comando no existir, ele ser criado.
Caso contrrio, o arquivo existente ficar disponvel para edio. Se o Emacs for aberto
em um ambiente grfico, como o GNOME ou o KDE, ser aberta uma janela com uma
interface baseada em menus. Para ativar uma das opes do menu, basta posicionar o
cursor do mouse e clicar sobre a opo. Sero exibidas ento as opes de cada menu.
11 Pico: o Pine Composer um editor de texto de tela cheia desenvolvido pela Universidade
de Washington, que parte integrante do programa cliente de e-mail Pine. Apesar disso,
o Pico pode ser utilizado para editar arquivos texto independentemente do Pine. O Pico
possui vrias funcionalidades, como busca de texto e verificador de erros, entre outras.
Para abrirmos um arquivo utilizando o editor Pico, devemos utilizar o comando pico,
seguido do nome do arquivo. Se o arquivo especificado na linha de comando no existir,
ele ser criado. Caso contrrio, o arquivo existente ficar disponvel para edio.
11 JOE: o Joes Own Editor um editor de texto de tela cheia criado por Joseph H. Allen em
1991 e distribudo pela GPL. O JOE possui uma srie de funcionalidades: um sistema integrado de ajuda, busca de texto, emulao de funcionalidades de outros editores, entre
outras. Para abrirmos um arquivo utilizando o editor JOE, devemos utilizar o comando
joe, seguido do nome do arquivo. Se o arquivo especificado na linha de comando no
existir, ele ser criado. Caso contrrio, o arquivo existente ficar disponvel para edio.
11 Ed: um editor de texto de linha criado em 1971, pelo criador do Unix, Ken Thompson.
Para abrirmos um arquivo utilizando o editor Ed, devemos utilizar o comando ed, seguido
do nome do arquivo. Se o arquivo especificado na linha de comando no existir, ele ser
criado. Caso contrrio, o arquivo existente ficar disponvel para edio. Quando um
arquivo aberto pelo Ed, por padro, a ltima linha do arquivo exibida, permitindo a
w
Saiba mais sobre os
editores de texto
Emacs (http://www.gnu.
org/software/emacs),
Pico (http://www.
washington.edu/pine/
man/#pico), Joe (http://
joe-editor.sourceforge.
net) e Ed (http://www.
gnu.org/software/ed/
ed.html).
insero de texto aps ela. Os comandos do Ed s afetam a linha que est sendo exibida
na tela, a no ser que outra linha, ou mesmo um conjunto de linhas, seja especificado.
Editor Vi
Visual Editor (Vi) um dos mais antigos editores de texto para sistemas Unix-like. Desenvolvido em Berkeley, passou a ser incorporado por padro s diversas verses do sistema
operacional Unix. O Vi possui uma interface bastante simples, sem os requintados recursos
de edio oferecidos pelos processadores de textos para ambientes grficos. Apesar de sua
simplicidade, o Vi oferece vrios recursos de edio de texto, dos simples aos mais sofisticados e largamente utilizado por administradores de sistema e programadores. Por esse
motivo, ser o editor que detalharemos nesta sesso de aprendizagem.
O Vi copia o contedo do arquivo de texto que est sendo editado para um buffer de edio
na memria principal, utilizando a tela do monitor de vdeo como uma janela para visualizao
deste buffer. A tela pode ser movimentada para cima ou para baixo mostrando outras linhas
Introduo ao Linux
80
Na Figura 5.1 vemos como a tela do terminal mostra o contedo do buffer. Para editar o
texto, o usurio simplesmente move o cursor pela tela, utilizando comandos de um s caractere ou utilizando as setas do teclado. Outros comandos de edio de texto so utilizados
para inserir, modificar e remover texto. O comando especifica se a alterao a ser executada
em um caractere, em uma palavra ou em uma linha. Os resultados de cada comando so
refletidos imediatamente no vdeo.
l
Saiba mais
O buffer nada mais
do que um local na
memria RAM para
onde copiado o contedo de um arquivo
quando este est
sendo editado.
Buer de edio
Janela
Monitor de vdeo
Os comandos do Vi permitem fazer mudanas em massa no documento inteiro ou em
partes dele. As alteraes realizadas so refletidas imediatamente no texto aps a execuo
de um comando.
O Vi copia o contedo de um arquivo de texto para o buffer de edio na memria principal
e utiliza a tela do monitor de vdeo como uma janela para a visualizao do buffer. A tela
pode ser movimentada para cima ou para baixo mostrando as demais linhas do texto.
Quando o Vi salva as alteraes realizadas, ele copia o texto editado no buffer para o
arquivo armazenado de forma permanente, substituindo o contedo anterior. O comando
vi utilizado para executar o editor Vi e sua sintaxe :
# vi [opes] [arquivo]
Se o nome do arquivo for omitido, o Vi abrir um novo arquivo sem nome no buffer de
edio, que ficar vazio, aguardando o usurio digitar seu texto. Os caracteres ~ na coluna
da esquerda da tela indicam que no h texto no arquivo, nem mesmo espaos em branco.
Na ltima linha da tela mostrado o nome do arquivo e informado se ele novo ou se j
existia. Caso o arquivo j exista, mostrado o seu nome, o nmero de linhas e o nmero
de caracteres que ele possui. Para sair do Vi sem salvar o arquivo editado, deve-se digitar
a tecla Esc para sair do modo de insero, digitar o comando :q! e em seguida teclar Enter.
Dessa forma, a ltima verso do arquivo preservada e as alteraes feitas so descartadas. O Vi, por padro, no permite a sada do editor com o descarte das alteraes feitas
no buffer. O ponto de exclamao aps o comando :q permite sair do Vi, mesmo que o
buffer tenha sido modificado.
O nome do arquivo deve ser nico dentro do seu diretrio. Um nome de arquivo pode incluir
qualquer caractere, exceto alguns caracteres especiais como /, * e &, entre outros. possvel
incluir espaos em um nome de arquivo digitando uma barra invertida (\) antes do espao.
Durante a edio de um texto, possvel sair do editor a qualquer momento, salvando as
modificaes realizadas e retornando ao prompt do Linux. O comando para sair do editor,
salvando as modificaes realizadas, ZZ (em maisculas). Tambm possvel sair do editor,
salvando as modificaes feitas, utilizando os comandos w e q, simultaneamente (:wq).
O comando :w utilizado para salvar as modificaes sem sair do Vi e o comando :q utili-
Figura 5.1
Exibio do contedo do buffer.
zado para sair do editor desde que no tenha sido feita nenhuma modificao.
81
# vi [opes] [arquivo]
Para fechar o arquivo, existem algumas opes:
11 ZZ: salva as alteraes e fecha o arquivo.
11 :wq: salva as alteraes e fecha o arquivo.
11 :q!: sair do arquivo descartando as alteraes feitas.
Modos do editor Vi
Existem trs formas bsicas ou modos de trabalhar com o editor Vi.
11 Modo comando: quando se abre um arquivo para edio, o Vi entra no modo de
comando. Os comandos realizam diversas funes, como rolar atravs do texto, fazer
buscas por trechos do texto, apagar caracteres, palavras ou linhas, entre outros. Para
facilitar a execuo de comandos no Vi, pode-se ativar a exibio dos nmeros das linhas
do arquivo, atravs do comando :set number.
11 Modo de insero: esse modo utilizado quando se deseja inserir texto em um arquivo.
A mudana do modo de comando para o modo de insero feita por intermdio de uma
das opes:
22 i: entra no modo de insero de texto, comeando na posio atual do cursor.
22 a: entra no modo de insero de texto, comeando um caractere depois da posio
do cursor.
22 A: entra no modo de insero de texto, comeando no fim da linha onde est o cursor.
22 o: entra no modo de insero de texto, comeando uma linha abaixo da posio
atual do cursor.
22 O: entra no modo de insero de texto, comeando na posio atual do cursor e passando a linha atual uma linha para baixo.
22 s: entra no modo de insero de texto, substituindo o caractere da posio
atual do cursor.
22 cw: entra no modo de insero de texto, substituindo uma palavra a partir do caractere onde o cursor est posicionado. Outras variaes do comando c tambm podem
ser utilizadas para entrar no modo de edio. Essas opes de comando sero vistas
no tpico Substituindo texto.
Para sair do modo de insero, basta teclar Esc.
11 Modo de execuo: esse modo uma variante do modo de comandos do Vi, que
tambm permite a execuo de comandos do Linux sem precisar sair do editor Vi.
Os comandos do modo de execuo sempre comeam com dois pontos (:). Vrios
comandos de edio de arquivos do Vi tambm podem ser executados nesse modo. Para
Introduo ao Linux
82
pelo comando. Por exemplo, para conhecer a localizao do arquivo que est sendo
editado, deve-se executar o seguinte comando:
:!pwd
que permite realizar funes como rolar atravs do texto, buscar por palavras, apagar
caracteres especficos, palavras ou linhas de texto, entre outras.
11 Modo de insero: a mudana do modo de comando para o modo de insero
feita por meio dos comandos i, a, A, o, A, O, s ou cw no modo de comando. Esse modo
utilizado quando se deseja inserir texto em um arquivo. Para retornar ao modo de
comando, basta teclar Esc.
11 Modo de execuo: este modo tambm permite a execuo de comandos do Vi.
Alm disso, permite a execuo de comandos do Linux dentro do editor Vi.
Movimentando o cursor
Teclas de movimentao do cursor:
que tambm esto limitadas a movimentar o cursor dentro das linhas do texto, no permi-
83
Figura 5.2
Movimentando o
cursor.
Figura 5.3
Comandos de
movimentao do
cursor.
os comandos:
11 0: move o cursor para o incio da linha.
11 $: move o cursor para o final da linha.
11 w: move o cursor uma palavra para a direita.
11 W: move o cursor uma palavra para a direita sem contar smbolos e pontuaes.
11 b: move o cursor uma palavra para a esquerda.
11 B: move o cursor uma palavra para a esquerda sem contar smbolos e pontuaes.
Quando salvamos um arquivo, o Vi mostra na parte inferior esquerda da tela o nome e o
nmero de linhas e de caracteres desse arquivo. importante saber que uma linha no
necessariamente limitada ao tamanho visvel na tela do monitor. Para finalizarmos uma linha
utilizando o Vi, devemos utilizar a tecla Enter no modo de insero. Se digitarmos caracteres
Introduo ao Linux
indefinidamente em uma linha, sem teclar Enter, o Vi considerar que estes caracteres formam
84
uma nica linha, mesmo que ela seja mostrada na tela como se fossem vrias linhas.
Editando texto
Comandos para edio de texto:
11 i: inserir texto.
11 a: anexar texto.
11 c: alterar texto.
11 d: remover texto.
11 x: remover texto.
11 y: copiar texto.
11 p: colar texto copiado ou removido.
Ao editarmos um arquivo, necessitamos fazer diversas operaes como insero, remoo,
substituio, entre outras. Os comandos a seguir so utilizados para realizar algumas das
mais comuns alteraes em um arquivo texto.
11 i: inserir texto.
11 a: anexar texto.
11 c: alterar texto.
11 d: remover texto.
11 x: remover texto.
11 y: copiar texto.
11 p: colar texto copiado ou removido.
A Figura 5.4 mostra um texto com diversos erros e as correes necessrias. O Vi permite
fazer essas correes no texto utilizando teclas bsicas de edio:
Figura 5.4
Comandos de
edio.
Substituindo texto
O comando c permite fazer alteraes utilizando combinaes de comandos de movimentao do cursor como pode ser visto nos exemplos:
cw: substituir uma palavra ou parte de uma palavra onde o cursor estiver posicionado. Se
at o fim da palavra. Por exemplo: para trocar fazer por fazendo, devemos posicionar o
cursor na letra r, digitar o comando cw e inserir as letras ndo.
cc: substituir a linha inteira onde o cursor est posicionado. Para executar esse comando, o
cursor pode estar posicionado em qualquer local da linha que ser substituda.
cb: substituir uma palavra ou parte de uma palavra onde o cursor estiver posicionado. Se o
cursor estiver posicionado no meio da palavra, ela ser substituda da posio do cursor at
o incio da palavra. Por exemplo: para substituir a palavra fazendo pela palavra trazendo,
o cursor estiver posicionado no meio da palavra, ela ser substituda da posio do cursor
Introduo ao Linux
86
Exerccio de fixao 1 e
Primeiro arquivo com Vi
Acesse o terminal e crie no diretrio home do seu usurio o primeiro arquivo chamado
Arquivo-1.txt. Escreva o texto abaixo tentando utilizar os atalhos citados.
Removendo texto
11 dl: remove o caractere onde o cursor est posicionado.
Rolagem do arquivo
11 Ctrl+F: rola a tela inteira para a frente no texto.
11 Ctrl+B: rola a tela inteira para trs no texto.
11 Ctrl+D: rola a metade da tela para a frente no texto.
11 Ctrl+U: rola a metade da tela para trs no texto.
11 Ctrl+E: rola a tela uma linha para cima.
11 Ctrl+Y: rola a tela uma linha para baixo.
11 zEnter: rola a linha corrente para o topo da tela.
87
Comando de busca
11 O comando de busca o caractere /, que mostra uma barra na linha inferior da tela,
onde deve ser digitado o texto que ser o padro a ser procurado.
11 Este padro de busca pode ser uma palavra ou qualquer sequncia de caracteres.
Os espaos em branco tambm so considerados parte do padro.
11 O Vi inicia a procura do padro na posio do cursor, seguindo adiante no arquivo, e ao
chegar ao final volta ao incio do arquivo e continua a procura at a posio do cursor.
11 O cursor movido para a posio da primeira ocorrncia do padro procurado. Se
no h nenhuma ocorrncia do padro, a mensagem Pattern not found mostrada
Introduo ao Linux
:1,$s/umapalavra/novapalavra
11 Para realizar a procura no sentido contrrio, voltando sobre o texto, devemos utilizar
o comando ?.
11 Comandos para repetio em buscas:
22 n: repete a busca na mesma direo.
22 N: repete a busca na direo oposta.
22 /Enter: repete a busca adiante no texto.
22 ?Enter: repete a busca voltando no texto.
11 Combinando o comando de busca com o de substituio podemos, por exemplo, alterar
todas as ocorrncias de uma palavra por outra em todo o texto como no exemplo:
:1,$s/umapalavra/novapalavra
Exerccio de fixao 2 e
Busca no arquivo com Vi
Acesse o arquivo criado no exerccio anterior e teste os comandos de busca utilizando todos
Comandos combinados
Conhecemos, nos itens anteriores, algumas combinaes de comandos, utilizando tambm
nmeros multiplicadores. Na Tabela 5.1 so mostrados exemplos de combinaes possveis
de comandos e suas aes correlatas.
os recursos citados.
89
Alterao
Remoo
Cpia
Do cursor a ...
cH
dH
yH
cL
dL
yL
c+
d+
y+
prxima linha
c5I
d5I
y5I
c/padro
d/padro
y/padro
padro
cn
dn
yn
prximo padro
cG
dG
yG
c13G
d13G
y13G
linha 13 do arquivo
Vimos que o Vi um editor simples, porm muito poderoso, que nos oferece grande
flexibilidade para a edio de textos. Entendemos, agora, porque um dos editores
Introduo ao Linux
90
Tabela 5.1
Comandos
combinados.
Roteiro de Atividades 5
Atividade 5.1 Criando um texto no Vi
Crie o arquivo atividades utilizando o Vi contendo o seguinte texto:
Braslia tem caso suspeito de parasitose do peixe cru
BRASLIA A Secretaria de Sade do Distrito Federal detectou o primeiro caso suspeito de
difilobotrase, parasitose intestinal transmitida pela ingesto de peixe cru ou mal cozido, que
j atingiu pelo menos 27 pessoas em So Paulo nos ltimos doze meses. A possvel vtima,
uma mulher de 25 anos, teria se contaminado em outro estado. A vigilncia sanitria local
prometeu reforar os cuidados nas operaes de fiscalizao a estabelecimentos comerciais, pretendendo centrar as atenes na forma de armazenamento dos peixes.
A suspeita de contaminao foi notificada pela Secretaria de Sade local no ltimo dia 6. O laudo
do laboratrio contratado pela Secretaria est sendo aguardado para os prximos dias, com a
confirmao da presena do parasita no organismo da vtima. O infectologista Alexandre Cunha,
que atendeu a paciente, afirmou que fez uma anlise morfolgica do parasita encontrado em
amostra das fezes da vtima e constatou tratar-se do causador da difilobotrase.
Ainda no temos certeza da contaminao. Esse tipo de parasita no comum no Brasil.
Mas o congelamento do peixe de forma adequada impede a transmisso, explicou a diretora de vigilncia epidemiolgica local, Disney Antezana.
A Agncia Nacional de Vigilncia Sanitria (Anvisa) recomenda que se evite o consumo de
peixes crus ou se certifiquem de que o produto esteve congelado em pelo menos 20 graus
negativos por, no mnimo, sete dias. Para matar o transmissor, tambm possvel manter o
peixe em 35 graus negativos por 15 horas.
Carolina Brgido, O Globo
Os caracteres acentuados podem ser digitados sem acento, caso o sistema operacional no possua suporte acentuao.
outro comando?
f. Volte ao prompt do Linux sem salvar as modificaes no texto.
seja, movimentao, insero, remoo ou busca, para executar as seguintes edies no texto:
91
a palavra Anvisa.
c. Salve o arquivo com o mesmo nome no diretrio /tmp.
d. Remova todas as linhas que contenham a palavra peixe, utilizando um nico comando.
e. Sem sair do arquivo atividades, abra na mesma janela do Vi o arquivo /etc/profile.
Introduo ao Linux
92
6
Conhecer o funcionamento do Shell e aprender a lidar com seus processos.
conceitos
Noes bsicas
Shell um ambiente de interpretao de comandos. Ele a ponte entre o usurio e o
sistema operacional, ou seja, atravs dele que o usurio requisita aes ao sistema,
utilizando-se
de comandos. Podemos observar a atuao do Shell quando abrimos um terminal ou console e executamos comandos como ls, cat, touch, mkdir, cp, rm, mv etc.
A interao do usurio com o Shell adquire a forma de um dilogo. Primeiramente, o Shell
solicita uma entrada ao usurio, mostrando um prompt na tela do terminal. Assim que um
comando digitado, o Shell o executa. Este comando pode fazer parte de seus comandos
internos (built in) ou ser algum outro comando/programa do sistema operacional. Quando a
tarefa do comando foi completada, o Shell, uma vez mais, solicita nova entrada ao usurio,
mostrando novamente o cursor, de modo que se possa continuar digitando comandos
e interagindo com o Shell. A Figura 6.1 mostra a sequncia de passos em um dilogo do
usurio com o Shell:
Captulo 6 - Shell
objetivos
Shell
93
Login
(acesso)
Shell
pede um
comando
O usurio
digita o
comando
Shell faz
executar o
comando
O usurio
interage com
o utilitrio
Shell
pede novo
comando
O usurio
digita Ctrl-D
Figura 6.1
Dilogo do usurio
com o Shell.
Logout
(sada)
O uso das aspas opcional. No entanto, convenciona-se us-las para indicar ao Shell
que no necessrio interpretar aquele contedo, basta mostr-lo na sada desejada. Essa conveno ser obrigatria em outras ocasies.
Cada conta de usurio, quando criada, recebe um Shell padro, atravs do qual aquele
usurio far a interao, em modo texto, com o Sistema Operacional. Para o Linux, so
vrios os Shells disponveis. Os mais comuns so os da famlia Bourne Shell, dentre eles o
Introduo ao Linux
Bourne Shell (sh) e o Bourne Again Shell (bash). O bash o mais usado nas distribuies Linux.
94
H ainda os da famlia C Shell, como o csh, que possui suporte computao numrica,
bastante deficitrio na famlia Bourne, mas com a desvantagem de ter uma sintaxe parecida
com a linguagem C, no muito fcil de ser utilizada. A diferena entre os diversos Shells existentes est basicamente nas funcionalidades incorporadas e na sintaxe dos comandos, que
podem ser simples ou mais complexas.
Para saber qual Shell est configurado para o seu usurio, basta verificar no arquivo
/etc/passwd. E para saber os Shells que esto disponveis no seu Linux, basta verificar
o arquivo /etc/shells. Este curso focado no Shell bash.
Gerenciamento de processos
O que um processo?
11 Um programa em execuo.
Durao de um processo:
11 Enquanto houver instrues para serem executadas.
Recursos e gerenciamento:
11 Os processos utilizam recursos como processador e memria, e so organizados e
gerenciados pelo Sistema Operacional.
Processo INIT:
11 Processo pai de todos os outros processos.
Escalonamento:
11 Baseado em time-sharing.
Um processo um programa em execuo. A vida de um processo comea no incio de um
programa e dura enquanto as instrues do programa continuarem a especificar novas operaes. Quando o programa chega ao final, isto , o sistema operacional termina a execuo
de suas instrues, o processo relativo a este programa morre.
O processo utiliza recursos do computador, como processador e memria, para realizar
suas tarefas. de responsabilidade do sistema operacional organizar e gerenciar todos os
processos. Quando o sistema iniciado, a funo start kernel cria o processo nmero zero,
que uma thread que gerar todos os demais processos. Esta funo chama a funo init,
que ser o processo nmero um. O processo INIT ser o pai de todos os processos e um dos
ltimos a morrer.
Captulo 6 - Shell
95
11 Root UID = 0
11 Para usurio ter privilgios de root GID = 0
11 Visualizados no arquivo /etc/passwd.
22 Ex: root:x:0:0:root:/root:/bin/bash - os nmeros so UID e GID, respectivamente.
O controle das permisses dos processos funciona usando a mesma lgica. Os administradores do sistema atribuem nmeros para os usurios (user identifier ou UID) e para
grupos (group identifier ou GID), quando so criadas as contas de usurio. O sistema usa
o UID e o GID de um usurio para recuperar informaes de sua base de dados, relativas
aos privilgios permitidos para o usurio. O usurio de maior privilgio o root, tambm
conhecido como superusurio, que tem o UID igual a 0 (zero) em uma escala que vai alm de
65 mil, dependendo do sistema operacional. O usurio root usualmente o administrador
do sistema, possuindo plenos poderes. Cada processo pertence a um usurio e tambm
pertence ao seu grupo. Para fazer com que um usurio tenha os mesmos privilgios que o
root, necessrio que o GID dele seja 0. No arquivo /etc/passwd possvel visualizar o UID
(primeiro nmero que aparece) e o GID (segundo nmero) de cada usurio criado; se no for
especificado, o sistema operacional cria um grupo para cada usurio.
Introduo ao Linux
Criao de processos
96
criados a partir dele. A criao de um processo baseada em uma operao do tipo fork-exec,
na qual um processo j existente se duplica atravs de uma chamada de sistema chamada
fork, e em seguida substitui seu cdigo por outro, atravs da chamada de sistema exec, permitindo que o cdigo do filho seja executado sem que o cdigo dele seja prejudicado.
Isso acontece quando digitamos um comando no Shell. O bash, no nosso caso se duplica
usando fork e ento chama o exec para sobrepor sua memria com os contedos do
comando solicitado. Essa combinao permite que os processos gerados sejam concorrentes, ou seja, executem de forma independente uns dos outros. A Figura 6.2 ilustra
outro exemplo tpico, no qual um programa de menu oferece uma opo de trs telas
de entrada de dados. Quando o usurio faz uma seleo, o programa de menu bifurca
um processo-pai que executa o programa escolhido, e o programa de entrada de dados
roda at a sua concluso. Enquanto isso, o programa de menu pode ser usado para outra
opo, o que gera uma nova bifurcao.
Processo 1
executando
programa menu
EXEC
Processo 1
executando
programa menu
RK
FO
Figura 6.2
Execuo
concorrente.
Processo 2
executando
programa menu
EXEC
Processo 2
executando
a opo 1
No fork, o PID de cada um dos processos clonados diferente. No entanto o PPID igual
(observe a rvore hierrquica dos processos e seus PIDs via comando # pstree p). No exec, como
ele faz simplesmente uma sobreposio de contedo, os PIDs dos dois processos so iguais.
Existe ainda a funo clone, semelhante fork, mas com algumas caractersticas diferentes.
Da mesma forma, possvel executar processos de forma sequencial, sem que haja uma
bifurcao ou duplicao de cdigo. Atravs da chamada de sistema exec, o kernel carrega o
novo programa na memria e inicia a execuo do novo processo especificado pelo exec.
Este novo programa comea a execuo no mesmo ambiente do seu predecessor.
Os arquivos abertos pelo programa anterior permanecem abertos para o novo processo,
que tambm retm as identidades do usurio e do grupo de usurios. A Figura 6.3 mostra
executada usando-se exec.
Figura 6.3
Execuo sequencial.
Processo
imprime o
Relatrio 1
EXEC
Processo
imprime o
Relatrio 2
EXEC
Processo
imprime o
Relatrio nal
Captulo 6 - Shell
97
# comando &
A execuo de um comando em background permite ao usurio executar outros comandos
simultaneamente. Estes comandos so executados imediata e independentemente de j
haver um processo em execuo. Outra vantagem utilizar a execuo em background para
realizar tarefas demoradas, como a impresso de arquivos extensos ou a execuo de sort
ou find em arquivos grandes, ou ainda programas que sero executados por algum tempo
como, por exemplo, um navegador web, um editor de textos etc.
Introduo ao Linux
Entretanto, deve-se tomar cuidado ao rodar scripts em background, pois a sada continua
98
a ser a padro, e podem aparecer resultados do programa na tela, atrapalhando a visualizao de outras tarefas do usurio. recomendvel que a sada do processo em background
seja redirecionada para um arquivo, usando a seguinte sintaxe:
[1] pid
Desta forma, toda a sada-padro e a sada de erros sero redirecionadas para o arquivo.
O nmero do processo correspondente mostrado logo a seguir. Este nmero pode ser
usado para finalizar o processo ou monitor-lo. Quando o processo termina, uma mensagem mostrada assim que pressionamos uma tecla qualquer, geralmente a tecla Enter. A
mensagem tem a seguinte forma:
# crontab -e
11 Na ltima linha do arquivo programa-se o comando. Exemplo:
03 17 * * * cp /etc/passwd /home/USER/passwd
11 Onde 03 so os minutos e 17, a hora.
Um daemon um processo executado em background e normalmente no tem tempo de
vida definido, podendo ser executado por tempo indeterminado. O sistema operacional
Linux utiliza muitos daemons para realizar rotinas e tarefas, como a paginao da memria,
as solicitaes de login, a manipulao de e-mails, a transferncia de arquivos, a coleta de
estatsticas de operao do sistema e as solicitaes de impresso.
Um daemon interessante o cron. Ele acorda uma vez por minuto para ver se existe
algum trabalho a ser feito. Caso exista, ele o faz. Depois volta a dormir at o momento
da prxima verificao.
Para programar as tarefas que devem ser realizadas pelo cron, basta editar o crontab do
usurio atravs do comando:
# crontab e
E seguir a sintaxe especificada no prprio arquivo, agendando minutos, horas, dias, ms,
dia da semana e tarefa a ser executada (lembre-se de deixar uma linha em branco no final
do arquivo, para garantir que o ltimo comando seja lido). Assim, possvel automatizar
qualquer tarefa, como um backup, por exemplo.
Sinais do sistema
Um sinal uma notificao de software enviada por um processo ou pelo sistema opera-
Captulo 6 - Shell
# kill -9 pid
99
# nohup arquivo
11 A sada do arquivo redirecionada para o arquivo nohup.out no diretrio home
do usurio.
Os processos concorrentes so de natureza assncrona, ou seja, no h uma ligao necessria entre a execuo destes processos. Alguns processos podem necessitar de informaes sobre o estado de outros processos que esto sendo executados simultaneamente.
Para passar informaes entre processos, so utilizados sinais; um sinal uma notificao
de software enviada por um determinado processo ou pelo sistema operacional, relativo a
um evento neles ocorrido. Outro processo pode utilizar este sinal para realizar uma ao.
O tempo de vida de um sinal o intervalo entre sua gerao e seu envio. Um sinal que foi
gerado, mas no foi enviado, um sinal pendente. Um determinado processo recebe um
sinal se tiver ativado um manipulador de sinais, quando o sinal for enviado. Um programa
ativa um manipulador de sinais atravs de uma chamada de sistema com o nome do
programa do usurio. Um processo pode temporariamente bloquear o recebimento de um
sinal, de forma que este sinal bloqueado no afete a execuo do processo, mesmo que seja
enviado. Bloquear um sinal diferente de ignorar um sinal. Quando um processo bloqueia
um sinal, o sistema operacional no envia o sinal at que o processo o desbloqueie. De outra
forma, um processo pode ignorar um sinal em vez de bloque-lo; neste caso, o processo
manipula o sinal recebido e o descarta, sem utiliz-lo. Na Tabela 6.1 so apresentados
alguns desses sinais.
Alguns sinais tambm so gerados por comandos no Shell, como o comando kill, utilizado
quando queremos terminar um processo. Ele utiliza o nmero associado ao processo para
termin-lo. A sintaxe do comando :
# kill pid
Aps a digitao, ao teclar Enter, a seguinte mensagem ser mostrada informando que o
processo foi terminado:
# kill -9 pid
[1]+ Killed process
Este comando far com que a terminao do processo seja realizada de maneira imediata,
Introduo ao Linux
100
Sinal
Exemplo
ABRT
Aborta o processo.
ALRM
CHLD
CONT
Exemplo
FPE
ILL
INT
Sinal de Ctrl-C.
KILL
PIPE
SEGV
STOP
TERM
TSTP
TTIN
TTOU
URG
Para manter a execuo de um processo aps o logout, deve ser usado o comando nohup:
# nohup arquivo
Este comando executa o arquivo de forma que no seja encerrado com a sada da sesso de
trabalho. A sada do arquivo redirecionada para o arquivo nohup.out no diretrio home do
usurio, o que muito til, por exemplo, quando se quer executar programas longos, e h
necessidade de se ausentar e terminar a sesso.
Visualizao de processos
Quando um processo est sendo executado, podemos usar o seu nmero de identifi-
cao para verificar o estado da sua execuo por meio do comando ps.
# ps
# ps aux
# ps l
11 Lista de informaes: UID, PID, PPID, PRI, STAT, TIME, COMM, CPU, TTY, INTPRI, SZ e
WCHAN.
11 Usado tambm em canalizaes para produo de filtros.
Captulo 6 - Shell
Tabela 6.1
Sinais do sistema.
Sinal
101
Variveis de ambiente
So utilizadas para manipular as posies de armazenamento na memria do computador.
possvel acessar essa posio, armazenando, lendo, modificando o dado l gravado.
11 Uma varivel tem um nome e um valor a ela associado.
11 Os contedos das variveis so preenchidos atravs do comando de atribuio (=).
# teste=10
# echo $teste
Outros exemplos:
Introduo ao Linux
# X=1
# X=teste
# X=varias palavras
# X=varias palavras
# X=$Y unidades
da varivel Y)
102
#funciona
#funciona
#erro
#funciona
# o $Y (ser substitudo pelo valor
# X=$Y unidades
Quando fazemos login no sistema, vrias aes automticas so desencadeadas, tais como
leituras de arquivos, execuo de programas, etc. Estas aes acontecem para configurar
um ambiente no qual o usurio realizar suas tarefas. A configurao padro (default) do
ambiente definida previamente em alguns arquivos, por meio, entre outros, de variveis
de ambiente. Elas so usadas pelo Shell para armazenar informaes de usos especficos.
Na Tabela 6.2, so mostradas algumas dessas variveis.
Descrio
PATH
HOME
SHELL
Contm o tipo de Shell padro para aquele usurio especfico. Pode ser configurado no arquivo /etc/passwd.
PWD
RANDOM
IFS
# echo $SHELL
Devemos instruir o comando echo para mostrar o contedo da varivel de ambiente SHELL
e no a prpria palavra SHELL. Isso indicado com o uso do caractere $ antes do nome da
varivel de ambiente.
O comando set nos permite visualizar todas as variveis locais disponveis no Shell corrente.
Para visualizarmos as variveis de ambiente globais do Shell corrente, devemos usar o
comando env. O comando set tambm pode ser usado para definir o valor de uma varivel
de ambiente. possvel usar o comando unset para eliminar uma varivel, em vez de defini-la com o valor null. uma tarefa relativamente simples customizar o seu ambiente no
Linux. Voc pode visualizar como est configurado o seu ambiente digitando set. Uma das
principais variveis de ambiente a UID, utilizada pelo sistema para identificar os usurios
e suas permisses. Algumas variveis, no entanto, so do formato read-only, sendo necessrias permisses de administrador para alter-las. Desta forma, permanecem protegidas e
mantidas sem alteraes aps serem definidas. Para declararmos uma varivel de ambiente
como read-only, devemos usar o comando readonly ou o comando declare com a opo -r.
O administrador pode, se necessrio, tornar variveis de ambiente read-only no arquivo
/etc/profile. O objetivo fornecer uma viso do modo como o ambiente do usurio definido
Captulo 6 - Shell
Tabela 6.2
Algumas variveis
de ambiente
do Shell.
Varivel
# (protege as
aspas duplas)
# echo Estamos estudando o uso das aspas.
# (no protege a
si mesma)
As aspas duplas tambm so usadas para isso, mas no protegem $ e \.
# protege as
aspas duplas
# echo Estamos estudando o uso das aspas.
# no protege a
sim mesma
11 As aspas duplas tambm so usadas para isso, mas no protegem $, e \
Introduo ao Linux
104
# no protege a
sim mesma
Exerccio de fixao 1 e
Visualizao de processos
Utilizando a pgina de manual do comando ps, descreva a diferena entre o comando
ps aux e ps ef. Em que sintaxe cada um deles visto?
Exerccio de fixao 2 e
Visualizao de processos em tempo real
Qual comando usado como um monitor do sistema que mostra a atividade do processador
em tempo real, exibindo as tarefas que esto sendo executadas na CPU e fornecendo uma
interface amigvel para o gerenciamento de processos?
FF grep
FF mkdir
FF os
FF top
FF egrep
Exerccio de fixao 3 e
Visualizao de rvore de processos
Qual comando usado para visualizar a rvore de processos?
FF apple
FF tree
FF pstree
FF bg
FF fg
Shell Script
Shell Script uma linguagem de programao baseada no conceito de interpretao, que
pode ser utilizada na linha de comando do Shell. Os programas escritos nessa linguagem
so chamados de scripts.
11 Com os comandos separados por ;:
bkk.tar /var/log/*.log
# file arquivo
Com o objetivo de automatizar sequncias de tarefas que sero repetidas vrias vezes,
encapsulamo-nas em arquivos executveis especiais. Neles podemos escrever sequncias
de comandos do sistema operacional, tal como fazemos no Shell, adicionando tambm a
lgica de programao.
Por exemplo, uma das atividades rotineiras de um administrador de sistemas Linux
realizar operaes de backup, mantendo cpias de segurana dos arquivos importantes.
pasta /var/log/, e compacta-los, gerando um arquivo com extenso .tar , colocando-o em um
diretrio chamado backup, na rea de usurio. Uma sequncia possvel de comandos a ser
digitada no Shell seria a seguinte:
# cd /home/usuario/backup
# tar cvf
Captulo 6 - Shell
Supondo que vamos fazer um backup bem simples de, por exemplo, arquivos .log gerados
bk.tar /var/log/*.log
105
Supe-se aqui que o usurio atual seja chamado de usuario e que exista o diretrio
backup j previamente criado.
Se tal atividade for realizada periodicamente, interessante que seja criado um programa
para automatizar essa tarefa. No Shell, os programas so interpretados, e por essa caracterstica so chamados de scripts. Assim, os scripts nada mais so do que programas contendo sequncias de comandos que so interpretados pelo Shell, linha aps linha. O script
um arquivo executvel, com diretrizes na linha inicial que diz qual Shell dever interpretar
aquela sequncia de comandos quando o arquivo for executado. Essa linha deve ser a
primeira linha do script e comea com os caracteres #! (chamados de shebang) seguidos do
caminho na rvore de diretrios no qual o Shell ser encontrado e qual ser ele.
O sistema de arquivos do Linux identifica um script atravs do contedo dos seus dois primeiros bytes. No entanto, nem todos os arquivos so identificados atravs do contedo dos
seus dois primeiros bytes. Para verificar o tipo de um arquivo, pode-se utilizar o comando
file, cuja sintaxe a seguinte:
# file arquivo
Para indicar o Shell bash como o interpretador daquela sequncia de comandos contida no
arquivo, supondo que o interpretador bash esteja no diretrio /bin, devemos ter a primeira
linha como:
#!/bin/bash
Podemos ento, criar um arquivo chamando de, por exemplo, scriptBackup, e nele colocar
os comandos necessrios para realizar o backup dos arquivos:
#!/bin/bash
cd
/home/usuario/backup
comentrio
tar cvf
bk.tar /var/log/*.log
Por padro, os comandos so colocados um em cada linha. Para coloc-los na mesma linha
basta separ-los com ;. Para colocar linhas que no devem ser interpretadas, ou seja,
acrescentar comentrios no script, basta introduzir o caractere # antes da frase.
Para executar a sequncia de comandos do script basta executar o arquivo na linha de
comando do Shell:
# ./scriptBackup
Lembre-se que o arquivo deve ser executvel. Para tanto, devemos dar a permisso
de x para o arquivo, usando, por exemplo, o comando # chmod +x scriptBackup.
Introduo ao Linux
Podemos ainda, incrementar o script, adicionando mensagens para que o usurio acompanhe o que est sendo feito e tambm, por exemplo, incrementar o nome do arquivo de
backup com a data, usando o comando date.
#!/bin/bash
echo Realizando o backup dos arquivos de Log
cd /home/usuario/backup
106
tar cvf
#!/bin/bash
echo Informaes do usurio atual
cat /etc/passwd | grep `whoami`
Temos, na linha 3, trs comandos que devem ser executados nesta ordem. O comando
cat listar o arquivo passwd que contm informaes sobre todos os usurios do sistema;
o resultado do comando servir de entrada para o comando grep, que tem por propsito
filtrar todas as linhas que contenham o padro do parmetro. No entanto este padro s
ser conhecido aps a execuo do comando whoami, que busca qual o usurio atual. Por
isso ele est entre crases.
Exerccio de fixao 4 e
Criando um script simples
Crie um script para remover todos os arquivos texto do diretrio /home do usurio.
Se necessrio, crie previamente alguns arquivos de texto no diretrio.
No se esquea de alterar o script para que ele se torne executvel (#chmod +x script).
tador. possvel acessar essa posio armazenando, lendo e modificando o dado nela
gravado. Uma varivel tem um nome e um valor associado a ela. Os contedos das variveis so preenchidos atravs do comando de atribuio =.
No deve haver espao entre os elementos de uma atribuio.
# teste=10
Captulo 6 - Shell
# echo $teste
107
Outros exemplos:
# X=1
#funciona
# X=teste
# X=varias palavras
# X=varias palavras
#funciona
#erro
#funciona
# X=$Y unidades
valor da varivel Y)
# X=$Y unidades
As variveis so usadas para manipular as posies de armazenamento na memria do computador. Assim, atravs da varivel possvel acessar essa posio, armazenando, lendo,
modificando o dado l gravado. Uma varivel tem um nome e um valor associado a ela.
Assim, por exemplo, podemos ter uma varivel de nome teste com o valor 10 como seu
dado ou contedo.
Os contedos das variveis so preenchidos de duas formas. Uma delas atravs de um
comando de atribuio (=). Por exemplo:
# teste=10
de uma atribuio
Para visualizar o contedo de uma varivel, podemos usar o comando echo:
# echo $teste
Para indicar ao Shell que aquela letra ou sequncia de caracteres deve ser interpretada
como uma varivel, basta us-la ao longo do programa.
O nome de uma varivel atribudo pelo programador. Por padro, o nome deve ser
representativo do que ela vai armazenar. No entanto, no se pode nomear uma varivel
com nomes j usados em comandos ou itens da sintaxe da linguagem script. Os nomes de
variveis comeam sempre com uma letra e so seguidos de um ou mais nmeros e letras.
No so permitidos caracteres especiais para construir o nome de uma varivel, apenas o
caractere underline (_), como por exemplo, soma_total.
Apesar de no ser necessrio, por ser caracterstica prpria das linguagens scripts, as
variveis podem ser declaradas antes de serem usadas. Isso prtica em programas
grandes, com uma grande quantidade de variveis. A declarao se d com o comando
declare e acontece de praxe no incio do programa. Assim por exemplo podemos criar
uma varivel, atribuir um valor a ela e mandar mostrar na tela, como no exemplo abaixo:
#!/bin/bash
# este script declara uma varivel
Introduo ao Linux
declare curso
108
curso=shell script
echo Estamos estudando o contedo de $curso
# X=1 #funciona
# X=teste #funciona
# X=varias palavras #erro
# X=varias palavras #funciona
# X=$Y unidades
varivel Y)
# X=$Y unidades
Um recurso poderoso do bash tambm pode ser usado na atribuio a uma varivel: a utilizao da sada de um comando, que pode ser feita de duas formas, utilizando `<comando>`
(back ticks ou crases), ou a forma $(<comando>), conforme o exemplo:
# Y=$(date)
# Z=`uptime`
Um cuidado deve ser tomado com as formas citadas acima: o bash no preserva a formatao da sada destes comandos, eliminando, assim, tabulaes e quebras de linhas.
Uma varivel criada dentro de um script s visvel e manipulvel dentro desse script.
11 Chamada de varivel local: todas as variveis criadas nos scripts.
# X=1
Outras variveis podem se tornar visveis dentro e fora de um script, visveis em todo o
ambiente de um Shell.
11 Chamadas de variveis de ambiente.
11 Criadas atravs do comando export:
# export X
# export Y=/home/usuario/teste
Chamamos de escopo de uma varivel o espao onde ela se torna visvel e pode ser
utilizada. Uma varivel criada dentro de um script s visvel e manipulvel dentro deste
script; outras variveis podem se tornar visveis dentro e fora de um script, visveis em todo
o ambiente de um Shell. Ao primeiro tipo de varivel chamamos de variveis locais e, ao
segundo, chamamos de variveis de ambiente. Para criar uma varivel local, basta lhe
atribuir um valor. Porm, para criar uma varivel de ambiente que ser utilizada no Shell corrente e em todos os scripts ou sub-shells lanados a partir do Shell atual, necessrio usar
global, ou para criar uma varivel local, conforme nos exemplos abaixo:
# X=1
# export X
# export Y=/home/usuario/teste
Captulo 6 - Shell
o comando export. Este comando pode ser utilizado para transformar uma varivel local em
109
Ao iniciar um Shell, provvel que muitas variveis de ambiente j estejam definidas. Para
list-las, pode-se utilizar os comandos env ou printenv. Para listar todas as variveis (locais e
de ambiente), utilize o comando set sem argumentos.
Expresses e testes
1 formato:
((expresso))
Usado quando ser avaliada uma operao aritmtica.
Por exemplo, para fazer com que uma varivel y receba o contedo da soma 5 + 6.
((y=5 + 6))
As expresses em Shell so usadas em trs formatos:
((expresso))
Usada quando ser avaliada uma operao aritmtica. Por exemplo, para fazer com que
uma varivel y receba o contedo da soma 5 + 6, fazemos:
((y=5 + 6))
Assim, so suportadas vrias operaes aritmticas, tal como mostrado na Tabela 6.3.
Operao
Sinal
Exemplo
Adio
Subtrao
res=$((4 - 1)) ou
Multiplicao
Exponenciao
**
res=$((2**3)) ou ((res=2**3))
#resultado=8
Diviso de inteiros
#resultado=2
Resto
S=$((5 % 2))
Deslocamentos de
bits esquerda
<<
Deslocamentos de
bits direita
>>
#resultado=2
((res=4-1))
ou ((res=5%2))
# resultado=1
++ --
** * / %
+ -
Introduo ao Linux
Por exemplo, na expresso ((r=3 2 * 4)) o operador * ser executado primeiro. Assim, o
110
Tabela 6.3
Operaes
aritmticas.
Tabela 6.4
Operaes de comparao aritmtica.
Operao
Sinal
Exemplo
Igualdade
==
(($X = = $Y))
Desigualdade
!=
(($X ! = $Y))
Maior que
>
Menor que
<
Maior ou igual
>=
Menor ou igual
<=
Note que resultado de uma operao de comparao ser 0 (zero) ou 1 (um), dependendo
da comparao resultar em falso ou verdadeiro. Exemplo:
# resultado: 1
#resultado: 0
<=
>=
<
>
==
! =
Tabela 6.5
Principais operaes lgicas.
Operao
Sinal
Exemplo
E lgico
&&
OU lgico
||
(condio1) || (condio2)
Negao (NOT)
!(condio1)
Tabela 6.6
Opes de
parmetro.
Operao
Sinal
Exemplo
Igualdade
- eq
[ 5 -eq 5 ]
Desigualdade
- ne
[ 5 -ne 4 ]
Maior que
- gt
[ 6 -gt 5 ]
Menor que
- lt
[ 5 -lt 6 ]
Maior ou igual
- ge
[ 6 -ge 5 ]
Menor ou igual
- le
[ 5 -le 6 ]
Captulo 6 - Shell
111
Alm de ser usado com variveis/nmeros, o comando test tambm faz operaes com
-a 5 -le 7; echo $?
-a 5 -le 7 ]; echo $?
forma alternativa
Expresses e testes (3 formato):
[[expresso]]
Esse formato usado para testar atributos de um arquivo ou diretrio, fazer comparaes com strings e algumas comparaes numricas. Exemplo:
Tabela 6.7
Outras opes.
Caracterstica
Caracterstica
-d
um diretrio
-f
um arquivo normal
-e
-r
-n
-w
-N
-ot
Introduo ao Linux
-a 5 -le 7; echo $?
-a 5 -le 7 ]; echo $?
# forma alternativa
Na qual temos uma sequncia de testes onde verifica-se se o contedo da varivel $HOME
diferente (!=) de /usr. No caso, sim. Ou seja, o resultado 0. O prximo teste : 5 menor
que (-le) 7? Sim, o resultado 0. O parmetro a, quando usado com expresses, significa
que deve ser feita uma operao lgica E entre o resultado do que vem antes dele com o
112
Tabela 6.8
Testes em pares
de arquivos.
resultado do que vem depois dele. A operao E s retorna verdadeiro se ambos forem verdadeiros. Com o resultado dos dois lados zero, o resultado da operao tambm ser zero,
ou seja, tudo verdade no teste.
[[ expresso ]]
Esse formato usado para testar atributos de um arquivo ou diretrio, fazer comparaes
com strings e algumas comparaes numricas. Por exemplo:
Comando read
11 L um valor da entrada padro e coloca o contedo na varivel indicada.
#!/bin/bash
echo Digite seu nome
read nome
echo Bom dia $nome
No exemplo acima, o comando echo solicita ao usurio que ele digite o nome. O comando
read fica a espera de que algo seja digitado e seja teclado enter. Quando isso acontece,
atribui aquele contedo varivel nome. O comando echo ento escreve esse contedo.
O comando read pode tambm acumular a funo que seria do comando echo, de mostrar
#!/bin/bash
read -p Digite seu nome: nome
echo Bom dia $nome
Usado com o parmetro -s o comando read oculta a entrada dos caracteres. Isso serve
#!/bin/bash
read -p Usurio: usuario
read -p Senha: -s senha
echo e \n O seu usurio $usuario e sua senha $senha
Captulo 6 - Shell
113
11 A opo e no comando echo faz com que seja interpretada a mudana de linha (\n).
#!/bin/bash
echo Voc est entrando em uma rea segura. Deseja continuar?
[sn]
read resposta
test $resposta = n && exit
read -p Usurio: usuario
read -p Senha: -s senha
echo -e \n O seu usurio $usuario e sua senha $senha
Forma alternativa do comando:
test $resposta = n
[ $resposta = n ]
Neste exemplo, o comando test verifica se o valor da varivel resposta n; se for, aplica o
comando exit, que encerra a execuo do script; seno, continua a executar o script.
No exemplo acima podemos substituir o comando test $resposta = n por
[ $resposta = n ]. O resultado ser o mesmo.
# ./soma 3 9
Ao interpretar essa linha de comando, o Shell atribui os valores ali encontrados nos
parmetros posicionais, comeando do valor 0 e indo at o valor 9.
11 Parmetro 0 nome do programa.
Introduo ao Linux
11 Parmetro 1 o nmero 3.
114
11 Parmetro 2 o nmero 9.
Um parmetro um nome, nmero ou caractere especial que armazena um valor. Um parmetro de linha de comando chamado de parmetro posicional. So usados para passar
valores junto com o nome do programa na linha de comando. Esses valores so armazenados nos parmetros especiais e podem ser usados dentro do script. Assim, para elaborar
um script que se comporta como uma calculadora, somando quaisquer dois nmeros,
podemos deixar que o usurio de nosso script diga quais so esses dois nmeros quando
for executar o script:
# ./soma 3 9
11 Assim, soma seria o script, 3 e 9 seriam os nmeros a serem somados.
11 Ao interpretar essa linha de comando, o Shell atribui os valores ali encontrados nos parmetros posicionais, comeando do valor 0 e indo at o valor 9. Assim, o primeiro valor, que
o nome do programa armazenado no parmetro 0, o nmero 3, no parmetro 1 e o 9 no
parmetro 2. Para acessar o contedo de cada parmetro basta, por exemplo, usa-lo com o $.
#!/bin/bash
echo o nome do programa passado no parmetro 0 : $0
echo o parmetro 1 recebeu o valor: $1
echo o parmetro 2 recebeu o valor: $2
Para acessar o contedo de cada parmetro basta, por exemplo, us-lo com o $.
#!/bin/bash
echo o nome do programa passado no parmetro 0 : $0
echo o parmetro 1 recebeu o valor: $1
echo o parmetro 2 recebeu o valor: $2
$#
$@
Captulo 6 - Shell
115
Introduo ao Linux
116
Parmetro
Descrio
Tabela 6.9
Parmetros
do Shell.
Roteiro de Atividades 6
Atividade 6.1 Exibindo processos em estados especficos
Pesquise as opes do comando ps e crie um comando para listar apenas os identificadores
e nomes dos processos que esto no estado R (running).
Verifique tambm o comando top, uma verso interativa do comando ps, atualizando a listagem de processos a cada n segundos e ordenando-os por uso de CPU e memria.
Complete o script que l trs nmeros, armazena-os em trs variveis (usando o comando
read) e escreve na tela a soma e a subtrao deles.
#!/bin/bash
echo Digite o primeiro nmero
117
Introduo ao Linux
118
7
Aprender a controlar o fluxo de execuo sequencial num script com o uso de
estruturas de deciso e a criar mscaras ou padres de pesquisas na busca por
informaes atravs de expresses regulares.
conceitos
Estruturas de deciso
11 So usadas para direcionar o fluxo de execuo do programa.
Comando if
Sintaxe do comando:
if <condio>
then
<comandos>
fi
Semntica do comando:
11 Avalia-se a condio.
11 Se, aps avaliada a condio, o valor retornado for:
22 Verdadeiro: executam-se os comandos dentro do if.
22 Falso: no se executam os comandos.
objetivos
Shell Script
119
if <condio>
then
<comandos>
fi
Se a condio, aps ser avaliada, retornar falso, os comandos do if no sero executados;
se a avaliao gera um valor verdadeiro, os comando dentro do if sero executados.
A condio pode ser o resultado de um comando:
#!/bin/bash
if ls /home
then
echo Este o contedo da pasta home
fi
11 No caso, a condio do if o retorno do comando ls /home.
11 Se existir a pasta home, ele a lista e retorna comando bem-sucedido, fazendo com que
a condio do if seja verdadeira. Assim, o comando echo executado.
A condio pode ser tambm o resultado de uma comparao aritmtica. Por exemplo:
#!/bin/bash
read -p Digite um nmero: a
read -p Digite outro nmero: b
if (( a + b > 3 ))
then
echo A soma dos dois valores maior que 3
fi
Neste script so lidos dois valores e, a partir da, executada a expresso da condio
(a + b > 3). Se a expresso for avaliada como verdadeira, o comando echo ser executado.
A condio pode ainda ser qualquer padro de expresso e teste, visto na unidade anterior. O exemplo abaixo testa se o arquivo bash existe no diretrio bin:
#!/bin/bash
Introduo ao Linux
if [ -a /bin/bash]
120
then
echo o arquivo existe
fi
#!/bin/bash
if ls /home
then
echo Este o contedo da pasta home
fi
A condio do if o retorno do comando ls /home.
11 Se existir a pasta home, ele a lista e retorna comando bem-sucedido, fazendo com que
a condio do if seja verdadeira e, por consequncia, executando o comando echo.
if <condio>
then
<comandos
else
<comandos
fi
Semntica do comando:
11 Se a condio for avaliada como verdadeira: executam-se os comandos do if.
11 Se a condio for avaliada como falsa: executam-se os comandos do else.
A forma bsica do comando if permite a execuo de um grupo de comandos, caso uma
condio ou grupo de condies sejam verdadeiras. No entanto, bastante comum ser
necessrio executar um grupo de comandos quando uma condio for verdadeira e outro
grupo de comandos quando a condio for falsa. Para tanto, so utilizados os comandos
if ... else, com essa sintaxe:
if <condio>
then
<comandos
else
executados caso a condio seja falsa>
fi
Por exemplo:
#!/bin/bash
echo
read -p Digite um nmero: num
<comandos
121
if [ $num -lt 10 ]
then
echo O nmero $num menor que 10
else
echo O nmero $num maior ou igual a 10
fi
Neste script lido um nmero. Se esse nmero for menor que 10 (-lt), ou seja, a ava-
if <condio>
then
<comandos executados caso a condio seja verdadeira>
elif <outra condio>
then
<comandos executados caso a outra condio seja verdadeira>
else
<comandos executados caso nenhuma opo seja verdadeira>
fi
Por exemplo:
#!/bin/bash
read -p Digite um nmero: num
if [ $num -lt 10 ]
then
echo O nmero $num menor que 10
elif [ $num -gt 10 ]
Introduo ao Linux
then
122
#!/bin/bash
read -p Digite um nmero: num
if [ $num -lt 10 ]
then
echo O nmero $num menor que 10
else
echo O nmero $num maior ou igual a 10
fi
11 L-se um nmero (read).
11 Se esse nmero for menor que 10 (-lt), executa-se o primeiro comando echo.
11 Caso contrrio, executa-se o segundo comando echo, aquele que est sob o else.
if <condio>
then
<comandos executados caso a condio seja verdadeira>
elif <outra condio>
then
<comandos executados caso a outra condio seja verdadeira>
else
<comandos executados caso nenhuma opo seja verdadeira>
fi
Semntica do comando:
11 Se a condio do if for verdadeira, executam-se os comandos dele.
11 Caso contrrio, avalia-se a condio do elif.
22 Se for verdadeira: executam-se os comandos dele.
22 Caso contrrio: executam-se os comandos do else.
#!/bin/bash
read -p Digite um nmero: num
if [ $num -lt 10 ]
then
echo O nmero $num menor que 10
Exemplo:
123
q
elif [ $num -gt 10 ]
then
echo O nmero $num maior que 10
else
echo O nmero igual a 10
fi
Esse script desmembra o script de verificao anterior, agora apontando se o nmero
menor, maior ou igual ao nmero 10.
Exerccio de fixao 1 e
Estrutura de deciso
Complete o script abaixo para que receba como parmetro dois nmeros e verifique qual o maior.
#!/bin/bash
[
>
Comando case
Sintaxe do comando:
case $variavel in
valor1) <comandos>
;;
valor2) <comandos>
;;
valor) <comandos>
;;
esac
Introduo ao Linux
Semntica do comando:
124
11 ?
22 Um caractere qualquer.
Formam um padro de casamento.
Exemplo:
11 o padro st* casaria com valores tais como start, stop, st ou stabcd
11 J o padro k? casaria apenas com valores que iniciassem com a letra k e tivessem
exatamente mais um caractere, como, por exemplo, os valores k1 e kO.
No comando case, o * pode ser usado como forma de else ou valor default.
11 Se o valor da varivel no casou com nenhum outro padro anterior, casar com o *.
Exemplo:
case $valor in
start) echo iniciando
;;
stop) echo parando
;;
*)echo valor no encontrado, use apenas start ou stop
;;
esac
O comando case prov outra forma de execuo condicional, sendo apropriado quando for
necessrio executar um comando de acordo com uma opo (tipicamente, um valor contido
em uma varivel). A sintaxe do comando :
case $variavel in
valor1) <comandos>
;;
valor2) <comandos>
;;
valor) <comandos>
;;
esac
valores exatos como os usados no exemplo acima, podemos utilizar tambm caracteres curinga,
como o * e ? para formar um padro de casamento. Por exemplo, o padro st* casaria com
valores tais como start, stop, st ou stabcd ( * indica zero ou mais caracteres quaisquer).
J o padro k? casaria apenas com valores que iniciassem com a letra k e tivessem exatamente
mais um caractere como, por exemplo, os valores k1 e kO (? indica um caractere qualquer).
No exemplo, o contedo da varivel comparado aos valores valor1, valor2 e valor3. Alm de
125
Uma tcnica utilizada em blocos case colocar, como ltimo padro, o * como uma forma
de else, ou seja, se o valor da varivel no casou com nenhum outro padro anterior, casar
com o *, conforme mostra o exemplo abaixo:
case $valor in
start) echo iniciando
;;
stop) echo parando
;;
*)echo valor no encontrado, use apenas start ou stop
;;
esac
Expresses regulares
As expresses regulares so usadas para descrever formalmente os padres de texto.
Com o seu uso possvel criar uma mscara ou padro de pesquisa para buscar informaes.
11 As pesquisas se tornam mais abrangentes e mais poderosas.
Os padres so descritos por meio de metacaracteres.
11 Se a pesquisa pelo padro gera um resultado positivo, diz-se que o texto casou com
a expresso.
11 Considerando um extrato do arquivo /etc/passwd.
11 Usando o comando egrep.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
couchdb:x:113:124:CouchAdministrator,,,:/var/lib/couchdb:/bin/bash
lightdm:x:114:125:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:115:126:comanagement daemon,,,:/var/lib/colord:/bin/false
Introduo ao Linux
usuario1:x:1000:1000:Joao da Silva,,,:/home/joao:/bin/bash
126
usuario2:x:1001:1001:Jose da Silva,,,:/home/jose:/bin/bash
As expresses regulares so usadas para descrever formalmente os padres de texto. Com
seu uso possvel criar uma mscara ou padro de pesquisa para buscar informaes.
Assim, as pesquisas se tornam mais abrangentes e mais poderosas.
Os padres so descritos atravs de metacaracteres. Se a pesquisa pelo padro gera um resultado positivo, diz-se que o texto casou com a expresso. Nas Tabelas 7.1 a 7.4 so abordados
alguns deles. Para exemplificar cada um desses elementos, tomamos como base o arquivo
/etc/passwd. Em um extrato feito como exemplo, consideraremos este conjunto de linhas:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
couchdb:x:113:124:CouchAdministrator,,,:/var/lib/couchdb:/bin/bash
lightdm:x:114:125:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:115:126:comanagement daemon,,,:/var/lib/colord:/bin/false
usuario1:x:1000:1000:Joao da Silva,,,:/home/joao:/bin/bash
usuario2:x:1001:1001:Jose da Silva,,,:/home/jose:/bin/bash
No qual os campos, separados por :, so respectivamente: login de usurio, senha, UID,
GID, comentrios do usurio tal como nome, diretrio home e shell do usurio.
Tabela 7.1
Descrio de
padres por metacaracteres.
Para exemplificar cada um dos casos do uso das expresses, pegamos emprestado o
comando egrep, que tem suporte nativo para expresses regulares, recuperando linhas no
arquivo que seguem ou casam com aquele padro.
Metacaractere
Significado
Exemplo
Semntica do comando
# egrep ^u etc/passwd
Listas
Significado
[abc]
[a-d]
[^abc]
(joao|jose)
usuario2:x:1001:1001:Jose da Silva,,,:/home/jose:/bin/bash
127
Exemplo
Semntica do comando
Introduo ao Linux
Tabela 7.2
Descrio de
padres por metacaracteres.
128
Quantidade
Significado
a{2}
a{2,4}
a{2, }
a?
a*
a+
Exemplo
Semntica do comando
Exemplo
Semntica do comando
# egrep 1+ /etc/passwd
Tabela 7.3
Descrio de
padres por metacaracteres.
Curingas
Significado
.*
Exemplo
Semntica do comando
Operador =~
As expresses regulares podem ser combinadas da forma que for necessria para
cumprir-se a tarefa desejada. Podem inclusive ser usadas nos scripts que criamos; basta
que seja usado o operador de expresso regular: =~, como por exemplo:
#!/bin/bash
senha=shellscript
if [[
$senha =~ ^s.e.*t$
]]
then
echo $senha a senha correta
else
echo $senha no a senha correta
fi
Tabela 7.4
Descrio de
padres por
metacaracteres.
129
comea com s, seguido por um caractere qualquer (.), seguido da letra e, seguido de qualquer nmero de caracteres, terminando com t ( $senha =~ ^s.e.*t$ ). Este padro casa
com o valor shellscript da varivel, e portanto escreve dizendo que a senha correta.
Comando sed
O comando sed recebe como entrada o valor da varivel senha (atravs do pipe |) e subs-
titui as letras ll por LL, alm de colocar o resultado dentro da prpria varivel senha.
Outros tipos de expresses regulares so ainda usados, como por exemplo, nos casos
de substituio, com o uso de comando sed.
#!/bin/bash
senha=shellscript
echo senha antes: $senha
senha=`echo $senha | sed s/ll/LL/`
echo senha depois: $senha
O comando sed recebe um arquivo ou um valor de uma entrada padro e substitui nele o que
est escrito na expresso. No exemplo acima, o comando sed recebe como entrada o valor da
varivel senha (atravs do pipe |) e substitui as letras ll por LL e coloca o resultado dentro
da prpria varivel senha.
Comando tr
Sua funo receber dois conjuntos de caracteres e substituir as ocorrncias dos carac-
#!/bin/bash
senha=shellscript
echo senha antes: $senha
senha=`echo $senha | tr a-z A-Z`
echo senha depois: $senha
No qual a varivel senha tem seus todas as suas letras traduzidas de minsculas para maisculas (tr a-z A-Z).
Exerccio de fixao 2 e
Metacaracteres
Acesse o arquivo /etc/passwd utilizando o comando egrep. Crie comandos que selecionem
Introduo ao Linux
Roteiro de Atividades 7
Atividade 7.1 Verificando a existncia de arquivos
Crie um script que recebe como parmetro um nome de arquivo e verifica se este arquivo existe.
#!/bin/bash
if [
$1 ]
#!/bin/bash
if [ $#
then
echo Script que verifica se um arquivo existe
arquivo
else
if [
then
echo Tamanho do arquivo $1: `
else
echo Arquivo inexistente
echo Uso:
131
fi
fi
#! /bin/bash
if [
then
[
chmod
$1
echo O arquivo
echo
foi criado
if [ $opcao =
vi
fi
fi
Introduo ao Linux
#!/bin/bash
132
then
echo Script que verifica se um usurio vlido no sistema.
echo Uso: $0 nome_usurio
else
then
else
fi
fi
#!/bin/bash
then
exit 1
else
then
grep
fi
fi
agenda
133
#!/bin/bash
dir =
quant =
if [
then
echo O diretrio corrente
tem
arquivos
else
echo No h arquivos no diretrio corrente
fi
#!/bin/bash
then
echo Script que verifica qual o maior entre 3 nmeros
echo Entre com os nmeros nos parmetros
echo Uso: $0 numero1 numero2 numero3
exit 1
else
if
&&
then
maior=
elif
Introduo ao Linux
then
134
maior=
else
maior=
fi
&
echo O nmero
o maior deles
fi
contida na segunda.
2. Crie um script que recebe o nome de um arquivo texto como parmetro, verifica se o
usurio possui permisso de leitura deste arquivo e, caso tenha, exiba as seguintes informaes sobre o arquivo: nmero de caracteres, nmero de palavras e nmero de linhas
do arquivo (utilize o comando wc).
A partir da, receba a opo digitada pelo usurio e execute o comando respectivo. Informe
ao usurio caso ele esteja digitando uma opo fora das esperadas.
Crie um script que recebe o nome de um arquivo como parmetro e que, caso este arquivo
135
136
Introduo ao Linux
8
Aprender a controlar o fluxo de execuo dos scripts com o uso de repeties,
programar de forma modular e utilizar variveis compostas do tipo lista.
conceitos
Estruturas de repetio
As estruturas de repetio servem para executar uma sequncia de comandos vrias
Comando for
11 Bastante utilizado em vrias linguagens de programao.
objetivos
Shell Script
137
Semntica do comando:
#!/bin/bash
for (( x=1; x < 10 ; x++ ))
do
echo $x
done
O comando executado at que a varivel x atinja o valor 10.
11 Embora esta seja a forma comumente utilizada em outras linguagens de programao, no bash a forma mais comum de utilizar o comando for percorrendo os
valores de uma lista.
11 Essa lista pode ser de valores de uma varivel ou a sada de um comando.
Introduo ao Linux
138
do
<comando>
done
#!/bin/bash
for x in `seq 1 9`
do
echo $x
done
11 O comando seq utilizado para gerar valores de 1 a 9.
#!/bin/bash
valores=a b c 1 2 3
for i in $valores
do
echo $i
done
11 O comando for percorre toda a lista escrevendo os valores um a um.
11 possvel modificar o valor da varivel IFS para que o bash utilize outro caractere
como separador de elementos de uma lista, tal como no exemplo abaixo:
#!/bin/bash
IFS=;
for i in $lista
do
echo elemento: $i
done
lista=a1;a2;a3;a4
139
Exerccio de fixao 1 e
Alterando o valor da varivel IFS
Modifique o valor da varivel IFS para que o bash utilize outro caractere como separador de
elementos de uma lista.
ou mais vezes mediante uma condio de parada. Eles diferem entre si apenas na
forma de interpretao.
Comando while:
11 O comando while realiza iteraes enquanto a expresso da condio for avaliada
como verdadeira
Comando until:
11 O comando until realiza iteraes at que a expresso da condio seja avaliada
como verdadeira.
Os comandos while e until so utilizados para executar um bloco de comandos enquanto
uma determinada expresso for avaliada como verdadeira.
O comando while realiza iteraes enquanto a expresso for avaliada como verdadeira; j o
comando until funciona at que a condio seja avaliada como verdadeira.
Sintaxe do comando while:
while <condio>
do
<comandos>
done
Sintaxe do comando until:
until <expressao>
do
<comandos>
Introduo ao Linux
done
140
#!/bin/bash
x=1
while ((x < 10 ))
do
echo $x
x=$((x+1))
done
#!/bin/bash
x=1
until ((x >= 10 ))
do
echo $x
x=$((x+1))
done
Funes
11 So usadas na programao para promover a organizao do cdigo em blocos
de funcionalidades.
11 Tambm so chamadas de mdulos, subprogramas ou sub-rotinas.
11 Permitem a reutilizao dos cdigos.
11 Capazes de aceitar valor e retornar resultados.
11 So implementadas dentro dos scripts e definidas por padro no incio deles.
11 O conjunto de comandos fica encapsulado dentro da funo.
11 Para executar os comandos basta invocar o nome da funo ao longo do script.
22 Quando isso acontece, o fluxo de execuo, que estava seguindo linha a linha, de
cima para baixo, deslocado para o contedo da funo.
As funes so usadas na programao para promover uma maior organizao do cdigo
em blocos de funcionalidades (chamados de mdulos), que o encapsula de forma autocontida. Assim, permite-se a reutilizao dos cdigos em outros cenrios.
Cada funo considerada como um subprograma, uma sub-rotina ou um mdulo, capaz de
por padro definidas no incio deles.
A sintaxe de uma funo :
function nome_da_funo ( ){
<comandos>
}
141
#!/bin/bash
x=1
function conta ( )
{
until ((x >= 10 ))
do
echo $x
x=$((x+1))
done
}
11 O cdigo da funo deve necessariamente ser descrito antes de a funo ser invocada.
No exemplo, o primeiro comando a ser executado o comando echo Realizando a contagem
de 1 a 9, pois ele est no fluxo normal da execuo. Aps ele ser executado, passa-se ento
para o prximo comando, que a invocao ou chamada da funo conta. Neste momento,
a execuo desviada para o contedo da funo, executando-se o comando until. Aps
serem feitas as iteraes necessrias dentro do comando de repetio e no havendo
mais comandos dentro da funo, a execuo retorna para o prximo comando depois da
chamada da funo, que a execuo do comando echo Saindo do script. Aps sua exe-
Introduo ao Linux
142
O cdigo da funo deve necessariamente ser descrito antes de a funo ser invocada. Por esse motivo que se aconselha que as funes sejam especificadas no
incio do script.
#!/bin/bash
function conta ( ){
x=$1
until ((x >= 10 ))
do
echo $x
x=$((x+1))
done
}
143
Esta tcnica permite ainda que esse valor seja flexibilizado, ou seja, se for passado o valor 2
junto ao nome da funo, a contagem passa a ser feita a partir de 2 e no mais de 1.
Os parmetros so percorridos tambm como uma lista pelo comando de repetio for.
Por exemplo:
#!/bin/bash
function imprime_parametros ( ){
echo Esses so os parmetros recebidos pela funo
for i in $*
do
echo $i
done
}
imprime_parametros um dois tres quatro
O comando for percorre a lista de parmetros ($*) e o comando echo $i escreve cada
um deles.
Da mesma forma que funo recebe valores atravs dos parmetros, ela capaz de
retornar valor. Na verdade ela retorna o status de execuo. Esse valor retornado
atravs do comando return, como por exemplo:
#!/bin/bash
function impar ( ){
res=$(($1%2))
if [ $res -ne 0 ]
then
return 0
else
return 1
fi
}
impar 3
echo $?
11 Para o valor 3 passado por parmetro, a funo retorna 0.
Introduo ao Linux
144
Assim, ao chamar a funo impar com o parmetro 3, verificado que o resto da diviso de
3 por 2 (res=$(($1%2))) diferente de zero, e portanto, mpar. Assim, executa-se o comando if,
retornando valor 0. Esse valor retornado na varivel $?.
Podemos usar esse conceito para retornar direto na condio do comando if.
Como por exemplo:
#!/bin/bash
function impar ( ){
res=$(($1%2))
if [ $res -ne 0 ]
then
return 0
#sucesso
return 1
#falha
else
fi
}
if impar 3
then
echo nmero mpar
else
echo nmero par
fi
Com o mesmo valor 3 passado por parmetro, e o retorno 0 da funo. A condio
estando com valor 0 implica sucesso do comando. Portanto, aciona o comando echo que
escreve nmero mpar.
Lembrando que para o bash, o valor 0 significa sucesso de execuo de um determinado
comando. Ao colocar a funo impar como condio do if e ela retornando 0, como no caso
do exemplo, significa para o comando que foi bem-sucedido, tornando assim a condio
verdadeira; portanto, ser executado o comando echo nmero mpar.
No entanto, permitido ao comando return retornar apenas valores numricos. Valores
diferentes de nmeros devem ser retornados atravs do comando echo, como por exemplo:
#!/bin/bash
function teste()
A execuo do comando valor=$(teste) faz com a funo teste seja chamada e o retorno
dela seja atribudo varivel valor. Este retorno ditado pelo contedo expresso no
comando echo Aqui retorna-se o valor no numrico da funo. Ao invs de escrever na
tela, ele escreve na varivel.
A execuo do comando valor=$(teste) faz com que a funo teste seja chamada, e o
retorno dela seja atribudo varivel valor. No entanto, este retorno ditado pelo contedo
expresso no comando echo aqui retorna-se o valor no numrico da funo que, quando
usado desta forma na funo, capaz de retornar um valor no numrico. O exemplo
mostra ainda a combinao dos dois retornos, usando tambm o comando return para
retornar na varivel de status S? o valor 23.
Para aumentar ainda mais o conceito de encapsulamento, fazendo com que as funes se
comportem como mdulos independentes e possam ser portadas/reutilizadas em qualquer outro script, desejvel que qualquer varivel usada dentro da funo seja tambm
especfica dela. Esse efeito conseguido atravs do conceito de criao de variveis locais.
Elas tm esse nome porque so vistas somente dentro do escopo da funo a qual foram
declaradas. Por exemplo:
#!/bin/bash
x=20
function conta ( )
{
local x=1
until ((x >= 10 ))
do
echo $x
x=$((x+1))
done
echo imprimindo x dentro da funo: -$x-
}
echo Realizando a contagem de 1 a 9
conta
echo imprimindo x fora da funo: -$x-
echo Saindo do script
Introduo ao Linux
Exerccio de fixao 2 e
Etapas do script
#!/bin/bash
x=20
function conta ( )
{
local x=1
until ((x >= 10 ))
do
echo $x
x=$((x+1))
done
echo imprimindo x dentro da funo: -$x-
}
echo Realizando a contagem de 1 a 9
conta
echo imprimindo x fora da funo: -$x-
echo Saindo do script
Arrays
11 Um array uma varivel que contm uma lista de elementos.
declare -a nome_array
Os valores dentro do array so atribudos de duas formas:
11 Atravs de seus ndices individuais:
nome_array[indice]=valor
e ano, temos trs informaes que se relacionam. desejvel que estejam armazenadas
147
#!/bin/bash
declare -a data
data[0]=10
data[1]=2
data[2]=2012
Colocando-se o dia no campo de ndice 0 do array e ms e ano nos campos de ndice 1 e 2,
respectivamente. Ou ento, desta forma:
#!/bin/bash
declare -a data
data=(10 2 2012)
Preenchendo-se todos os valores ao mesmo tempo.
O acesso a cada valor tambm feito atravs dos ndices. Por exemplo, para mostrar a data
armazenada, podemos usar o comando echo desta forma:
#!/bin/bash
declare -a data
data[0]=10
data[1]=2
data[2]=2012
echo ${data[0]}
echo ${data[1]}
echo ${data[2]}
Ou ento atravs do comando for:
#!/bin/bash
Introduo ao Linux
declare -a data
148
data[0]=10
data[1]=2
data[2]=2012
for num in 0 1 2
do
echo ${data[num]}
done
As chaves so usadas no comando echo ${data[num]} para garantir que aquele ndice
especfico seja considerado.
O nmero de elementos de um array pode ser obtido atravs do comando:
${#nome_array[*]}
Assim, para garantirmos que todos os elementos do array sejam alcanados no comando for,
por exemplo, podemos utilizar este comando para definir o limite.
#!/bin/bash
declare -a data
data[0]=10
data[1]=2
data[2]=2012
tamanho=$((${#data[*]}-1));
#!/bin/bash
declare -a lista
149
total=$(($total-1))
echo Estes foram os valores lidos:
for num in `seq 0 $total`
do
echo ${lista[num]}
done
11 No primeiro comando for so lidos os elementos e armazenados no array lista.
Introduo ao Linux
150
Roteiro de Atividades 8
Atividade 8.1 Verificando permisso dos arquivos
Crie um script que exibe para o diretrio atual a lista de arquivos com permisso de execuo.
Introduo ao Linux
152
9
Instalar aplicaes a partir de seus cdigos-fontes e de arquivos binrios.
conceitos
objetivos
Instalao de aplicaes
153
Linguagens de programao
11 Alto nvel C++, Java.
Introduo ao Linux
As funes de uma biblioteca podem ser utilizadas por um programa de duas maneiras:
estaticamente ou dinamicamente. No modo esttico, o cdigo da funo utilizada pelo programa embutido no binrio do programa. Desta forma, o programa pode ser executado
em um sistema sem que haja a necessidade deste possuir as bibliotecas com as funes
que o programa utiliza. Esta forma apresenta, como desvantagem, o tamanho dos arquivos
binrios dos programas, que passam a ser bem maiores. Por outro lado, um programa pode
utilizar uma biblioteca de funo de maneira dinmica. Neste caso, quando o programa
executado, ele procura no sistema as bibliotecas de que necessita e as carrega na memria.
154
A vantagem de utilizar esta forma que vrios programas podem utilizar a mesma biblioteca j carregada na memria, diminuindo assim o total de memria utilizada pelo sistema
como um todo. Alm disso, programas que utilizam bibliotecas carregadas dinamicamente
possuem arquivos binrios menores.
No Linux, os arquivos contendo bibliotecas dinmicas se localizam geralmente nos diretrios /lib e /usr/lib. Geralmente estes arquivos so nomeados utilizando o padro libXXX.
so[.z.y], onde XXX o nome ou sigla da biblioteca, .so a extenso que identifica bibliotecas
dinmicas e .z.y a verso da biblioteca, que pode ser opcional. Dado um arquivo binrio
qualquer, podemos identificar as bibliotecas que ele utiliza com o comando ldd. O exemplo a
seguir mostra a lista das bibliotecas que o shell bash utiliza:
# ldd /bin/bash
Linux-gate.so.1 => (0xffffe000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7f82000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f7e000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7e46000)
/lib/ld-Linux.so.2 (0xb7fd1000)
A sada do comando apresenta o nome das bibliotecas utilizadas, o caminho completo do
arquivo onde esto contidas e um nmero que identifica a posio de memria que ocupam.
Quando um programa necessita carregar uma biblioteca, ele utiliza um carregador em tempo
de execuo (do ingls run-time linker), conhecido como ld.so. Esse carregador, por sua vez,
precisa identificar os diretrios que contm as bibliotecas. Para isso, ele utiliza o arquivo /etc/
ld.so.cache, que gerado atravs da execuo do comando ldconfig. Este comando, quando
executado, l o arquivo /etc/ld.so.conf, que contm os diretrios do sistema onde os arquivos
de bibliotecas podem ser encontrados. Sempre que o arquivo /etc/ld.so.conf for alterado, o
comando ldconfig deve ser executado para atualizar o arquivo /etc/ld.so.cache.
Quando um programador decide distribuir sua aplicao, ele pode faz-lo de duas maneiras:
distribuir os arquivos-fontes ou a aplicao j compilada. Veremos, a seguir, como proceder para instalar aplicaes distribudas nas duas formas citadas. Vale lembrar que uma
aplicao no composta apenas pelo seu arquivo binrio. Em geral, uma aplicao possui
tambm arquivos de configurao, manuais de sistema e arquivos de documentao, alm
de exemplos. Chamamos esse conjunto de arquivos de pacote.
Reaproveitamento de cdigo:
22 Vantagens: tamanho dos programas fica reduzido e as bibliotecas podem ser compartilhadas com outros programas.
22 Desvantagens: a compilao e execuo do programa s possvel se a biblioteca
estiver instalada no sistema.
11 Em geral, arquivos de bibliotecas possuem o formato: libXXX.so[.z.y].
11 O comando ldd identifica as bibliotecas usadas por uma aplicao.
155
w
Visite o site do
desenvolvedor
Sourceforge: http://
www.sourceforge.net.
Introduo ao Linux
Problema de dependncia:
11 Verificar se todas as bibliotecas necessrias esto instaladas.
Aps descompactar o arquivo, recomendvel ler o contedo de arquivos como INSTALL
e/ou README, caso estejam presentes, pois contm informaes sobre como compilar e
instalar o programa em questo. A verificao do ambiente, necessria para a compilao,
feita atravs de um script auxiliar chamado configure, presente na grande maioria dos
programas. Esse script verifica se todos os pr-requisitos necessrios para a compilao do
programa esto presentes e gera o arquivo Makefile. O script configure geralmente possui a
156
# ./configure
Como vimos, os programadores escrevem programas utilizando funes presentes em
bibliotecas de funes. Mas s as bibliotecas no bastam na hora de compilar um programa,
sendo necessrio tambm que estejam presentes seus arquivos de cabealho (headers).
Nas linguagens C e C++, antes de uma funo ser utilizada, precisa ser definida, ou seja,
necessria uma espcie de descrio contendo o nome da funo, seu tipo e os parmetros
que aceita. Para que no seja necessrio manter no sistema vrios arquivos com todos os
cdigos de funes, os projetistas dessas linguagens pensaram num jeito de separar do seu
cdigo as declaraes das funes. Assim, ao compilar um programa, necessrio apenas
ter essas declaraes, que ficam contidas em arquivos com a extenso .h. Para satisfazer os
pr-requisitos para a compilao de um programa (os arquivos de cabealho e as bibliotecas
que o programa utiliza), ainda ser preciso instalar e compilar as bibliotecas necessrias, ou
instal-las por intermdio de pacotes da distribuio, como veremos adiante.
Compilao
Compilando e instalando a aplicao com Makefile:
11 make
11 make install
Uma vez configurados e satisfeitos os pr-requisitos para a compilao do programa,
podemos iniciar o processo de compilao utilizando o comando make, que na verdade no
um compilador, mas apenas l arquivos especiais (Makefiles), que contm regras para compilar o programa. Essas regras especificam os arquivos-fontes que devem ser compilados,
o compilador que deve ser utilizado, o modo como esses arquivos-fontes devem ser ligados
e os diretrios onde devem ser armazenados ao serem instalados, entre outros aspectos.
Sua utilizao bastante simples, bastando execut-lo no diretrio em que se encontra o
arquivo Makefile, como mostra o comando a seguir.
# make
Instalao
O processo de compilao tanto pode ser rpido, para programas simples, quanto pode
durar horas, dependendo do tamanho e da complexidade do cdigo-fonte e da velocidade
da mquina. Por fim, a instalao propriamente dita feita pelo programa make, usualmente
que faz com que o make copie os arquivos do programa j compilado para os diretrios onde
devero ser instalados no sistema. Para fazer a instalao, basta executar o comando abaixo:
# make install
Isso far com que o make copie os arquivos contendo o cdigo compilado, manuais e
arquivos de configurao para os diretrios adequados. Note que, embora os outros dois
passos possam ser executados com uma conta de usurio comum, este ltimo passo deve
ser feito utilizando a conta root.
Por conveno, os programas compilados pelo administrador so instalados nos diretrios
apropriados (bin, sbin, etc, var) dentro do diretrio /usr/local. Isso feito para que haja uma
utilizando-se a opo install, que em geral especifica uma regra especial dentro do Makefile
separao dos programas instalados dessa forma dos programas instalados por meio de
157
pacotes da prpria distribuio. Vale observar que, ao contrrio destes ltimos, os programas
instalados atravs de cdigo-fonte no so registrados em uma base de dados e no podem
ser removidos e atualizados de forma automtica. Alguns programas podem ser removidos
por intermdio do comando make uninstall. A opo uninstall usualmente especifica uma
regra dentro do Makefile que contm os comandos para remover os arquivos instalados.
Embora essa seja uma prtica comum, no so todos os arquivos-fontes que apresentam essa
opo. Uma boa prtica, ao se instalar programas dessa forma, utilizar um programa auxiliar
como o checkinstall, que registre os arquivos que foram inseridos no sistema, facilitando,
assim, a sua remoo e atualizao no futuro. A instalao de programas utilizando o cdigo-fonte recomendada para os casos em que no exista um pacote binrio pronto na distribuio, ou em casos onde necessrio alterar o cdigo-fonte da aplicao. Para os outros
casos, prefira utilizar os pacotes disponibilizados pela distribuio.
Recomendaes:
Introduo ao Linux
cao, deixando ela pronta para uso, no necessitando de nenhuma biblioteca adicional.
158
contm uma aplicao ou biblioteca, scripts de instalao e dados como sua descrio e
pr-requisitos. Os pacotes so manipulados por meio de programas especiais que, alm de
instalar, desinstalar ou atualizar um pacote, gravam informaes sobre eles em uma base de
dados no sistema. No Linux, os pacotes nos formatos rpm e deb so os dois tipos de pacotes
mais populares. O padro de pacotes rpm foi originalmente criado pela Red Hat e, posteriormente, adotado por outras distribuies como SUSE e Fedora. Os pacotes deb foram criados
pela distribuio Debian, e so utilizados tambm pelas distribuies derivadas e baseadas
nela, como a distribuio Ubuntu.
O funcionamento de ambos os tipos de pacotes bastante semelhante, mudando apenas as
ferramentas utilizadas para gerenci-los. Veremos a seguir como trabalhar com pacotes rpm.
Os pacotes rpm so nomeados na forma:
<nomedopacote>- <versao-release>.<arch>.rpm.
O campo <arch> indica para qual arquitetura de hardware o pacote foi compilado. As principais arquiteturas so vistas a seguir:
11 i386 pacotes para arquiteturas que utilizam processadores baseados na linha x86 da Intel;
11 PPC pacotes para arquiteturas que utilizam processadores PowerPC, utilizados pela Apple;
11 x86_64 pacotes para arquiteturas que utilizam processadores de 64 bits;
11 SRC pacotes que no contm binrios, mas sim o cdigo-fonte da aplicao, o que a
torna portvel para vrios tipos de arquiteturas.
Podemos ver, a seguir, um exemplo de nome de pacote:
bash-3.0-31.i386.rpm
<nomedopacote>-<versao-release>.<arch>.rpm
Exemplo:
Pacotes RPM
O comando rpm a principal ferramenta utilizada para instalar, desinstalar, consultar e
atualizar pacotes no formato Red Hat Package Manager (RPM). A Tabela 9.1 apresenta as
bash-3.0-31.i386.rpm
Opo
Ao
Instala um pacote.
Remove um pacote.
Comando rpm
Ferramenta utilizada para instalar, desinstalar e atualizar pacotes. No resolve problemas
com dependncias entre pacotes.
# rpm -e finger
Observe que, para remover um pacote, s necessrio indicar o nome do pacote, ou
nome-verso, e no o nome completo do arquivo que contm o pacote. Ao instalar ou
remover um pacote, o comando rpm verifica se este possui dependncias e caso o pacote
a ser instalado necessite de algum pacote ainda no instalado ou o pacote a ser removido
seja uma dependncia de algum pacote ainda instalado, uma mensagem de erro ser
apresentada, como mostram os exemplos abaixo:
Introduo ao Linux
160
Tabela 9.1
Opes bsicas do
comando rpm.
Dependncias
Como vimos anteriormente, para funcionar adequadamente um programa pode necessitar de
uma biblioteca ou at mesmo de outro programa. Quando lidamos com pacotes, chamamos
esses pr-requisitos de dependncias. Assim, podemos dizer que o pacote A depende do
pacote B ou, ainda, que o pacote B uma dependncia do pacote A. Quando instalamos um
pacote, a ferramenta utilizada para instal-lo verifica, nas informaes contidas no pacote,
quais so suas dependncias. Em seguida, verifica se essas dependncias j esto instaladas
no sistema consultando a base de dados de pacotes instalados. Dependendo da ferramenta,
ela solicitar que as dependncias sejam instaladas, ou tentar instalar as dependncias automaticamente. De forma semelhante, ao tentar remover um pacote instalado no sistema, as
mesmas verificaes so efetuadas e a ferramenta indicar os outros pacotes que devem ser
desinstalados juntamente com o pacote desejado. Essas verificaes so feitas com o intuito
de deixar o sistema sempre num estado consistente, isto , garantindo que estejam instaladas
todas as dependncias de todos os pacotes instalados.
Tabela 9.2
Opes de consulta
do comando rpm.
Opo
Ao
f <arquivo>
p <arquivo de
pacote>
i <pacote>
l <pacote>
R <pacote>
161
11 # rpm -qa
Descobrindo a qual pacote pertence um arquivo:
11 # rpm -qf /etc/passwd
Mostrando informaes sobre um pacote instalado:
11 # rpm -qi bash
Mostrando informaes sobre um pacote ainda no instalado (arquivo de pacote):
11 # rpm -qpi dvgrab-1.7-3.i386.rpm
Listando todos os arquivos que pertencem a um pacote:
11 # rpm -ql bash
Conforme vimos, embora o comando rpm seja a principal ferramenta para instalar, atualizar, remover e consultar pacotes, faltam-lhe opes de como resolver automaticamente
problemas com dependncias ou de atualizar todo o sistema. Para resolver esse tipo de
problema, foram criadas ferramentas de mais alto nvel, como o Yellowdog Update Modifier
(YUM) da distribuio Red Hat e o Advanced Packaging Tool (APT) da distribuio Debian.
11 Como atualizar todos os pacotes do sistema com RPM?
Exerccio de fixao 1 e
Gerenciador de pacotes RPM
1. Para instalar um software qualquer, qual seria a opo a ser utilizada junto com o geren-
ciador RPM?
2. Para instalar um software qualquer e mostrar detalhes da instalao, qual seria a opo a
pactados, qual seria a opo a ser utilizada junto com o gerenciador RPM?
4. Para atualizar um software, deve-se utilizar o comando RPM com que opes?
5. Para verificar se um pacote est instalado ou no, utiliza-se qual comando?
Introduo ao Linux
162
Este exerccio permite encontrar pacotes no repositrio do YUM, assim como proceder com
sua instalao.
YUM
O YUM utiliza o conceito de repositrio de pacotes, e por isso no h a necessidade de que
os arquivos de pacotes sejam obtidos manualmente. Um repositrio um site especialmente preparado contendo pacotes e arquivos de ndice, com informaes sobre esses
pacotes. O comando yum capaz de consultar um repositrio e automaticamente e baixar e
instalar pacotes, liberando o administrador de efetuar essas tarefas manualmente.
Os repositrios do YUM esto divididos em trs tipos bsicos:
11 Base nos repositrios base se localizam os pacotes que fazem parte da distribuio,
como os distribudos no DVD de instalao.
11 Updates nos repositrios update esto atualizaes para os pacotes do repositrio base
e pacotes que no fazem parte dos repositrios base nem suas atualizaes se encontram nos repositrios extra.
11 Extras um repositrio extra pode conter pacotes no suportados oficialmente
pela distribuio.
Configurando o YUM
YUM utiliza repositrios divididos em: base, update e extra.
11 Arquivo /etc/yum.conf:
22 Tentativas de acesso aos repositrios.
22 Arquivo de log.
22 Local para armazenar os pacotes baixados.
11 Arquivos .repo - /etc/yum.repos.d/<arquivo>.repo.
O YUM configurado por meio do arquivo /etc/yum.conf, que define opes como: nmero
de tentativas de acesso a um repositrio, arquivo de log, diretrio onde manter os pacotes
baixados, entre outras. J a localizao dos repositrios a serem consultados definida nos
arquivos que ficam armazenados no diretrio /etc/yum.repos.d. A configurao padro de
ambos suficiente para seu funcionamento correto.
Nesse captulo, veremos somente como adicionar novos repositrios. Cada repositrio
configurado mediante um arquivo com a extenso .repo, usualmente disponvel no website
do repositrio. Um nico repositrio pode ter vrios espelhos (mirrors), que funcionam
como cpias idnticas do repositrio original, mas ficam localizados em outros servidores,
permitindo que o administrador escolha aquele que est localizado mais prximo ou que
possua um link de maior capacidade.
[jpackage6-fc17]
name=JPackage 6.0 for Fedora Core 17
baseurl=http://mirrors.dotsrc.org/jpackage/6.0/fedora-17/free/
gpgcheck=1
Ao configurar um repositrio, preciso verificar a verso de sua distribuio, que no
exemplo acima o Fedora Core 4. Repositrios e pacotes de outras distribuies ou verses
podem no funcionar corretamente. Como medida de segurana, os pacotes rpm podem ser
163
[jpackage16-fc4]
name=JPackage 1.6 for Fedora Core 4
baseurl=http://mirrors.dotsrc.org/jpackage/1.6/fedora4/free/
gpgcheck=1
Cuidados:
11 Verificar a verso da distribuio.
11 Verificar a assinatura digital:
Utilizando o YUM
11 Instalar, desinstalar e atualizar pacotes.
164
Removendo um pacote:
Para instalar um pacote, basta executar o comando yum com a opo install seguida do
nome do pacote. O yum consulta ento os repositrios em busca da verso mais recente do
pacote e em seguida faz o download dele e de suas dependncias, caso necessrio. Aps
obter todos os pacotes necessrios, a instalao deles executada. O comando do exemplo
seguinte instala o pacote tcpdump e suas dependncias:
yum grouplist
Remove 1 Package(s)
165
O yum prov uma forma simples de instalar um grupo de pacotes relacionados a um determinado servio ou perfil do sistema. Imagine que desejamos preparar um sistema para
que funcione como um servidor de banco de dados. Para tanto, precisaramos instalar um
aplicativo Sistema Gerenciador de Banco de Dados (SGBD) e, possivelmente, bibliotecas de
funes relacionadas. A opo groupinstall do yum pode nos auxiliar nesta tarefa. O exemplo
abaixo instalaria o SGBD Mysql, suas dependncias e programas relacionados:
# yum grouplist
De maneira anloga, para remover um grupo de pacotes utilizamos a opo groupremove.
Atualizando o sistema
Atualizando o sistema:
yum update
# yum check-update
O yum pode ser utilizado para atualizar apenas determinados pacotes ou para atualizar
todos os pacotes instalados no sistema. Quando utilizado com a opo update, o yum
compara as verses de todos os pacotes instalados com as verses destes mesmos pacotes
disponveis nos repositrios, efetuando em seguida a atualizao de todos os pacotes que
estejam desatualizados. Para atualizar todo o sistema, basta executar o comando seguinte:
# yum update
Para atualizar somente determinados pacotes, basta acrescentar os nomes dos pacotes ao
comando. Assim, para atualizar somente os pacotes bash e tcpdump, devemos executar o
comando abaixo:
166
Para buscar um pacote que oferece um determinado servio ou para descobrir a qual pacote
pertence um determinado arquivo:
# yum clean
# yum clean <headers|packages|all>
APT
Advanced Packaging Tool (APT) uma ferramenta de gerenciamento de pacotes utilizada
na distribuio Debian e suas variantes, que trata de forma automtica problemas com
dependncias entre pacotes. O APT possui um banco de dados que armazena informaes
sobre os pacotes instalados no sistema e utiliza essas informaes para poder realizar a
instalao, atualizao e remoo de pacotes de maneira correta.
Configurando o APT
O APT configurado por meio de diversos arquivos armazenados no diretrio /etc/apt/apt.
conf.d. Neste arquivos so definidas opes relativas configurao de proxy, tempo de
timeout para conexes com servidores, entre outras. Outro arquivo de configurao importante o /etc/apt/sources.list, onde so definidos os repositrios que sero utilizados para a
instalao e atualizao de pacotes.
Utilizando o APT
O APT utiliza o comando apt-get para realizar diversas tarefas, como instalar, atualizar e
remover pacotes. Veremos a seguir as principais funcionalidades deste comando.
Atualizando as lista de pacotes disponveis
Antes de fazer qualquer instalao, atualizao ou remoo de pacotes, preciso sincronizar o banco de dados do APT com a lista de pacotes disponveis nos repositrios. Esta ao
executada atravs do comando abaixo:
# apt-get update
Instalando pacotes
Para instalar um pacote, basta executar o comando apt-get com a opo install seguida do
nome do pacote. O APT consulta ento os repositrios definidos no arquivo sources.list
em busca da verso mais recente do pacote e em seguida faz o download dele e de suas
dependncias, caso necessrio. Aps obter todos os pacotes necessrios, a instalao deles
executada. O comando do exemplo seguinte instala o pacote bind9 e suas dependncias:
Introduo ao Linux
168
Sempre que utilizamos o apt-get para instalar, atualizar ou remover um pacote apresentado
um resumo das aes que sero executadas, solicitando a confirmao do administrador
antes de execut-las. O comando do exemplo anterior apresentar o seguinte resumo:
Removendo pacotes
Para remover um pacote e suas dependncias, basta utilizar a opo remove, como mostra
o exemplo:
Atualizando pacotes
Para atualizar todos os pacotes instalados no sistema, devemos utilizar a opo upgrade,
como mostra o exemplo:
# apt-get upgrade
Antes disso, no entanto, importante atualizar o banco de dados do APT com a opo update.
Para remov-los tambm, preciso acrescentar a opo --purge, como mostra o exemplo:
169
Atualizando a distribuio
Para atualizar toda a distribuio de uma s vez, devemos utilizar a opo dist-upgrade,
como mostra o exemplo:
# apt-get dist-upgrade
# apt-get clean
Opes mais utilizadas do comando apt-get:
Introduo ao Linux
Exerccio de fixao 2 e
Gerenciador de pacotes APT
1. Qual a finalidade do comando apt-get install nome_pacote?
2. Qual a diferena entre apt-get upgrade e apt-get dist-upgrade?
3. Qual o gerenciador de pacotes da distribuio Debian?
4. O que faz o comando apt-cache?
5. O que faz o comando apt-cdrom?
6. Pesquise a diferena entre aptitude e apt-get.
7. O que um Mirror?
171
172
Introduo ao Linux
Roteiro de Atividades 9
Atividade 9.1 Encontrando bibliotecas utilizadas por um programa
Escolha trs arquivos binrios de programas dentro do diretrio /usr/bin. Verifique quais
bibliotecas esses binrios utilizam.
173
174
Introduo ao Linux
10
Configurar e utilizar os principais tipos de dispositivos, como unidades de CD/DVD,
pen drives, placas de rede, controladoras SCSI e placas de vdeo.
conceitos
Introduo
Suporte a dispositivos no Linux:
objetivos
Configurao e utilizao de
dispositivos de hardware
drivers diretamente no kernel o tornaria grande demais, foi criado um mecanismo que torna
175
possvel separar os drivers em pequenos arquivos chamados de mdulos, que podem ser
carregados e utilizados pelo kernel sob demanda. Uma vez carregados, esses mdulos funcionam como se fossem uma parte do kernel, sendo executados com os mesmos privilgios
que ele, o que conhecido como kernel-space. Usualmente, o kernel compilado de forma a
ter suporte aos principais dispositivos, como teclados, mouses, placas de rede, discos rgido,
etc. Os drivers desses dispositivos so embutidos diretamente no kernel e os drivers dos
demais dispositivos so disponibilizados como mdulos.
Exerccio de fixao 1 e
Verificando o kernel
Qual comando voc pode utilizar para verificar a verso do kernel em seu sistema?
Arquivos de dispositivos
Arquivos de dispositivos:
11 Permitem operaes como: abrir, fechar, ler e escrever;
11 Localizados no diretrio /dev.
11 Criados atravs do comando mknod.
11 Nmeros Major e minor utilizados pelo kernel para identificar o tipo de dispositivo
e o dispositivo em si, respectivamente;
11 Podem ser orientados poa bloco ou caractere.
Os projetistas do sistema Unix, no qual o Linux se baseia, tinham como princpio de projeto
a mxima de que tudo no Unix um arquivo. Com isso, pretendiam simplificar o desenvolvimento de aplicaes, oferecendo aos programadores uma interface com o sistema
onde todos os seus recursos so tratados como arquivos, isto , suportando as operaes
de abrir, fechar, ler e escrever. A grande maioria dos dispositivos no Linux est associada a
um arquivo especial no diretrio /dev por meio do qual os programas podem se comunicar
com estes dispositivos. Por exemplo, se um programador deseja escrever um programa que
leia um determinado dado de uma porta serial, basta fazer com que esse programa abra o
arquivo /dev/ttyS0 e leia os seus dados. As mesmas permisses aplicadas a arquivos comuns
tambm so aplicadas a arquivos de dispositivos. Sendo assim, possvel controlar qual
usurio ou grupo de usurios tem acesso a um dispositivo. Cada arquivo de dispositivo
criado por intermdio do comando mknod, e est associado a dois nmeros chamados de
major e minor. Esses nmeros so utilizados pelo kernel para identificar a qual dispositivo
esto associados. Alm disso, cada dispositivo pode ser do tipo block (quando manipulam
dados em blocos de 512 bytes ou mltiplos) ou character (quando manipulam dados byte a
byte). O primeiro tipo permite a leitura e a escrita de maneira aleatria (pode-se especificar
de onde se quer ler ou escrever). J no segundo, a leitura e a escrita s podem ser feitas de
forma sequencial.
Introduo ao Linux
A Tabela 10.1 mostra alguns dispositivos do Linux, com suas descries e arquivos associados.
176
Arquivo
Dispositivo
Descrio
hda
hda1
Dispositivo
Descrio
hdb
hdc
hdd
ttySO
dsp0
mixer
sda
scd0
input/
mice
Mouse.
input/
event0
Teclado.
Teclado PS2.
cdrom
Exerccio de fixao 2 e
Arquivos de dispositivos
Descreva o que seriam os dispositivos abaixo:
11 Sda3
11 Hda2
11 Cdrom
11 Scd2
11 Dsp2
Mdulos
Mdulos so pequenos arquivos que contm trechos de cdigos que implementam funcionalidades do kernel. Eles fornecem suporte a dispositivos de hardware ou a funcionalidades do sistema operacional.Os mdulos utilizados pelo kernel so especficos para cada
verso e se encontram no diretrio /lib/modules/<versao_kernel>. Por meio dos comandos
insmod, modprobe, rmmod e lsmod possvel carregar mdulos no kernel, remover e listar os
mdulos em uso. Veremos a seguir como efetuar cada uma dessas operaes.
Tabela 10.1
Principais dispositivos do Linux.
Arquivo
177
Para listar todos os mdulos carregados pelo kernel, basta utilizar o comando lsmod,
conforme o exemplo abaixo:
# lsmod
Module Size Used by
lp 12164 0
nfs 208324 1
lockd 62472 2 nfs
sunrpc 144452 3 nfs,lockd
parport_pc 41540 1
parport 38856 2 lp,parport_pc
A sada do comando lsmod apresenta o nome dos mdulos, o seu tamanho em bytes, o nmero
de instncias dos mdulos que esto carregadas e quais so os outros mdulos que os utilizam,
j que um mdulo pode prover funes necessrias para outro mdulo. Observe tambm que o
nome de um mdulo o nome do arquivo que contm esse mdulo sem sua extenso.
Para carregar um mdulo manualmente, podemos utilizar os comandos insmod ou
modprobe. O comando insmod insere apenas o mdulo especificado na linha de comando,
enquanto o comando modprobe capaz de inserir o mdulo especificado e ainda carregar
de forma automtica os mdulos adicionais utilizados pelo mdulo especificado. possvel, tambm por meio desses comandos, passar alguns parmetros para o mdulo que
est sendo carregado. A sintaxe desses comandos apresentada a seguir:
# modinfo lp
filename: /lib/modules/2.6.13.2/kernel/drivers/char/lp.ko
alias: char-major-6-*
license: GPL
vermagic: 2.6.13.2 SMP preempt PENTIUM4 gcc-4.0
depends: parport
Introduo ao Linux
parm: reset:bool
178
# modprobe -r lp
Mdulos so especficos para cada verso do kernel.
Exerccio de fixao 3 e
Mdulos
11 Liste alguns mdulos carregados na memria.
11 Carregue algum mdulo.
11 Exibir informaes sobre algum mdulo.
11 Descarregue o mdulo anteriormente carregado.
Initrd
Imagine que o sistema de arquivos em que se encontram os mdulos do kernel esteja armazenado em um disco conectado a uma controladora de discos que necessita de um mdulo
do kernel para poder ser utilizada pelo sistema operacional. Temos, ento, um impasse. Para
resolver este problema, os programadores do kernel criaram o initrd (initial RAM disk).
O initrd um sistema de arquivos temporrio, que carregado em memria RAM durante
o boot do sistema operacional, no qual esto presentes todos os mdulos que o kernel
de boot de segundo estgio.
Como ter acesso a um disco SCSI durante o boot se o driver para esse dispositivo est
em um mdulo do kernel?
O kernel precisa do mdulo para acessar o disco SCSI, mas esse mdulo est armazenado
no disco SCSI e o kernel ainda no carregou o mdulo da controladora de discos SCSI.
Soluo: sistema de arquivos simples, que o carregador de boot entende, contendo os
mdulos necessrios para o sistema inicializar.
Gerenciando dispositivos
O gerenciamento de dispositivos no Linux feito de forma automtica por programas que
sero descritos neste tpico.
Hotplug
Desde a introduo da srie 2.6 do kernel do Linux, este passou a contar com um subsistema conhecido como hotplug, cuja funo detectar e gerar eventos sempre que um novo
dispositivo conectado a um barramento USB, PCI, SCSI, PCMCIA ou firewire. O hotplug
precisa no momento do boot. O initrd carregado juntamente com o kernel pelo carregador
179
Udev
Tradicionalmente, o contedo do diretrio /dev era esttico, ou seja, durante a instalao,
um script criava todos os arquivos de dispositivos, mesmo que seus dispositivos associados no estivessem instalados no sistema. Alm disso, se fosse instalado um novo tipo
de dispositivo para o qual no existisse um arquivo de dispositivo correspondente, era
necessrio criar esse arquivo manualmente. Para evitar essa situao, foi criado um sistema
de arquivos conhecido como devfs, capaz de criar esses dispositivos automaticamente. Posteriormente, esse sistema foi substitudo por outro, conhecido como udev, que inicialmente
foi concebido para trabalhar em conjunto com o hotplug. Assim, quando um dispositivo era
detectado, o kernel disparava um processo tambm chamado de hotplug, que, por sua vez,
acionava o udev para que ele criasse o arquivo de dispositivo dinamicamente. Em algumas
distribuies, o udev trabalha em conjunto com o hotplug, enquanto em outras substitui
completamente o hotplug, executando suas funes.
Uma caracterstica do udev que podemos definir arquivos de dispositivos fixos para cada
dispositivo de hardware utilizado. Isto facilita a criao de scripts utilizados pelo udev, pois
caso tenhamos dois dispositivos do mesmo tipo, como por exemplo duas impressoras, pode
acontecer de, a cada boot do sistema, elas serem associadas a arquivos de dispositivos diferentes, o que dificultaria a automatizao de tarefas associadas a cada uma das impressoras
nesses scripts. Por exemplo, ao invs de utilizarmos os arquivos de dispositivo padro para
impressoras, /dev/lp0 e /dev/lp1, podemos definir atravs do udev os arquivos /dev/hp e /dev/
epson. Assim, nos scripts disparados pelo udev, as aes executadas pela impressora HP
estariam sempre associadas ao arquivo de dispositivo /dev/hp.
Outra caracterstica importante do udev o uso de regras que permitem a execuo de
aes quando um dispositivo conectado ao sistema. As regras do udev ficam localizadas
em arquivos dentro do diretrio /etc/udev/rules.d e possuem uma sintaxe especfica. Um
exemplo de regra, pode ser abrir o gerenciador de arquivos konqueror, sempre que um pen
drive for conectado. A regra do exemplo abaixo executa o script connect_pendrive.sh sempre
que um pen drive for conectado ao computador.
Introduo ao Linux
180
local/bin/connect_pendrive.sh
A sintaxe das regras do udev bem intuitiva, como pode ser visto no exemplo acima, mas
no ser apresentada neste mdulo.
Desvantagens:
11 Centenas de arquivos de dispositivos eram criados, mas muitos jamais seriam utilizados.
11 Um novo tipo de dispositivo poderia necessitar que um arquivo de dispositivo fosse
criado manualmente.
Solues:
11 devfs
11 udev (evoluo do devfs, com suporte s facilidades do hotplug).
Exerccio de fixao 4 e
Gerenciando dispositivos
Descreva a diferena entre hotPlug e udev.
# lspci
0000:00:00.0 Host bridge: Silicon Integrated Systems [SiS]
740 Host (rev 01)
0000:00:01.0 PCI bridge: Silicon Integrated Systems [SiS]
Conforme foi visto, cada vez mais as novas verses de kernel e programas associados se
181
Introduo ao Linux
11 /proc/bus diretrio que contm informaes sobre dispositivos PCI, USB, entre outros.
11 /proc/net diretrio que contm informaes sobre os protocolos de rede disponveis
no sistema.
11 /proc/sys diretrio que, alm de fornecer informaes sobre o sistema, permite que
parmetros de configurao do kernel sejam alterados.
Alm de fornecer diversas informaes sobre o hardware do sistema, ainda possvel configurarmos diversos parmetros do kernel atravs do diretrio /proc. No entanto, neste curso
no veremos a parte de configurao do kernel.
O diretrio /proc contm diversas informaes sobre o sistema, com destaque para
os arquivos:
11 /proc/cpuinfo
11 /proc/meminfo
11 /proc/devices
11 /proc/filesystems
11 /proc/interrupts
11 /proc/acpi
11 /proc/bus
11 /proc/net
11 /proc/sys
Os kernels a partir da verso 2.6 apresentam tambm o diretrio /sys, que contm informaes
sobre dispositivos de maneira anloga ao diretrio /proc.
Unidades de CD/DVD
Unidades de CD/DVD IDE:
11 Barramento primrio:
22 Slave hdb
11 Barramento secundrio:
22 Master hdc
22 Slave hdd
Unidades de CD/DVD SCSI:
11 Primeiro dispositivo detectado: scd0
11 Segundo dispositivo detectado: scd1
O dispositivo configurado durante a instalao:
11 Arquivo /etc/fstab
Unidades de CD/DVD do tipo IDE so suportadas de maneira praticamente transparente
pelo kernel. Quando conectamos uma unidade de CD/DVD ao computador, esta associada
a um arquivo de dispositivo de acordo com a sua posio no barramento IDE. Se a unidade
estiver conectada ao barramento primrio, ser associada aos arquivos hda ou hdb, caso
esteja configurada como master ou slave, respectivamente. J se estiver conectada ao barramento secundrio, ser associada aos arquivos hdc ou hdd, caso esteja configurada como
22 Master hda
Unidades de CD/DVD do tipo SCSI necessitam que a interface SCSI, onde esto conectados,
tenha sido corretamente reconhecida, e que o mdulo que suporta unidades de CD/DVD
SCSI tenha sido carregado, o que, normalmente, acontece de forma automtica. Uma vez
reconhecidas, as unidades de CD/DVD SCSI so associadas aos seus arquivos de dispositivos: scd0 para a primeira unidade, scd1 para a segunda e assim por diante.
Durante a instalao do Linux, o programa instalador identifica em que tipo de barramento
e em que posio a unidade de CD/DVD se encontra e configura o arquivo /etc/fstab de
acordo com essa localizao.
O programa instalador pode tambm criar o link /dev/cdrom, apontando para o arquivo real
correspondente unidade de CD/DVD. O arquivo /etc/fstab lido por alguns scripts de inicializao durante o boot, e pelos comandos mount e umount. Neste arquivo so relacionados os
arquivos de dispositivos, o seu ponto de montagem, o tipo de sistema de arquivos, as opes
de montagem, a opo de dump e a ordem de verificao do sistema de arquivos. Para obter
mais detalhes sobre o arquivo /etc/fstab, sua pgina de manual pode ser consultada.
Durante o boot, o kernel identifica os dispositivos conectados, listando-os um a um. Estas
informaes podem ser recuperadas com o comando dmesg. O exemplo abaixo mostra o
trecho que lista a unidade de CD/DVD IDE.
...
Probing IDE interface IDE0...
hdb: HL-DT-ST DVDRAM GSA-4163B, ATAPI CD/DVD-ROM drive
hdb: ATAPI 40X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache,
UDMA(33)
O arquivo de dispositivo pode ser um link:
11 /dev/cdrom
O comando dmesg pode ajudar a identificar qual o dispositivo correspondente unidade
de CD/DVD.
...
Probing IDE interface IDE0...
hdb: HL-DT-ST DVDRAM GSA-4163B, ATAPI CD/DVD-ROM drive
hdb: ATAPI 40X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache,
UDMA(33)
Observe que, no trecho acima, esto listados um disco IDE (hda) e suas parties, e o drive
de CD/DVD (hdb). Ao contrrio de discos IDE, CDs no apresentam parties, portanto,
so acessados por intermdio de seu arquivo raiz, que no exemplo acima seria /dev/hdb.
Assim como ocorre com discos IDE, para podermos ler o contedo de um CD ou DVD, temos
Introduo ao Linux
que mont-lo antes, utilizando o comando mount. Supondo que a unidade de CD/DVD
184
$ mount /mnt/cdrom
Para ejetarmos um CD ou DVD, devemos desmontar a unidade antes, utilizando o comando
umount, como mostra o exemplo abaixo:
$ umount /mnt/cdrom
importante ressaltar que o Linux no permite que um dispositivo seja desmontado se
algum arquivo contido nele estiver sendo utilizado por algum recurso do sistema. Assim, o
simples fato de existir um shell aberto com o diretrio corrente pertencente ao dispositivo
impede que o mesmo seja desmontado. Alm disso, o boto eject da unidade de CD/DVD
no funciona enquanto o dispositivo estiver montado.
mount /mnt/cdrom
Aps o uso do CD ou DVD, a unidade deve ser desmontada com o comando abaixo:
umount /mnt/cdrom
fechados. Alm disso, no possvel utilizar o boto eject se o dispositivo estiver montado.
185
verificar qual arquivo de dispositivo foi designado para o pen drive, mediante as informaes obtidas no arquivo /proc/partitions. Este arquivo lista os discos e parties encontrados
no sistema, como mostra o exemplo abaixo:
# cat /proc/partitions
Major Minor Blocks Name
3 0 58605120 hda
3 1 25438896 hda1
3 2 594405 hda2
8 0 1993728 sda
8 1 1993724 sda1
No exemplo acima, podemos observar que a mquina possui um disco IDE com duas parties e um pen drive de 2 GB com uma partio.
Os pen drives geralmente utilizam o sistema de arquivos VFAT para manter a compatibilidade com sistemas Windows, mas nada nos impede de criar nelas um sistema de arquivos
do tipo ext3 ou ext4.
11 O hotplug pode carregar automaticamente os mdulos necessrios para o uso de
pen drives.
11 O comando dmesg pode informar se o sistema reconheceu o dispositivo.
11 O arquivo /proc/partitions mostra qual o arquivo de dispositivo est associado ao pen
drive.
# cat /proc/partitions
Major Minor Blocks
Name
3 0
58605120
hda
3 1
25438896
hda1
3 2
594405 hda2
8 0
1993728 sda
8 1
1993724 sda1
Interfaces de rede
11 Interfaces de rede possuem um bom suporte no Linux.
Introduo ao Linux
# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP qlen 1000
link/ether 08:00:27:de:d1:99 brd ff:ff:ff:ff:ff:ff
Observe que so listados dois dispositivos de redes (lo e eth0). O dispositivo lo refere-se
interface de loopback, que um dispositivo virtual utilizado para comunicao local entre aplicaes. Logo, o sistema acima possui apenas uma placa de rede, identificada pelo nome eth0.
O comando acima mostra ainda o endereo fsico (MAC Address) das interfaces listadas.
Este e outros comandos de configurao de interfaces de rede sero vistos em detalhes em
outro mdulo. Veremos aqui apenas como fazer configuraes simples de rede.
11 O arquivo /proc/net/dev contm os dispositivos de redes disponveis no sistema.
11 O comando ip link list tambm retorna dados dos dispositivos de redes do sistema.
# ip link list
/etc/sysconfig/network-scripts/ifcfg-ethX
Placas SCSI
11 O padro Small Computer System Interface (SCSI) estabelece um conjunto de inter-
Placas de vdeo
O Linux possui suporte a placas de vdeo em trs modos:
Introduo ao Linux
188
11 Modo grfico (para suportar a interface grfica necessrio habilitar o servidor Xorg).
O Linux pode suportar placas de vdeo em trs modos distintos: texto, framebuffer e grfico.
O modo texto suporta apenas texto, podendo utilizar tambm algumas cores. neste modo
que utilizamos a interface de linha de comando. O suporte para o modo texto nativo no
kernel. O modo framebuffer uma espcie de melhoria do modo texto, onde os programas
acessam diretamente a memria de vdeo da placa, o que possibilita que apresentem imagens
e grficos no que seria apenas um terminal com suporte a texto. Usualmente, esse modo
utilizado pelos kernels das distribuies Linux para a criao de processos de boots grficos.
Esse modo exige o suporte no kernel para uma placa especfica ou um padro de vdeo conhecido como VESA. O modo grfico, ao qual daremos mais destaque, necessita que a placa de
vdeo seja configurada de modo adequado, para que seja suportada pelo servidor Xorg.
A princpio, o Xorg no necessita de nenhum mdulo do kernel, j que possui seus prprios
mdulos. Os mdulos do Xorg se encontram no diretrio /usr/X11R6/lib/modules/drivers ou
no diretrio /usr/lib/xorg/modules/drivers, e so nomeados utilizando o padro
<nome_do_mdulo>_drv.so. Os mdulos do Xorg so bastante genricos. O mdulo trident,
por exemplo, suporta vrias placas com chipsets da Trident. Para obter a lista de todas as
placas suportadas por um mdulo, basta consultar sua pgina de manual no sistema.
possvel utilizar o comando Xorg para gerar automaticamente um arquivo de configurao,
como mostra o exemplo abaixo:
# Xorg -configure
Este comando ir gerar um arquivo de configurao de exemplo, chamado xorg.conf.new
no diretrio /root, que depois dever ser copiado para o diretrio /etc/X11, com o nome de xorg.
conf. O mdulo configurado para a placa de vdeo detectada pode ser encontrado na seo
device do arquivo xorg.conf. Neste mdulo no veremos a parte de configurao do Xorg.
O Xorg possui os seus prprios mdulos:
11 /usr/X11R6/lib/modules/drivers
11 /usr/lib/xorg/modules/drivers
Nome dos arquivos de drivers:
11 <nome_do_mdulo>_drv.so
Um mdulo pode suportar diversos modelos de placas do mesmo fabricante.
Configurao automtica do Xorg:
A grande maioria das placas tambm funciona com o mdulo VESA, que possui suporte
a um conjunto mnimo de funcionalidades definidas pelo padro VESA. Algumas placas,
no entanto, necessitam de um suporte extra do kernel para que o sistema seja capaz de
utilizar algumas funcionalidades avanadas disponibilizadas pelo hardware, como acelerao de vdeo e funes 3D. Algumas placas com chipsets da ATI e da NVIDIA necessitam
ainda de um mdulo especial para o Xorg e outro para o kernel. Estes mdulos especiais so
disponibilizados pelo fabricante na forma de arquivos de instalao binrios.
Interface grfica Xorg tem funcionalidades avanadas de algumas placas dependem
do kernel:
11 Acelerao de vdeo.
11 Funes 3D.
Placas NVIDIA e ATI possuem um mdulo para o Xorg e outro para o kernel (este ltimo
geralmente disponibilizado pelo fabricante em modo binrio).
11 Xorg -configure
189
Gerenciamento de energia
Praticamente todos os componentes de hardware possuem funcionalidades que visam diminuir
o consumo de energia em situaes onde esto ociosos. Para que estas funcionalidades possam
ser utilizadas preciso que algum sistema de gerenciamento de energia seja utilizado. O Linux
utiliza basicamente dois padres de gerenciamento de energia, que sero descritos a seguir.
Introduo ao Linux
event=button[ /]power
190
action=/etc/acpi/actions/powerbtn.sh
Como pode ser visto, o script /etc/acpi/actions/powerbtn.sh executado sempre que o evento
associado ao boto de power for detectado. O contedo deste script no ser exibido aqui
devido ao seu tamanho, mas sua funo desligar o sistema operacional de forma correta
para que dados em memria no sejam perdidos ou corrompidos.
Roteiro de Atividades 10
Atividade 10.1 Descobrindo os dispositivos detectados pelo kernel
Durante o boot de um sistema Linux, o kernel automaticamente detecta uma srie de dispositivos. Voc seria capaz, utilizando o comando dmesg, de identificar os discos IDE presentes
no seu sistema (HDs e unidades de CD/DVD)?
srio reiniciar o computador utilizando o comando telinit 3. Como usurio root, execute o
comando X configure, que gerar um arquivo de configurao no diretrio /root. Identifique
na sesso Device o driver de vdeo que foi configurado.
Certifique-se de que o ambiente grfico no est sendo executado. Talvez seja neces-
191
192
Introduo ao Linux
Bibliografia
11 MEADORS, Todd. Guide to Linux Shell Script Programing. Thompson Course
Technology. 2003.
11 TANEMBAUM, Andrew S. Sistemas Operacionais Modernos. 3a Edio.
Pearson. 2010.
11 JARGAS, Aurlio Marinho. Shell Script Profissional. Novatec. 2008.
11 GITE, Vivek G. Linux Shell Scripting Tutorial. A beginners handbook.
Disponvel em: <http://www.dis.uniroma1.it/~bordino/shell-tutorial.pdf>.
Acessado em abril 2012.
11 KOCHAN, Stephen G.; WOOD, Patrick H. Exploring the Unix System, SAMS.
Prentice Hall, 1996.
11 JANG, Michael. Dominando Red Hat Linux 9. Rio de Janeiro: Editora Cincia
Moderna, 2003.
11 PEEK, Jerry, et alli. Learning Unix Operating System. OReilly & Associates,
2002.
11 KDE Project.
http://www.kde.org/
11 Red Hat, Inc., Fedora Project.
http://fedora.redhat.com/
11 Red Hat, Inc., Red Hat Linux 9: Red Hat Linux Getting Started Guide.
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/gettingstarted-guide/
11 Red Hat, Inc., Red Hat Linux 9: Red Hat Linux x86 Installation Guide.
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/install-guide/
11 The XFree86 Project, Inc., XFree86(TM).
http://www.xfree86.org/
11 TLDP, The Linux Documentation Project.
11 Informaes em portugus sobre Linux.
http://br-linux.org/
Bibliografia
http://www.tldp.org/
193
http://www.x.org
194
Dbora
Arthur Mendes
ChristinaPeixoto
Muchaluat
possui
Saade
mais
professora
de 26 anosassociada
de experincia
do Departamento
na rea de
de
Redes
Cincia
de da
Comunicao
Computaode
da Dados
Universie
dade
Engenharia
FederaldeFluminense
Sistemas, com
(UFF).
Disserta engenheira
o de Mestrado
de computao
em Anlise
formada
de Perforpela
PUC-Rio
mance de
e possui
Sistemas
mestrado
Distribudos,
e doutorado
no
em
Instituto
informtica
Militar pela
de Engenharia
mesma universi- IME.
dade. bolsista
Participou
do desenvolvimento
de produtividade
e implantao
em Desenvolvimento
das primeiras
Tecnolgico
redes
come tecnologias
Extenso Inovadora
ATM, Framepelo
Relay,
CNPq
IP/ MPLS.
e foiFoi
Jovem
consultor
Cientista
dedo
grandes
Estadoprojetos
do Rio decomo
Janeiro
o Backbone
pela Faperj.IPSuas
do Plano
reas
Nacional
de pesquisa
de so
Banda
redes
Larga
de computadores,
(PNBL) da Telebrs.
redesTrabalhou
sem fio, sistepor
22
mas
anos
multimdia
no setorede
hipermdia,
Telecomunicaes
TV digital da
interativa
Embratel,
e telemediatuando
na
cina.
prospeco
J coordenou
de novas
diversos
tecnologias
projetos de
para
pesquisa
as Redes
financiados
de Nova
Gerao
pelo CNPq
NGN.
e Faperj
Participou
e foi coordenadora
de testes e do
verificaes
projeto piloto
de requiEdusitos
roam-br,
de RFPs,
financiado
nos pases:
pela RNP
EUA,e Canad,
realizadoJapo,
em parceria
Frana,com
Espaa
nha
UFMS,
e UFRJ
Mxico.
e diversas
Atuou outras
no desenvolvimento
instituies, implantando
de sistemas
o serno
CPqD
vio piloto
- Campinas
eduroam
(SP).
no Brasil.
Andreia Campanha
Ricardo
Gentil Bonfante
Carrano
possui
engegranheiro de
duao
emtelecomunicaes
Bacharelado em formado
Cincias
em Computao
de
1995 pela Universidade
pela Universidade
Federal
Fluminense.
Estadual
deEm
Londrina,
2008, obteve
mestrado
o ttulo
e
de Mestre em
doutorado
em Engenharia
Cincias da
deCompuTelecomunicaes
tao
e Matemtica
pela mesma
Computacional
instituio
e atualmente
pela
Universidade
cursadeo So
doutorado
Paulo. Atuem
almente
Computao,
professora/pesquisadora
tambm na UFF, ondeda
atua
Universidade
como Professor
Federal
do Departamento
de Mato Grosso.
de Tem
Engenharia
experincia
de Telecomunicaes.
na rea de Cincia
Foi
da
empresrio
Computao,
e participou
com nfase
da implantao
em Inteligncia
de provedores
Artificial, atude
ando
acessoprincipalmente
no incio da Internet
nos seguintes
comercial
temas:
no Brasil,
Processamento
em 1995.
de
Atuou
Lngua
como
Natural,
Engenheiro
Minerao
de Redes
de Textos
para ae ONG
Aprendizado
internaciode
Mquina.
nal One Laptop
Atua na
perEducao
Child (OLPC)
a Distncia
e j participou
como de
Coordenadiversos
dora
projetos
da Especializao
de pesquisa financiados
em Informtica
pela RNP,
na Educao.
pelo MEC Atuou
e por
tambm
empresascomo
privadas.
instrutora dos cursos de Introduo ao Linux
da Escola Superior de Redes na Unidade de Cuiab.
Edelberto Franco Silva se tornou
Bacharel em Sistemas de Informao
pela Faculdade Metodista Granbery
em 2006, e obteve o ttulo de Mestre
em Computao pela Universidade
Federal Fluminense em 2011. Atualmente Doutorando em Computao
pela Universidade Federal Fluminense. Participou de diversos projetos de pesquisa, possuindo experincia na rea
de Cincia da Computao, com nfase em redes, atuando
principalmente nos temas relacionados a redes sem fio,
Internet do Futuro e segurana.
responsvel
pelo
Introduo
Este curso destinado a usurios, especialistas de suporte e desenvolvedores de software que desejam aprender
a utilizar o Linux, um ambiente computacional moderno,
gil e com um sistema operacional extremamente estvel e verstil. O curso destina-se tambm aos administradores de sistemas Windows e aos profissionais que desejam iniciar os estudos para a certificao LPIC1, do Linux
Professional Institute.
Este livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados em sala de aula, apoiando
profissionais na disseminao deste conhecimento em
suas organizaes ou localidades de origem.
Introduo ao Linux
ao Linux
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
ISBN 978-85-63630-19-3
9 788563 630193
Ministrio da
Cincia, Tecnologia
e Inovao