Linux. Autor: Mauro Luiz Vivan Junior



Documentos relacionados
SISTEMA OPERACIONAL & SOFTWARE LIVRE

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Guia Foca GNU/Linux. Versão segunda, 30 de outubro de Resumo

Guia Foca GNU/Linux. Versão segunda, 30 de outubro de Resumo

Sistema Operacional LINUX

LISTA DE COMANDOS DO LINUX 1

Conteúdo 1 Comandos Básicos. Questão 1: Que comando permite encerrar o sistema definitivamente?

Instalando o Debian em modo texto

Guia Foca GNU/Linux. Versão segunda, 12 de julho de Resumo

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

Aula 02. Introdução ao Linux

Guia Rápido de Instalação Ilustrado

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

AULA 5 Sistemas Operacionais

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Linux. Wagner de Oliveira

Roteiro 3: Sistemas Linux arquivos e diretórios

Manual de instalação. Manual de instalação. Liberdade. Liberdade. Versão /10/2002. Versão /10/2002

HOW TO. Instalação do Firewall 6.1 Software

Tutorial de instalação do Debian Rudson Ribeiro Alves

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Fundamentos de Sistemas Operacionais. GNU / Linux. Prof. Edwar Saliba Júnior Março de Unidade GNU / Linux

Leia antes de instalar Mac OS X

Sistemas Operacionais

UM PBX GENUINAMENTE BRASILEIRO

SISTEMAS OPERACIONAIS

Aula 01. Introdução ao Linux

Lazarus pelo SVN Linux/Windows

Introdução a Sistemas Abertos


Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

16:21:50. Introdução à Informática com Software Livre

Tutorial Instalação Dual Boot Ubuntu e Windows XP Virtualização com VirtualBox

UM PBX GENUINAMENTE BRASILEIRO MANUAL DE INSTALAÇÃO COM IMAGEM ISO

Como instalar uma impressora?

Principais Comandos do Terminal no LINUX

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

22:59:36. Introdução à Informática com Software Livre

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Operador de Computador. Informática Básica

Ao ligar o equipamento, você verá a mensagem abaixo, o objetivo dela é fazer a configuração mínima para LOGAR ao servidor da Internet.

Guia Foca GNU/Linux Versão Intermediário

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos

Thunder Pro II Gold Edition Manual de operações v 8.7 Rev:b

NetEye Guia de Instalação

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Laboratório de Redes de Computadores e Sistemas Operacionais

Liner. Manual do Usuário

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Tutorial: Instalando Linux Educacional em uma maquina virtual

Como formatar e reinstalar o Windows 7

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Processo de Instalação Limpa do Windows 8.1 em Computadores Philco

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Inicialização rápida da instalação SUSE Linux Enterprise Server 11

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Manual AGENDA DE BACKUP

Oficina de ferramentas de Gerência para Redes em Linux. Prof. Jefferson Santiago

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

PROCESSOS COMPONENTES DE UM PROCESSO. A execução de um processo possui vários componentes. PID e PPID

Manual de Instalação SNEP 3 Asterisk 13

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

LUCAS DA SILVA, LUCAS TUCHTENHAGEN, LUCAS NUNES HIREN S BOOT CD

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

Sistemas Operacionais

BH PARK Software de Estacionamento

SIMULADO DE INFORMÁTICA BÁSICA TÉCNICO DO MPU PROF. ALEXANDRE LÊNIN / PROF. JUNIOR MARTINS

Curso GNU/Linux. Instalação do Linux...2 O HD não possui nenhuma partição...3. Existe apenas uma partição com espaço livre...3

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Simulador ITIL Exame de Certificação da EXIM

Windows. Introdução. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional

Manual para participantes. Sala virtual multiplataforma

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Introdução. O Windows Server 2003 está dividido em quatro versões:

O que é uma rede de computadores?

Inicialização rápida da instalação SUSE Linux Enterprise Server 11 SP1

PROJETO INFORMÁTICA NA ESCOLA

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Projeto de extensão Linux no Campus

Treinamento para Manutenção dos Telecentros

UDPcast Clonagem de HDs via rede utilizando

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Configurando o IIS no Server 2003

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

VirtuOS vrs para usuários da vrs. 3.01a R.10

Conheça os principais comandos do Prompt do Windows; veja lista

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Como criar uma máquina virtual para instalar o Windows XP ou outro?

Desenvolvendo Websites com PHP

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

USB Creator. USBCreator. 1. Requerimentos. Página Imutável Informação Anexos Mais Acções. Ubuntu Brazil Entrar Help

Transcrição:

Linux Autor: Mauro Luiz Vivan Junior 1

Linux ------------------- ------------------------------------------------------------------------------- Resumo ------ Este documento tem por objetivo ser uma referência ao aprendizado do usuário e um guia de consulta, operação e configuração de sistemas Linux (e outros tipos de *ix). A última versão deste guia pode ser encontrada na Página Oficial do Foca GNU/Linux (http://focalinux.cipsga.org.br). Novas versões são lançadas com uma freqüência mensal e você pode receber avisos de lançamentos preenchendo um formulário na página Web. Nota de Copyright ----------------- Copyleft (C) 1999-2003 - Gleydson Mazioli da Silva. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License". ------------------------------------------------------------------------------- 2

Conteúdo -------- 1. Introdução 1.1. Antes de começar 1.2. Pré-requisitos para a utilização deste guia 1.3. O Linux 1.3.1. Algumas Características do Linux 1.4. Software Livre 2. Explicações Básicas 2.1. Interpretador de comandos 2.2. Terminal Virtual (console) 2.3. Curingas 3. Hardware 3.1. Placa de expansão 3.2. Nomes de dispositivos 3.3. Configuração de Hardware 3.3.1. IRQ - Requisição de Interrupção 3.3.1.1. Prioridade das Interrupções 3.3.2. DMA - Acesso Direto a Memória 3.3.2.1. Conflitos de DMA 3.3.3. I/O - Porta de Entrada/Saída 3.4. Hardwares configuráveis por jumpers, dip-switches, jumperless e Plug-and-Play. 3.4.1. Jumpers 3.4.2. Dip-Switches 3.4.3. Jumperless (sem jumper) 3.4.4. Plug-and-Play 3.4.4.1. Entendendo o arquivo de configuração `isapnp.conf' 3.5. Listando as placas e outros hardwares em um computador 3.6. Conflitos de hardware 3.7. Barramento 3.8. Placas on-board / off-board 3.9. Hardwares específicos ou "For Windows" 3.10. Dispositivos específicos para GNU/Linux 3.11. Configurações de Dispositivos 3.11.1. Configurando uma placa de rede 3.11.2. Configurando uma placa de SOM no Linux 3.11.2.1. Reservando os recursos de hardware para sua placa de som 3.11.2.2. Configurando uma placa de som usando o padrão OSS 3.11.3. Configurando um gravador de CD no Linux 3.11.3.1. Configurando o suporte a um gravador IDE 3.11.3.2. Configurando o suporte a um gravador SCSI 3.11.3.3. Testando o funcionamento 3.11.4. Configurando o gerenciamento de energia usando o APM 3.11.5. Configurando o gerenciamento de energia usando ACPI 3.11.6. Ativando WakeUP on Lan 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 4.1. Quais as diferenças iniciais 4.2. Comandos equivalentes entre DOS e Linux 4.2.1. Arquivos de configuração 4.3. Usando a sintaxe de comandos DOS no Linux 4.4. Programas equivalentes entre Windows/DOS e o Linux 3

5. Discos e Partições 5.1. Partições 5.2. Sistema de Arquivos 5.3. Partição EXT2 (Linux Native) 5.3.1. Criando um sistema de arquivos EXT2 em uma partição 5.3.2. Criando um sistema de arquivos EXT2 em um arquivo 5.4. Journaling 5.5. Partição EXT3 (Linux Native) 5.5.1. Criando um sistema de arquivos EXT3 em uma partição 5.5.2. Criando um sistema de arquivos EXT3 em um arquivo 5.5.3. Fazendo a conversão do sistema de arquivos EXT2 para EXT3 5.5.4. Convertendo de EXT3 para EXT2 5.6. Sistema de arquivos reiserfs 5.6.1. Criando um sistema de arquivos reiserfs em uma partição 5.6.2. Criando um sistema de arquivos reiserfs em um arquivo 5.6.3. Nomeando uma partição de disco 5.6.4. Criando o diretório especial `lost+found' 5.6.5. dumpe2fs 5.6.6. Partição EXT2 ou Arquivo? 5.7. Partição Linux Swap (Memória Virtual) 5.7.1. Criando sistema de arquivos Swap em uma partição 5.7.2. Criando um sistema de arquivos Swap em um arquivo 5.7.3. Partição Swap ou Arquivo? 5.8. O sistema de Arquivos `/proc' 5.9. LVM - Logical Volume Manager 5.9.1. Representação gráfica do LVM 5.9.2. Performance do LVM 5.9.3. Colocando LVM em seu sistema 5.9.4. Aumentando o tamanho de um volume lógico 5.9.5. Diminuindo um volume lógico 5.10. Formatando disquetes 5.10.1. Formatando disquetes para serem usados no Linux 5.10.2. Formatando disquetes compatíveis com o DOS/Windows 5.10.3. Programas de Formatação Gráficos 5.11. Pontos de Montagem 5.12. Identificação de discos e partições em sistemas Linux 5.13. Montando (acessando) uma partição de disco 5.13.1. fstab 5.14. Desmontando uma partição de disco 6. Gerenciadores de Partida (boot loaders) 6.1. LILO 6.1.1. Criando o arquivo de configuração do LILO 6.1.2. Opções usadas no LILO 6.1.3. Um exemplo do arquivo de configuração lilo.conf 6.2. GRUB 6.2.1. Como o GRUB trabalha com discos e partições 6.2.2. Instalando o GRUB 6.2.2.1. No MBR 6.2.3. No disco flexível (somente linha de comando) 6.2.4. No disco flexível (com interface de menu) 6.2.5. Opções do arquivo de configuração 6.2.6. Um exemplo de arquivo de configuração 6.2.7. Usando a linha de comandos do GRUB 6.2.8. Removendo o GRUB do MBR 6.2.9. Como obter informações mais detalhadas 6.3. Parâmetros de inicialização passados ao kernel 4

6.4. LOADLIN 6.4.1. Opções do LOADLIN 6.4.2. Exemplo de inicialização com o LOADLIN 6.5. syslinux 6.5.1. Criando um disquete de inicialização com o syslinux 6.5.2. O arquivo SYSLINUX.CFG 6.5.3. Formatação dos arquivos de tela do syslinux 7. Execução de programas 7.1. Tipos de Execução de comandos/programas 7.2. Executando programas em seqüência 7.3. ps 7.4. top 7.5. Controle de execução de processos 7.5.1. Interrompendo a execução de um processo 7.5.2. Parando momentaneamente a execução de um processo 7.5.3. jobs 7.5.4. fg 7.5.5. bg 7.5.6. kill 7.5.7. killall 7.5.8. killall5 7.5.9. Sinais do Sistema 7.6. nohup 7.7. nice 7.8. fuser 7.9. tload 7.10. vmstat 7.11. pidof 7.12. pstree 7.13. Fechando um programa quando não se sabe como sair 7.14. Eliminando caracteres estranhos 8. Comandos para manipulação de diretório 8.1. ls 8.2. cd 8.3. pwd 8.4. mkdir 8.5. rmdir 9. Comandos para manipulação de Arquivos 9.1. cat 9.2. tac 9.3. rm 9.4. cp 9.5. mv 10. Comandos Diversos 10.1. clear 10.2. date 10.3. df 10.4. ln 10.5. du 10.6. find 10.7. free 10.8. grep 10.9. head 10.10. nl 10.11. more 5

10.12. less 10.13. sort 10.14. tail 10.15. time 10.16. touch 10.17. uptime 10.18. dmesg 10.19. mesg 10.20. echo 10.21. su 10.22. sync 10.23. uname 10.24. reboot 10.25. shutdown 10.26. wc 10.27. seq 10.28. chattr 10.29. lsattr 10.30. cut 10.31. cmp 10.32. dirname 10.33. diff 10.34. pr 10.35. patch 10.36. whereis 10.37. which 10.38. zforce 10.39. gzexe 10.40. znew 11. Comandos de rede 11.1. who 11.2. Telnet 11.3. finger 11.4. ftp 11.5. whoami 11.6. dnsdomainname 11.7. hostname 11.8. talk 11.9. ping 11.10. rlogin 11.11. rsh 11.12. w 11.13. traceroute 11.14. netstat 11.15. wall 12. Comandos para manipulação de contas 12.1. adduser 12.2. addgroup 12.3. passwd 12.4. newgrp 12.5. userdel 12.6. groupdel 12.7. lastlog 12.8. last 12.9. sg 12.10. Adicionando um novo grupo a um usuário 12.11. chfn 6

12.12. id 12.13. logname 12.14. users 12.15. groups 13. Permissões de acesso a arquivos e diretórios 13.1. Donos, grupos e outros usuários 13.2. Tipos de Permissões de acesso 13.3. Etapas para acesso a um arquivo/diretório 13.4. Exemplos práticos de permissões de acesso 13.4.1. Exemplo de acesso a um arquivo 13.4.2. Exemplo de acesso a um diretório 13.5. Permissões de Acesso Especiais 13.6. A conta root 13.7. chmod 13.8. chgrp 13.9. chown 13.10. Modo de permissão octal 13.11. umask 14. Redirecionamentos e Pipe 14.1. > 14.2. >> 14.3. < 14.4. << 14.5. (pipe) 14.6. Diferença entre o " " e o ">" 14.7. tee 15. Rede 15.1. O que é uma rede 15.2. Protocolo de Rede 15.3. Endereço IP 15.3.1. Classes de Rede IP 15.3.2. Para instalar uma máquina usando o Linux em uma rede existente 15.3.3. Endereços reservados para uso em uma rede Privada 15.4. Interface de rede 15.4.1. A interface loopback 15.4.2. Atribuindo um endereço de rede a uma interface ifconfig) 15.5. Roteamento 15.5.1. Configurando uma rota no Linux 15.6. Resolvedor de nomes (DNS) 15.6.1. O que é um nome? 15.6.2. Arquivos de configuração usados na resolução de nomes 15.6.2.1. /etc/resolv.conf 15.6.2.2. /etc/host.conf 15.6.2.3. /etc/hosts 15.6.2.4. /etc/networks 15.6.3. Executando um servidor de nomes 15.7. Serviços de Rede 15.7.1. Serviços iniciados como Daemons de rede 15.7.2. Serviços iniciados através do inetd 15.7.2.1. /etc/inetd.conf 7

15.8. Segurança da Rede e controle de Acesso 15.8.1. /etc/ftpusers 15.8.2. /etc/securetty 15.8.3. O mecanismo de controle de acessos tcpd 15.8.3.1. /etc/hosts.allow 15.8.3.2. /etc/hosts.deny 15.8.3.3. /etc/hosts.equiv e /etc/shosts.equiv 15.8.3.4. Verificando a segurança do TCPD e a sintaxe dos arquivos 15.8.4. Firewall 15.9. Outros arquivos de configuração relacionados com a rede 15.9.1. /etc/services 15.9.2. /etc/protocols 16. Kernel e Módulos 16.1. O Kernel 16.2. Módulos 16.3. Como adicionar suporte a Hardwares e outros dispositivos no kernel 16.4. kmod 16.5. lsmod 16.6. insmod 16.7. rmmod 16.8. modprobe 16.9. depmod 16.10. modconf 16.11. Recompilando o Kernel 16.12. Arquivos relacionados com o Kernel e Módulos 16.12.1. /etc/modules 16.12.2. modules.conf 16.13. Aplicando Patches no kernel 17. Arquivos e daemons de Log 17.1. Formato do arquivo de log 17.2. Daemons de log do sistema 17.2.1. syslogd 17.2.1.1. Arquivo de configuração `syslog.conf' 17.2.2. klogd 17.3. logger 18. Compactadores 18.1. O que fazem os compactadores/descompactadores? 18.1.1. Tipos de compactação 18.2. Extensões de arquivos compactados 18.3. gzip 18.4. zip 18.5. unzip 18.6. tar 18.7. bzip2 18.8. rar 19. A distribuição Debian GNU/Linux 19.1. Porque usar a Debian? 19.2. Pacotes existentes na Debian 19.3. O que é sid/testing/frozen/stable? 19.4. Como obter a Debian 19.5. Programas de configuração 19.6. Arquivos de inicialização 8

19.7. Níveis de Execução 19.7.1. Entendendo o funcionamento dos níveis de execução do sistema (runlevels) 19.8. Rede no sistema Debian 19.9. Bug tracking system 19.10. Onde encontrar a Debian para Download? 19.11. Lista de pacotes para uma instalação rápida e manual 19.11.1. Pacotes Básicos (Altamente Recomendado) 19.11.2. Compilação do Kernel e programas em linguagem C 19.11.3. X11 (básico) 19.11.4. Window Managers para o X 19.11.5. Impressão (texto e gráfico com sistema de spool) 19.11.6. Som (mixer, mp3, Midi, wav, CD-Player) 19.11.7. Programas de Internet (clientes) 19.11.8. Acessórios 19.11.9. Rede 20. Sistema de gerenciamento de pacotes 20.1. dpkg 20.1.1. Pacotes 20.1.2. Instalar pacotes 20.1.3. Dependências 20.1.4. Listar pacotes existentes no sistema 20.1.5. Removendo pacotes do sistema 20.1.6. Removendo completamente um pacote 20.1.7. Mostrar descrição do pacote 20.1.8. Procura de pacotes através do nome de um arquivo 20.1.9. Status do pacote 20.1.10. Procurando pacotes com problemas de instalação 20.1.11. Mostrando a lista de pacotes do sistema 20.1.12. Obtendo uma lista de pacotes para instalar no sistema 20.1.13. Configurando pacotes desconfigurados 20.1.14. Listando arquivos de um pacote 20.2. apt 20.2.1. O arquivo `/etc/apt/sources.list' 20.2.1.1. Endereços de servidores e mirrors nacionais da `Debian' 20.2.1.2. Um modelo de arquivo `sources.list' 20.2.2. O arquivo `/etc/apt/apt.conf' 20.2.3. Copiando a lista de pacotes disponíveis 20.2.4. Utilizando CDs oficiais/não-oficiais/terceiros com o apt 20.2.5. Instalando novos pacotes 20.2.6. Removendo pacotes instalado 20.2.7. Atualizando sua distribuição 20.2.8. Removendo pacotes baixados pelo `apt' 20.2.9. Procurando por pacotes através da descrição 20.2.10. Procurando um pacote que contém determinado arquivo 20.2.11. Modos eficazes de compilação do código fonte para a Debian 20.2.12. Verificando pacotes corrompidos 20.2.13. Corrigindo problemas de dependências e outros erros 21. Personalização do Sistema 21.1. Variáveis de Ambientes 21.2. Modificando o Idioma usado em seu sistema 21.3. alias 21.4. Arquivo `/etc/profile' 21.5. Arquivo `.bash_profile' 21.6. Arquivo `.bashrc' 21.7. Arquivo `.hushlogin' 21.8. Arquivo `/etc/environment' 21.9. Diretório `/etc/skel' 9

22. Impressão 22.1. Portas de impressora 22.2. Imprimindo diretamente para a porta de impressora 22.3. Imprimindo via spool 22.4. Impressão em modo gráfico 22.4.1. Ghost Script 22.5. Magic Filter 22.5.1. Instalação e configuração do Magic Filter 22.5.2. Outros detalhes técnicos sobre o Magic Filter 23. Configuração do sistema 23.1. Acentuação 23.1.1. Acentuação em modo Texto 23.1.2. Acentuação em modo gráfico 23.2. Número de Cores do ambiente gráfico 23.2.1. Configurando o número de cores para quem inicia pelo prompt 23.2.2. Configurando o número de cores para quem inicia pelo XDM 23.2.3. Ajustando o alinhamento da imagem no X e outras configurações 23.2.4. Sobre o número de cores para jogos que funcionam no X 24. Executando tarefas diversas no Linux 24.1. Gravando CDs no Linux 24.1.1. Gravando CDs de dados 24.1.2. Gravando um CD de audio 24.1.3. Cópia de CD para CD 24.1.4. Gravação massiva de CDs 24.1.5. Gravação de CDs diretamente através de arquivos mp3 ou Ogg 24.1.6. Backup de dados para 1 ou mais CDs 24.1.7. Aplicações gráficas para gravação de CDs 24.1.8. Fazendo a capa de frente e verso do CD 24.2. Executando vídeos DIVX 24.2.1. Colocando legendas nos filmes 24.3. Assistindo DVDs 24.4. Convertendo músicas no formato wav para mp3 24.5. Convertendo músicas do formato mp3 para cdr 25. Compilação 25.1. O que é compilação? 25.2. Compilador 26. Manutenção do Sistema 26.1. Checagem dos sistemas de arquivos 26.1.1. fsck.ext2 26.2. reiserfsck 26.3. fsck.minix 26.4. badblocks 26.5. defrag 26.6. Verificando e marcando setores danificados em um HD 26.7. Limpando arquivos de LOGS 26.8. Recuperando partições apagadas 26.9. Tarefas automáticas de manutenção do sistema 26.10. cron 26.10.1. O formato de um arquivo crontab 26.11. at 10

