Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

slackbookptbr, Notas de estudo de Engenharia Informática

linux slack

Tipologia: Notas de estudo

2015

Compartilhado em 03/04/2015

candido-rondon-soares-6
candido-rondon-soares-6 🇧🇷

5

(2)

2 documentos

1 / 179

Pré-visualização parcial do texto

Baixe slackbookptbr e outras Notas de estudo em PDF para Engenharia Informática, somente na Docsity! Slackware Linux Essentials O Guia Oficial do Slackware Linux Projeto de tradução do Slackbook para Português do Brasil Slackbookptbr - http://slackbookptbr.sf.net Versão: 1.0.2 ii Slackware Linux Essentials Segunda Edição Publicação: Maio 2005 isbn: 1-57176-338-4 Slackware Linux Essentials, Second Edition Copyright c© 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc. All rights reserved. Printed in Canada. Published by Slackware Linux, Inc., 1164 Claremont Drive, Brentwood, CA 94513 Lead Author, Second Edition: Alan Hicks. Editors, Second Edition: Murray Stokely and FuKang Chen. Authors, First Edition: Chris Lumens, David Cantrell, and Logan Johnson. Print History: June, 2000 First Edition May, 2005 Second Edition Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, Inc. Linux is a registered trademark of Linus Torvalds. America Online and AOL are registered trademarks of America Online, Inc. in the United States and/or other countries. Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. IBM, AIX, EtherJet, Net?nity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both. IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registe- red trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries. Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. XFree86 is a trademark of The XFree86 Project, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and Slackware Linux, Inc. was aware of the trademark claim, the designations have been followed by the ”’tm”’ or the R© symbol. SUMÁRIO v 10.2.1 more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 10.2.2 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 10.2.3 most . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.3 Sáıda Simples: cat e echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.3.1 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.3.2 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.4 Criação: touch e mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.4.1 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.4.2 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.5 Copiar e mover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.5.1 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.5.2 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.6 Exclusão: rm e rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.6.1 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.6.2 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.7 Apelidando arquivos com ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 11 Controle de Processos 93 11.1 Segundo Plano (background) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.2 Primeiro plano (foregrounding) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 11.3 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 11.4 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.5 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 12 O Essencial em Administração de Sistema 101 12.1 Usuários e Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 12.1.1 Scripts fornecidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 12.1.2 Mudando senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 12.1.3 Mudando a Informação do Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 12.2 Usuários e Grupos, o modo dif́ıcil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 12.3 Desligando o sistema apropriadamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 13 Comandos de rede básicos 111 13.1 ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.2 traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.3 Ferramentas DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.3.1 host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.3.2 nslookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.3.3 dig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 13.4 finger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 13.5 telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 13.5.1 Outras utilidades do telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 13.6 O ssh (Secure Shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 13.7 email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 13.7.1 pine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 13.7.2 elm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 13.7.3 mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 13.7.4 nail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 13.8 Navegadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 13.8.1 lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 13.8.2 links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 13.8.3 wget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 13.9 Clientes FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 13.9.1 ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 13.9.2 ncftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 13.10Conversando com outras pessoas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 13.10.1wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 13.10.2 talk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 13.10.3 ytalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 vi SUMÁRIO 14 Segurança 127 14.1 Desabilitando Serviços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 14.1.1 Serviços iniciados com o inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 14.1.2 Serviços iniciados pelos scripts de inicialização (init scripts) . . . . . . . . . . . . . . . . . 128 14.2 Controle de Acesso ao Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 14.2.1 iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 14.2.2 tcpwrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 14.3 Mantendo-se Atualizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 14.3.1 Lista de emails slackware-security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 14.3.2 O diretório /patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 15 Arquivos Agrupados e Compactados 133 15.1 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 15.2 bzip2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 15.3 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 15.4 zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 16 Vi 137 16.1 Iniciando o vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 16.2 Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 16.2.1 Modo de Comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 16.2.2 Modo de inserção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 16.3 Abrindo Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 16.4 Salvando Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 16.5 Encerrando o vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 16.6 Configuração do vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 16.7 Comandos do Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 17 Emacs 145 17.1 Iniciado o Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 17.1.1 Teclas de Comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 17.2 Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 17.3 Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 17.3.1 Abrindo Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 17.4 Edição Básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 17.5 Salvando Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 17.5.1 Saindo do Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 18 Gerenciamento de Pacotes do Slackware 151 18.1 Visão Geral do Formato de um Pacote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 18.2 Utilitários de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 18.2.1 pkgtool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 18.2.2 installpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 18.2.3 removepkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 18.2.4 upgradepkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 18.2.5 rpm2tgz/rpm2targz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 18.3 Criando Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 18.3.1 explodepkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 18.3.2 makepkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 18.3.3 SlackBuild Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 18.4 Criando Tags e Tagfiles (para configuração) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 19 ZipSlack 157 19.1 O que é o ZipSlack? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 19.1.1 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 19.1.2 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 19.2 Obtendo o ZipSlack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 19.2.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 19.3 Bootando o ZipSlack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 20 Glossário 159 SUMÁRIO vii 21 The GNU General Public License 165 21.1 Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 21.2 TERMS AND CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 21.3 How to Apply These Terms to Your New Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 169 22 Contributing Authors 171 22.1 Contribuidores para o Português do Brasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 2 SUMÁRIO • Descreve o processo de instalação passo-a-passo com fotos de tela para lhe mostrar como fazê-la por meio de ilustrações. Caṕıtulo 4, Configuração do Sistema • Descreve os importantes arquivos de configuração e fala sobre a recompilação do kernel. Caṕıtulo 5, Configuração da Rede • Descreve como conectar uma máquina Slackware Linux à rede. Fala sobre TCP/IP, PPP/dial-up, rede wireless, e muito mais. Caṕıtulo 6, O Sistema de Janelas X • Descreve como instalar o Sistema gráfico de Janelas X no Slackware. Caṕıtulo 7, Inicialização • Descreve o processo pelo qual o computador inicia no Slackware Linux. Fala também sobre a dupla inicialização com o sistema operacional Microsoft Windows. Caṕıtulo 8, O Shell • Descreve a poderosa interface de linha de comando do linux. Caṕıtulo 9, Estrutura do Sistema de Arquivos • Descreve a estrutura do sistema de arquivos, incluindo dono de arquivos, permissões, e ligações simbóli- cas(links). Caṕıtulo 10, Manipulando Arquivos e Diretórios • Descreve os comandos usados para manipular arquivos e diretórios através da interface de linha de co- mando. Caṕıtulo 11, Controle de Processos • Descreve os poderosos comandos de gerênciamento de processos do Slackware, usados para gerenciar aplicativos sendo executados paralelamente. Caṕıtulo 12, Fundamentos para Administração do Sistema • Descreve a administração básica de tarefas do sistema como adicionar e remover usuários, desligar o sistema corretamente e muito mais. Caṕıtulo 13, Comandos Básicos de Rede • Descreve a coleção de clientes de rede inclúıdos no Slackware. Caṕıtulo 14, Segurança • Descreve várias ferramentas diferentes dispońıveis para ajudá-lo a manter seguro seu sistema Slackware, incluindo iptables e tcpwrappers. Caṕıtulo 15, Arquivos Compactados • Descreve compressões diferentes e utilidades de arquivos dispońıveis no Linux. Caṕıtulo 16, vi • Descreve o poderoso editor de texto vi. Caṕıtulo 17, Emacs • Descreve o poderoso editor de texto Emacs. Caṕıtulo 18, Gerenciamento de Pacotes do Slackware • Descreve os utilitários de empacotamento do Slackware e o processo usado para criar pacotes padronizados e tagfiles. Caṕıtulo 19, ZipSlack • Descreve a versão ZipSlack do Linux que pode ser usada a partir do Windows sem precisar instalá-la. Appendix A, Licença Pública Geral GNU • Descreve os termos de licença sob os quais o Linux Slackware e este livro podem ser copiados e distribúıdos. SUMÁRIO 3 Convenções usadas neste livro Para fornecer uma consistente e fácil leitura do texto, diversas convenções foram seguidas durante todo o livro. Convenções Tipográficas • Itálico - Fontes em itálico são usada para comandos, texto enfatizado, e os termos técnicos de primeiro uso. • Negrito – Uma fonte em negrito é usada para entrada de dados do usuário nos exemplos. Entrada do Usuário Teclas são mostradas em negrito para se destacarem de outros textos. Combinações de teclas que possuem certo objetivo por serem digitadas simultaneamente, são mostradas com ‘+’ entre as teclas, como: Ctrl + Alt + Del Desse modo o usuário deve digitar as teclas Ctrl, Alt, e Del ao mesmo tempo. Teclas que possuem certo objetivo por serem digitadas em sequência que irão ser separadas por v́ırgulas, por exemplo: Ctrl+X, Ctrl+S Significaria que é esperado que o usuário digite as teclas Ctrl e X simultaneamente e então digite as teclas Ctrl e S simultaneamente. Exemplos Exemplos começando com E:/> indica um comando MS-DOS R©. A menos que seja conhecido de outra forma, estes comandos podem ser executados de uma janela de ”Prompt de Comandos”do ambiente moderno do Microsoft Windows. D:> rawrite a: bare.i Exemplos começando com &prompt.root; indica que o comando que deve ser usado pelo super-usuário no Slackware. Você pode iniciar uma sessão como root para digitar o comando, ou iniciar com uma conta normal e usar &man.su.1; para ganhar privilégio de super-usuário. # dd if=bare.i of=/dev/fd0 Exemplos começando com &prompt.user; indicam que o comando pode ser usado em uma conta de usuário normal. A menos que seja conhecido de outra forma, a sintaxe C-shell é usada para ajustar as variáveis de ambiente e outros comandos de shell. $ top Agradecimentos Este projeto é o acumulo de meses de trabalho de muitas pessoas dedicadas. Não seria posśıvel para mim produzir este trabalho do zero. Muitas pessoas merecem nossos agradecimentos por seus atos de ajuda: Keith Keller por seu trabalho em rede wireless, Joost Kremers por seu maravilhoso trabalho escrito sem colaboradores da seção Emacs, Simon Williams por seu caṕıtulo sobre segurança, Jurgen Phillippaerts pelos comandos básicos de rede, Cibao Cu Ali G Colibri pela inspiração e o ponta-pé inicial. Sem contar outros que nos enviaram sugestões e reparos. Uma lista incompleta inclui: Jacob Anhoej, John Yast, Sally Welch, Morgan Landry, e Charlie Law. Tenho também de agradecer Keith Keller por hospedar a lista de emails desse projeto, bem como Carl Inglis pela hospedagem inicial do site. Por último mas não menos importante, tenho que agradecer a Patrick J. Volkerding pelo Slackware, e David Cantrell, Logan Johnson, e Chris Lumens pelo Fundamentos do Slackware Linux 1a Ediçao. Sem sua estrutura inicial, nada disso teria acontecido. Muitos outros contribuiram 4 SUMÁRIO com pequenas e grandes partes desse projeto e não foram listadas. Espero que me perdoem por minha memória fraca. Alan Hicks, Maio 2005 1.4. CÓDIGO ABERTO E SOFTWARE LIVRE 7 perfeitamente para ler e executar o programa. Não oferecem uma licença espećıfica, mas em substituição su- portam os vários tipos de licenças de códigos abertos. A ideia atrás da OSI é trazer mais companhias para o código aberto permitindo que escrevam suas próprias licenças de código aberto e tenham aquelas licenças certificadas pela Open Source Initiative. Muitas companhias querem liberar o código fonte, mas não querem usar a GPL. Desde que não podem radicalmente mudar a GPL, são oferecidas a oportunidade de fornecer sua própria licença e de tê-la certificada por esta organização. Quando a Free Software Foundation e a Open Source Initiative trabalharem para se ajudarem, elas não são a mesma coisa. A Free Software Foundation usa uma licença espećıfica e fornece o software sob esta licença, A Open Source Initiative busca dar suporte para todas a licenças abertas, incluindo uma para a Free Software Foundation. Toda a sustentação aberta das buscas da Open Source Initiative para abrir o código fonte, inluindo a Free Software Foundation. As regiões em que cada uma discute fazendo o código fonte livremente dispońıvel dividem às vezes os dois movimentos, mas o fato de que dois grupos ideologicamente diferentes estão trabalhando para o mesmo objetivo, isso dar crédito aos esforços de cada um. 8 CAPÍTULO 1. UMA INTRODUÇÃO AO SLACKWARE LINUX Caṕıtulo 2 Ajuda Muitas vezes você precisa de ajuda para um comando espećıfico, para iniciar um programa, ou simplesmente saber como um hardware trabalha. Talvez você queira saber mais opções que possam ser utilizadas em um determinado comando, ou apenas verificar quais opções estão dispońıveis para serem utilizadas em um determi- nado comando. Felizmente, existem várias maneiras de você obter ajuda para o que está procurando. Quando você instala o Slackware você tem a opção de instalar os pacotes da série F que inclui FAQs e HOWTOs. Alguns programas também possuem ajuda sobre outras opções, arquivos de configuração e uso. 2.1 Ajuda do Sistema 2.1.1 man O comando man (abreviação de manual) é a forma tradicional de documentação online dos sistemas opera- cionais Unix e Linux. Composto de Linhas formatadas especialmente, as man page, são escritas para a grande maioria dos programas e são distribúıdas com o próprio software. Executando man comando será mostrada a man page para o programa especificado, em nosso exemplo esse seria o comando imaginário comando. Você deve imaginar a grande quantidade de páginas de manual que podem ser rapidamente criadas, tornaria- se confuso e complicado até mesmo para um usuário avançado. Devido a isso, às páginas de manual são divididas em seções numeradas. Este sistema esteve dispońıvel por um longo tempo; você verá bastante comandos, programas e referências de funções de bibliotecas referênciadas pelo número da seção do man. Por exemplo: Você pode fazer uma referência ao man(1). O número especifica que a man é documentada na seção 1 (comandos de usuários); você pode especificar que você quer a documentação da seção 1 do man com o comando man 1 man. Especificar a seção é útil quando existe manuais em várias seções com o mesmo nome. Seção Conteúdo Seção 1 Comandos de usuários (somente introdução) Seção 2 hamadas do Sistema Seção 3 Chamadas de bibliotecas C Seção 4 Dispositivos (ex., hd, sd) Seção 5 Formatos de Arquivos e protocolos (ex., wtmp, /etc/passwd, nfs) Seção 6 Jogos (somente introdução) Seção 7 Convenções, pacotes macro, etc. (ex., nroff, ascii) Seção 8 Administração do sistema (somente introdução) Em adicional ao comando man(1), existem os comandos whatis(1) e apropos(1) que estão dispońıveis para você, com a finalidade de encontrar uma informação mais fácil no sistema. O comando whatis dá uma descrição muito breve dos comandos do sistema, uma espécie de referência. Exemplo: $ whatis whatis whatis (1) - search the whatis database for complete words O comando apropos é usado para procurar a página de manual que contêm uma determinada palavra.. Exemplo: 9 12 CAPÍTULO 2. AJUDA Busca por informações nas mensagens de décadas da Usenet. userlocal Um tesouro virtual de conhecimento, bom conselheiro, experiências em primeira mão e artigos interessantes. O primeiro lugar que você ouvirá com freqüência sobre o desenvolvimento de Slackware no mundo. Recursos Web linuxquestions.org O fórum oficial de usuários de Slackware. Fórum Slackware ”Um local para efetuar download e obter ajuda sobre Linux.” [alt.os.linux.slackware wombat.san-francisco.ca.us/perl/fom] FAQ Outras FAQ Grupos de usuários (NNTP) A USENET tem sido por muito tempo o lugar onde os geeks buscam ajuda e ajudem uns aos outros. Existem poucos grupos dedicados ao Slackware Linux, mas tendem a serem preenchidos com as grandes base de conhecimento de outras pessoas. alt.os.linux.slackware alt.os.linux.slackware, mais conhecida como aols, (não confunda com a AOL! ) é um dos lugares mais ativos para encontrar ajuda sobre problemas com o Slackware. Como cada grupo, alguns participam (ativamente) com experiência pelo fato de ajudar bastante. Aprenda a ignorar trolls e identifique ajuda de pessoas que realmente utilizam esse recurso. Caṕıtulo 3 Instalação Antes que você possa usar o Slackware Linux, será necessário você obtê-lo e instalá-lo. Obter o Slackware é fácil, você pode compra-lo ou efetuar o download gratúıto através da Internet. A instalação também é muito fácil, desde que você tenha conhecimento básico sobre seu com- putador e esteja disposto a aprender algumas coisas. O programa de instalação o conduzirá passo-a-passo. Devido ao programa de instalação você instalará rapidamente o sistema. O fato é que o Slackware possui um programa de instalação mais rápido em relação à qualquer outra distribuição Linux. 3.1 Obtendo o Slackware 3.1.1 A caixa com os discos Oficiais O conjunto de CDs oficial do Slackware Linux CD está dispońıvel na Slackware Linux, Inc. O jogo consiste em 4 discos. O primeiro disco contêm todo o software necessários para um sistema básico e o gerenciados de janelas X. O segundo CD é um disco adicional; isto é, um CD bootável que instala na RAM uma instalação provisória, caso seja necessário efetuar uma manutenção de reparo na máquina. Este CD possui alguns pacotes, tais como os ambientes gráficos KDE e GNOME. Alguns pacotes novos são inclusos no segundo CD incluindo a série de pacotes extra, que são pacotes não essenciais ao sistema. O terceiro e o quarto CD inclui todos os códigos fontes de todos os programas do Slackware, junto com a edição original desse livro. Também é posśıvel comprar um kit contendo os 4 discos e uma cópia deste Livro, dessa forma você poderá se exibir como um verdadeiro geek. A compra dos CDs estão dispońıveis a um custo bem acesśıvel. A maneira preferida para a compra desses produtos é na loja oficial do Slackware. • http://store.slackware.com Você tambêm pode solicitar informações por e-mail. Informações de Contato na Slackware Linux, Inc. Method Contact Details Telephone 1-(925) 674-0783 Site http://store.slackware.com Email orders@slackware.com Postal 1164 Claremont Drive, Brentwood, CA 94513 13 14 CAPÍTULO 3. INSTALAÇÃO 3.1.2 Através da Internet Slackware Linux está totalmente Livre na Internet. Você pode enviar suas perguntas por email, mas a prioridade será às perguntas referentes à compras do kit oficial. Como dito an- teriormente, nós recebemos muitos e-mails, e o tempo é muito limitado para poder atender a todos. Antes de enviar um e-mail para suporte primeiramente leia a ajuda. O site oficial do Projeto Slackware Linux Project é o endereço: http://www.slackware.com/ A localização do FTP primário para o Slackware Linux é: ftp://ftp.slackware.com/pub/slackware/ O ftp dispońıvel no site, está aberto para uso geral, não existe limite de banda. Mas por favor, considere a opção de utilizar um mirror mais próximo à você para efetuar o download do Slackware. A lista completa dos mirros podem ser encontradas no site http://www.slackware.com/getslack. 3.2 Requisitos para Instalação Uma instalação mı́nima do Slackware, necessita da seguinte configuração: Hardware Necessário Processador 586 Memória 32 MB RAM Espaço em Disco 1GB Drive de CD 4x CD-ROM Caso você tenha um CD bootável, você não irá precisar de um disquete. É claro que se você não possuir uma unidade de CD-ROM, você precisará de um disquete e uma unidade de disquete para fazer a instalação via NFS através de uma rede. Além disso também é necessário uma placa de rede para esse tipo de instalação. Para maiores informações consulte a seção NFS. O espaço em disco necessário, é um pouco complicado especificar. O espaço recomendado para uma instalação mı́nima é de 1GB, mas caso você faça uma instalação completa você irá precisar cerca de 2Gb de espaço em disco e mais um espaço para armazenar seus arquivos pes- soais. A maioria dos usuários não fazem a instalação completa. O fato é que muitos usuários instalam o Slackware em um disco realmente pequeno com 100Mb de espaço. O Slackware pode ser instalado em sistemas com pouca memória RAM, discos ŕıgidos peque- nos e CPUs com pouco poder de processamento, porém isso necesita de um pouco de trabalho. Se este for o seu caso, leia o arquivo LOWMEM.TXT localizado na árvore da distibuição, para obter algumas dicas úteis. 3.2.1 As Séries do Software Por razões de simplicidade, os softwares (pacotes) que acompanham o Slackware são dividi- dos em séries. Essas séries são chamadas de conjunto de discos devido terem sido planejadas para a instalação do sistema através de disquetes, porém hoje essas séries são usadas basi- camente para categorizar os pacotes incluso no Slackware. Hoje não é mais posśıvel fazer a instalação apenas com disquetes. 3.3. PARTICIONAMENTO 17 3.2.6 Criando os discos Caso tenha escolhido uma imagem de boot, você necessita de um disquete. Dependendo do sistema que está usando para criar os discos, o processo será diferente. Se você estiver utilizando um Linux (ou um outro sistema Unix) você utilizará o comando dd(1). Suponhamos que você esteja usando a imagem bare.i e a sua unidade de disquete é o /dev/fd0, o comando que você deverá utilizar para criar um disquete com a imagem bare.i é: $ dd if=bare.i of=/dev/fd0 Se estiver utilizando um sistema operacional Microsoft, você precisará do programa RA- WRITE.EXE, que está incluso no mesmo diretório das imagens de disquete. Suponhamos que esteja usando a imagem bare.i e o seu dispositivo de disquete é a unidade A:, abra o prompt do DOS e digite: C: rawrite a: bare.i 3.3 Particionamento Após a inicialização com a sua mı́dia preferida, será necessário particionar o seu disco ŕıgido. A partição do disco é onde o sistema de arquivos do Linux será criado e onde o Slackware será instalado. Recomendamos a criação de, no mı́nimo, duas partições; uma para o seu sistema de arquivos root (/ ) e uma para a área de troca (swap). Quando terminar o carregamento do disco de root, aparecerá um prompt de login. Entre no sistema como root (sem senha). No prompt do shell, execute cfdisk(8) ou fdisk(8). O programa cfdisk possui uma interface mais amigável do que o programa fdisk, mas lhe faltam alguns recursos. Segue abaixo uma rápida explicação do programa fdisk. Comece executando o fdisk para o seu disco ŕıgido. No Linux, em vez dos discos ŕıgidos possúırem letras de drive, eles são representados por um arquivo. O primeiro disco ŕıgido IDE (primário master) é /dev/hda, o primário slave é /dev/hdb, e assim por diante. Discos SCSI seguem o mesmo sistema, mas no formato /dev/sdX. Inicie o fdisk informando o seu disco ŕıgido: # fdisk /dev/hda Como em todos os bons programas para o Unix, o fdisk mostra um prompt (pensou que haveria um menu, não foi?). A primeira coisa que você deve fazer é examinar o seu esquema de partições atual. Faça isso digitando p** no prompt do fdisk : Command (m for help): p Serão exibidos todos os tipos de informações sobre o seu sistema de partições atual. A maioria das pessoas seleciona uma unidade livre para a instalação e então remove as partições existentes para dar espaço para as partições do Linux. AVISO: É EXTREMAMENTE IMPORTANTE FAZER UMA CÓPIA DE SEGURANÇA (BACKUP) DE TODAS AS INFORMAÇÕES QUE VOCÊ QUEIRA MANTER, ANTES DE REMOVER A PARTIÇÃO ONDE ELAS ESTÃO ARMAZENADAS. 18 CAPÍTULO 3. INSTALAÇÃO Não existe uma forma fácil de recuperar dados de uma partição removida, portanto sempre faça uma cópia de segurança (backup) antes de alterá-las. Na tabela de informações da partição há um número da partição, o tamanho, e o tipo. Há mais informações, mas não se preocupe com isso por enquanto. Removeremos todas as partições deste drive para criar as do Linux. Digitamos d para removê-las: Command (m for help): d Partition number (1-4): 1 Repita este processo para cada uma das partições. Após removê-las, estaremos prontos para criar as do Linux. Decidimos criar uma partição para o nosso sistema de arquivos root e uma para o swap. Observe que os esquemas de particionamento do Unix são a causa de acaloradas discussões, e que a maioria dos usuários lhe dirá qual a melhor forma. No mı́nimo, crie uma partição para o / e uma para swap. Com o tempo, você desenvolverá uma metodologia que funcione bem para você. Eu uso dois esquemas básicos de particionamento. O primeiro é para um desktop. Faço 4 partições, /, /home, /usr/local, e swap. Assim posso re-instalar ou atualizar tudo que está instalado em / sem remover os meus arquivos de dados no /home ou os meus aplicativos perso- nalizados compilados no /usr/local. Em servidores, geralmente substituo a partição /usr/local por uma partição /var. Muitos servidores diferentes armazenam informações nesta partição e mantê-la separada do / traz benef́ıcios quanto ao desempenho. Por enquanto, vamos ficar com apenas estas duas partições: / e swap. Agora podemos criar as partições com o comando n: Command (m for help):n Command action e extended p primary partition (1-4) p Partition number (1-4)}: 1 First cylinder (0-1060, default 0): 0 Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M Assegure-se de ter criado partições primárias. A primeira partição será a nossa partição swap. Diremos ao fdisk para tornar a partição número 1 uma partição primária. Ela começará no cilindro 0 e, para o cilindro final, digitamos +64M. Isto criará uma partição de 64 megabytes para swap. (Na verdade, o tamanho da partição de swap depende da quantidade de RAM do seu sistema. Por convenção se usa uma partição de swap com o dobro do tamanho da RAM do seu sistema.) Então, definimos a partição primária número 2 começando no primeiro cilindro dispońıvel e indo até o final do drive. Command (m for help): n Command action e extended p primary partition (1-4) 3.4. O PROGRAMA SETUP 19 p Partition number (1-4): 2 First cylinder (124-1060, default 124):124 Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):}1060 Está quase pronto. Precisamos alterar o tipo da primeira partição para tipo 82 (Linux swap). Digite t para alterar o tipo, selecione a primeira partição, e digite 82. Antes de gravar as suas alterações em disco, dê uma última olhada na nova tabela de partições. Use o p no fdisk para exibir a tabela de partições. Se tudo parecer estar bem, digite w para salvar as suas alterações e sair do fdisk. 3.4 O programa setup Uma vez criada as partições, você está pronto para instalar o Slackware. O próximo passo da instalação é executar o programa setup. Para executá-lo simplesmente digite setup no prompt. O setup possui um sistema de menu na qual permite que você instale os pacotes do Slackware e configure seu sistema. O processo de instalação é algo do tipo: Selecione as opções de acordo como elas são listadas no programa setup. (É claro que você pode mudar a ordem de escolha das opções, não seguindo passo-a-passo o programa.) Os itens do menu são selecionados usando as teclas seta para cima e seta para baixo, e os botões Okay e Cancel são usados para proseguir ou para voltar. Como alternativa, você pode escolher a opção desejada, teclando a letra correspondente destacada do menu para cada opção. Para selecionar as opções (estas são indicadas com [X]) utiliza-se a barra de espaço. É claro que você pode ver mais descrições na seção help do setup, porém acreditamos que o seu tempo vale dinheiro. 22 CAPÍTULO 3. INSTALAÇÃO poderá escolher e mapear cada partição para cada sistema de arquivos de acrodo com a sua escolha. (Por exemplo, você pode querer que a sua terceira partição /dev/hda3, seja o sistemas de arquivos para o home. Isto é apenas um exemplo; crie os pontos de montagens de acordo com o seu gosto.) 3.4.5 SOURCE A seção Source é onde selecionamos a mı́dia a partir da qual o Slackware será instalado. Atualmente, há quatro opções dispońıveis. São elas: CD-ROM, uma partição no disco ŕıgido, NFS, ou um diretório pré-montado. A opção CD-ROM permite a instalação a partir de um CD-ROM. Há a opção de procurar automaticamente um drive de CD-ROM ou exibir uma lista da qual pode-se escolher o tipo do drive. Assegure-se de ter o CD do Slackware no seu drive antes de começar a busca. A opção NFS pede informações da sua rede e de seu servidor NFS. O servidor NFS já deve estar configurado. Note também que não é posśıvel usar nomes de máquina (hostnames), deve-se usar endereços IP tanto para a sua máquina, quanto para o servidor NFS (não há um serviço de resolução de nomes no disco de instalação). Naturalmente, deve ser usado o disquete network.dsk para dar suporte para a sua placa de rede. O diretório pré-montado oferece maior flexibilidade. Use este método para instalar a partir de dispositivos como Jaz disks, pontos de montagem NFS sobre PLIP, e sistemas de arquivos FAT. Monte o sistema de arquivos em um local de sua escolha antes de executar a instalação, e então especifique esse local aqui. 3.4.6 SELECT A seção Select permite escolher as séries de software que desejamos instalar. Essas séries são descritas na seção 3.2.1. Note que é obrigatória a instalação da série A para ter um sistema base funcional. Todas as outras séries são opcionais. 3.4. O PROGRAMA SETUP 23 3.4.7 INSTALL Considerando que tenhamos passado pelas seções ”target”, ”source”, and ”select”, a seção install permite selecionar pacotes dentre as séries de software escolhidas. Se não, pedirá que você volte e complete as outras seções do programa de instalação. Esta seção permite escolher dentre seis diferentes métodos de instalação: //full, newbie, menu, expert, custom, e tag path. A opção full (completo) instala todos os pacotes das séries escolhidas na seção select. Não há mais perguntas. Este é o método de instalação mais fácil, já que não é necessário tomar quaisquer decisões quanto aos pacotes a instalar de fato. É claro que esta opção também é a que ocupa maior espaço no disco ŕıgido. A próxima opção é newbie (novato). Esta opção instala todos os pacotes requeridos pelas séries selecionadas. Em todos os outros pacotes há um prompt onde podemos selecionar Yes 24 CAPÍTULO 3. INSTALAÇÃO (sim), No (não), ou Skip (pular). Yes e No fazem o óbvio, enquanto Skip pula para a próxima série de software. Além disso, é exibida uma descrição e o tamanho de cada pacote para ajudar a decidir se o mesmo é necessário. Recomendamos esta opção para os novos usuários, já que ela assegura que os pacotes desejados sejam instalados. Contudo, ela é um pouco mais lenta devido às perguntas. Menu é uma versão mais rápida e mais avançada da opção newbie. Em cada série, aparece um menu, a partir do qual pode-se selecionar todos os pacotes não requeridos que se deseja instalar. Os pacotes requeridos não aparecem nesse menu. Para os usuários mais avançados, a instalação oferece a opção expert. Isto permite total controle sobre quais pacotes são instalados. É posśıvel remover da seleção pacotes que são absolutamente necessários, o que resulta em um sistema entrar em colapso. Por outro lado, é posśıvel controlar exatamente o que entra em seu sistema. Simplesmente selecione os pacotes de cada série que deseja que sejam instalados. Isto não é recomendado para os novos usuários, já que é muito fácil dar um tiro no próprio pé. As opções custom e tag path também são para usuários avançados. Estas opções permitem a instalação com base em tag files personalizados criados na árvore da distribuição. Isto é útil para se instalar um grande número de máquinas rapidamente. Para maiores informações sobre o uso de tag files, veja a seção 18.4. Após escolher o seu método de instalação, uma coisa ou outra abaixo vai acontecer. Se tiver selecionado full ou menu, uma tela com um menu aparecerá, permitindo a seleção dos pacotes a ser instalados. Se tiver selecionado full, os pacotes começarão a ser instalados no destino imediatamente. Se tiver selecionado newbie, os pacotes serão instalados até que se alcance um pacote opcional. Observe que é posśıvel que o espaço em disco acabe durante a instalação. Se selecionar pacotes demais para a quantidade de espaço livre no dispositivo alvo, você terá problemas. É mais seguro selecionar alguns programas e adicionar mais depois, se necessário. Isto pode ser feito facilmente usando as ferramentas de gerenciamento de pacotes do Slackware. Para maiores informações, veja a seção 18. 3.4.8 CONFIGURE A seção configure permite fazer algumas configurações básicas do sistema, agora que os pa- cotes já foram instalados. O que você vê depende em grande parte de que programas foram instalados. Contudo, sempre será exibido o conteúdo abaixo: Kernel selection (Seleção do kernel) Aqui você deverá escolher um kernel para ser instalado. Você pode instalar o kernel do disco de boot usado na instalação, do CD-ROM do Slackware, ou de outro disquete que você (sempre se antecipando) tiver preparado. Ou você pode decidir pular, sendo que então o kernel padrão será instalado e o processo continuará. 3.4. O PROGRAMA SETUP 27 Hardware clock (Relógio de hardware) Esta sub-seção pergunta se o relógio de hardware do seu computador está ajustado no Tempo Universal Coordenado (UTC ou GMT). A maioria dos PCs não estão, então provavelmente você deve dizer ”no”(não). Font A sub-seção font permite que se escolha dentre de uma lista de fontes personalizadas para o console. 28 CAPÍTULO 3. INSTALAÇÃO LILO Aqui é perguntado sobre a instalação do LILO (o LInux LOader; veja a seção 7.1 para mai- ores informações). Se o Slackware for o único sistema operacional em seu computador, a opção simple (sim- ples) deve funcionar perfeitamente. Se houver dual-boot, a opção expert é uma melhor escolha. Veja a seção 7.5 para maiores informações sobre dual-boot. A terceira opção, do not install (não instalar), não é recomendada, a não ser que você saiba o que está fazendo e que tenha uma ótima razão para não instalar o LILO. Se o modo de instalação for ”expert”, você poderá escolher onde o LILO será instalado. O LILO pode ficar na MBR (Master Boot Record) do seu disco ŕıgido, no superbloco da sua partição ráız do Linux, ou em um disquete. 3.4. O PROGRAMA SETUP 29 Network Na verdade, a sub-seção de configuração network é o netconfig. Veja a seção 5.1 para maiores informações. X Window Manager (Gerenciador de Janelas do X) Esta sub-seção permite a escolha de um gerenciador de janelas padrão para o X. Veja seção 5.1 para maiores detalhes sobre o X e gerenciadores de janelas. Não importa quais pacotes tenham sido instalados, a última coisa que será feita na seção configure será perguntar se você quer continuar e criar uma senha para o root. Por razões de segurança, provavelmente está será uma boa idéia; todavia, como tudo mais no Slackware, você decide. 32 CAPÍTULO 4. CONFIGURAÇÃO DO SISTEMA diretório / , porém a prática comum é montar o kernel e os arquivos relacionados aqui, para facilitar o dual-booting (ou boot duplo). dev - Tudo no Linux é tratado como arquivo, inclusive dispositivos de hardware como as portas seriais, discos ŕıgidos, e scanners. Em ordem de acessar esses dispositivos, um arquivo especial chamado de dispositivo de conexão tem de estar presente. Todos os dispositivos de conexão são armazenados no diretório /dev. Você vai descobrir que isso é verdade através dos muitos sistemas operacionais baseados em Unix. etc - Esse diretório mantém os arquivos de configuração do sistema. Todos os arquivos de configuração do X Window, o banco de dados do usuário, até o sistema de inicialização de scripts. Com o tempo, o administrador do sistema ficará bastante familizado com este diretório. home - O Linux é um sistema operacional multi-usuário. A cada usuário no sistema é dado uma conta e um diretório único para seus arquivos pessoais. Este diretório é chamado de diretório ráız do usuário. O diretório /home é fornecido como localização padrão para os diretórios ráız do usuário. lib - As bibliotecas do sistema que são necessárias para operações básicas do sistema são armazenadas aqui. A biblioteca C, o carregador dinâmico, as bibliotecas ncurses e os módulos do kernel estão entre as coisas aqui armazenadas. mnt - Este diretório contém pontos de montagem temporários para discos ŕıgidos em opera- ção ou drives remov́ıveis. Aqui você encontrará os pontos de montagem para o seus drives de CD-ROM e de disquete. opt - Pacotes de software opcionais. A idéia por trás do diretório /opt é que cada pacote de software instalado no diretório /opt/pacote de software, que seja fácil de remover depois. O Slackware distribui algumas coisas no diretório /opt (como o KDE em /opt/kde), porém você é livre para adicionar qualquer coisa que queira ao diretório /opt. proc - Este é um diretório único. Ele não é realmente parte do sistema de arquivos, mas sim um sistema de arquivos virtual que provê acesso as informações do kernel. Vários pedaços de informação que o kernel quer que você conheça são transportados a você através de arquivos no diretório /proc. Você pode enviar informação para o kernel através desses mesmos arquivos. Tente o comando cat /proc/cpuinfo. root - O administrador do sistema é conhecido como root no sistema. O diretório ráız do usuário root é mantido em /root em vez de /home/root. A razão é simples. O que acontece se o diretório /home estiver em uma partição diferente do diretório / e não puder ser montado? O usuário //root irá querer logar e repara o problema. Se o seu diretório de usuário ráız estiver no sistema de arquivos danificado, será meio dif́ıcil para ele conseguir logar-se. sbin - Programas essenciais que são rodados pelo usuário root e durante o processo de boot do sistema são mantidos aqui. Usuários normais não irão rodar programas neste diretório. tmp - Local de armazenagem temporária. Todos os usuários possuem acesso de leitura e escrita neste diretório. usr - Este é o maior diretório em um sistema Linux. Tudo o mais vem aqui, programas, documentação, o código-fonte do kernel, e o sistema X Window. Este é o diretório que você mais irá gostar de estar instalando programas. var - Arquivos de log do sistema, informações de cache, e arquivos protegidos de programas são armazenados aqui. Este é o diretório para mudanças freqüentes de informação. Você agora deve ter uma boa noção para quais diretórios contém o que no sistema de arquivos. Informações mais detalhadas sobre o layout do sistema de arquivos estão dispońıveis nas páginas de manual do hier(7). A próxima seção irá ajudá-lo a encontrar arquivos espećıficos com facilidade, então você não precisará fazer isso de forma braçal. 4.1.2 Encontrando Arquivos Agora você sabe o que cada diretório principal contém, mas isso realmente não ajuda em nada a encontrar coisas. Eu creio que você poderia ir olhando através dos diretórios, porém existem 4.1. VISÃO GERAL DO SISTEMA 33 maneiras rápidas de fazer isso. Existem quatro comandos principais de busca de arquivos dispońıveis no Slackware. which O primeiro é o comando which(1). O comando which é geralmente usado para achar de forma rápida a localização de um programa. Ele apenas procura seu PATH e retorna a primeira instância encontrada e o caminho do diretório do mesmo. Pegue este exemplo: <code> $ which bash /bin/bash </code> Pelo que você já viu do bash ele está no diretório /bin. Este é um comando de busca muito limitado, já que o mesmo só procura pelo PATH. whereis O comando whereis(1) trabalha de forma similar ao comando which, mas pode também procurar por páginas de manual e arquivos fontes. Um comando whereis para procurar pelo programa bash iria retornar: <code> $ whereis bash bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz </code> Este comando não apenas nos diz onde atualmente o programa está localizado, mas também onde a sua documentação online está armazenada. Ainda assim, este comando é limitado. O que aconteceria se você precisasse procurar por um arquivo de configuração espećıfico? Você não poderia utilizar o comando which ou o whereis para isso. find O comando find(1) permite ao usuário procurar o sistema de arquivos com um rico arsenal de opções de busca. Usuários poderiam especificar uma busca com espressões regulares no nome do arquivo, alcance de modificações ou tempo de criação, ou outra propriedade avançada. Por exemplo, para procurar pelo arquivo xinitrc padrão em um sistema, o comando a seguir poderia ser utilizado. <code> $ find / -name xinitrc /var/X11R6/lib/xinit/xinitrc </code> O comando find irá demorar um pouco no processo, desde que ele vai varrer tudo na árvore de diretórios ráız. E se este comando estiver rodando por um usuário normal, irão aparecer várias mensagens erro de permissão negada para os diretórios em que apenas o usuário root pode ver. Porém se o comando find encontra qualquer arquivo, isto é bom. Se ele pudesse ser pelo menos um pouco mais rápido... slocate O comando slocate(1) procura no sistema de arquivos inteiro, assim como o comando find pode fazer, porém ele procura em um banco de dados em vez do atual sistema de arquivos. O banco de dados está programado para ser atualizado toda manhã, então você terá de algum modo uma lista atualizada dos arquivos de seu sistema. Você pode rodar manualmente o comando updatedb(1) para atualizar o banco de dados slocate (antes de rodar na mão o comando updatedb, você precisa primeiro rodar o comando su para virar o usuário root). Aqui está um exemplo do comando slocate em ação: <code> $ slocate xinitrc # we don’t have to go to the root /var/X11R6/lib/xinit/xinitrc /var/X11R6/lib/xinit/xinitrc.fvwm2 /var/X11R6/lib/xinit/xinitrc.openwin /var/X11R6/lib/xinit/xinitrc.twm </code> Nós conseguimos mais do que estávamos procurando, e de forma rápida também. Com esses comandos, você será capaz de encontrar qualquer coisa que estiver procurando em seu sistema Linux. 4.1.3 O Diretório /etc/rc.d/ Os arquivos de inicialização do sistema são armazenados no diretório /etc/rc.d. O Slackware utiliza o layout estilo BSD para estes arquivos de inicialização ao contrário dos scripts de inicialização do System V, a qual tende a tornar as mudanças na configuração mais dif́ıceis sem estar utilizando um programa especificamente desenhado para esta função. Nos scripts de inicialização do BSD, cada runlevel é um arquivo rc simples. No System V, cada runlevel é 34 CAPÍTULO 4. CONFIGURAÇÃO DO SISTEMA dado a seu próprio diretório, a qual contém inúmeros scripts de inicialização. Isto provê uma estrutura organizada que é fácil de manter. Existem várias categorias de arquivos de inicialização. Estes são o sistema de inicialização, runlevel, inicialização de rede, e a compatibilidade com o System V. Pela tradição, nós iremos amontoar todas as outras coisas em uma nova categoria. Inicialização do Sistema O primeiro programa a rodar sobre o Slackware, além do kernel Linux, é o init(8). Este programa lê o arquivo /etc/inittab(5) para ver como carrega o sistema. Ele roda o script /etc/rc.d/rc.S para preparar o sistema antes de ir para o ńıvel de execução desejado. O arquivo rc.S habilita sua memória virtual, monta seu sistema de arquivos, limpa certos diretórios de log, inicializa os dispositivos Plug and Play, carrega os módulos do kernel, configura os dispositivos PCMCIA, ativa as portas seriais, e os scripts de inicialização do System V (se encontrado). Obviamente o rc.S possui muitos recursos, mas existe alguns scripts no diretório /etc/rc.d que o rc.S irá chamar para completar seu trabalho: rc.S - Este é o atual script do sistema de inicialização. rc.modules - Carrega os módulos do kernel. Coisas como sua placa de rede, suporte a PPP, e outras coisas são carregadas aqui. Se este script acha o rc.netdevice, correrá tudo bem. rc.pcmcia - Investiga e configura qualquer dispositivo PCMCIA que você possa ter em seu sistema. Isto é bem útil para usuários de laptops, que provavelmente possuem um modem ou rede PCMCIA. rc.serial - Configura suas portas seriais rodando os comandos apropriados do setserial. rc.sysvinit - Procura pelos scripts de inicialização do System V para o runlevel desejado e os inicializa. Este assunto é discutido em maiores detalhes abaixo. Scripts de inicialização do Runlevel Após o sistema de inicialização estar completo, o comando init vai para a inicialização do runlevel. Um runlevel descreve o ńıvel em que a sua máquina irá rodar. Isso soa redundante? Bem, o runlevel comunica ao init se você estará aceitando logins de multi-usuários ou apenas de um único usuário, independente se você vai utilizar os serviços de rede ou não, e se você estará utilizando o X Window System ou o comando agetty(8) para manipular os logins. Os arquivos abaixo definem os diferentes runlevels no Slackware Linux. rc.0 - Desliga o sistema (runlevel 0). Por padrão, este runlevel está linkado ao rc.6. rc.4 - Inicialização multi-usuário (runlevel 4), porém no X11 com o KDM, GDM, ou XDM como o gerenciador de login. rc.6 - Reinicializa o sistema (runlevel 6). rc.K - Inicializa o sistema em modo mono-usuário (runlevel 1). rc.M - Modo multi-usuário (runlevels 2 e 3), porém com o login em modo texto padrão. Este é o runlevel padrão no Slackware. Inicialização de rede Os Runlevels 2, 3, e 4 irão inicializar os serviços de rede. Os seguintes arquivos são respon- sáveis pela inicialização do sistema: rc.inet1 - Criado pelo netconfig, este arquivo é responsável pela configuração da atual inter- face de rede. rc.inet2 - Roda depois do rc.inet1 e inicializa os serviços de rede básicos. rc.atalk - Inicializa os serviços AppleTalk. rc.httpd - Inicializa o servidor Apache. Como alguns outros scripts, este pode ser utilizado para parar e reiniciar um serviço. O rc.httpd toma argumentos de parada, inicio, ou reinicio. rc.news - Inicializa o servidor de news. Compatibilidade com System V A compatibilidade com o System V init foi introduzida no Slackware 7.0. Muitas outras distribuições Linux fazem uso deste estilo, em vez do estilo BSD. Basicamente a cada runlevel é dado um sub-diretório para os scripts do init, do contrário do estilo BSD que dá um script de inicialização para cada runlevel. 4.2. SELECIONANDO UM KERNEL 37 menu de configuração do kernel Os usuários novatos provavelmente irão achar o comando menuconfig mais fácil de usar. As telas de ajuda provêm explicações de várias partes do kernel. Após configurar seu kernel, saia do programa de configuração. Ele irá escrever os arquivos de configuração necessários. Agora nós podemos preparar a árvore do código-fonte do kernel para uma construção: <code> # make dep # make clean </code> A próxima etapa é compilar o kernel. Primeiro tente emitir o comando bzImage abaixo. <code> # make bzImage </code> Isso pode demorar um pouco, dependendo da velocidade de sua CPU. Durante o processo de construção, você poderá ver as mensagens geradas pela compilação. Após construir a imagem do kernel, você irá querer construir todas as partes do kernel que você marcou para serem modulares. <code> # make modules</code> Você agora pode instalar o kernel e seus módulos que compilou. Para instalar o kernel em um sistema Slackware, os comandos abaixo devem ser digitados: <code> # mv /boot/vmlinuz /boot/vmlinuz.old # cat arch/i386/boot/bzImage > /vmlinuz # mv /boot/System.map /boot/System.map.old # cp System.map /boot/System.map # make modules install </code> Você irá querer editar o arquivo /etc/lilo.conf e adicionar uma seção para a inicialização de seu kernel antigo em caso do novo kernel não funcionar. Após ter feito isso, execute o comando /sbin/lilo para instalar o novo bloco de inicialização. Você agora já pode reiniciar com o seu novo kernel. Kernel Linux Versão 2.6.x A compilação do kernel 2.6 kernel é levemente diferente do kernel 2.4 ou 2.2, mas é im- portante que você entenda as diferenças antes de pesquisar. Não é mais necessário rodar os comandos make dep e make clean. Também, o processo de compilação do kernel não é mais em modo descritivo na série 2.6. Isso resulta em uma construção de processos de fácil entendi- mento, porém tem seus contras. Se você tiver problemas na construção do kernel, é altamente recomendado que você habilite o modo descritivo de novo. Você pode fazer isso modificando a opção V=1 na construção. Isso permite a você ter mais informações da sáıda da compilação que poderá ajudar um desenvolvedor de kernel ou outro amigo entendido a te ajudar na resolução deste problema. <code> # make bzImage V=1</code> 38 CAPÍTULO 4. CONFIGURAÇÃO DO SISTEMA 4.2.3 Utilizando os Módulos do Kernel Os módulos do kernel é outra definição para os drivers de dispositivo que podem ser inseridos em um kernel em uso. Eles permitem a você extender o suporte ao hardware pelo seu kernel sem precisar usar outro kernel ou mesmo compilar um novo. Os módulos podem também ser carregados e descarregados a qualquer hora, mesmo se o sistema estiver rodando. Isso torna a atualização de drivers mais fácil para os administradores de sistema. Um novo módulo pode ser compilado, um antigo removido, e o novo ser carregado em seu lugar, tudo isso sem precisar reiniciar sua máquina. Os módulos são armazenados no diretório /lib/modules/versão do kernel do seu sistema. Eles podem ser carregados na inicialização do sistema através do arquivo rc.modules. Este arquivo é muito bem documentado e oferece exemplos para a maior parte dos componentes de hardware. Para ver a lista dos módulos atualmente ativos, utilize o comando lsmod(1): <code> # lsmod Module Size Used by parport pc 7220 0 parport 7844 0 [parport pc] </code> Você pode ver aqui que eu só tenho o módulo da porta paralela carregado. Para remover um módulo, você usa o comando rmmod(1). Os módulos podem ser carregados pelos coman- dos modprobe(1) ou insmod(1). modprobe é normalmente mais seguro porque ele irá carregar qualquer módulo dos dispońıveis que possuam dependências com o carregamento atual. Vários usuários nunca tiveram que carregar ou descarregar módulos de kernel na mão. Eles utilizam o auto-carregamento do kernel para o gerenciamento de módulos. Por padrão, o Slackware inclui o kmod em seu kernel. O kmod é uma opção do kernel que habilita o kernel para carregar automaticamente os módulos que são requisitados. Para maiores informações sobre o kmod e como ele é configurado, veja o arquivo /usr/src/linux/Documentation/kmod.txt. Você irá precisar do pacote de código-fonte do kernel, ou baixar o código-fonte do kernel de http://kernel.org. Maiores informações podem ser encontradas nas páginas de manual para cada um desses comandos, além do arquivo rc.modules. Caṕıtulo 5 Configuração de Rede 5.1 Introdução: netconfig é seu amigo. Quando você instala inicialmente o Slackware, o programa setup chama o programa netconfig. O netconfig tem como objetivo realizar para você as seguintes funções: • Ele te pergunta o nome do seu computador e o nome do domı́nio sob o qual o seu compu- tador está na rede. • Ele faz uma breve explanação acerca dos vários tipos de esquemas de endereçamento, cita onde eles devem ser usados, e lhe pergunta qual esquema de endereçamento IP você deseja usar para configurar sua placa de rede: – IP estático – DHCP – Loopback • Ele então se oferece para detectar alguma placa de rede para configurá-la. Em geral o netconfig irá realizar cerca de 80% do trabalho de configurar sua conexão de rede LAN, se você permitir. Recomenda-se fortemente que você revise seus arquivos de configuração por duas razões: • Você nunca deve confiar que um programa de configuração irá configurar corretamente seu computador. Se você usa um programa de configuração, você deve revisar a configuração pessoalmente. • Se você ainda está aprendendo o sistema operacional Linux ou o Slackware, olhar uma configuração funcional pode ser útil. Você vai saber no mı́nimo qual a aparência da confi- guração. Isso permitirá que você possa corrigir posteriormente problemas provenientes de configurações erradas realizadas pelo sistema. 5.2 Configuração do Hardware de Rede Uma vez que seu desejo é conectar sua máquina com o Slackware em algum tipo de rede, a primeira coisa que você precisará é de uma placa de rede compat́ıvel com o Linux. Você precisa ter um pouco de cuidado e se certificar de que sua placa é verdadeiramente compat́ıvel com o Linux (por favor, consulte o Projeto de Documentação do Linux e/ou a documentação do kernel para informações sobre o status atual da placa de rede que você deseja utilizar). Via de regra você ficará, provavelmente muito surpreso com o número de placas de rede suportadas sob os kernels mais modernos. Tendo dito isso, sugerimos ainda que você consulte algumas das várias listas de hardwares compat́ıveis com o Linux (como por exemplo The GNU/Linux 39 42 CAPÍTULO 5. CONFIGURAÇÃO DE REDE TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb) Se você digitar /sbin/ifconfig, sem a opção -a, pode ser que você não veja a interface eth0, o que indica que sua placa de rede ainda não tem um endereço IP válido ou uma rota. Uma vez que existem muitas formas diferentes de configurar uma rede, todas elas podem ser reduzidas a dois tipos: Estática e Dinâmica. Redes estáticas são configuradas para que cada nó (nomenclatura geek para objetos que com um endereço IP) sempre tenha o mesmo endereço IP. Redes dinâmicas são configuradas de forma que o endereço IP para cada nó seja controlado por um único servidor, chamado de servidor DHCP. 5.3.1 DHCP DHCP (Dynamic Host Configuration Protocol ou Protocolo de Configuração Dinâmica de Host), é um método pelo qual um endereço IP pode ser atribúıdo a um computador quando esse é ligado. Quando o cliente é iniciado, ele envia uma requisição na rede local para que um servidor DHCP lhe atribua um endereço IP. O servidor DHCP tem um conjunto (ou es- copo) de endereços IP dispońıveis. O servidor irá responder a essa requisição com um endereço IP do seu conjunto, durante um tempo de alocação. Uma vez que o tempo de alocação para o endereço IP dado expire, o cliente precisa contactar novamente o servidor e repetir a negociação. Então, o cliente aceitará o endereço IP enviado pelo servidor e irá configurar a interface que requireu com o endereço IP. Entretanto, há ainda um macete manual que o cliente DHCP usa para negociar o endereço IP que será a ele atribúıdo. O cliente irá lembrar seu último endereço IP a ele atribúıdo, e solicitará ao servidor uma re-atribuição do mesmo endereço IP novamente na próxima negociação. Se posśıvel, o servidor irá atender o pedido, mas se não for, um novo endereço será atribúıdo. Assim, a negociação se parece com o que segue: Cliente: Há algum servidor DHCP disponı́vel na rede local? Servidor: Sim, há. Aqui estou eu. Cliente: Eu preciso de um endereço IP. Servidor: Você pode pegar o 192.168.10.10 por 19200 segundos. Cliente: Obrigado. Cliente: Há algun servidor DHCP disponı́vel na rede local? Servidor: Sim, há. Aqui estou eu. Cliente: Eu preciso de um endereço IP. Da última vez que conversamos, Eu peguei o 192.168.10.10; Posso pegá-lo novamente? Servidor: Sim, pode (ou N~ao, n~ao pode: pegue o 192.168.10.12 dessa vez). Cliente: Obrigado. O cliente DHCP no Linux é o /sbin/dhcpcd. Se você carregar o /etc/rc.d/rc.inet1 em seu editor de texto favorito, você irá notar que o /sbin/dhcpcd é chamado mais ou menos no meio do script. Isso irá forçar a o diálogo mostrado acima. O dhcpcd irá também controlar a quantidade de tempo de alocação restante para o endereço IP atual, e irá contactar automaticamente o servidor DHCP com uma requisição para renovação da alocação quando necessário. O DHCP pode ainda controlar informações relacionadas, como qual o servidor ntp usar, qual rota pegar, etc. 5.3. CONFIGURAÇÃO TCP/IP 43 Configurar DHCP no Slackware é simples. Apenas execute o netconfig e selecione DHCP quando oferecido. Se você tem mais de uma placa de rede e não deseja que a eth0 seja configu- rada via DHCP, apenas edite o arquivo /etc/rc.d/rc.inet1.conf e mude a variável relacionada à sua placa de rede para ”YES”. 5.3.2 IP Estático Endereços IP estáticos são endereços fixos que só mudam se modificadas manualmente. Isso é usado em qualquer caso em que o administrador não deseje que as informações relacionadas ao IP mudem, por exemplo para servidores internos de uma rede local, qualquer servidor conec- tado à Internet, e roteadores. Com o endereçamento IP estático, você atribui um endereço IP e esquece :). Outras máquinas saberão que você sempre terá um certo endereço IP e poderão contactar você no endereço de sempre. /etc/rc.d/rc.inet1.conf Se você planeja atribuir um endereço IP ao seu novo Slackware, você pode fazê-lo através do script netconfig, ou então pode também editar o /etc/rc.d/rc.inet1.conf. No /etc/rc.d/rc.inet1.conf, você irá notar: # Primary network interface card (eth0) IPADDR[0]="" NETMASK[0]="" USE_DHCP[0]="" DHCP_HOSTNAME[0]="" E, mais abaixo: GATEWAY= Nesse caso, nossa tarefa será meramente colocar a informação correta entre as aspas duplas. Essas variáveis são chamadas pelo /etc/rc.d/rc.inet1 no momento do boot para configurar as placas de rede. Para cada placa de rede, apenas insira a informação correta do IP, ou coloque ”YES” no USE DHCP. O Slackware irá iniciar as interfaces com a informação colocada na or- dem em que elas forem encontradas. A variável DEFAULT GW configura a rota padrão para o Slackware. Todas as comunicações entre seu computador e outros computadores na Internet devem passar através do gateway, no caso de nenhuma outra rota ser especificada para elas (as comunicações). Se você está usando DHCP, em geral você não precisará digitar nada aqui, pois seu servidor DHCP irá especificar qual gateway usar. /etc/resolv.conf Muito bem. Então você tem um endereço IP, você tem um gateway padrão, você pode ter dez milhões de reais (nos dê um pouco), mas o que você consegue fazer de bom se você não consegue traduzir nomes para endereços IP? Ninguém merece digitar 72.9.234.112 no navegador para entrar no www.slackbook.org. Além disso, quem, além dos autores conseguiriam memori- zar esse endereço IP? Nós precisamos configurar o DNS, mas como? É áı que o /etc/resolv.conf entra no jogo. Provavelmente você já tem as opções apropriadas no /etc/resolv.conf. Se você configurar sua conexão de rede usando o DHCP, o servidor DHCP pode se encarregar de atualizar esse arquivo para você. (Tecnicamente o servidor DHCP apenas diz ao dhcpcd o quê colocar aqui, e ele obedece.) No entanto, se você precisa atualizar manualmente sua lista de servidores DNS, 44 CAPÍTULO 5. CONFIGURAÇÃO DE REDE você precisará editar manualmente o /etc/resolv.conf. Segue um examplo: # cat /etc/resolv.conf nameserver 192.168.1.254 search lizella.net A primeira linha é simples. A diretiva nameserver nos indica qual servidor DNS procurar. Por necessidade eles sempre são endereços IP. Você pode ter vários listados aqui, conforme seu gosto. O Slackware irá alegremente checar um depois do outro até um deles retornar a busca. A segunda linha é um pouco mais interessante. A diretiva search nos dá uma lista de domı́- nio de nomes para assumir quando nenhum DNS requisitado for encontrado. Isso lhe permite contactar outra máquina tendo apenas a primeira parte da sua FQDN (Fully Qualified Domain Name, ou Domı́nio de Nome Totalmente Qualificado). Por exemplo, se ”slackware.com” estava indicado na sua diretiva search, você pode buscar http://store.slackware.com apenas apontando seu navegador para http://store. # ping -c 1 store PING store.slackware.com (69.50.233.153): 56 data bytes 64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.251/0.251/0.251 ms /etc/hosts Agora que nós temos um DNS trabalhando bem, o que podemos fazer se desejamos identi- ficar nosso servidor DNS, ou adicionar uma entrade de DNS em uma máquina que não está no DNS? O Slackware inclui o arquivo salvador /etc/hosts, que contém uma lista local de nomes DNS e endereços IP para os quais eles apontam. # cat /etc/hosts 127.0.0.1 localhost locahost.localdomain 192.168.1.101 redtail 172.14.66.32 foobar.slackware.com Nele você pôde notar que o localhost têm como endereço IP relativo o 127.0.0.1 (sempre reservado para o localhost), redtail é apontado para 192.168.1.101, e o foobar.slackware.com para 172.14.66.32. 5.4 PPP A maioria das pessoas continuam se conectando à Internet através de algum tipo de conexão discada. O método mais comum é o PPP, embora o SLIP seja ainda utilizado ocasionalmente. Configurar o seu sistema para utilizar chamar via PPP um servidor remoto é muito fácil. Nós vamos abordar algumas poucas ferramentas para ajudá-lo(a) a configurar. 5.6. SISTEMAS DE ARQUIVO DE REDE 47 confusão de interface. Você pode também desejar testar o efeito das suas mudanças quando da reinicialização do sistema. Agora que você viu como editar o /etc/rc.d/rc.wireless para sua rede padrão, vamos dar uma breve olhada no iwconfig para ver como ele trabalha. Isso vai lhe ensinar uma maneira rápida e direta para configurar o wifi para aquelas vezes em que você mesmo procura por sinal de Internet em um café, hotel, aeroporto ou qualquer outro hot spot wifi, desejando ficar online. O primeiro passo é dizer à sua interface wireless em qual rede entrar. Tenha certeza que você substituiu a ”eth0” com qualquer outra interface que a sua placa de rede use e trocou a ”mynetwork” para o essid que você deseja usar. Sim, nós temos certeza que você é esperto o bastante para isso. Depois disso você irá especificar a chave criptográfica (se existir) usada na sua rede sem fio. Finalmente, especifique que canal usar (se necessário). # iwconfig eth0 essid "mynetwork" # iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX # iwconfig eth0 channel n Isso encerra nosso assunto sobre redes sem fio. 5.5.3 Configurando a rede Isso é feito exatamente da mesma maneira como era feito nas redes cabeadas. Simplesmente consulte a primeira parte desse caṕıtulo. 5.6 Sistemas de Arquivo de Rede Nesse ponto, você já deve ter uma conexão TCP/IP trabalhando na sua rede. Você deve estar conseguindo enviar pings para outros computadores na sua rede interna e, se você configu- rou corretamente o gateway, deve também conseguir ’pingar’ computadores da própria Internet. Como sabemos, o fator básico que nos leva a ligar umcomputador em uma rede é a possibili- dade de acessar informações. Enquanto algumas pessoas podem colocar seu computador numa rede apenas para se divertir nela, a maioria deseja compartilhar arquivos e impressoras. Elas desejam poder acessar documentos na Internet ou jogar online. Ter o TCP/IP instalado e functional no seu novo sistema Slackware é um bom inićıo para tal, mas apenas com o TCP/IP instalado, as funcionalidades dispońıveis serão muito rudimentares. Para compartilhar arqui- vos, nós precisaremos usar o FTP ou o SCP para tranfeŕı-los para lá e para cá. Não podemos navegar por arquivos em nosso computador Slackware a partir de um vizinho na rede, ou nos ı́cones do Meus Locais Rede nos computadores com Windows. Da mesma forma, nós também gostaŕıamos de acessar arquivos em outras máquinas Unix. Idealmente, nós gostaŕıamos de poder usar um sistema de arquivos de rede que nos permi- tisse acessar transparentemente nossos arquivos em outros computadores. Os programas que nós usamos para interagir com informações armazenadas em nosso computador não precisam, na verdade, saber em qual computador um dado arquivo está armazenado; eles apenas preci- sam saber que ele existe e como pegá-lo. É responsabilidade do sistema operacional gerenciar o acesso a arquivos através do sistema de arquivos dispońıvel e dos sistemas de arquivo de rede. Os dois sistemas de arquivo de rede utilizados mais comumente são o SMB (que é implementado pelo Samba) e o NFS. 48 CAPÍTULO 5. CONFIGURAÇÃO DE REDE 5.6.1 SMB/Samba/CIFS O SMB (de Server Message Block) é um descendente do antigo protocolo NetBIOS, que foi inicialmente utilizado pela IBM em seus produtos gerentes de redes locais. A Microsoft tam- bém sempre se interessou bastante pelo NetBIOS e seus sucessores (NetBEUI, SMB e CIFS).O projeto Samba existe desde 1991, quando ele foi escrito originalmente para ligar um IBM PC rodando NetBIOS com um servidor Unix. Atualmente o SMB é o método preferido para com- partilhamento de arquivos e serviços de impressão sobre uma rede para, virtualmente, toda a população mundial, devido seu suporte ao Windows. O arquivo de configuração do Samba é o /etc/samba/smb.conf ; um dos mais arquivos de configuração mais bem comentado e documentado que você irá encontrar em qualquer lugar. Exemplos de compartilhamento são configurados para sua visualização, e modificação, se ne- cessário. Se você precisa ter um controle preciso, o man (manual) do smb.conf é indispensável. Uma vez que o Samba é tão bem documentado, conforme mencionamos acima, não iremos reescrever a documentação aqui. Iremos, no entanto, cobrir rapidamente os pontos básicos. O smb.conf é repartido em múltiplas seções: uma seção para compartilhamento, e uma seção global para opções de configuração que válida para todo o escopo do Samba. Algumas opções são aceitas apenas na seção global; outras são válidas apenas fora da seção global. Lembre- se que a seção global pode ser sobreposta por qualquer outra seção. Consulte as páginas do manual (man pages) para mais informações. Você vai se sentir mais confortável se editar seu smb.conf de forma a refletir as configurações da sua rede local. Sugerimos a modificação dos itens listados abaixo: [global] # workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 workgroup = MYGROUP Substitua o nome do grupo de trabalho (workgroup) pelo grupo de trabalho da sua rede, ou pelo nome do domı́nio que você esteja usando localmente. # server string is the equivalent of the NT Description field server string = Samba Server< Esse será o nome do seu Slackware, quando mostrado na pasta de computadores vizinhos (ou Meus Locais de Rede). # Security mode. Most people will want user level security. See # security_level.txt for details. NOTE: To get the behaviour of # Samba-1.9.18, you’ll need to use "security = share". security = user Muito provavelmente você vai querer implementar o ńıvel de segurança por usuário no seu Slackware. # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba # documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes 5.6. SISTEMAS DE ARQUIVO DE REDE 49 Se as senhas criptografadas não estão ativadas, você não poderá usar o Samba com os Windows NT 4.0, 2000, XP, e 2003. A prinćıpio, o sistema operacional Windows não requer encriptação para compartilhamento de arquivos. O SMB é um protocolo de autenticação, o que significa que é necessário a entrada de um usuário e senha corretos, a fim de usar este serviço. Nós avisamos ao servidor samba que os usuários e senhas válidos estão válidos com o comando smbpasswd. O smbpasswd realiza um par de testes de verificação quando da adição tradicional de usuários, ou da adição de usuários da máquina (o SMB requer que você adicione os nomes dos computadores com NETBIOS como máquinas usuárias, restringindo que computares podem autenticar). Adicionando um usuário ao arquivo /etc/samba/private/smbpasswd. # smbpasswd -a user Adicionando um nome de máquina ao arquivo /etc/samba/private/smbpasswd. # smbpasswd -a -m machine É importante notar que um dado usuário ou nome de máquina precisam existir previamente no arquivo /etc/passwd. Você pode realizar isso de maneira simples, com o comando adduser. Note que quando usamos o comando adduser para adicionar um nome de máquina precisamos pós-fixar um sinal de dólar (”$”) ao nome da máquina. Entretanto, isso não é feito com o smbpasswd.O próprio smbpasswd se responsabiliza pelo sinal de dólar pós-fixo. Se houver falhas no processo de inserção do nome da máquina com o adduser teremos como resultado um erro, quando adicionarmos o nome da máquina no samba. # adduser machine 5.6.2 Network File System (NFS) O NFS (ou Sistema de Arquivos de Redes) foi originalmente escrito pela Sun para sua im- plementação do Unix, o Solaris. Ao mesmo tempo que ele é significativamente mais fácil de adquirir e rodar, quando comparado ao SMB, também é significativamente menos seguro. A principal vunerabilidade no NFS é que ele é facilmente atingido por técnicas de spoof de usuá- rios ou identificadores de grupo de uma máquina para outra. O NFS é um protocolo que não implementa autenticação. Versões futuras do protocolo NFS estão elaborando melhorias de segurança, mas elas não são comuns até a presente data. A configuração do NFS é controlada pelo arquivo /etc/exports. Se você carregar o /etc/exports padrão em um editor, verá um arquivo em branco com duas linhas comentadas na parte mais superior. Precisaremos adicionar uma linha no arquivo de exportação para cada diretório que quisermos exportar, com uma lista das estações de trabalho clientes para as quais desejemos permitir o acesso aos arquivos. Por hora, se quisermos exportar o diretório /home/diretorio para a estação de trabalho pc1, podemos simplesmente adicionar a linha: /home/diretorio pc1(rw) no nosso /etc/exports. A seguir, você verá um exemplo encontrado na man page (manual) do arquivo exports : # sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash) 52 CAPÍTULO 6. CONFIGURARAÇÃO DO X xorgconfig - Configuração do Mouse Selecione o seu mouse a partir do menu apresentado. Caso seu mouse serial não esteja listado, selecione o protocolo Microsoft – é o mais comum e provavelmente funcionará. Em seguida, xorgconfig irá lhe perguntar se deseja ativar as opções ChordMiddle e Emulate3Buttons ; essas opções estarão descritas em detalhes na tela. Use-as caso o botão do meios de seu mouse não funcionse sob o X, ou caso seu mouse somente tenha dois botões (Emulate3Buttons permite a simulação do botão do meio atravás do pressionamento de ambos os botões simultaneamente). Então, entre com o nome do arquivos de dispositivo de seu mouse; a escolha padrão, /dev/mouse, deve funcionar desde que a ligação tenha sido escolhida durante a configuração do Slackware. Se você estiver executando o GPM (o servidor de mouse do Linux) no modo de repetição, você poderá configurar o tipo de seu mouse para /dev/gpmdata, de modo que o X obtém informações de seu mouse através do gpm(8). Em alguns casos (especialmente com o ”busmice”) isso pode funcionar melhor, mas muitos dos usuários não devem fazer isso. O xorgconfig vai lhe perguntar se eseja habilitar o conjunto de teclas especiais. Caso precise disso, diga ”y”. A maioria dos usuários podem dizer ”n-- digite isso se não estiver certo. 6.1. XORGCONFIG 53 xorgconfig - Sincronia Horizontal Na próxima seção você informará o intervalo de sincronia horizontal de seu monitor. Para iniciar a configuração de seu monitor, pressione ENTER. Você verá uma lista de tipos de monitores – escolha um deles. Tenha cautela para não exceder a especificação de seu monitor, isso poderá danificá-lo. xorgconfig - Sincronia Vertical Especifique o intervalo de sincronia vertical de seu monitor (você poderá encontrar isso no manual do monitor). xorgconfig irá lhe pedir para entrar com os textos para a identificação do tipo do monitor no arquivo xorg.conf. Digite o que quiser nestas três linhas (incluindo nada). 54 CAPÍTULO 6. CONFIGURARAÇÃO DO X xorgconfig - Video Card Agora você terá a oportunidade de olhar no banco de dados os tipos de placas de v́ıdeo. Provavelmente você vai querer vê-lo, então responda ”y”e selecione sua placa na lista exibida; caso você não encontre a placa exata que possui, experimente selecionar uma que use o mesmo chipset (núcleo) e, provávelmente, irá funcionar bem. Em seguinda, informe ao xorgconfig quanto de RAM possui sua placa de v́ıdeo. O xorgconfig vai pedir um texto descrição sobre sua placa de v́ıdeo, então, digite sobre a mesma caso deseje. Você também será perguntado sobre a resolução que deseja usar. Novamente, utilizar os valores padrões pode ser legal para começar, de forma que depois você poderá editar o arquivo /etc/X11/xorg.conf e reajustar os modos, por exemplo, fazendo que 1024x768 (ou qualquer outro modo que prefira) seja o padrão. Nesse momento, xorgconfig vai perguntar se você quer que o arquivo de configuração seja salvo. Diga que sim e o arquivo de configuração será salvo, completando o processo de configu- ração. Você poderá iniciar o X com o comando startx 6.2 xorgsetup O segundo caminho para configurar o X é usar o xorgsetup, um programa de configuração um – tanto quanto mágico – que vem com o Slackware. Para executar o xorgsetup, entre no sistema como root e digite: # xorgsetup Caso você já tenha um arquivo /etc/X11/xorg.conf (por já ter configurado o X), você será perguntado se deseja salvar uma cópia de segurança da configuração atual antes de continuar. O arquivo original será renomeado para /etc/X11/xorg.conf.backup. 6.3 xinitrc O xinit(1) é o programa que inicia o X; ele é chamado pelo startx (1), então você não deve ter notado-o (e provavelmente nem precisava). Seu arquivo de configuração, no entanto, determina quais programas (incluindo especialmente os gerenciadores de janela) são executados quando o X inicia. xinit primeiramente verifica seu diretório pessoal em busca do arquivo .xinitrc. Caso 6.5. XDM 57 Você receberá uma lista de todos os ambientes de área de trabalho e gerenciadores de janelas dispońıveis no sistema. Somente selecione da lista o qual deseja. Cada usuário precisará executar este programa, uma vez que diferentes usuários podem usar diferentes ambientes de área de trabalho, e nem todos vão querer o ambiente selecionado por você na instalação. Então apenas inicie o X e estará pronto. 6.5 xdm Como Linux se tornou mais e mais usual como um sistema operacional de área de trabalho, muitos usuários acharam interessante o computador ligar diretamente no ambiente gráfico. Para isso, você precisará dizer ao Slackware para inicializar diretamente no X, e atribuir um gerenciador de login gráfico. O Slackware vem com três ferramentas de login gráfico,xdm(1), kdm e gdm(1). O xdm á o gerenciador de login gráfico que vem com o sistema X.org. Ele é constantemente encontrado, mas não possui tantos recursos como os alternativos. kdm é o gerenciador de login gráfico do KDE, o Ambiente de área de Trabalho K. Finalmente, gdm é o gerenciador de login do GNOME. Quaisquer que sejam a sua escolha vai permitir que você entre no sistema como qualquer usuário e escolha qual ambiente de trabalho deseja usar. Infelizmente, O Slackware não inclui um bom programa, como o xwmconfig, para selecionar qual gerenciador de login será utilizado, então se todos os três estão instalados você pode fazer algumas edições para selecionar o gerenciador de sua preferência. Mas primeiro, vamos discutir como iniciar o sistema no modo gráfico. A fim de iniciar o X na inicialização, você precisará inicializar no ńıvel de execução (run- level) 4. Nı́veis de execução são um modo de dizer ao init(8) para fazer algo diferente, quando o sistema operacional é iniciado. Nós fazemos isso alterando o arquivo de configuração do init, /etc/inittab. # Estes s~ao os nı́veis de execuç~ao padr~ao do Slackware: # 0 = desligamento # 1 = modo de usuário singular # 2 = n~ao utilizado (mas configurado da mesma forma que o nı́vel de execuço 3) # 3 = modo multi-usuário (nı́vel de execuç~ao padr~ao no Slackware) # 4 = X11 com KDM/GDM/XDM (gerenciadores de login) # 5 = inutilizado (mas configura para fazer o mesmo que o nı́vel 3 58 CAPÍTULO 6. CONFIGURARAÇÃO DO X # 6 = reinicializaç~ao # nı́vel de execuç~ao padr~ao (N~ao configurar para 0 ou 6) id:3:initdefault: A fim de fazer o Slackware inicializar no modo gráfico, somente mudaremos o 3 para o 4. # nı́vel de execuç~ao padr~ao (N~ao configurar para 0 ou 6) id:4:initdefault: Agora o Slackware vai inicializar no ńıvel de execução 4 e executar o /etc/rc.d/rc.4. Este arquivos inicia o X e chama o gerenciador de login que você escolheu. Agora, como vamos escolher os gerenciadores de login? Existem alguns modos de fazer isso, e vamos explicar eles após em rc.4. # Tenta utilizar o gerenciador de login do GNOME: if [ -x /usr/bin/gdm ]; then exec /usr/bin/gdm -nodaemon fi # N~ao existe? OK, ent~ao tenta utilizar o gerenciador de login do KDE: if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # Se tudo que tivermos for o XDM, acho que ele que vai entrar em aç~ao: if [ -x /usr/X11R6/bin/xdm ]; then exec /usr/X11R6/bin/xdm -nodaemon fi Como você pode ver aqui, rc.4 primeiro checa se o gdm é executável, e, caso seja, executa-o. Em segundo lugar na lista vem o kdm, e finalmente o xdm. Uma forma de escolher o gerenciador de login é simplesmente removendo os quais você não quer usar utilizando o removepkg. Você pode encontrar mais sobre removepkg em Gerenciamento de Pacotes do Slackware. Opcionalmente, você pode remover a permissão de execução dos arquivos que não deseja usar. Nós vamos discutir chmod em Estrutura do Sistema de Arquivos. <code># chmod -x /usr/bin/gdm</code> Finalmente, você pode somente comentar as linhas dos gerenciadores de login que não quer usar. # Tenta utilizar o gerenciador de login do GNOME: # if [ -x /usr/bin/gdm ]; then # exec /usr/bin/gdm -nodaemon # fi # N~ao existe? OK, ent~a tenta utilizar o gerenciador de login do KDE: if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # Se tudo que tivermos for o XDM, acho que ele que vai entrar em aç~ao: # if [ -x /usr/X11R6/bin/xdm ]; then # exec /usr/X11R6/bin/xdm -nodaemon # fi 6.5. XDM 59 Qualquer linha precedida por um sustenido (#) são consideradas comentários e o interpretador de comandos passa silenciosamente por elas. No entando, mesmo se o gdm está instalado e é executável, o interpretador de comandos (nesse caso o bash) não vai se importar em checar isso. 62 CAPÍTULO 7. PROCESSO DE BOOT a reinstalação do LILO envolve simplesmente a digitação de /sbin/lilo (como root) na linha de comando. Ao chamar pela primeira vez o liloconfig, ele será como: liloconfig Se esta for a primeira vez que você configura o LILO, escolha a opção simple (simples). Por outro lado, a opção expert (avançado) é mais rápida se você estiver familiarizado com o LILO e o Linux. Selecionando simple, a configuração do LILO é iniciada. Se o seu kernel estiver compilado com suporte a frame buffer, o liloconfig pergunta qual resolução de v́ıdeo você gostaria de usar. Esta resolução também é usada pelo frame buffer do servidor XFree86. Se você não quiser usar o console em um modo de v́ıdeo especial, selecione normal para manter o modo texto padrão de 80x25 em uso. Na próxima parte da configuração do LILO, selecione onde quer que ele seja instalado. Provavelmente este é o passo mais importante. A lista abaixo explica os locais de instalação: • Root Esta opção instala o LILO no ińıcio de sua partição ráız. Esta é a maneira mais segura se não houver outros sistemas operacionais em seu computador. Ela assegura que outros gerenciadores de boot não sejam sobreescritos. A desvantagem é que o LILO apenas carrega se o seu drive com o Linux for o primeiro drive em seu sistema. é por este motivo que muitos preferem criar uma pequena partição /boot como o primeiro driver em seus sistemas. Isto permite que o kernel e o LILO sejam instalados no ińıcio do drive, onde o LILO consegue encontrá-los. Algumas versões anteriores do LILO continham uma falha infame conhecida como ”limite do cilindro 1024”. O LILO não conseguia inicializar kernels em partições além do limite do cilindro 1024. As edições recentes do LILO eliminaram esse problema. • Disquete Este método é ainda mais seguro do que o anterior. Ele cria um disquete que você pode usar para dar boot no seu sistema Linux. Isto mantém o gerenciador de boot completamente fora do seu disco ŕıgido. Desse modo, se quiser usar o Slackware, você somente conseguirá iniciar o seu 7.2. LOADLIN 63 sitema usando este disquete. As falhas deste sistema são óbvias. Os disquetes são conhecidos por serem frágeis, propensos a dar defeitos. Além disso, o gerenciador de boot não está mais contido no computador. Se você perder o seu disquete, terá que fazer outro para inicializar o o seu sistema. • MBR Este método é escolhido quando o Slackware é o único sistema operacional em seu com- putador, ou se o LILO for usado para escolher entre múltiplos sistemas operacionais em seu computador. Este é o método recomendado para a instalação do LILO e funciona em quase qualquer sistema. AVISO: Esta opção sobreescreve qualquer outro gerenciador de boot que porventura exista na MBR. Após a seleção do local de instalação, o liloconfig cria o arquivo de configuração e instala o LILO. E pronto. Se escolher o modo expert, é apresentado um menu especial. Este menu permite fazer ajustes avançados no arquivo /etc/lilo.conf, adiconar outros sistemas operacionais no seu menu de boot, e ajustar o LILO para passar parâmetros especiais ao kernel durante o boot. O menu expert se parece com a figura abaixo: liloconfig - Menu Expert Qualquer que seja a configuração do seu sistema, é fácil configurar um gerenciador de boot que funcione. O liloconfig torna essa tarefa uma moleza. 7.2 LOADLIN A outra opção para a inicialização que vem com o Slackware Linux é o LOADLIN. O LO- ADLIN é um executável DOS que pode ser usado para iniciar o Linux a partir de um sistema DOS em execução. Ele requer que o kernel do Linux esteja na partição DOS para que o LOA- DLIN possa carregá-lo e inicializar o sistema adequadamente. 64 CAPÍTULO 7. PROCESSO DE BOOT Durante o processo de boot, o LOADLIN é copiado para o diretório home do usuário root como um arquivo .ZIP. Não há um processo de instalação automática para o LOADLIN. é necessário copiar o kernel do Linux (geralmente /boot/vmlinuz ) e o arquivo LOADLIN do di- retório home do usuário root para a partição do DOS. O LOADLIN é útil quando se deseja fazer um menu de boot em sua partição DOS. Pode-se adicionar um menu ao seu arquivo AUTOEXEC.BAT para permitir a escolha entre o Linux e o DOS. Escolhendo o Linux o LOADLIN é executado, assim inicializando o seu sistema Slackware. O exemplo abaixo do arquivo AUTOEXEC.BAT para o Windows 95 cria um menu de boot satisfatório: @ECHO OFF SET PROMPT=$P$G SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\ CLS ECHO Selecione o sistema operacional: ECHO. ECHO [1] Slackware Linux ECHO [2] Windows 95 ECHO. CHOICE /C:12 "Selection? -&gt; " IF ERRORLEVEL 2 GOTO WIN IF ERRORLEVEL 1 GOTO LINUX :WIN CLS ECHO Iniciando o Windows 95... WIN GOTO END :LINUX ECHO Iniciando o Slackware Linux... CD \LINUX LOADLIN C:\LINUX\VMLINUZ ROOT=<dispositivo da partiç~ao root> RO GOTO END :END Especifique a sua partição root com o nome do dispositivo no Linux, tal como /dev/hda2 ou algo semelhante. Você também pode usar o LOADLIN a partir da linha de comando. Simples- mente use-o como no exemplo acima. A documentação do LOADLIN possui muitos exemplos sobre o seu uso. 7.3 Dual Boot Muitos usuários configuram os seus computadores para inicializar o Slackware Linux e outro sistema operacional (o que se chama dual boot). Descrevemos vários cenários t́ıpicos de dual boot abaixo, em caso de haver dificuldades para configurar o seu sistema. 7.3.1 Windows Provavelmente o cenário mais comum de dual boot é com o MS Windows e o Linux. Há várias maneiras de se configurar a inicialização, mas esta sessão abrangerá duas delas. 7.3. DUAL BOOT 67 cd \linux loadlin c:\linux\vmlinuz root=/dev/hda2 ro goto END :WIN cls echo "Iniciando o Windows..." win goto END :END A linha principal é a que chama o LOADLIN. Dizemos qual kernel carregar, a partição root do Linux, e que inicialmente queremos que seja montada somente para leitura. As ferramentas necessárias para esse método são fornecidas com o Slackware Linux. Há vários outros gerenciadores de boot no mercado, mas esses devem funcionar ma maioria das configurações de dual boot. Esta é a situação de dual boot menos comum. Nos velhos tempos do o LILO não conseguia iniciar o Windows NT, o que requeria que os usuários do Linux alterassem a NTLDR, que apresentava muito mais problemas do que o dual boot entre o Windows 9x e o Linux. Esteja ciente de que as instruções abaixo estão ultrapassadas. O LILO já consegue iniciar o Windows NT/2000/XP/2003 há vários anos. Contudo, se você estiver usando uma máquina antiga, este procedimento pode ser necessário. • Instale o Windows NT • Instale o Linux, assegurando-se de que o LILO seja instalado no superbloco da partição do Linux • Coloque os primeiros 512 bytes da partição root do Linux na partição do Windows NT • Edite o C:\BOOT.INI sob o Windows NT para adicionar uma opção para o Linux A instalação do Windows NT deve ser bem direta, assim como deve ser a instalação do Linux. A partir desse ponto, fica mais complicado. Pegar os primeiros 512 bytes da partição do Linux é mais fácil do que parece. Para isso, você precisa estar no Linux. Supondo que a sua partição Linux seja /dev/hda2, digite o comando: # dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512 Só isso. Agora você precisa copiar o bootsect.lnx para a partição do Windows NT. Aqui ocorre outro problema. O Linux não possui suporte estável para gravação em sistemas NTFS. Se você tiver instalado o Windows NT e formatado o seu drive como NTFS, será necessário copiar esse arquivo para um disquete com FAT e então ler a partir dele no Windows NT. Se você tiver formatado o drive do Windows NT como FAT, pode simplesmente montá-lo no Linux e copiar o arquivo. De qualquer modo, copie o /tmp/bootsect.lnx do Linux para C:\BOOTSECT.LNX no Windows NT. O último passo é adicionar uma opção no menu de boot do Windows NT. No Windows NT, abra um terminal. C:\WINNT> cd \ C:\> attrib -r -a -s -h boot.ini C:\> edit boot.ini 68 CAPÍTULO 7. PROCESSO DE BOOT Adicione esta linha ao final do arquivo: C:\bootsect.lnx="Slackware Linux" Salve as alterações e saia do editor. Ao reiniciar o Windows NT, aparecerá uma opção para o Linux no menu. Selecione-a para iniciar o Linux. 7.3.2 Linux Sim, isso realmente é feito. Definitivamente, este é o cenário de dual boot mais simples. Pode-se simplesmente usar o LILO e adicionar mais entradas no arquivo /etc/lilo.conf. Isso é tudo. Caṕıtulo 8 O Shell Em um ambiente gráfico, a interface é apresentada por um programa que cria janelas, barras de rolagem, menus, etc. Em um ambiente de linha de comando, a interface com o usuário é apresentada por um shell, que interpreta os comandos e geralmente torna as coisas úteis. Imediatamente após entrar no sistema (o que é visto neste caṕıtulo), os usuários são colocados em um shell e podem fazer o seu trabalho. Este caṕıtulo serve como uma introdução ao shell, e ao shell mais comum entre os usuários do Linux - o Bourne Again Shell (bash). Para maiores informações sobre qualquer tópico deste caṕıtulo, veja a página de manual do bash(1). 8.1 Os Usuários 8.1.1 Entrando no Sistema Então você iniciou o Linux, e está olhando para algo que se parece com isso: Welcome to Linux 2.4.18 Last login: Wed Jan 1 15:59:14 -0500 2005 on tty6. darkstar login: Hã... ninguém disse nada sobre um login. E o que é darkstar? Não se preocupe; prova- velmente você não abriu acidentalmente um link de comunicação espacial com a lua artificial do Império. (Infelizmente, o protocolo de link de comunicação espacial ainda não tem suporte no kernel do Linux. Talvez a série 2.8 do kernel finalmente tenha suporte a esse protocolo tão esperado.) Não, darkstar é apenas o nome de um dos nossos computadores, e seu nome aparece por padrão. Se você tiver especificado um nome para o seu computador durante a configuração, ele deve ser exibido em vez de darkstar. Quanto ao login... Se for a sua primeira vez, você deve entrar como root. Será pedida uma senha; se você tiver criado uma durante o processo de configuração, é essa senha que será pe- dida. Se não, simplesmente pressione enter. Isso áı - você entrou! 8.1.2 Root: O Super Usuário Ok, quem ou o que é o root? E o que está fazendo com uma conta em meu sistema? Bem, no mundo Unix e dos sistemas operacionais semelhantes (como o Linux), há usuários e usuários. Veremos maiores detalhes depois, mas o que importa por enquanto é saber que o root é o maior usuário de todos; o root é onipotente e onisciente, e ninguém desobedece o root. Isso simplesmente não é permitido. O root é o que chamamos de ”super usuário”, e realmente ele é. E o que é melhor, o root é você. 69 72 CAPÍTULO 8. O SHELL 8.2.3 Redirecionamento de Entrada e Sáıda e Uso do Pipe (Lá vem algo legal.) $ ps > blargh Sabe o que é isso? Estou executando o ps para ver quais processos estão em execução; o ps está na seção 11.3. Essa não é a parte legal. A parte legal é > blargh, que significa, a grosso modo, pegue a sáıda do ps e mande para um arquivo chamado blargh. Mas espere, vai ficar mais legal. $ ps | less Este pega a sáıda do ps e a manda através do less, então posso subir ou descer a página conforme a minha vontade. $ ps >> blargh Este é o terceiro redirecionador mais usado; ele faz o mesmo que o ”>”, exceto pelo fato de que o ”>>” adiciona a sáıda do ps ao final do arquivo blargh, se este arquivo existir. Se não, assim como o ”>”, ele será criado. (O ”>” substitui o conteúdo atual do arquivo blargh.) Também há o operador ”<”, que significa pegue a entrada a partir do sáıda, mas não é usado tão freqüentemente. $ fromdos < dosfile.txt > unixfile.txt O redirecionamento fica mesmo divertido quando começa a ser combinado: $ ps | tac >> blargh Isso executa o ps, reverte as linhas de sua sáıda, e as adiciona ao arquivo blargh. Você pode empilhar quantos redirecionadores desejar; apenas tenha o cuidado de se lembrar de que eles são interpretados da esquerda para a direita. Veja a página de manual do bash(1) para encontrar informações mais detalhadas sobre redirecionamento. 8.3 O Bourne Again Shell (bash) 8.3.1 Variáveis de Ambiente Um sistema Linux é uma fera complexa, e há muito para se lembrar, muitos pequenos deta- lhes que fazem diferença nas suas interações normais com vários programas (alguns dos quais você não deve nem ter ouvido falar). Ninguém precisa passar um monte de opções para cada programa que é executado, dizendo a ele que tipo de terminal está sendo usado, o nome da máquina, como o seu prompt deve ser... Exemplo: Listando as Variáveis de Ambiente com o set 8.3. O BOURNE AGAIN SHELL (BASH) 73 $ set PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/openwin/bin:/usr/games: :/usr/local/ssh2/bin:/usr/local/ssh1/bin:/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin PIPESTATUS=([0]="0") PPID=4978 PS1=’\h:\w\$ ’ PS2=’> ’ PS4=’+ ’ PWD=/home/logan QTDIR=/usr/local/lib/qt REMOTEHOST=ninja.tdn SHELL=/bin/bash Então, como um mecanismo de ajuda, os usuários contam com o que se chama de ambiente. O ambiente define as condições nas quais os programas são executados, e algumas destas de- finições são variáveis; o usuário pode alterar e brincar com elas, de forma que só acontece em um sistema Linux. Praticamente qualquer shell possui variáveis de ambiente (se não, prova- velmente não é um shell muito útil). Daremos uma visão geral dos comandos do bash para a manipulação das suas variáveis de ambiente. O set sozinho exibe todas as variáveis de ambiente definidas atualmente, assim como seus valores. Como a maioria das funções nativas do bash, também pode fazer várias outras coisas (com parâmentros); deixaremos a página de manual do bash(1) cobrir esses detalhes, entre- tanto. O Exemplo acima mostra um trecho da sáıda de um comando set executado em um dos computadores do autor. Observe nesse exemplo a variável PATH que foi discutida acima. Os programas de cada um destes diretórios podem ser executados simplesmente digitando-se o nome do arquivo. $ unset VARIAVEL O comando unset remove as variáveis que você indicar, apagando tanto a variável quanto o seu conteúdo; O bash esquece que a variável já existiu. (Não se preocupe. A não ser que seja algo que você definiu explicitamente naquela sessão do shell, provavelmente será redefinida em uma outra sessão.) $ export \textbf{VARIAVEL=algum\_valor} O comando export é realmente prático. Usando-o, você dá à variável de ambiente VARI- AVEL o valor ”algum valor”; se VARIAVEL não existia, passa a existir. Se VARIAVEL já possuir um valor, bem, já era. Isso não é tão bom se você estiver apenas tentando adicionar um diretório à sua variável PATH. Neste caso, você provavelmente quer fazer alguma coisa como: $ export PATH=\$PATH:\textbf{/um/novo/diretorio} Observe o uso de $PATH aqui: quando se quer que o bash interprete uma variável (substitúı- la por seu valor), adicione um $ ao ińıcio do nome da variável. Por exemplo, echo $PATH exibe o valor de PATH, no meu caso: $ echo \$PATH /usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin: /usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin: /usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin 74 CAPÍTULO 8. O SHELL 8.3.2 Completando Linhas de Comando com o TAB (Aqui vai outra coisa legal.) • Usar uma interface de linha de comando significa digitar muito. • Digitar dá trabalho. • Ninguém gosta de trabalho. A partir dos itens 2 e 3, podemos determinar que (4) ninguém gosta de digitar. Felizmente, o bash nos salva do item (5) (Ninguém gosta de uma interface de linha de comando). Você está perguntando como o bash consegue esta proeza maravilhosa? Além da expansão de meta-caracteres discutido acima, o bash apresenta a capacidade de completar linhas de comando com o TAB. A capacidade de completar linhas de comando com o TAB funciona assim: Você está digitando o nome de um arquivo. Talvez esteja em seu PATH, talvez você esteja digi- tando explicitamente. Tudo que se precisa é digitar o suficiente do nome do arquivo para identificá-lo de forma única. Então pressione a tecla TAB. O bash descobre o que você quer e termina a digitação para você! Veja o exemplo. O /usr/src contém dois subdiretórios: /usr/src/linux e /usr/src/sendmail. Quero ver o que está em /usr/src/linux. Então simplesmente digito ls /usr/src/l, pressiono a tecla TAB, e o bash me dá o comando ls /usr/src/linux. Agora, suponha que existam dois diretórios /usr/src/linux e /usr/src/linux-old ; Se eu digitar /usr/src/l e pressionar TAB, o bash preenche tanto quanto consegue, e vou ter /usr/src/linux. Posso parar aqui, ou posso pressionar TAB novamente, e o bash exibe uma relação de diretórios que combinam com o que já digitei até então. Quer dizer, menos digitação (e então, as pessoas podem gostar de interfaces de linha de comando). Eu disse que era legal. 8.4 Terminais Virtuais Você está no meio de um trabalho e decide que precisa fazer outra coisa. Você poderia simplesmente parar o que está fazendo e alternar as tarefas, mas este sistema é multi-usuário, não é? E você pode entrar no sistema quantas vezes quiser simultaneamente, não pode? Então por que teria que fazer uma coisa de cada vez? Não precisa. Nem todos nós podemos ter múltiplos teclados, mouse e monitores para cada máquina; provavelmente nem queremos ter. Obviamente, hardware não é a solução. Sobra para o software, e o Linux se dá bem nesse caso, oferecendo ”terminais virtuais”, ou ”VTs”. Pressionando Alt e uma tecla de função, você pode alternar entre os terminais virtuais; cada tecla de função corresponde a um deles. Por padrão, o Slackware tem logins em 6 terminais virtuais. Alt+F2 te leva ao segundo, Alt+F3 ao terceiro, etc. O restante das teclas de função são reservadas para sessões do X. Cada sessão do X usa seu próprio VT, começando pelo sétimo (Alt+F7) e assim por diante. No X, a combinação Caṕıtulo 9 Estrutura do Sistema de Arquivos Nós já discutimos previamente sobre a estrutura de diretórios no Slackware Linux. A partir deste ponto, você está apto a encontrar arquivos e diretórios que precisar. Porém, há mais sobre sistemas de arquivos que apenas a estrutura de diretórios. O Linux é um sistema operacional multi-usuário. Todo o aspecto do sistema é multiusuário, inclusive o sistema de arquivos. O sistema armazena informações sobre quem possui um arquivo e quem pode ler este arquivo. Existem outras partes únicas sobre o sistema de arquivos, como os links e a montagem de partições NFS. Essa seção explica tudo isso, tão bem quanto os aspectos multi-usuário do sistema de arquivos. 9.1 Propriedade O sistema de arquivos armazena informações sobre o dono de cada arquivo e diretório no sistema. Isso inclui qual usuário e grupo possui um determinado arquivo. A maneira mais fácil de ver essa informação é com o comando ls : $ ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul 30 1999 /usr/bin/wc Nós estamos interessados na terceira e quarta colunas (da esquerda para a direita). Essas colunas contém o nome do usuário e grupo que possui o arquivo. Nós podemos ver que o usuário ”root”e o grupo ”bin”são os proprietários desse arquivo. ”Nós podemos mudar facilmente os donos de um arquivo com os comandos chown(1) (que significa mudar o proprietário”) e chgrp(1) (que significa ”mudar o grupo”). Para mudar o dono de um arquivo para daemon, nós podemos usar o comando chown: # chown daemon /usr/bin/wc Para mudar o grupo que possui um arquivo para ”root”, nós podemos usar o comando chgrp: # chgrp root /usr/bin/wc Nós podemos utilizar o comando chown para especificar as propriedades de usuário e grupo para um arquivo: # chown daemon:root /usr/bin/wc 77 78 CAPÍTULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS No exemplo acima, o usuário poderia ter usado um ponto, no lugar do dois-pontos. O re- sultado teria sido o mesmo; entretanto, o dois-pontos é considerado a melhor forma. O uso do ponto é obsoleto e poderá ser removido em futuras versões do comando chown para permitir nomes de usuários que contenham ponto. Esses nomes de usuário tendem a ser muito populares com Servidores Windows Exchange e são encontrados com maior freqüência em endereços de e-mail como: mr.jones@example.com. No Slackware, os administradores são alertados para evi- tarem esses nomes de usuários, porque alguns scripts utilizam o ponto para indicar o nome e o grupo de um arquivo ou diretório. Em nosso exemplo, o comando chmod interpretaria mr.jones como usuário ”mr”e grupo ”jones”. A definição de quem é o dono de um determinado arquivo é uma parte muito importante na utilização de um sistema Linux, mesmo que você seja o único usuário do sistema. Algumas vezes você precisa corrigir as propriedades em arquivos e em nós de dispositivos (device nodes). 9.2 Permissões As permissões são outra parte importante do aspecto multi-usuário do sistema de arquivos. Com elas, você pode alterar quem lê, escreve, e executa arquivos. A informação de permissão é armazenada na forma de quatro d́ıgitos octais, cada um espe- cificando diferentes conjuntos de permissões. São eles, permissão do proprietário, permissão de grupo e, permissão do mundo. Os quatro d́ıgitos octais são utilizados para armazenar infor- mações especiais como identificação de usuário (user ID), identificação de grupo (group ID), e o bit controle. Os valores octais associados aos modos de permissão são (eles possuem letras associadas que são mostradas por programas como o comando ls e podem ser utilizadas pelo comando chmod): Valores de Permissão Octais Tipo de Permissão Valor Octal Valor Letra ”bit”controle 1 t identificação de usuário 4 s identificação de grupo 2 s leitura 4 r escrita 2 w execução 1 x Você adiciona os valores octais para cada grupo de permissões. Por exemplo, se você quer que o grupo tenha permissão de ”leitura”e ”escrita”, você utilizará ”6”na porção referente à per- missão do grupo. As permissões padrões do bash são: $ ls -l /bin/bash -rwxr-xr-x 1 root bin 477692 Mar 21 19:57 /bin/bash O primeiro traço pode ser substitúıdo por um ”d”se for um diretório. As três permissões de grupo (proprietário, grupo, e outros) são mostradas a seguir. Nós vemos que o proprietário possui permissões de leitura, escrita e execução (rwx). O grupo possui apenas permissão de leitura e execução (r-x). E todo o mundo possui permissões de leitura e escrita (r-x). 9.2. PERMISSÕES 79 Como nós configuramos as permissões de um outro arquivo para que elas fiquem semelhantes as permissões do bash? Primeiro, vamos criar um arquivo chamado exemplo: $ touch /tmp/exemplo $ ls -l /tmp/exemplo -rw-rw-r--- 1 david users 0 Apr 19 11:21 /tmp/exemplo Nós usaremos o comando chmod(1) (que significa ”mudar o modo”) para alterar as permis- sões do arquivo exemplo. Acrescente os números octais para a permissão que você quer. Para o proprietário que possui permissão de leitura, escrita e execução, nós teŕıamos o valor 7. Para permissão de leitura e execução teŕıamos o valor 5. Aplique esses valores juntos ao chmod dessa maneira: $ chmod 755 /tmp/exemplo $ ls -l /tmp/exemplo -rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/exemplo Agora você deve estar pensando, ”Por que nós não criamos o arquivo com essas permissões desde o ińıcio?”Bem, a resposta é simples. O bash possui uma implementação chamada umask. Este comando vem inclúıdo com a maioria dos shells do Unix, e controla quais permissões são designadas à arquivos criados recentemente. Nós discutimos sobre as implementações do bash com maior profundidade na seção 8.3.1. O comando umask é utilizado de forma razoável. Ele funciona de maneira bastante similar ao chmod, só que em modo reverso. Você especifica os valores octais que você não deseja que estejam presentes nos arquivos recém-criados. O seu valor padrão é 0022. $ umask 0022 $ umask 0077 $ touch tempfile $ ls -l tempfile -rw-------- 1 david users 0 Apr 19 11:21 tempfile Olhe a página do manual do bash para maiores informações. Para aplicar permissões especiais com o chmod, adicione os números juntos e identifique-os na primeira coluna. Por exemplo, para forçar a identificação do usuário (user ID) e a identifi- cação de grupo (group ID), nós usamos o 6 na primeira coluna: $ chmod 6755 /tmp/exemplo $ ls -l /tmp/exemplo -rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/exemplo Se os valores octais confundem você, você pode usar letras com o chmod. Os grupos de permissão são representados como: Proprietário u Grupo g Mundo o Todas acima a 82 CAPÍTULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS none /proc proc defaults 0 0 /dev/fd0 /mnt ext2 defaults 0 0 /dev/cdrom/mnt/cdrom iso9660 ro 0 0 A primeira coluna é o nome do dispositivo. Nesse caso, os dispositivos são cinco partições espalhadas por dois discos ŕıgidos SCSI, dois sistemas de arquivos que não precisam de dis- positivos, um drive de disquete, e um drive de CD-ROM. A segunda coluna informa aonde o dispositivo será montado. Esse deve ser o nome de um diretório, com exceção no caso de uma partição swap. A terceira coluna é o tipo de sistema de arquivo do dispositivo. Para os sistemas de arquivos normais do Linux, estes serão ext2 (segundo sistema de arquivos extendido). Drives de CD-ROM são iso9660, e dispositivos baseados no Windows serão do tipo msdos ou vfat. A quarta coluna é uma listagem de opções que se aplicam ao sistema de arquivos montado. O padrão (defaults) pode ser usado sem problemas com quase todos os dispositivos. Entretanto, para dispositivos de somente leitura você deve colocar a opção ro. Existem muitas opções que podem ser utilizadas. Verifique o manual do fstab(5) para maiores informações. As duas últimas colunas são utilizadas para o fsck e outros comandos que precisam manipular os dispositivos. Verifique o manual para essas informações. Quando você instala o Slackware Linux, o programa de instalação irá criar a maior parte do arquivo fstab. mount e umount Anexar outro dispositivo ao seu sistema de arquivos é fácil. Tudo o que você tem que fazer é utilizar o comando mount, com algumas opções. Utilizar o comando mount pode ser mais simples se o dispositivo possui uma entrada no arquivo /etc/fstab. Por exemplo, vamos dizer que eu queira montar o meu driver de CD-ROM e o arquivo fstab se parece com o exemplo citado na seção anterior. Eu poderia utilizar o comando mount desta forma: $ mount /cdrom Desde que haja uma entrada no arquivo fstab para esse ponto de montagem, o comando mount sabe quais opções utilizar. Caso não haja uma entrada para este dispositivo, eu terei de utilizar muitas opções junto ao comando mount : $ mount -t iso9660 -o ro /dev/cdrom /cdrom Esta linha de comando inclui a mesma informação que o exemplo do fstab tinha, mesmo assim nós iremos explicar todas as partes do comando. A opção <option>-t iso9660</option> é o tipo de sistema de arquivos do dispositivo a ser montado. Neste caso, ele seria o sistema de arquivos iso9660, que é usado normalmente pelos drivers de CD-ROM. A opção <option>-o ro</option> diz ao comando para montar o dispositivo com capacidade para apenas efetuar leituras. O caminho /dev/cdrom é o nome do dispositivo a ser montado, e o diretório /cdrom é o local no sistema de arquivos onde o drive será montado. Antes que você possa remover um disquete, CD-ROM, ou outro dispositivo remov́ıvel, que es- teja atualmente montado, você terá que desmontá-lo. Isto é feito utilizando o comando umount. Não pergunte para onde o ”n”foi porque nós não podeŕıamos te contar. Você pode utilizar, tanto o caminho para o dispositivo montado quanto o ponto de montagem, como argumento para o 9.5. MONTAGEM NFS 83 comando umount. Por exemplo, se você quer desmontar o CD-ROM do exemplo anterior, am- bos os comandos podem ser utilizados: # umount /dev/cdrom # umount /cdrom 9.5 Montagem NFS NFS significa Network Filesystem (Sistema de arquivos de rede). Ele não é realmente parte do sistema de arquivos real, mas pode ser utilizado para adicionar partes ao sistema de arquivos montado. Ambientes Unix enormes, algumas vezes, precisam compartilhar os mesmos programas, con- juntos de diretórios de usuários, e o repositório de e-mail. O problema de pegar a mesma cópia para cada máquina é resolvido pelo NFS. Nós podemos utilizar o NFS para compartilhar um conjunto de diretórios de usuários entre todas as estações de trabalho. Então as estações de tra- balho montam o diretório que o NFS compartilhou como se estivesse nas suas próprias máquinas. Veja a seção 5.6.2 e as páginas do manual para exports(5), nfsd(8), e mountd(8) para maiores informações. 84 CAPÍTULO 9. ESTRUTURA DO SISTEMA DE ARQUIVOS 10.2. PAGINADORES: MORE, LESS E MOST 87 invés disso, você tem que usar o help do shell. Como segue: $ help cd Serão mostradas as opções para o cd e como usá-las. 10.1.3 pwd O comando pwd é usado para mostrar a sua localização atual. Para usar o comando pwd basta digitar pwd. Por exemplo: $ cd /bin $ pwd /bin $ cd /usr $ cd bin $ pwd /usr/bin 10.2 Paginadores: more, less e most 10.2.1 more more (1) é como chamamos um utilitário de paginação. Muitas vezes a sáıda de um comando em particular é muito grande para caber em apenas uma tela. Os comandos individualmente não sabem como fazer caber as sáıdas em telas separadas. Eles deixam esse trabalho para os paginadores. O comando more quebra a sáıda numa tela única e espera que você pressione a barra de espaços antes de continuar na próxima página. Pressionando a tecla enter irá avançar a sáıda em uma linha. Aqui segue um bom exemplo: $ cd /usr/bin $ ls -l Isso deveria rolar a tela um pouco. Para parar a sáıda tela por tela, pipe ( | ) seguido do more: $ ls -l $|$ more Esse é o caractere pipe (shift + \). O pipe é: pegue a sáıda do ls e alimente o more. Você pode ”pipar”qualquer coisa através do comando more, não apenas o ls. Pipe é também visto na seção 8.2.3. 10.2.2 less O comando more é mais simples, mas não permite que você volte para uma página já exi- bida. O more não provê um jeito de você voltar. O comando less (1) prove essa funcionalidade. Ele é usado do mesmo jeito que o comando more, então o exemplo anterior serve aqui também. Então, o less é mais que o more. Just Krammer define esses comandos com o seguinte trocadilho: ”less is more, but more more than more is, so more is less less, so use more less if you want less more.” 88 CAPÍTULO 10. MANIPULANDO ARQUIVOS E DIRETÓRIOS 10.2.3 most Onde more e o less não conseguem ir, o most (1) vai além. Se less é mais do que more, most é mais do que less. Enquanto os outros paginadores podem apenas mostrar um arquivo por vez, most é capaz de vizualizar qualquer número de arquivos, até que cada janela de arquivo tenha pelo menos duas linhas aparecendo. O comando most tem muitas opções, confira as páginas de manual para mais detalhes. 10.3 Sáıda Simples: cat e echo 10.3.1 cat cat (1) é a abreviação de concatenar. Ele foi originalmente desenhado para mesclar arquivos de textos em outro, mas pode ser usado em muitos outros propósitos. Para mesclar dois ou mais arquivos em um, você simplesmente lista os arquivos depois do comando cat e então redireciona a sáıda para um novo arquivo. O comando cat funciona com entrada padrão e sáıda padrão, então você deve usar os caracteres de redirecionamento do shell. Por exemplo: $ cat file1 file2 file3 > bigfile Esse comando pega o conteúdo dos arquivos file1, file2, e file3 e mescla. A nova sáıda é enviada para a sáıda padrão. O comando cat também pode ser usado para exibir arquivos. Muitas pessoas usam o cat em arquivos de textos junto com os comandos more ou less, como segue: $ cat file1 $|$ more Esse comando irá mostrar o arquivo file1 e ”pipá-lo”através do comando more para que você apenas veja uma tela por vez. Outro uso comum para o cat é copiar arquivos. Você pode copiar qualquer arquivo usando o cat, como segue: $ cat /bin/bash $>$ \~{}/mybash O programa /bin/bash é copiado para o seu diretório /home e nomeado como mybash. O comando cat tem muitos usos e os mostrados aqui são apenas alguns. Desde que o cat faz uso extensivo de entradas e sáıdas padrão, ele é ideal para usar em scripts shell ou parte de outros comandos complexos. 10.3.2 echo O comando echo (1) mostra o texto especificado na tela. Você precisa especificar a string que vai ser mostrada depois do comando. Por padrão o comando echo irá mostrar a string e imprimir a nova linha de caracteres depois dele. Você pode passar a opção -n para suprimir a impressão de uma nova linha. A opção -e vai causar a procura por caracteres escape na string e executá-las. 10.4. CRIAÇÃO: TOUCH E MKDIR 89 10.4 Criação: touch e mkdir 10.4.1 touch O comando touch é usado para mudar a data de um arquivo. Você pode mudar a data de acesso e a data de modificação com esse comando. Se o arquivo especificado não existir, o comando touch criará um arquivo vazio. Para marcar um arquivo com a data atual, você poderia usar esse comando: $ ls -al file1 -rw-r--r-- 1 root root 9779 Feb 7 21:41 file1 $ touch file1 $ ls -al file1 -rw-r--r-- 1 root root 9779 Feb 8 09:17 file1 Existem muitas outras opções para o comando touch para especificar qual data que você quer modificar, qual hora usar, e muitas outras opções.A man-page mostra isso em detalhes. 10.4.2 mkdir O comando mkdir irá criar um novo diretório. Você simplesmente especifica o diretório a ser criado quando você executa o mkdir. Esse exemplo criará o diretório hejaz no diretório atual. $ mkdir hejaz Você também pode especificar o caminho, como segue: $ mkdir /usr/local/hejaz A opção -p irá dizer ao mkdir para criar qualquer diretório pai. O exemplo acima falhará se /usr/local não existir. A opção -p irá criar /usr/local e /usr/local/hejaz : $ mkdir -p /usr/local/hejaz 10.5 Copiar e mover 10.5.1 cp O comando cp (1) copia arquivos. Usuários do DOS irão notar a similaridade com o comando copy. Existem muitas opções para o comando cp, então você deve dar uma olhada na páginal de manual antes de usá-lo. Um uso comum é usar o cp para copiar um arquivo de uma localização para outra. Por exemplo: $ cp hejaz /tmp Isso copia o arquivo hejaz do diretório atual para o diretório /tmp. Muitos usuários preferem manter a data do arquivo, para isso:
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved