apostila de linux

apostila de linux

(Parte 1 de 9)

Sumário

1.1 Algumas Características do Linux5
1.2 Software Livre7
1.3 Estrutura básica de diretórios do Sistema Linux7
1.4 Comandos8
1.4.1 Comandos Internos8
1.4.2 Comandos Externos8
1.5 Aviso de comando (Prompt)9
1.6 Interpretador de comandos9
1.7 Terminal Virtual (console)9
1.8 Coringas10
2.1 Relacionando dispositivos1
2.2 Comandos equivalentes entre DOS e Linux1
2.3 Usando a sintaxe de comandos DOS no Linux12
2.4 Formatando disquetes13
2.4.1 Formatando disquetes para serem usados no Linux13
2.4.2 Formatando disquetes compatíveis com o DOS/Windows13
2.4.3 Programas de Formatação Gráficos14
2.5 Pontos de Montagem14
2.6 Identificação de discos e partições em sistemas Linux14
2.7 Montando (acessando) uma partição de disco15
2.7.1 fstab16
2.8 Desmontando uma partição de disco16
2.9 Execução de programas16
2.9.1 Executando um comando/programa17
2.10 path17
2.1 Tipos de Execução de comandos/programas17
2.12 Executando programas em seqüência17
2.13 ps17
2.14 top18
2.15 Controle de execução de processos18
2.15.1 Interrompendo a execução de um processo18
2.15.2 Parando momentaneamente a execução de um processo19
2.15.3 jobs19
2.15.4 fg19
2.15.5 bg19
2.15.6 kill19
2.15.7 killall19
2.15.8 killall520
2.15.9 Sinais do Sistema20
2.16 Fechando um programa quando não se sabe como sair21
2.17 Eliminando caracteres estranhos2

2 Relação entre DOS e GNU/Linux 1

3.1 ls2
3.2 cd23
3.3 pwd23
3.4 mkdir24
3.5 rmdir24

3 Comandos para manipulação de diretório 2

4.1 cat24
4.2 rm25
4.3 cp25
4.4 mv26

4 Comandos para manipulação de Arquivos 24 1

5.1 clear27
5.2 date27
5.3 df27
5.4 ln28
5.5 du28
5.6 find29
5.7 free30
5.8 grep30
5.9 head30
5.10 more31
5.1 less31
5.12 sort31
5.13 tail32
5.14 time32
5.15 touch32
5.16 uptime3
5.17 dmesg3
5.18 echo3
5.19 su3
5.20 uname3
5.21 reboot3
5.2 shutdown3
5.23 wc34

5 Comandos Diversos 26

6.1 who35
6.2 Telnet35
6.2.1 finger35
6.3 ftp36
6.4 whoami36
6.5 dnsdomainname36
6.6 hostname36
6.7 talk36

6 Comandos de rede 34

7.1 adduser37
7.2 addgroup37
7.3 passwd38
7.4 userdel38
7.5 groupdel38
7.6 Adicionando um novo grupo a um usuário38
7.7 id39
7.8 users39
7.9 groups39

7 Comandos para manipulação de contas 37

8.1 Donos, grupos e outros usuários39
8.2 Permissões de Acesso Especiais40
8.3 A conta root41
8.4 chmod41
8.5 chgrp42
8.6 chown42
8.7 Modo de permissão octal43
8.8 umask43

8 Permissões de acesso a arquivos e diretórios 39 2

9.1 >43
9.2 > >43
9.3 <4
9.4 | (pipe)4
9.5 Diferença entre o "|" e o ">"4
9.6 tee4

9 Redirecionamentos e Pipe 43

10.1 Portas de impressora4
10.2 Imprimindo diretamente para a porta de impressora45

10 Impressão 4

1.1 O que é uma rede45
1.2 Protocolo de Rede45
1.3 Endereço IP45
1.3.1 Classes de Rede IP46
1.3.2 Para instalar uma máquina usando o Linux em uma rede existente46
1.3.3 Endereços reservados para uso em uma rede Privada46
1.4 Interface de rede47
1.4.1 A interface loopback47
1.4.2 Atribuindo um endereço de rede a uma interface (ifconfig)47
1.5 Roteamento48
1.5.1 Configurando uma rota no Linux48
1.6 Resolvedor de nomes (DNS)49
1.6.1 O que é um nome?49
1.6.2 Arquivos de configuração usados na resolução de nomes50
1.6.3 Executando um servidor de nomes51
1.7 Serviços de Rede51
1.7.1 Serviços iniciados como Daemons de rede51
1.7.2 Serviços iniciados através do inetd51
1.8 Segurança da Rede e controle de Acesso53
1.8.1 /etc/ftpusers53
1.8.2 /etc/securetty53
1.8.3 O mecanismo de controle de acessos tcpd53
1.8.4 Arquivos de controle de acesso a rede53
1.8.5 Firewall56
1.9 Outros arquivos de configuração relacionados com a rede56
1.9.1 /etc/services56
1.9.2 /etc/protocols56
12.1 O Kernel56
12.2 Módulos57
12.3 Como adicionar suporte a Hardwares e outros dispositivos no kernel57
12.4 kmod57
12.5 lsmod57
12.6 insmod58
12.7 rmmod58
12.8 modprobe58
12.9 depmod58
12.10modconf58
12.11Recompilando o Kernel59
12.12Arquivos relacionados com o Kernel e Módulos61
12.12.1 /etc/modules61
12.12.2 modules.conf61
12.13Aplicando Patches no kernel61
13.1 Daemons de log do sistema62
13.1.1 syslogd62
13.1.2 Arquivo de configuração ‘syslog.conf’62
13.1.3 klogd65
13.2 logger65