27. Principais arquivos de configuração do diretório `/etc' 27.1. Diretório `/etc/alternatives' 27.2. Arquivo `/etc/default/devpts' 27.3. Arquivo `/etc/default/rcs' 27.4. Arquivo `/etc/kbd/config' 27.5. Diretório `/etc/menu-methods' 27.6. Arquivo `/etc/menu-methods/menu-translate' 27.7. Arquivo `/etc/networks' 27.8. Arquivo `/etc/network/interfaces' 27.9. Arquivo `/etc/networks/options' 27.10. Arquivo `/etc/networks/spoof-protect' 27.11. Diretório `/etc/pam.d' 27.12. Diretório `/etc/ppp' 27.13. Diretório `/etc/security' 27.14. Arquivo `/etc/security/access.conf' 27.15. Arquivo `/etc/security/limits.conf' 27.16. Arquivo `/etc/crontab' 27.17. Arquivo `/etc/fstab' 27.18. Arquivo `/etc/group' 27.19. Arquivo `/etc/gshadow' 27.20. Arquivo `/etc/host.conf' 27.21. Arquivo `/etc/hostname' 27.22. Arquivo `/etc/hosts' 27.23. Arquivo `/etc/hosts.allow' 27.24. Arquivo `/etc/hosts.deny' 27.25. Arquivo `/etc/hosts.equiv' 27.26. Arquivo `/etc/inetd.conf' 27.27. Arquivo `/etc/inittab' 27.28. Arquivo `/etc/inputrc' 27.29. Arquivo `/etc/isapnp.conf' 27.30. Arquivo `/etc/isapnp.gone' 27.31. Arquivo `/etc/issue' 27.32. Arquivo `/etc/issue.net' 27.33. Arquivo `/etc/lilo.conf' 27.34. Arquivo `/etc/login.defs' 27.35. Arquivo `/etc/modules' 27.36. Arquivo `/etc/modules.conf' 27.37. Arquivo `/etc/motd' 27.38. Arquivo `/etc/mtab' 27.39. Arquivo `/etc/networks' 27.40. Arquivo `/etc/passwd' 27.41. Arquivo `/etc/printcap' 27.42. Arquivo `/etc/protocols' 27.43. Arquivo `/etc/resolv.conf' 27.44. Arquivo `/etc/serial.conf' 27.45. Arquivo `/etc/services' 27.46. Arquivo `/etc/shadow' 27.47. Arquivo `/etc/shells' 27.48. Arquivo `/etc/syslog.conf' 27.49. Arquivo `/etc/timezone' 28. Conectando seu computador a Internet 28.1. Conectando-se a Internet 28.2. Navegando na Internet 28.3. Recebimento de E-Mails através do `fetchmail' 28.3.1. Processamento de mensagens através do procmail 11

29. X Window (ambiente gráfico) 29.1. O que é X Window? 29.2. A organização do ambiente gráfico X Window 29.3. Iniciando o X 29.4. Servidor X 30. Aplicativos para Linux 30.1. Aplicativos Básicos 30.1.1. Editores de Texto 30.1.2. Aplicativos para Escritório 30.1.3. Internet 30.1.4. Emuladores 30.1.5. Utilitários 30.1.6. Administração do Sistema 30.2. Listagem de Aplicativos para `GNU/Linux' 30.2.1. Periféricos / Gerenciamento de Hardware 30.2.2. Internet 30.2.3. Conferência de audio/vídeo via Internet/Intranet 30.2.4. Gerenciamento de WebSites / Linguagem HTML 30.2.5. Multimídia 30.2.6. Som 30.2.7. Comunicação/Fax 30.2.8. X Window 30.2.9. Editoração Gráfica/Visualizadores 30.2.10. Emuladores/Ferramentas p/ Interação com outros SO 30.2.11. Programação / Bancos de Dados / Acesso a Dados 30.2.12. Impressão 30.2.13. Texto 30.2.14. Kernel 30.2.15. Notebooks 30.2.16. Gravação de CD/DVD 30.2.17. Computação Paralela/Clusters 30.2.18. PalmTop / Palm Pilot / Computadores de Mão 30.2.19. Backup 30.2.20. Utilitários 30.2.21. Compactadores/Descompactadores/Arquivadores 30.2.22. Dispositivos X-10 (Controle de eletrodomésticos e aparelhos via PC) 30.2.23. Outros 31. Como obter ajuda no sistema 31.1. Páginas de Manual 31.2. Info Pages 31.3. Help on line 31.4. help 31.5. apropos/whatis 31.6. locate 31.7. which 31.8. Documentos HOWTO's 31.8.1. Listagem de HOWTO's 31.8.1.1. Introdução ao Sistema / Instalação / Configurações / Kernel 31.8.1.2. Adaptação do `GNU/Linux' para idiomas específicos 31.8.1.3. Discos / Sistemas de Arquivos / Desempenho 31.8.1.4. Escrita de Documentação / Editores 31.8.1.5. Hardware 31.8.1.6. Software 31.8.1.7. Plataformas não Intel (x86) 31.8.1.8. Programação / Compiladores / Banco de Dados 31.8.1.9. Computação Paralela / Clusters 31.8.1.10. Configuração de Teclado / Vídeo / Console 12

31.8.1.11. Ambiente Gráfico 31.8.1.12. Suporte ao Sistema / Grupos de Usuários / Listas de Discussão 31.8.1.13. Migração / Convivência com Outras Plataformas 31.8.1.14. Tarefas Específicas 31.8.1.15. Rede / Administração / Firewall / Proxy / Segurança 31.8.1.16. Outros 31.8.2. Listagem de Mini-HOWTO's 31.8.2.1. Introdução ao Sistema / Instalação / Configuração / Kernel 31.8.2.2. Discos / Sistema de Arquivos / Desempenho 31.8.2.3. Escrita de Documentação / Editores 31.8.2.4. Hardware 31.8.2.5. Software 31.8.2.6. Plataformas não Intel (x86) 31.8.2.7. Programação / Compiladores / Banco de Dados 31.8.2.8. Configuração de Teclado / Video / Console 31.8.2.9. Ambiente Gráfico 31.8.2.10. Migração/Convivência com outras plataformas 31.8.2.11. Tarefas Específicas 31.8.2.12. Rede / Administração / Firewall / Segurança 31.8.2.13. Outros 31.9. Documentação de Programas 31.10. FAQ 31.11. RFC's 31.12. Internet 31.12.1. Páginas Internet de Referência 31.12.2. Listas de discussão 31.13. Netiqueta 31.13.1. Recomendações Gerais sobre a Comunicação Eletrônica 31.13.2. Email 31.13.3. Talk 31.13.4. ICQ 31.13.5. Listas de Discussão via Email 32. Apêndice 32.1. Sobre este guia 32.2. Sobre o Autor 32.3. Referências de auxílio ao desenvolvimento do guia 32.4. Onde encontrar a versão mais nova do guia? 32.5. Colaboradores do Guia 32.6. Marcas Registradas 32.7. Futuras versões 32.8. Chave Pública PGP ------------------------------------------------------------------------------- 13