13 Arquivos e daemons de Log 62

14.1 O que fazem os compactadores/descompactadores?6
14.2 Extensões de arquivos compactados6
14.3 gzip67
14.4 zip67
14.5 unzip68
14.6 tar69
14.7 bzip271
14.8 rar72

14 Compactadores 65

15.1 Variáveis de Ambientes73
15.2 Modificando o Idioma usado em seu sistema73
15.3 alias74
15.4 Arquivo ‘/etc/profile’74
15.5 Arquivo ‘.bash_profile’75
15.6 Arquivo ‘.bashrc’75
15.7 Arquivo ‘.hushlogin’75
15.8 Diretório ‘/etc/skel’75

15 Personalização do Sistema 73

16.1 Acentuação75
16.1.1 Acentuação em modo Texto75
16.1.2 Acentuação em modo gráfico76

16 Configuração do sistema 75

17.1 O que é compilação?7
17.2 Compilador7
18.1 Checagem dos sistemas de arquivos7
18.1.1 fsck.ext27
18.2 fsck.minix78
18.3 badblocks78
18.4 defrag79
18.5 Limpando arquivos de LOGS80
18.6 Tarefas automáticas de manutenção do sistema80
18.7 cron80
18.7.1 O formato de um arquivo crontab81

18 Manutenção do Sistema 7

19.1 O que é X Window?81
19.2 A organização do ambiente gráfico X Window82
19.3 Iniciando o X82
19.4 Servidor X82

19 X Window (ambiente gráfico) 81

20.1 Páginas de Manual82
20.2 Info Pages83
20.3 Help on line84
20.4 help84
20.5 apropos/whatis84
20.6 locate84
20.7 which84

20 Como obter ajuda no sistema 82 4

20.9 Documentação de Programas85
20.10FAQ85
20.11Listas de discussão85

Resumo

Este documento tem por objetivo ser uma referência ao aprendizado do usuário e um guia de consulta, operação e configuração de sistemas Linux (e outros tipos de *ix). A última versão deste guia pode ser encontrada na Página Oficial do Foca GNU/Linux http://www.metainfo.org/focalinux Novas versões são lançadas com uma freqüência mensal e você pode receber avisos de lançamentos preenchendo um formulário na página Web.

Nota de Copyright Copyleft (C) 1999-2001 - Gleydson Mazioli da Silva. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".

Uma cópia física ou verbal deste documento pode ser distribuída ou colocada em meios de distribuição eletrônicos (tais como

Homepages, servidores FTP, Gopher, disquetes, etc) livremente sem a permissão do autor. Reproduções, distribuições comerciais devem ser feitas com a autorização do autor. A distribuição comercial é encorajada, no entanto o autor deve ser notificado e todas as informações de direitos reservados devem permanecer intactos.

A inclusão de partes deste documento em outros trabalhos ou pequenas citações, podem ser feitas desde que contenha um aviso constando o documento de origem.

O ‘Linux’ é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela Internet. Seu código fonte é liberado como Free Software (software livre) o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele está proibido de fazer a comercialização do sistema.

Isto quer dizer que você não precisa pagar nada para usar o Linux, e não é crime fazer cópias para instalar em outros computadores, nós inclusive incentivamos você a fazer isto. Ser um sistema de código aberto pode explicar a performance, estabilidade e velocidade em que novos recursos são adicionados ao sistema.

Para rodar o ‘Linux’ você precisa, no mínimo, de um computador 386 SX com 2 MB de memória e 40MB disponíveis em seu disco rígido para uma instalação básica e funcional.

O sistema segue o padrão POSIX que é o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o ‘Linux’ você não encontrará muita dificuldade em operar um sistema do tipo ‘UNIX, FreeBSD, HPUX, SunOS,’ etc., bastando apenas aprender alguns detalhes encontrados em cada sistema.