1. Introdução ------------- Bem vindo ao guia _Foca GNU/Linux_. O nome _FOCA_ significa _FO_nte de _C_onsulta e _A_prendizado. Este guia é dividido em 3 níveis de aprendizado e versão que esta lendo agora contém o(s) nível(is) de aprendizado: * Intermediário Entre o conteúdo do guia, você encontrará: * Explicações necessárias para conhecer, operar, configurar, desenvolver, personalizar seus programas e arquivos. * Uma lista de aplicativos clientes para serem usados em seu sistema `GNU/Linux', com suas características, equipamento mínimo requerido e espaço em disco recomendado para instalação. * Criação de partições e arquivos contendo o sistema de arquivos _ext2_ (para gravação de dados) e swap (memória virtual) e as vantagens/desvantagens de se utilizar um arquivo ou partição para armazenamento de dados. * Compilação de programas/kernel, com explicações sobre cada uma das opções ajudando-o a decidir sobre a inclusão ou não. * Manipulação de módulos do kernel * Explicações sobre hardwares (Interrupções, DMA, Jumpers, Jumperless, Plug-and-Play) e como configura-los no Linux, valores padrões e resolução de conflitos entre hardwares. * Dicas de como avaliar e comprar bons hardwares para que seu computador tenha o melhor desempenho (também válido para `DOS', `Windows' e outras plataformas). Desta maneira você saberá porque algumas placas de fax-modens custam 3 vezes mais caro que outras e o que a placa traz de especial para ter este diferencial. * Como modificar facilmente o idioma usado em seu sistema (localização) para o modo texto e modo gráfico. * Utilização de compactadores de disco * Mais opções para os comandos existentes na versão _Iniciante_ do guia e novos comandos. * Conhecer os arquivos de configuração e arquivos básicos de segurança e aprender para que eles servem e como usa-los. * Dicas de como saber escolher bons periféricos para uso no `GNU/Linux' e outros sistemas operacionais * Manutenção básica do computador (verificação do disco, desfragmentação) e manutenção automática feita através dos programas de e scripts configurados. * Introdução a rede no Linux (com a configuração de dispositivos de rede, etc.). * Configurações básicas de segurança de Rede 14

* Gerenciadores de inicialização, o que são e como funcionam e como criar um arquivo de inicialização para inicializar o `GNU/Linux' pelo disco rígido ou mais de um Sistema Operacional. * Particionamento de disco * Criação de Memória virtual no disco rígido e em arquivo. * Os materiais contidos na versão intermediário são ideais para quem já tem um conhecimento básico do sistema `GNU/Linux' mas que deseja se aprofundar neste sistema conhecendo os arquivos necessários para o funcionamento do `GNU/Linux', como modifica-los e como estas modificações afetam o funcionamento do sistema. Para melhor organização, dividi o guia em 3 versões: _Iniciante_, _Intermediário_ e _Avançado_. Sendo que a versão _Iniciante_ é voltada para o usuário que não tem `nenhuma' experiência no `GNU/Linux'. A última versão deste guia pode ser encontrada em: Página Oficial do guia Foca GNU/Linux (http://focalinux.cipsga.org.br). Caso tiver alguma sugestão, correção, crítica para a melhoria deste guia, envie um e-mail para <gleydson@cipsga.org.br>. O _Foca GNU/Linux_ é atualizado freqüentemente, por este motivo recomendo que preencha a ficha do aviso de atualizações na página web em Página Oficial do guia Foca GNU/Linux (http://focalinux.cipsga.org.br) no fim da Página principal. Após preencher a ficha do aviso de atualizações, você receberá um e-mail sobre o lançamento de novas versões do guia e o que foi modificado, desta forma você poderá decidir em copia-la caso a nova versão contenha modificações que considera importantes. Venho recebendo muitos elegios de pessoas do Brasil (e de paises de fora também) elogiando o trabalho e a qualidade da documentação. Agradeço a todos pelo apoio, tenham certeza que este trabalho é desenvolvido pensando em repassar um pouco do conhecimento que adquiri ao começar o uso do Linux. Também venho recebendo muitos e-mails de pessoas que passaram na prova LPI nível 1 e 2 após estudar usando o guia Foca GNU/Linux. Fico bastante feliz por saber disso, pois nunca tive a intenção de tornar o guia uma referência livre para estudo da LPI e hoje é usado para estudo desta difícil certificação que aborda comandos, serviços, configurações, segurança, empacotamento, criptografia, etc. 1.1. Antes de começar --------------------- Os capítulos _Introdução_ e _básico_ contém explicações teóricas sobre o computador, `GNU/Linux', etc., você pode pular este capítulos caso já conheça estas explicações ou se desejar partir para a prática equiser vê-los mais tarde, se lhe interessar. Se você já é um usuário do `DOS' e `Windows', recomendo ler Capítulo 4, `Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux'. Lá você vai encontrar comparações de comandos e programas `DOS/Windows' e `GNU/Linux'. 15

Para quem está começando, muita teoria pode atrapalhar o aprendizado, é mais produtivo ver na prática o que o computador faz e depois porque ele faz isto. Mesmo assim, recomendo ler estes capítulos pois seu conteúdo pode ser útil... Coloquei abaixo algumas dicas para um bom começo: * Recomendo que faça a leitura deste guia e pratique imediatamente o que aprendeu. Isto facilita o entendimento do programa/comando/configuração. * É preciso ter interesse em aprender, se você tiver vontade em aprender algo, você terá menos dificuldade do que em algo que não gosta e está se obrigando a aprender. * Decorar não adianta, pelo contrário, só atrapalha no aprendizado. Você precisa entender o que o comando faz, deste modo você estará também usando e desenvolvendo sua interpretação, e entenderá melhor o assunto (talvez até me de uma força para melhorar o guia ;-) * Curiosidade também é importante. Você talvez possa estar procurando um comando que mostre os arquivos que contém um certo texto, e isto fará você chegar até o comando `grep', depois você conhecerá suas opções, etc. * Não desanime vendo outras pessoas que sabem mais que você, lembre-se que ninguém nasce sabendo :-). Uma pessoa pode ter mais experiência em um assunto no sistema como compilação de programas, configuração, etc., e você pode ter mais interesse em redes. * Ninguém pode saber tudo da noite para o dia, não procure saber tudo sobre o sistema de uma só vez senão não entenderá NADA. Caso tenha dúvidas sobre o sistema, procure ler novamente a seção do guia, e caso ainda não tenha entendido procure ajuda nas página de manual (veja Seção 31.1, `Páginas de Manual'), ou nas listas de discussão (veja Seção 31.12.2, `Listas de discussão') ou me envie uma mensagem <gleydson@cipsga.org.br>. * Certamente você buscará documentos na Internet que falem sobre algum assunto que este guia ainda não explica. Muito cuidado! O `GNU/Linux' é um sistema que cresce muito rapidamente, a cada semana uma nova versão é lançada, novos recursos são adicionados, seria maravilhoso se a documentação fosse atualizada com a mesma freqüência. Infelizmente a atualização da documentação não segue o mesmo ritmo (principalmente aqui no Brasil). É comum você encontrar na Internet documentos da época quando o kernel estava na versão 2.0.20, 2.0.30, etc. Estes documentos são úteis para pessoas que usem as versões antigas do Kernel Linux, mas pode trazer problemas ou causar má impressão do `GNU/Linux' em outras pessoas. Por exemplo, você pode esbarrar pela Internet com um documento que diz que o Kernel não tem suporte aos "nomes extensos" da VFAT (Windows 95), isto é verdade para kernels anteriores ao 2.0.31, mas as versões mais novas que a 2.0.31 reconhecem sem problemas os nomes extensos da partição Windows VFAT. Uma pessoa desavisada pode ter receio de instalar o `GNU/Linux' em uma mesma máquina com Windows por causa de um documento como este. Para evitar problemas deste tipo, verifique a data de atualização do documento, se verificar que o documento está obsoleto, contacte o autor original e peça para que ele retire aquela seção na próxima versão que será lançada. 16