O código fonte aberto permite que qualquer pessoa veja como o sistema funciona (útil para aprendizado), corrija alguma problema ou faça alguma sugestão sobre sua melhoria, esse é um dos motivos de seu rápido crescimento, do aumento da compatibilidade de periféricos (como novas placas sendo suportadas logo após seu lançamento) e de sua estabilidade.

Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de última geração e mais antigos (a maioria deles já ultrapassados e sendo completamente suportados pelo sistema operacional). Este é um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com as máquinas que possui.

Hoje o ‘Linux’ é desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuição ou mantendo alguma parte do kernel gratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento e também ajuda na coordenação entre os desenvolvedores.

O suporte ao sistema também se destaca como sendo o mais eficiente e rápido do que qualquer programa comercial disponível no mercado.

Existem centenas de consultores especializados espalhados ao redor do mundo. Você pode se inscrever em uma lista de discussão e relatar sua dúvida ou alguma falha, e sua mensagem será vista por centenas de usuários na Internet e algum irá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada para devida correção.

1.1 Algumas Características do LinuxÉ de graça e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste sistema operacional. Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixa qualidade de sistemas comerciais existentesConvivem sem nenhum tipo de conflito com outros sistemas operacionais (com o ‘DOS’, ‘Windows’, ‘OS/2’) no mesmo computador.

Multitarefa realMultiusuárioSuporte a nomes extensos de arquivos e diretórios (255 caracteres)Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows,

DOS, etc.Proteção entre processos executados na memória RAMSuporte há mais de 63 terminais virtuais (consoles)Modularização - O ‘GNU/Linux’ somente carrega para a memória o que é usado durante o processamento, liberando total- mente a memória assim que o programa/dispositivo é finalizadoDevido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento. Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM

(cerca de 6Kb para a Placa de rede NE 2000, por exemplo)Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware

(queima do processador, placa mãe, etc.).Não precisa de um processador potente para funcionar. O sistema roda bem em computadores386sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 8MB de RAM). Já pensou no seu desempenho em um 486 ou

Pentium ;-)O crescimento e novas versões do sistema não provocam lentidão, pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x).Não é requerida uma licença para seu uso. O ‘GNU/Linux’ é licenciado de acordo com os termos da GNU.Acessa sem problemas discos formatados pelo ‘DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac,’ etc.Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM.NÃO EXISTEM VÍRUS NO LINUX! Em 9 anos de existência, nunca foi registrado NENHUM tipo de vírus neste sistema. Isto tudo devido a grande segurança oferecida pelas permissões de acesso do sistema que funcionam inclusive durante a execução de programas.Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O ‘GNU/Linux’ tem suporte nativo a redes TCP/IP e não depende de uma camada intermediária como o Winsock. Em acessos via modem a Internet, a velocidade de transmissão é 10% maior. Jogadores do ‘Quake’ ou qualquer outro tipo de jogo via Internet preferem o ‘GNU/Linux’ por causa da maior velocidade do Jogo em rede. É fácil rodar um servidor ‘Quake’ em seu computador e assim jogar contra vários adversários via Internet.Roda aplicações DOS através do ‘DOSEMU’. Para se ter uma idéia, é possível dar o boot em um sistema DOS qualquerdentro dele e ao mesmo tempo usar a multitarefa deste sistema.Suporte a dispositivos infravermelho.Suporte a rede via rádio amador.Suporte a dispositivos Plug-and-Play.Suporte a dispositivos USB.Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça.Roteamento estático e dinâmico de pacotes.Ponte entre Redes.Proxy Tradicional e Transparente. 6

Possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para situações de manutenção em servidores de redes ou para a emulação de "mais computadores" virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usuário que se conecta tem a impressão que a rede possui servidores diferentes.O sistema de arquivos usado pelo ‘GNU/Linux’ (‘Ext2’) organiza os arquivos de forma inteligente evitando a fragmentação e fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e gravações intensivas.Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o ‘Apache’, é distribuído gratuitamente junto com o Linux.Por ser um sistema operacional de código aberto, você pode ver o que o código fonte (o que foi digitado pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta característica é uma segurança a mais para empresas sérias e outros que não querem ter seus dados roubados (você não sabe o que um sistema sem código fonte faz na realidade enquanto esta processando o programa).Suporte a diversos dispositivos e periféricos disponíveis no mercado, tanto os novos como obsoletos.Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.).Consultores técnicos especializados no suporte ao sistema espalhados por todo o mundo.Entre muitas outras características que você descobrirá durante o uso do sistema.

1.2 Software Livre

Softwares Livres são programas que possuem o código fonte incluído (o código fonte é o que o programador digitou para fazer o programa) e você pode modificar ou distribui-los livremente. Existem algumas licenças que permitem isso, a mais comum é a General Public Licence (ou GPL).

Os softwares livres muitas vezes são chamados de programas de código aberto (ou OSS). Muito se acredita no compartilhamento do conhecimento e tendo liberdade de cooperar uns com outros, isto é importante para o aprendizado de como as coisas funcionam e novas técnicas de construção. Existe uma longa teoria desde 1950 valorizando isto, muitas vezes pessoas assim são chamadas de "Hackers Éticos".

Outros procuram aprender mais sobre o funcionamento do computador e seus dispositivos (periféricos) e muitas pessoas estão procurando por meios de de evitar o preço absurdo de softwares comerciais através de programas livres que possuem qualidade igual ou superior, devido a cooperação em seu desenvolvimento.

Você pode modificar o código fonte de um software livre a fim de melhora-lo ou acrescentar mais recursos e o autor do programa pode ser contactado sobre a alteração e os benefícios que sua modificação fez no programa, e esta poderá ser incluída no programa principal. Deste modo, milhares de pessoas que usam o programa se beneficiarão de sua contribuição.

1.3 Estrutura básica de diretórios do Sistema Linux O sistema ‘GNU/Linux’ possui a seguinte estrutura básica de diretórios:

‘/bin’ Contém arquivos programas do sistema que são usados com freqüência pelos usuários. ‘/boot’ Contém arquivos necessários para a inicialização do sistema.

‘/cdrom’ Ponto de montagem da unidade de CD-ROM.

‘/dev’ Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador.

‘/etc’ Arquivos de configuração de seu computador local.

‘/floppy’ Ponto de montagem de unidade de disquetes

‘/home’ Diretórios contendo os arquivos dos usuários.

‘/lib’ Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel.

‘/lost+found’ Local para a gravação de arquivos/diretórios recuperados pelo utilitário ‘fsck.ext2’. Cada partição possui seu próprio diretório ‘lost+found’.

‘/mnt’ Ponto de montagem temporário.

‘/proc’ Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus arquivos.

‘/root’ Diretório do usuário ‘root’.

‘/sbin’ Diretório de programas usados pelo superusuário (root) para administração e controle do funcionamento do sistema.

‘/tmp’ Diretório para armazenamento de arquivos temporários criados por programas.

‘/usr’ Contém maior parte de seus programas. Normalmente acessível somente como leitura.

‘/var’ Contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema, e-mails, spool de impressora, cache, etc.

1.4 Comandos

Comandos são ordens que passamos ao sistema operacional para executar uma determinada tarefa. Cada comando tem uma função específica, devemos saber a função de cada comando e escolher o mais adequado para fazer o que desejamos, por exemplo:‘ls’ - Mostra arquivos de diretórios‘cd’ - Para mudar de diretório

Este guia tem uma lista de vários comandos organizados por categoria com a explicação sobre o seu funcionamento e as opções aceitas (incluindo alguns exemplos).

É sempreusadoumespaçodepoisdocomandoparasepara-lode umaopçãoouparâmetroqueserá passadoparaoprocessamento. Um comando pode receber opções e parâmetros:

Opções

As opções são usadas para controlar como o comando será executado, por exemplo, para fazer uma listagem mostrando o _dono, grupo, tamanho dos arquivos_ você deve digitar ‘ls -l’. Opções podem ser passadas ao comando através de um "-" ou "–":

- Opção identificada por uma letra. Podem ser usadas mais de uma opção com um único hífen. O comando ‘ls -l -a’ é a mesma coisa de ‘ls -la’

– Opção identificada por um nome. O comando ‘ls –all’ é equivalente a ‘ls -a’. Pode ser usado tanto "-" como "–", mas há casos em que somente "-" ou "–" esta disponível.

Parâmetros

Um parâmetro identifica o caminho, origem, destino, entrada padrão ou saída padrão que será passada ao comando. Se você digitar: ‘ls /usr/doc/copyright’, ‘/usr/doc/copyright’será o parâmetro passado ao comando ‘ls’, neste caso queremos que ele liste os arquivos do diretório /usr/doc/copyright . É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o sistema mostrará a mensagem ‘command not found’ (comando não encontrado) e voltará ao aviso de comando. As mensagens de erro não fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que você possa corrigir e entender o que aconteceu. No ‘GNU/Linux’, você tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto será visto mais adiante). Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos.

Por exemplo: ‘"ls -la /usr/doc"’, ‘ls’ é o comando, ‘-la’ é a opção passada ao comando, e “/usr/doc” é o diretório passado como parâmetro ao comando ‘ls’.

1.4.1 Comandos Internos

São comandos que estão localizados dentro do interpretador de comandos (normalmente o ‘Bash’) e não no disco. Eles são carregados na memória RAM do computador junto com o interpretador de comandos.

(Parte 1 de 9)

Comentários