* O `GNU/Linux' é considerado um sistema mais difícil do que os outros, mas isto é porque ele requer que a pessoa realmente aprenda e conheça computadores e seus periféricos antes de fazer qualquer coisa (principalmente se você é um técnico em manutenção, redes, instalações, etc., e deseja oferecer suporte profissional a este sistema). Você conhecerá mais sobre computadores, redes, hardware, software, discos, saberá avaliar os problemas e a buscar a melhor solução, enfim as possibilidades de crescimento neste sistema operacional depende do conhecimento, interesse e capacidade de cada um. * A interface gráfica existe, mas os melhores recursos e flexibilidade estão na linha de comando. Você pode ter certeza que o aprendizado no `GNU/Linux' ajudará a ter sucesso e menos dificuldade em usar qualquer outro sistema operacional. * Peça ajuda a outros usuários do `GNU/Linux' quando estiver em dúvida ou não souber fazer alguma coisa no sistema. Você pode entrar em contato diretamente com outros usuários ou através de listas de discussão (veja Seção 31.12.2, `Listas de discussão'). Boa Sorte e bem vindo ao `GNU/Linux'! gleydson (<gleydson@cipsga.org.br>). 1.2. Pré-requisitos para a utilização deste guia ------------------------------------------------ É assumido que você tenha entendido a função de boa parte dos comandos que consta na versão iniciante do Foca Linux, arquivos e permissões de acesso. Em resumo, que saiba decidir quando e qual(is) comando(s) deve usar em cada situação. Caso não entenda as explicações da versão INTERMEDIÁRIO, recomendo que faça a leitura da versão INICIANTE do Foca Linux que pode ser encontrada em http://focalinux.cipsga.org.br. Este guia não cobre a instalação do sistema. Para detalhes sobre instalação, consulte a documentação que acompanha sua distribuição `GNU/Linux'. 1.3. O Linux ------------ O `Linux' é um sistema operacional criado em 1991 por _Linus Torvalds_ na universidade de Helsinki na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela Internet. Seu código fonte é liberado como _Free Software_ (software livre) o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele não pode fechar o sistema para que seja usado apenas comercialmente. Isto quer dizer que você não precisa pagar nada para usar o Linux, e não é crime fazer cópias para instalar em outros computadores, nós inclusive incentivamos você a fazer isto. Ser um sistema de código aberto pode explicar a performance, estabilidade e velocidade em que novos recursos são adicionados ao sistema. 17

Para rodar o `Linux' você precisa, no mínimo, de um computador 386 SX com 2 MB de memória e 40MB disponíveis em seu disco rígido para uma instalação básica e funcional. O sistema segue o padrão _POSIX_ que é o mesmo usado por sistemas _UNIX_ e suas variantes. Assim, aprendendo o `Linux' você não encontrará muita dificuldade em operar um sistema do tipo `UNIX, FreeBSD, HPUX, SunOS,' etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O código fonte aberto permite que qualquer pessoa veja como o sistema funciona (útil para aprendizado), corrija alguma problema ou faça alguma sugestão sobre sua melhoria, esse é um dos motivos de seu rápido crescimento, do aumento da compatibilidade de periféricos (como novas placas sendo suportadas logo após seu lançamento) e de sua estabilidade. Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de última geração e mais antigos (a maioria deles já ultrapassados e sendo completamente suportados pelo sistema operacional). Este é um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com as máquinas que possui. Hoje o `Linux' é desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuição ou mantendo alguma parte do kernel gratuitamente. _Linus Torvalds_ ainda trabalha em seu desenvolvimento e também ajuda na coordenação entre os desenvolvedores. O suporte ao sistema também se destaca como sendo o mais eficiente e rápido do que qualquer programa comercial disponível no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo. Você pode se inscrever em uma lista de discussão e relatar sua dúvida ou alguma falha, e sua mensagem será vista por centenas de usuários na Internet e algum irá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada para devida correção. Para detalhes, veja Seção 31.12.2, `Listas de discussão'. 1.3.1. Algumas Características do Linux --------------------------------------- * É livre e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste sistema operacional. Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixa qualidade de sistemas comerciais existentes * Convivem sem nenhum tipo de conflito com outros sistemas operacionais (com o `DOS', `Windows', `OS/2') no mesmo computador. * Multitarefa real * Multiusuário * Suporte a nomes extensos de arquivos e diretórios (255 caracteres) * Conectividade com outros tipos de plataformas como _Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc_. * Proteção entre processos executados na memória RAM * Suporte a mais de 63 terminais virtuais (consoles) 18

* Modularização - O `GNU/Linux' somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado * Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento. Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo) * Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware (queima do processador, placa mãe, etc.). * Não precisa de um processador potente para funcionar. O sistema roda bem em computadores 386Sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 8MB de RAM). Já pensou no seu desempenho em um 486 ou Pentium ;-) * O crescimento e novas versões do sistema não provocam lentidão, pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x). * Não é requerida uma licença para seu uso. O `GNU/Linux' é licenciado de acordo com os termos da GPL. * Acessa corretamente discos formatados pelo `DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac,' etc. * Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM. * NÃO EXISTEM VÍRUS NO LINUX! Em 13 anos de existência, nunca foi registrado NENHUM tipo de infecções desde que respeitadas as recomendações padrão de política de segurança e uso de contas privilegiadas (como a de root, como veremos adiante). O sistema oferece restrições de de acesso do sistema de arquivos e durante a execução de programas. Frequentemente são criados exploits que tentam se aproveitar de falhas existentes em sistemas desatualizados e usa-las para danificar o sistema. _Erroneamente_ este tipo de ataque é classificado como vírus por pessoas mal informadas e são resolvidas corrigindo a falha que foi descoberta. Em geral, usando uma boa distribuição que tenha um bom sistema de atualização resolve em 99.9% os problemas com exploits. Lembre-se que o formato padrão de arquivos do Linux é ELF, qualquer programa (nocivo ou não) que tenha privilégios adequados, podem escrever em qualquer lugar. * Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O `GNU/Linux' tem suporte nativo a redes TCP/IP e não depende de uma camada intermediária como o WinSock. Em acessos via modem a Internet, a velocidade de transmissão é 10% maior. Jogadores do `Quake' ou qualquer outro tipo de jogo via Internet preferem o `GNU/Linux' por causa da maior velocidade do Jogo em rede. É fácil rodar um servidor `Quake' em seu computador e assim jogar contra vários adversários via Internet. * Roda aplicações _DOS_ através do `DOSEMU'. Para se ter uma idéia, é possível dar o boot em um sistema _DOS_ qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema. * Roda aplicações _Windows_ através do `WINE'. * Suporte a dispositivos infravermelho. * Suporte a rede via rádio amador. * Suporte a dispositivos Plug-and-Play. 19

* Suporte a dispositivos USB. * Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça. * Roteamento estático e dinâmico de pacotes. * Ponte entre Redes. * Proxy Tradicional e Transparente. * Possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para situações de manutenção em servidores de redes ou para a emulação de "mais computadores" virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usuário que se conecta tem a impressão que a rede possui servidores diferentes. * O sistema de arquivos usado pelo `GNU/Linux' (`Ext2') organiza os arquivos de forma inteligente evitando a fragmentação e fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e gravações intensivas. * Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o `Apache', é distribuído gratuitamente junto com o Linux. O mesmo acontece com o `Sendmail'. * Por ser um sistema operacional de código aberto, você pode ver o que o código fonte (o que foi digitado pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta característica é uma segurança a mais para empresas sérias e outros que não querem ter seus dados roubados (você não sabe o que um sistema sem código fonte faz na realidade enquanto esta processando o programa). * Suporte a diversos dispositivos e periféricos disponíveis no mercado, tanto os novos como obsoletos. * Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.). * Consultores técnicos especializados no suporte ao sistema espalhados por todo o mundo. * Entre muitas outras características que você descobrirá durante o uso do sistema. TODOS OS ÍTENS DESCRITOS ACIMA SÃO VERDADEIROS E TESTADOS PARA QUE TIVESSE PLENA CERTEZA DE SEU FUNCIONAMENTO. 1.4. Software Livre ------------------- (tradução do texto `Linux e o Sistema GNU' de `Richard Stallman' obtido no site do CIPSGA: http://www.cipsga.org.br). O projeto _GNU_ começou há 12 anos atrás com o objetivo de desenvolver um sistema operacional Unix-like totalmente livre. `Livre' se refere à liberdade, e não ao preço; significa que você está livre para executar, distribuir, estudar, mudar e melhorar o software. Um sistema Unix-like consiste de muitos programas diferentes. Nós achamos alguns componentes já disponíveis como softwares livres -- por exemplo, `X Window' e `TeX'. Obtemos outros componentes ajudando a convencer seus desenvolvedores a tornarem eles livres -- por exemplo, o Berkeley network utilities. Outros componentes nós escrevemos especificamente para o GNU -- por exemplo, `GNU Emacs', o compilador `GNU C', o `GNU C library', `Bash' e `Ghostscript'. Os componentes desta última categoria são "software GNU". O sistema GNU consiste de todas as três categorias reunidas. 20

O projeto GNU não é somente desenvolvimento e distribuição de alguns softwares livres úteis. O coração do projeto GNU é uma idéia: que software deve ser _livre_, e que a liberdade do usuário vale a pena ser defendida. Se as pessoas têm liberdade mas não a apreciam conscientemente, não irão mantê-la por muito tempo. Se queremos que a liberdade dure, precisamos chamar a atenção das pessoas para a liberdade que elas têm em programas livres. O método do projeto GNU é que programas livres e a idéia da liberdade dos usuários ajudam-se mutuamente. Nós desenvolvemos software GNU, e conforme as pessoas encontrem programas GNU ou o sistema GNU e comecem a usá-los, elas também pensam sobre a filosofia GNU. O software mostra que a idéia funciona na prática. Algumas destas pessoas acabam concordando com a idéia, e então escrevem mais programas livres. Então, o software carrega a idéia, dissemina a idéia e cresce da idéia. Em 1992, nós encontramos ou criamos todos os componentes principais do sistema exceto o kernel, que nós estávamos escrevendo. (Este kernel consiste do microkernel Mach mais o GNU HURD. Atualmente ele está funcionando, mas não está preparado para os usuários. Uma versão alfa deverá estar pronta em breve.) Então o kernel do Linux tornou-se disponível. Linux é um kernel livre escrito por Linus Torvalds compatível com o Unix. Ele não foi escrito para o projeto GNU, mas o Linux e o quase completo sistema GNU fizeram uma combinação útil. Esta combinação disponibilizou todos os principais componentes de um sistema operacional compatível com o Unix, e, com algum trabalho, as pessoas o tornaram um sistema funcional. Foi um sistema GNU variante, baseado no kernel do `Linux'. Ironicamente, a popularidade destes sistemas desmerece nosso método de comunicar a idéia GNU para as pessoas que usam GNU. Estes sistemas são praticamente iguais ao sistema GNU -- a principal diferença é a escolha do kernel. Porém as pessoas normalmente os chamam de "sistemas Linux (Linux systems)". A primeira impressão que se tem é a de que um "sistema Linux" soa como algo completamente diferente de "sistema GNU", e é isto que a maioria dos usuários pensam que acontece. A maioria das introduções para o "sistema Linux" reconhece o papel desempenhado pelos componentes de software GNU. Mas elas não dizem que o sistema como um todo é uma variante do sistema GNU que o projeto GNU vem compondo por uma década. Elas não dizem que o objetivo de um sistema Unix-like livre como este veio do projeto GNU. Daí a maioria dos usuários não saber estas coisas. Como os seres humanos tendem a corrigir as suas primeiras impressões menos do que as informações subseqüentes tentam dizer-lhes, estes usuários que depois aprendem sobre a relação entre estes sistemas e o projeto GNU ainda geralmente o subestima. Isto faz com que muitos usuários se identifiquem como uma comunidade separada de "usuários de Linux", distinta da comunidade de usuários GNU. Eles usam todos os softwares GNU; de fato, eles usam quase todo o sistema GNU; mas eles não pensam neles como usuários GNU, e freqüentemente não pensam que a filosofia GNU está relacionada a eles. 21

Isto leva a outros problemas também -- mesmo dificultando cooperação com a manutenção de programas. Normalmente quando usuários mudam um programa GNU para fazer ele funcionar melhor em um sistema específico, eles mandam a mudança para o mantenedor do programa; então eles trabalham com o mantenedor explicando a mudança, perguntando por ela, e às vezes reescrevendo-a para manter a coerência e mantenebilidade do pacote, para ter o patch instalado. Mas as pessoas que pensam nelas como "usuários Linux" tendem a lançar uma versão "Linux-only" do programa GNU, e consideram o trabalho terminado. Nós queremos cada e todos os programas GNU que funcionem "out of the box" em sistemas baseados em Linux; mas se os usuários não ajudarem, este objetivo se torna muito mais difícil de atingir. Como deve o projeto GNU lidar com este problema? O que nós devemos fazer agora para disseminar a idéia de que a liberdade para os usuários de computador é importante? Nós devemos continuar a falar sobre a liberdade de compartilhar e modificar software -- e ensinar outros usuários o valor destas liberdades. Se nós nos beneficiamos por ter um sistema operacional livre, faz sentido para nós pensar em preservar estas liberdades por um longo tempo. Se nós nos beneficiamos por ter uma variedade de software livres, faz sentido pensar sobre encorajar outras pessoas a escrever mais software livre, em vez de software proprietário. Nós não devemos aceitar a idéia de duas comunidades separadas para GNU e Linux. Ao contrário, devemos disseminar o entendimento de que "sistemas Linux" são variantes do sistema GNU, e que os usuários destes sistemas são tanto usuários GNU como usuários Linux (usuários do kernel do Linux). Usuários que têm conhecimento disto irão naturalmente dar uma olhada na filosofia GNU que fez estes sistemas existirem. Eu escrevi este artigo como um meio de fazer isto. Outra maneira é usar os termos "sistema GNU baseado em Linux (Linux-based GNU system)" ou "sistema GNU/Linux (GNU/Linux system)", em vez de "sistema Linux", quando você escreve sobre ou menciona este sistema. ------------------------------------------------------------------------------- 22

2. Explicações Básicas ---------------------- Este capítulo traz explicações sobre os principais componentes existentes no computador e do sistema operacional. 2.1. Interpretador de comandos ------------------------------ Também conhecido como "shell". É o programa responsável em interpretar as instruções enviadas pelo usuário e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. É a principal ligação entre o usuário, os programas e o kernel. O `GNU/Linux' possui diversos tipos de interpretadores de comandos, entre eles posso destacar o `bash, ash, csh, tcsh, sh,' etc. Entre eles o mais usado é o `bash'. O interpretador de comandos do DOS, por exemplo, é o `command.com'. Os comandos podem ser enviados de duas maneiras para o interpretador: `interativa' e `não-interativa': `Interativa' Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar uma tarefa, ou próximo comando. `Não-interativa' São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento. Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo. O shell `Bash' possui ainda outra característica interessante: A completação dos nomes. Isto é feito pressionando-se a tecla `TAB'. Por exemplo, se digitar "ls tes" e pressionar <tab>, o `Bash' localizará todos os arquivos que iniciam com "tes" e completará o restante do nome. Caso a completação de nomes encontre mais do que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. Se você apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos irá listar as diversas possibilidades que satisfazem a pesquisa, para que você possa escolher a que lhe interessa. A completação de nomes funciona sem problemas para comandos internos. Exemplo: `ech' (pressione `TAB'). `ls /vm'(pressione `TAB') 23

2.2. Terminal Virtual (console) ------------------------------- Terminal (ou console) é o teclado e tela conectados em seu computador. O `GNU/Linux' faz uso de sua característica _multi-usuária_ usando os "terminais virtuais". Um terminal virtual é uma segunda seção de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via `telnet, rsh, rlogin,' etc. No `GNU/Linux', em modo texto, você pode acessar outros terminais virtuais segurando a tecla `ALT' e pressionando `F1 a F6'. Cada tecla de função corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). O `GNU/Linux' possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveis inicialmente por motivos de economia de memória RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memória RAM, desative a quantidade que não estiver usando para liberar memória RAM para uso de outros programas!) Se estiver usando o modo gráfico, você deve segurar `CTRL'+ `ALT' enquanto pressiona uma tela de <F1> a <F6>. Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como "root" para instalar algum programa, segure `ALT' enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como "root". Será aberta uma nova seção para o usuário "root" e você poderá retornar a hora que quiser para o primeiro terminal pressionando `ALT'+<F1>. 2.3. Curingas ------------- Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no `GNU/Linux': * "*" - Faz referência a um nome completo/restante de um arquivo/diretório. * "?" - Faz referência a uma letra naquela posição. * `[padrão]' - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser: * `[a-z][0-9]' - Faz referência a caracteres de `a' até `z' seguido de um caracter de `0' até `9'. * `[a,z][1,0]' - Faz a referência aos caracteres `a' e `z' seguido de um caracter `1' ou `0' naquela posição. * `[a-z,1,0]' - Faz referência a intervalo de caracteres de `a' até `z' ou `1' ou `0' naquela posição. A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar `[a-za-z]'. Caso a expressão seja precedida por um `^', faz referência a qualquer caracter exceto o da expressão. Por exemplo `[^abc]' faz referência a qualquer caracter exceto `a', `b' e `c'. 24

* `{padrões}' - Expande e gera strings para pesquisa de padrões de um arquivo/diretório. * `X{ab,01}' - Faz referência a seqüencia de caracteres `Xab' ou `X01' * `X{a-z,10}' Faz referencia a seqüencia de caracteres X`a-z' e `X10'. O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Para entender melhor vamos a prática: Vamos dizer que tenha 5 arquivo no diretório `/usr/teste': `teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new'. Caso deseje listar _todos_ os arquivos do diretório `/usr/teste' você pode usar o coringa "*" para especificar todos os arquivos do diretório: `cd /usr/teste' e `ls *' ou `ls /usr/teste/*'. Não tem muito sentido usar o comando `ls' com "*" porque todos os arquivos serão listados se o `ls' for usado sem nenhum Coringa. Agora para listar todos os arquivos `teste1.txt, teste2.txt, teste3.txt' com excessão de `teste4.new', `teste5.new', podemos usar inicialmente 3 métodos: 1. Usando o comando `ls *.txt' que pega todos os arquivos que começam com qualquer nome e terminam com `.txt'. 2. Usando o comando `ls teste?.txt', que pega todos os arquivos que começam com o nome `teste', tenham qualquer caracter no lugar do coringa `?' e terminem com `.txt'. Com o exemplo acima `teste*.txt' também faria a mesma coisa, mas se também tivéssemos um arquivo chamado `teste10.txt' este também seria listado. 3. Usando o comando `ls teste[1-3].txt', que pega todos os arquivos que começam com o nome `teste', tenham qualquer caracter entre o número 1-3 no lugar da 6a letra e terminem com `.txt'. Neste caso se obtém uma filtragem mais exata, pois o coringa _?_ especifica qualquer caracter naquela posição e [] especifica números, letras ou intervalo que será usado. Agora para listar somente `teste4.new' e `teste5.new' podemos usar os seguintes métodos: 1. `ls *.new' que lista todos os arquivos que terminam com `.new' 2. `ls teste?.new' que lista todos os arquivos que começam com `teste', contenham qualquer caracter na posição do coringa _?_ e terminem com `.new'. 3. `ls teste[4,5].*' que lista todos os arquivos que começam com `teste' contenham números de 4 e 5 naquela posição e terminem com qualquer extensão. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do `GNU/Linux': permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes. ------------------------------------------------------------------------------- 25