introducao linux

Upload: marcelinho

Post on 07-Jul-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

www.serpro.gov.br

Introduo ao Linux: Perdendo o medo da tela pretaRuy Minoru Ito Takata - [email protected]

Introduo ao Linux: Perdendo o medo da tela preta

Sumrio1 Introduo 1.1 Histrico de verses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Instalando o Debian 2.1 Escolhendo a arquitetura apropriada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Criando uma mquina virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 8 8

2.3 Particionamento de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Formatao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5 Instalando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Entendendo o prompt do Linux 32

3.1 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 man - Manual dos comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3 ls - Listando contedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 cd - Mudando o diretrio atual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5 mkdir - Criando diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.6 rmdir - Removendo diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.7 Criando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.8 rm - Remover arquivos ou diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.9 cat - Exibindo e concatenando contedo de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.10 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.11 less more - Paginadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.12 head e tail - Visualizando incio e m do arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.13 uniq - Exibe ou omite linhas repetidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.14 sort - Ordenando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.15 free - Utilizao de memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.16 df - Informaes sobre utilizao de discos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.17 du - Espao usado pelo arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.18 uname - Exibe informaes do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.19 alias - Dene ou lista alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.20 echo e printf - Exibindo na tela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.21 ps - Exibindo processos correntes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.22 kill - Enviando sinais para o processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.23 top - Exibe os processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.24 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

www.serpro.gov.br

1

Introduo ao Linux: Perdendo o medo da tela preta

4 Usando o VIM

44

4.1 Editando um pouco mais rpido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Modo Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 Editando cdigo fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4 Modo comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5 Gerenciamento de pacotes 49

5.1 Gerenciamento de pacotes no Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.2 Instalando um novo pacote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3 Pesquisando pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.4 Atualizando pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.5 Removendo pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.6 Compilando cdigo fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6 Conguraes bsicas 6.1 Personalizao do ambiente 58 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.2 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.3 /etc/networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.4 /etc/hostname e /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.5 /etc/resolv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.6 Teclado em modo texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.7 Mouse em modo texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7 Servios 62

7.1 Instalando e congurando alguns servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 7.1.1 OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8 Comandos avanados 67

8.1 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.2 bzip2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.3 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.4 grep, egrep, fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 8.5 sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 8.6 cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.7 join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.8 nd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.9 seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.10 test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 www.serpro.gov.br 2

Introduo ao Linux: Perdendo o medo da tela preta

8.11 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.12 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 8.13 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.14 until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.15 Comandos aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.16 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 8.17 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9 Programao Shell 79

9.1 Criando um script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.2 Passando parmetros para o script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.3 Lendo valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 10 Resumo de comandos VIM 11 Pginas interessantes 12 Livros interessantes 13 Respostas dos Exerccios 84 85 85 86

13.1 Captulo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 13.2 Captulo 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13.3 Captulo 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 13.4 Captulo 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 13.5 Captulo 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Lista de Figuras1 2 3 4 5 6 7 Tela inicial do VMware. Escolher a opo Create a New Virtual Machine . . . . . . . . . . . . . . . Nesta tela possvel escolher a mdia de instalao, que pode ser uma mdia gravada presente no drive de CD/DVD, ou uma imagem ISO do CD/DVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9

Deve-se escolher qual o sistema operacional ser instalado, bem como sua verso. . . . . . . . . . 10 Para facilitar a identicao, pode-se denir um nome para a mquina, e tambm onde seus arquivos caro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 O tamanho do disco varia conforme a necessidade. Pode-se adicionar mais de um disco em uma mesma mquina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Terminado o processo, pode-se alterar alguma congurao, como memria, discos, etc.. . . . . . . 11 Na primeira tela, pode-se escolher se a instalao ser feita em modo texto ou em modo grco. Essa escolha no ir inuenciar o funcionamento do sistema depois de instalado. O processo de instalao ser feito em modo grco, mas isso no instala o modo grco automaticamente. . . . . 13

www.serpro.gov.br

3

Introduo ao Linux: Perdendo o medo da tela preta

8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

A lngua escolhida nesse momento ser a lngua padro do sistema depois de instalado. . . . . . . 13 Dene o fuso horrio do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Deve-se escolher o layout do teclado. ABNT2 para teclados que tenham o C com cedilha e EUA para teclados sem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 O hostname do computador pode ser denido neste momento ou posteriormente. . . . . . . . . . . 15 Dene-se o nome de domnio Internet do computador. . . . . . . . . . . . . . . . . . . . . . . . . . . 15 necessrio escolher uma senha para o usurio root. . . . . . . . . . . . . . . . . . . . . . . . . . . 16 O nome de um usurio comum. Esse o nome de descrio do usurio. Pode ser o nome completo, por exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 O nome de login para o usurio comum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Senha para o usurio comum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Denindo o fuso horrio do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Iniciando o particionamento. Ser usado o mtodo manual. . . . . . . . . . . . . . . . . . . . . . . . 18 A imagem mostra que h um disco SCSI de 8,6GB, mas no h uma tabela de parties. Basta dar duplo-clique sobre o disco para que ela seja criada. . . . . . . . . . . . . . . . . . . . . . . . . . 19 Basta conrmar e a tabela de parties ser criada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Agora, a tabela de parties mostra os 8,6GB como espao livre. Para criar uma nova partio, selecione-o e clique em Continuar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Selecionar a opo Criar uma nova partio e clicar em Continuar. . . . . . . . . . . . . . . . . . 20 Escolher o tamanho da partio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Escolher o tipo de partio como sendo primria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Criar a nova partio no incio do espao disponvel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Agora deve-se congurar a partio. Selecionar a opo Usar como: e clicar em Continuar . . . 22 Escolher a opo rea de troca (swap) e clicar em Continuar . . . . . . . . . . . . . . . . . . . . 23 Selecionar novamente o Espao livre e clicar em Continuar . . . . . . . . . . . . . . . . . . . . . 23 Selecionar a opo Criar nova uma partio e clicar em Continuar. . . . . . . . . . . . . . . . . . 24 Escolher o tamanho da partio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Escolher o tipo de partio como sendo primria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Selecionar a opo Usar como: e clicar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Escolher Sistema de arquivos com journaling ext4. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Caso seja criada mais de uma partio para os dados, basta selecionar Ponto de montagem e alterar onde cada partio ser montada. No caso, temos somente 1 paartio para dados, portanto selecionar a opo Finalizar a congurao da partio. . . . . . . . . . . . . . . . . . . . 26 Selecionar a opo Finalizar o particionamento e gravar as mudanas no disco. . . . . . . . . . . 27 Conrmar as alteraes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Para a instao basta o primeiro disco, portanto no necessrio ler outro disco. . . . . . . . . . . 28

35 36 37 38 39

Caso seja escolhida a opo Sim ser necessrio escolher um repositrio na Internet ou na rede. Para o curso no ser utilizado, pois necessrio muita banda para isso. . . . . . . . . . . . . . . . 28 Esse erro ocorre porque o repositrio de rede no foi congurado. Se na tela anteior for escolhida a opo Sim o erro no ocorre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4

www.serpro.gov.br

Introduo ao Linux: Perdendo o medo da tela preta

40 41

Caso deseje ajudar no concurso de popularidade de pacotes, ecolher a opo Sim. . . . . . . . . 29 Selecionar os grupos de pacotes que deseja-se instalar. Para o curso, escolher somente Servidor SSH e Utilitrios standard de sistema. Para instalar o modo grco, marcar tambm a primeira opo - Ambiente de trabalho grco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Instalar o GRUB na MBR. O GRUB o gerenciador de boot do Linux. responsvel por carregar o kernel na memria e passar o controle do computador para o sistema operacional. . . . . . . . . . 30 Instalao nalizada com sucesso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Tela de login do Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Teclas de navegao do VIM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Buscando na mesma linha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Pacote grep e linux-util dependem do pacote libc6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Omitir a congurao? Colocar no para alterar a congurao atual. . . . . . . . . . . . . . . . . . 63 Domnio DNS. Denir a raiz da base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Empresa. Denir a raiz da base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Senha do usurio administrador. Ser pedido uma conrmao. . . . . . . . . . . . . . . . . . . . . 63 Denir o Backend utilizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Apagar o banco quando o pacote slapd for expurgado? . . . . . . . . . . . . . . . . . . . . . . . . . 64 Mover a base antiga? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Permitir protocolo LDAPv2? Respondendo no, somente ser permitido o protocolo v3. . . . . . . . 64 Descrio do comando tar para criao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Descrio do comando tar para extrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Lista de Tabelas1 2 3 4 5 6 7 8 9 10 11 12 13 14 Alguns caracteres permitidos para a varivel $PS1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Signicado dos campos do comando ls -l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Alguns parmetros do comando ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Colunas disponveis para o ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Estados do processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Caracteres possveis na primeira coluna do aptitude search . . . . . . . . . . . . . . . . . . . . . 53 Campos do /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Alguns servios para Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Operaes do comando tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Algumas opes do comando tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Algumas expresses regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Algumas opes do nd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Unidades de medida para o -size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Alguns testes possveis para o comando test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

www.serpro.gov.br

5

Introduo ao Linux: Perdendo o medo da tela preta

15 16 17 18 19

Cdigos de retorno dos comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Variveis especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Opes do comando read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Alguns comandos do VIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Caracteres possveis na primeira coluna do aptitude search . . . . . . . . . . . . . . . . . . . . . 87

www.serpro.gov.br

6

Introduo ao Linux: Perdendo o medo da tela preta

1

Introduo

Este curso tem por objetivo introduzir os participantes no mundo Linux. Imagina-se que os participantes do curso sejam iniciantes, portanto, no tenham grandes conhecimentos em Linux, mas tenham conhecimentos em informtica. Espera-se que ao nal do curso os participantes se sintam mais a vontade para utilizar o terminal do Linux e realizar tarefas simples sem medo de comprometer o funcionamento do sistema. A distribuio Debian foi escolhida por ser muito utilizada em servidores e pela facilidade de realizar conguraes atravs de arquivos. Este material pode ser copiado e distribuido livremente, desde que o autor no seja omitido. Crticas, sugestes e correes so bens vindos.

1.1

Histrico de versesDescrio Criao da apostila para o curso ministrado para o CISL - Comit Tcnico para Implementao do Software Livre Correes. Alterao do estilo dos cdigos fontes. Insero de tabela de comandos do VIM. Resoluo dos exerccios

Verso 1.0 1.1

www.serpro.gov.br

7

Introduo ao Linux: Perdendo o medo da tela preta

22.1

Instalando o DebianEscolhendo a arquitetura apropriada

O Debian divide os computadores em categorias conforme sua arquitetura. Para algumas dessas arquiteturas so disponibilizados os CDs/DVDs de instalao. As categorias mais comuns para uso domstico so i386 e amd64. A i386 engloba todos os computadores baseados na arquitetura Intel de 32 bits. Antigamente existiam vrios fabricantes, mas hoje temos predominantemente a Intel e a AMD. Com a evoluo dos computadores, comearam a surgir os primeiros processadores de 64 bits. A Intel lanou o Itanium de 64 bits, cuja arquitetura incompatvel com a de 32 bits. Para esses processadores, deve-se baixar o CD/DVD da categoria IA64. Para entrar no mercado de 64 bits, a AMD lanou a arquitetura AMD64, que mantem compatibilidade com a arquitetura 32 bits, ou seja, sistemas operacionais e programas de 32 bits podem ser instalados nessa arquitetura. O Itanium voltado para servidores, e tem um preo muito elevado. Para competir com a AMD, a Intel lanou a arquitetura Intel 64, que tambm compatvel com a arquitetura 32 bits. Para a arquitetura Intel 64 e AMD64 pode-se utilizar tanto o CD de instalao i386 como o amd64. Os CDs/DVDs de instalao esto disponveis para download em http://www.debian.org/CD/http-ftp/ stable.

2.2

Criando uma mquina virtual

Para os exerccios ser utilizada uma mquina virtual VMware. Abaixo as telas com os passos para criao de uma.

www.serpro.gov.br

8

Introduo ao Linux: Perdendo o medo da tela preta

Figura 1: Tela inicial do VMware. Escolher a opo Create a New Virtual Machine

Figura 2: Nesta tela possvel escolher a mdia de instalao, que pode ser uma mdia gravada presente no drive de CD/DVD, ou uma imagem ISO do CD/DVD.

www.serpro.gov.br

9

Introduo ao Linux: Perdendo o medo da tela preta

Figura 3: Deve-se escolher qual o sistema operacional ser instalado, bem como sua verso.

Figura 4: Para facilitar a identicao, pode-se denir um nome para a mquina, e tambm onde seus arquivos caro.

www.serpro.gov.br

10

Introduo ao Linux: Perdendo o medo da tela preta

Figura 5: O tamanho do disco varia conforme a necessidade. Pode-se adicionar mais de um disco em uma mesma mquina.

Figura 6: Terminado o processo, pode-se alterar alguma congurao, como memria, discos, etc..

www.serpro.gov.br

11

Introduo ao Linux: Perdendo o medo da tela preta

2.3

Particionamento de discoPartio uma diviso no disco rgido que marca onde comea e onde termina um sistema de arquivos1 .

Pode-se criar no mximo 4 parties primrias em um disco. Caso seja necessrio criar mais que isso, deve-se denir uma delas como sendo uma partio extendida, e criar parties lgicas dentro dela. Antigamente era necessrio pelo menos duas parties para a instalao do Linux, a de Linux Swap e a Linux Native. Hoje em dia j possvel instalar sem a partio de swap, mas algumas distribuies ainda obrigam sua criao. Ao invs de criar swap em partio, pode-se criar um arquivo de swap. Durante a instalao do Linux, possvel denir que alguns diretrios sejam montados em outras parties. Existem vantagens e desvantagens em se fazer isso, e cada caso deve ser analisado antes da instalao para denir o melhor esquema.

2.4

FormataoA formatao cria o sistema de arquivos na partio.

O Linux pode ser instalado em vrios sistemas de arquivos. Temos por exemplo, ext2, ext3, ext4, reiserfs, jfs, xfs. O uso do ext2 deve ser evitado pois ele no tem jornal. Jornal uma rea especial onde so gravadas todas as operaes que so realizadas no disco. Caso haja algum problema durante a operao do disco, ele pode voltar ao estado anterior do arquivo ou nalizar a operao.

2.5

Instalando

Terminada a criao da mquina virtual, seu funcionamento idntico ao de um computador fsico. Basta ligar e iniciar a instalao do sistema operacional. Abaixo, as telas de instalao do Debian.

1 Denio

retirada do Guia Foca Linux: http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.htm.

www.serpro.gov.br

12

Introduo ao Linux: Perdendo o medo da tela preta

Figura 7: Na primeira tela, pode-se escolher se a instalao ser feita em modo texto ou em modo grco. Essa escolha no ir inuenciar o funcionamento do sistema depois de instalado. O processo de instalao ser feito em modo grco, mas isso no instala o modo grco automaticamente.

Figura 8: A lngua escolhida nesse momento ser a lngua padro do sistema depois de instalado.

www.serpro.gov.br

13

Introduo ao Linux: Perdendo o medo da tela preta

Figura 9: Dene o fuso horrio do sistema.

Figura 10: Deve-se escolher o layout do teclado. ABNT2 para teclados que tenham o C com cedilha e EUA para teclados sem.

www.serpro.gov.br

14

Introduo ao Linux: Perdendo o medo da tela preta

Figura 11: O hostname do computador pode ser denido neste momento ou posteriormente.

Figura 12: Dene-se o nome de domnio Internet do computador.

www.serpro.gov.br

15

Introduo ao Linux: Perdendo o medo da tela preta

Figura 13: necessrio escolher uma senha para o usurio root.

Figura 14: O nome de um usurio comum. Esse o nome de descrio do usurio. Pode ser o nome completo, por exemplo.

www.serpro.gov.br

16

Introduo ao Linux: Perdendo o medo da tela preta

Figura 15: O nome de login para o usurio comum.

Figura 16: Senha para o usurio comum.

www.serpro.gov.br

17

Introduo ao Linux: Perdendo o medo da tela preta

Figura 17: Denindo o fuso horrio do sistema.

Figura 18: Iniciando o particionamento. Ser usado o mtodo manual.

www.serpro.gov.br

18

Introduo ao Linux: Perdendo o medo da tela preta

Figura 19: A imagem mostra que h um disco SCSI de 8,6GB, mas no h uma tabela de parties. Basta dar duplo-clique sobre o disco para que ela seja criada.

Figura 20: Basta conrmar e a tabela de parties ser criada.

www.serpro.gov.br

19

Introduo ao Linux: Perdendo o medo da tela preta

Figura 21: Agora, a tabela de parties mostra os 8,6GB como espao livre. Para criar uma nova partio, selecione-o e clique em Continuar.

Figura 22: Selecionar a opo Criar uma nova partio e clicar em Continuar.

www.serpro.gov.br

20

Introduo ao Linux: Perdendo o medo da tela preta

Figura 23: Escolher o tamanho da partio.

Figura 24: Escolher o tipo de partio como sendo primria.

www.serpro.gov.br

21

Introduo ao Linux: Perdendo o medo da tela preta

Figura 25: Criar a nova partio no incio do espao disponvel.

Figura 26: Agora deve-se congurar a partio. Selecionar a opo Usar como: e clicar em Continuar

www.serpro.gov.br

22

Introduo ao Linux: Perdendo o medo da tela preta

Figura 27: Escolher a opo rea de troca (swap) e clicar em Continuar

Figura 28: Selecionar novamente o Espao livre e clicar em Continuar

www.serpro.gov.br

23

Introduo ao Linux: Perdendo o medo da tela preta

Figura 29: Selecionar a opo Criar nova uma partio e clicar em Continuar.

Figura 30: Escolher o tamanho da partio.

www.serpro.gov.br

24

Introduo ao Linux: Perdendo o medo da tela preta

Figura 31: Escolher o tipo de partio como sendo primria.

Figura 32: Selecionar a opo Usar como: e clicar.

www.serpro.gov.br

25

Introduo ao Linux: Perdendo o medo da tela preta

Figura 33: Escolher Sistema de arquivos com journaling ext4.

Figura 34: Caso seja criada mais de uma partio para os dados, basta selecionar Ponto de montagem e alterar onde cada partio ser montada. No caso, temos somente 1 paartio para dados, portanto selecionar a opo Finalizar a congurao da partio.

www.serpro.gov.br

26

Introduo ao Linux: Perdendo o medo da tela preta

Figura 35: Selecionar a opo Finalizar o particionamento e gravar as mudanas no disco.

Figura 36: Conrmar as alteraes.

www.serpro.gov.br

27

Introduo ao Linux: Perdendo o medo da tela preta

Figura 37: Para a instao basta o primeiro disco, portanto no necessrio ler outro disco.

Figura 38: Caso seja escolhida a opo Sim ser necessrio escolher um repositrio na Internet ou na rede. Para o curso no ser utilizado, pois necessrio muita banda para isso.

www.serpro.gov.br

28

Introduo ao Linux: Perdendo o medo da tela preta

Figura 39: Esse erro ocorre porque o repositrio de rede no foi congurado. Se na tela anteior for escolhida a opo Sim o erro no ocorre.

Figura 40: Caso deseje ajudar no concurso de popularidade de pacotes, ecolher a opo Sim.

www.serpro.gov.br

29

Introduo ao Linux: Perdendo o medo da tela preta

Figura 41: Selecionar os grupos de pacotes que deseja-se instalar. Para o curso, escolher somente Servidor SSH e Utilitrios standard de sistema. Para instalar o modo grco, marcar tambm a primeira opo - Ambiente de trabalho grco.

Figura 42: Instalar o GRUB na MBR. O GRUB o gerenciador de boot do Linux. responsvel por carregar o kernel na memria e passar o controle do computador para o sistema operacional.

www.serpro.gov.br

30

Introduo ao Linux: Perdendo o medo da tela preta

Figura 43: Instalao nalizada com sucesso.

Figura 44: Tela de login do Linux.

www.serpro.gov.br

31

Introduo ao Linux: Perdendo o medo da tela preta

3

Entendendo o prompt do Linux

Terminada a instalao possvel efetuar login. Basta digitar o usurio e depois a senha. Ao digitar a senha, o prompt no se movimenta, e nada ecoado na tela. O prompt que aparece pode ser congurado, mas normalmente parecido com o abaixo: ruy@debian ~ $ Isso siginica que o usurio ruy est logado, o hostname do computador debian. O usurio est em seu diretrio home e um usurio comum. Outro exemplo: root@servidor01 /etc # O usurio root est logado no computador de hostname servidor01. Est no diretrio /etc e um usurio com poderes de root. O ltimo caracter muito importante. Caso seja um $ que dizer que um usurio comum. Se for um # o usurio tem poderes de root. Usa-se a denio ter poderes de root pois possvel criar um usurio e atribuir poderes de root para ele. Esse prompt pode ser alterado atravs da varivel de ambiente $PS1 Abaixo um exemplo: ruy@taiga /etc $ PS1="[\u\@\h \w \t \! $]" [ruy@taiga /etc 23:24:22 40 $] Alguns caracteres especiais suportados2 so:

2 informao

retirada do man do bash

www.serpro.gov.br

32

Introduo ao Linux: Perdendo o medo da tela preta

Caracter \a \d \D{format} \e \h \H \j \l \n \r \s \t \T \@ \A \u \v \V \w \W \! \# \$ \nnn \\ \[ \]

Descrio an ASCII bell character (07) the date in Weekday Month Date format (e.g., Tue May 26) the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specic time representation. The braces are required an ASCII escape character (033) the hostname up to the rst . the hostname the number of jobs currently managed by the shell the basename of the shells terminal device name newline carriage return the name of the shell, the basename of $0 (the portion following the nal slash) the current time in 24-hour HH:MM:SS format the current time in 12-hour HH:MM:SS format the current time in 12-hour am/pm format the current time in 24-hour HH:MM format the username of the current user the version of bash (e.g., 2.00) the release of bash, version + patch level (e.g., 2.00.0) the current working directory, with $HOME abbreviated with a tilde (uses the value of the PROMPT_DIRTRIM variable) the basename of the current working directory, with $HOME abbreviated with a tilde the history number of this command the command number of this command if the effective UID is 0, a #, otherwise a $ the character corresponding to the octal number nnn a backslash begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt end a sequence of non-printing charactersTabela 1: Alguns caracteres permitidos para a varivel $PS1

Para ver outra variveis de ambiente basta digitar o comando env. Algumas dessas variveis so informativas, e podem ser utilizadas em scripts. O cdigo abaixo, por exemplo, verica se o usurio root: if [ $USER = "root" ] then echo "usuario eh root" else echo "usuario nao eh root" fi Outra varivel muito importante a $SHELL. Ela diz qual o shell utilizado no momento. Atualmente em ambientes Linux, o padro o /bin/bash. Alguns comandos funcionam de maneira diferente nos diferentes tipos de shell existentes. Outras variveis podem alterar o funcionamento de alguns programas, como por exemplo a varivel $JAVA_HOME, que dene onde est instalado o java, ou varivel $EDITOR, que dene qual o editor de texto padro do sistema.

www.serpro.gov.br

33

Introduo ao Linux: Perdendo o medo da tela preta

3.1

Shell

Segundo Aurlio Marinho Jargas3 , Shell a linha de comando do Linux (e UNIX). o shell quem interpreta a linha de comandos digitada pelo usurio no terminal e chama os programas desejados. L-se "xu", como em "meu deu du xu":). Como dito anteriormente, em ambientes Linux o shell padro o Bourn Again Shell (Bash), mas existem outros como o Bourn Shell (sh), o Korn Shell (kshell), C Shell (csh)4 . A entrada padro do shell o teclado, e a sada padr a tela. Caso queira que a sada de um comando no v para a tela, pode-se utilizar o redirecionamento >, por exemplo: ls > saida.txt O resultado do comando ls ser direcionado para o arquivo saida.txt. Se o arquivo no existir, ele ser criado. Se o arquivo existir, seu contedo ser apagado antes da sada do comando gravar o resultado nele. Por exemplo: $ cat teste.txt 1 2 3 $ cat teste.txt > teste.txt cat: teste.txt: os arquivos de entrada e de saida sao os mesmos Como resultado, teremos o arquivo vazio. Caso queira que o resultado seja acrescentado ao nal do arquivo deve-se utilizar o redirecionamento . Mas como no caso anteior, a entrada e a sada no pode ser o mesmo. $ cat teste.txt 1 2 3 $ cat teste.txt >> teste.txt cat: teste.txt: os arquivos de entrada e de saida sao os mesmos Mas o contedo do arquivo no ser perdido. Nesta seo sero apresentados alguns comando bsicos e seus parmetros mais utilizados. Por serem comandos simples, no sero abordados com profundidade.

3.2

man - Manual dos comandos

O comando man exibe o manual on-line do comando. o comando mais importante do UNIX, pois, como existem muitos comandos e cada comando tem vrios parmetros praticamente impossvel saber todos. O importante saber que o comando existe e ter uma idia de seu funcionamento. Quando necessitar de maiores detalhes, basta consultar o man.

3.3

ls - Listando contedo

O comando lista o contedo de diretrios. Normalmente o resultado ser a lista com o nome de arquivos e diretrios. Para ver mais detalhes dos arquivos pode-se utilizar o parmetro -l, que lista em formato longo. O resultado seria como abaixo:3 http://aurelio.net/shell/ 4 Mais

informaes disponveis em http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo001#O_Ambiente_Shell

www.serpro.gov.br

34

Introduo ao Linux: Perdendo o medo da tela preta $ ls -l total 3372 -rw-r--r-- 1 ruy ruy 3446664 Mai 13 19:43 curso_introducao_linux.tar.bz2 drwxr-xr-x 3 ruy ruy 4096 Mai 15 16:59 introducao_linux No resultado acima temos: Campo total 3372 -rw-r--r-1 ruy ruy 3446664 Mai 13 19:43 curso_introducao_linux.tar.bz2 Signicado Nmero de blocos ocupados pelos arquivos Permisses dos arquivos Nmero de links que apontam para o arquivo Dono do arquivo Grupo ao qual o arquivo pertence tamanho do arquivo em bytes Dia e hora em que o arquivo foi alteraro pela ltima vez Nome do arquivo

Tabela 2: Signicado dos campos do comando ls -l

No exemplo, o segundo arquivo, na parte de permisses, o primeiro caracter um d. Isso signica que o arquivo um diretrio. Se o primeiro caracter for um l siginica que o arquivo um link. Normalmente no se diferencia os diferentes tipos de arquivo no resultado do comando ls. Para facilitar a vizualizao pode-se utilizar o parmetro --color. Isso altera a cor dos arquivos conforme seu tipo. Arquivos cujo nome iniciam com o caracter . so considerados ocultos. Para list-los utiliza-se o parmetro -a. Para ver o tamanho do arquivo em KB ou MB ao invs de bytes, pode-se utilizar o parmetro -h.

3.4

cd - Mudando o diretrio atual

Ao efetuar o login, por padro, vamos para o nosso diretrio home. Para mudar de diretrio utiliza-se o comando cd. Para mudar de diretrio pode utilizar o caminho completo ou o caminho relativo. O caminho completo inicia-se sempre com o /. Por exemplo: $ cd /var/lib/ Ao executar esse comando, mudamos para o diretrio /var/lib. Se estamos no diretrio /var/lib e queremos ir para o diretrio /var/cache, podemos executar qualquer um dos comandos abaixo: $ cd ../cache $ cd /var/cache O .. referencia-se ao diretrio pai de onde estamos. Outro caracter interessante o -, que referencia-se ao diretrio anterior. Por exemplo: $ cd $ pwd /home/ruy $ cd /usr/lib/ $ pwd www.serpro.gov.br 35

Introduo ao Linux: Perdendo o medo da tela preta /usr/lib $ cd $ pwd /home/ruy O comando pwd exibe o diretrio atual.

3.5

mkdir - Criando diretriosO comando mkdir cria um ou mais diretrios. Por exemplo:

$ mkdir dir1 dir2 dir3 $ ls dir1 dir2 dir3 Pode-se criar um diretrio dentro de uma estrutura de diretrios. Se a estrutura no existir ocorrer um erro. Para criar uma estrutura, pode-se utilizar o parmetro -p. Por exemplo: $ mkdir dir1/dirA/dir100 mkdir: impossivel criar o diretrio "dir1/dirA/dir100": Arquivo ou diretrio no encontrado $ mkdir -p dir1/dirA/dir100 $ ls dir1/dirA/ dir100

3.6

rmdir - Removendo diretrios

O comando rmdir remove diretrios vazios. Caso contrrio ocorrer um erro. Pode-se utilizar o parmetro -p para remover a estrutura toda. $ rmdir dir1 rmdir: falhou em remover "dir1": Diretrio no vazio $ rmdir dir1/dirA/dir100 Se, dentro de dirA houver mais algum arquivo, o diretrio dir100 ser apagado, mas o outro arquivo no, e ocorrer um erro.

3.7

Criando arquivos

Existem duas maneiras de criar um arquivo vazio. Por denio o correto utilizar o comando >. Lembrandose sempre que, caso o arquivo exista, seu contedo ser apagado. Pode-se utilizar tambm o comando touch. Mas a denio do comando touch Altera o timestamp do arquivo. Ou seja, se o arquivo existir, a data/hora do arquivo ser alterada para a atual. Se o arquivo no existir ele ser criado.

3.8

rm - Remover arquivos ou diretrios

Se usado sem nenhum parmetro, no remove diretrios. Para remover diretrios pode-se utilizar o parmetro -r, que remove diretrios e seu contedo recursivamente. Para evitar erros, pode-se utilizar o parmetro -i, que pede conrmao antes de remover cada arquivo. Ao contrrio disso, para remover incondicionalmente, existe o parmetro -f, que fora a remoo. Um comando perigoso, pois apaga todos os arquivos rm -rf /. www.serpro.gov.br 36

Introduo ao Linux: Perdendo o medo da tela preta

3.9

cat - Exibindo e concatenando contedo de arquivos

Para exibir o contedo de um arquivo pode-se usar simplesmente o comando cat. Para exibir o arquivo de forma reversa existe o comando tac. Mas o comando pode ser usado tambm para criar um arquivo. Para isso basta utilizar como mostrado abaixo: $ cat > arquivo1.txt linha 1 # o sinal de > o prompt que ir abrir para a digitao do texto > linha 2 # Ao pressionar ENTER, abrir uma nova linha no arquivo > linha 3 > EOF # Ao digitar a string EOF, finaliza o comando e o arquvo gerado $ cat arquivo1.txt linha 1 linha 2 linha 3 Isso ir apagar o contedo de arquivo1.txt e ir acrescentando o que for digitado at digite-se o EOF.

3.10

mv

O mv move ou renomeia arquivos. Por exemplo: $ ls # lista o conteudo do diretorio atual arquivo1.txt $ mv arquivo1.txt arquivo2.txt # renomeia arquivo1.txt para arquivo2.txt $ ls arquivo2.txt $ mkdir dir1 # Cria um diretorio $ ls arquivo2.txt dir1 $ mv arquivo2.txt dir1 # move arquivo2.txt para dentro de dir1 $ ls dir1 arquivo2.txt

3.11

less more - Paginadores

Ao executar o comando cat, se o arquivo for muito longo, a visualizao muito difcil. Para facilitar pode-se utilizar os comandos more ou o less. A diferena entre os dois que com o less possvel avanar e voltar no texto, e com o more s possvel avanar.

3.12

head e tail - Visualizando incio e m do arquivo

Os comando head e tail exibem, respectivamente, as 10 primeiras e as 10 ltimas linhas de um arquivo. Para ver as 20 primeiras/ltimas linhas do arquivo utiliza-se o parmetro -n 20.

3.13

uniq - Exibe ou omite linhas repetidas

O uniq ltra linhas iguais adjacentes. Se usado sem parmetro nenhum, linhas iguais sero unidas para a primeira ocorrncia. www.serpro.gov.br 37

Introduo ao Linux: Perdendo o medo da tela preta

Caso seja necessrio ver somente as linhas repetidas, existe o parmetro -d. Como o uniq somente verica se as linhas adjacentes so iguais, pode ser necessrio ordenar o arquivo antes. O comando sort tem esse propsito.

3.14

sort - Ordenando arquivos

O comando sort sem nenhum parmetro ir ordenar o contedo do arquivo informado, exibindo na tela. O parmetro -r exibe ordenado reversamente. Para ter um arquivo ordenado e sem linhas repetidas, poderia-se utilizar o redirecionamento | como abaixo:

$ sort arquivo.txt | uniq

Mas o comando sort tem o parmetro -u que tem o mesmo efeito.

3.15

free - Utilizao de memria

O comando free exibe informaes sobre utilizao da memria. Por exemplo: $ free Mem: 4050196 -/+ buffers/cache: Swap: 1951856

total 2019504 781776 0

used free 2030692 3268420 1951856

shared

0

buffers 299820

cached 937908

3.16

df - Informaes sobre utilizao de discos

Muitos problemas podem ocorrer se no houver espao livre nas parties utilizadas. Parties como /var e /tmp que so constantemente alteradas podem prejudicar o funcionamento de servios. Se a partio raiz estiver cheia, todo o sistema pode car comprometido. Para vericar qual a utilizao de cada partio montada, inclusive compartilhamentos de rede. Um exemplo pode ser visto abaixo: $ df -h Sist. Arq. /dev/sda3

Tam 37G

Usad Disp Uso% Montado em 18G 18G 50% /

3.17

du - Espao usado pelo arquivo

Denido que alguma partio est muito cheia, pode-se denir qual diretrio dentro dessa partio est muito cheia. Em alguns casos, pode-se chegar a concluso que o problema foi o mau dimensionamento das parties. Em alguns casos, alguma partio que esteja ocupando muito espao pode ter seu contedo apagado. O du um comando que estima o espao utilizado por cada arquivo. Uma utilizao interessante a mostrada abaixo: # du -hs * 2>/dev/null 6,4M bin www.serpro.gov.br 38

Introduo ao Linux: Perdendo o medo da tela preta 43M boot 4,0K cdrom 308K dev 20M etc 100G home 0 initrd.img 0 initrd.img.old 321M lib 16K lost+found 4,0K media 24K mnt 383M opt 0 proc 3,2M root 6,6M sbin 4,0K selinux 4,0K srv 0 sys 664K tmp 5,5G usr 425M var 0 vmlinuz 0 vmlinuz.old

3.18

uname - Exibe informaes do sistema

Um uso muito comum com o parmetro -a, como visto abaixo: $ uname -a Linux debian 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux Como resultado temos: Linux: Nome do kernel - parmetro -s; debian: Hostname da mquina - parmetro -n; 2.6.32-5-686: Verso do kernel - parmetro -r; #1: Nmero de vezes que o kernel foi compilado antes de chegar a esta compilao; SMP: Signica que o kernel foi compilado com suporte a multi-processadores; Wed Jan 12 04:01:41 UTC 2011: Data em que o kernel foi compilado; i686: Arquitetura do processador - parmetro -r; GNU/Linux: Sistema operacional - parmetro -o.

3.19

alias - Dene ou lista alias

Se usado sem nenhum parmetro, retorna uma lista com todos os alias denidos atualmente. Exemplo: $ alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' www.serpro.gov.br 39

Introduo ao Linux: Perdendo o medo da tela preta alias alias alias alias alias grep='grep --color=auto' l='ls -CF' la='ls -A' ll='ls -alF' ls='ls --color=auto'

Ao digitar o comando la, o shell ir chamar o comando ls com o parmetro -A. Para denir um alias personalizado, basta digitar exatamente como no exemplo. O comando alias, seguido novo comando, o sinal de igual, e entre aspas simples, o comando que ser chamado. Importante notar que no h espao antes e depois do sinal de igual. O alias denido em cada sesso, ou seja, ao efetuar logoff, ele ser perdido. Para que ele seja denido toda vez que efetuar login, pode-se denir o alias no arquivo ~/.bashrc. Para denir um alias para todos os usurios, pode-se deni-lo em /etc/profile

3.20

echo e printf - Exibindo na tela

O echo exibe de forma simples os argumentos passados para ele. Caso seja passado uma varivel, imprime seu contedo. $ echo Curso de GNU/Linux Curso de GNU/Linux $ echo $HOME /home/ruy Para formatar a sada, pode-se utlizar o printf, que tem um comportamento semelhante ao printf() em C. $ printf "%f\n" 10 10,000000 $ printf "%10d\n" 10 10 $ printf "%010d\n" 10 0000000010

3.21

ps - Exibindo processos correntes

O ps exibe um snapshot dos processos. Sem nenhum parmetro ele retorna poucas informaes. Alguns parmetros podem ser vistos na tabela abaixo: Parmetro -e -f -u userlist -H -w -o format Descrio Exibe todos os processos Lista em formato longo Exibe somente processos dos usurios informados Exibe processos em forma de rvore Dene a largura da coluna em limite Para denir quais colunas sero exibidas. format so as colunas separadas por vrgula. Algumas colunas possvels esto disponveis na tabela 4Tabela 3: Alguns parmetros do comando ps

www.serpro.gov.br

40

Introduo ao Linux: Perdendo o medo da tela preta

Formato %cpu %mem cmd egid egroup euid euser lwp nlwp rss s tname vsz pri

Descrio Porcentagem deutilizao do processador Porcentagem de utilizao da memria fsica Comando com todos os seus argumentos Id do grupo do processo nome do grupo do processo Id do usurio do processo Nome do usurio do processo Id da thread do processo Nmeros de threads do processo Quantidade de memria fsica utilizada Estado do processo, podem ser vistos na tabela 5 Nome do terminal onde o processo est executando Quantidade de memria virtual Prioridade do processoTabela 4: Colunas disponveis para o ps

Estado D R S T X Z

Descrio Processo interrompido, mas no processa sinais. Provavelmente esperando a nalizao de alguma tarefa Processo executando ou na la esperando para iniciar execuo Dormindo e aguardando algum evento ocorrer Processo parado por recebimento de sinal Morto Processo zumbi. Processo foi nalizado, mas aguardando o processo pai coletar informaesTabela 5: Estados do processo

3.22

kill - Enviando sinais para o processo

O comando kill envia um sinal para o processo. Se utilizado sem nenhum parmetro, ele envia o sinal 15, que para terminar (gentilmente) o processo. Caso o processo no nalize, pode ser necessrio enviar um sinal 9 para matar (incondicionalmente). O uso pode ser visto abaixo: $ kill 748 $ kill -9 748 O nmero 748 seria o PID do processo. No exemplo um nmero aleatrio. Para saber o PID do processo desejado basta utilizar o comando ps.

3.23

top - Exibe os processos

O top uma ferramenta muito importante de monitoramento. Ele exibe interativamente os processos em execuo. Um exemplo abaixo:1

3

5

7

t o p - 1 1 : 1 8 : 0 6 up 3 : 0 7 , 4 users , l o a d average : 0 . 3 8 , 0 . 4 0 , 0.35 Tasks : 231 t o t a l , 2 running , 228 s l e e p i n g , 0 stopped , 1 zombie Cpu0 : 2.3%us , 2.3%sy , 0.0% n i , 95.4% i d , 0.0%wa , 0.0% h i , 0.0% s i , 0.0% s t Cpu1 : 0.3%us , 0.0%sy , 0.0% n i , 99.7% i d , 0.0%wa , 0.0% h i , 0.0% s i , 0.0% s t Cpu2 : 1.6%us , 1.0%sy , 0.3% n i , 96.8% i d , 0.0%wa , 0.0% h i , 0.3% s i , 0.0% s t Cpu3 : 1.3%us , 0.7%sy , 0.0% n i , 97.7% i d , 0.0%wa , 0.3% h i , 0.0% s i , 0.0% s t Mem: 4050196k t o t a l , 2189236k used , 1860960k f r e e , 285724k b u f f e r s Swap : 1951856k t o t a l , 0k used , 1951856k f r e e , 1033812k cached

9

www.serpro.gov.br

41

Introduo ao Linux: Perdendo o medo da tela preta

11

13

15

17

19

21

23

25

27

29

31

33

35

PID 1074 2414 2608 4143 2319 4121 832 2439 2593 4253 4345 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

USER root 21537850 21537850 21537850 21537850 21537850 root 21537850 21537850 21537850 21537850 root root root root root root root root root root root root root root root

PR 20 20 20 20 20 20 20 20 20 20 20 20 20 RT 20 RT RT 20 RT RT 20 RT RT 20 RT 20

NI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

VIRT RES SHR S % CPU % MEM 124m 59m 18m S 4 1.5 43004 13m 10m S 1 0.3 261m 47m 20m S 1 1.2 49944 14m 10m S 1 0.4 38896 12m 9896 S 1 0.3 71640 29m 19m S 1 0.8 0 0 0 S 0 0.0 41736 12m 9 . 9m S 0 0.3 152m 53m 17m S 0 1.4 173m 125m 116m S 0 3.2 2544 1160 844 R 0 0.0 2604 1544 1148 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0 0 0 0 S 0 0.0

TIME+ 5:43.39 0:09.26 4:10.94 0:02.17 0:03.32 0:16.93 0:01.17 0:10.25 0:44.19 0:31.75 0:07.31 0:00.55 0:00.00 0:00.00 0:00.01 0:00.00 0:00.00 0:00.08 0:00.00 0:00.00 0:00.14 0:00.00 0:00.00 0:00.05 0:00.00 0:00.05

COMMAND Xorg wnck - a p p l e t chromium - browse gnome - t e r m i n a l metacity texmaker kjournald sensors - a p p l e t chromium - browse vmware - vmx top init kthreadd migration /0 k s o f t i r q d /0 watchdog / 0 migration /1 k s o f t i r q d /1 watchdog / 1 migration /2 k s o f t i r q d /2 watchdog / 2 migration /3 k s o f t i r q d /3 watchdog / 3 events / 0

A linha 1 mostra a hora atual, quanto tempo o sistema est ligado, quantos usurios esto logados, e a mdia de utilizao nos ltimos 1, 5 e 15 minutos. Essa linha pode ser obtida com o comando uptime. Na linha 2 temos a quantidade total de processos, e os divide entre executando, dormindo, parado e zumbi. Entre as linhas 3 at a linha 6 so as informaes referentes a cada processador/ncleo. Os campos so: us: Tempo que a CPU gastou rodando processos de usurio e no so niced5 sy: Tempo que a CPU gastou rodando o kernel e seus processos ni: Tempo que a CPU gastou processando processos de usurios e que foram niced wa: Tempo que a CPU esperou por I/O hi: Tempo que a CPU gastou servindo interrupes de hardware si: tempo que a CPU gastou servindo interrupo de software st: Tempo que a CPU gastou em outras mquinas virtuais As linhas 7 e 8 mostram informaes de memria. As colunas mostradas na linha 10 so as mesmas do comando ps. Pressionando a tecla h, ser exibido um help com comandos possveis dentro do top

3.24

Exerccios

1. Criar a seguinte estrutura de diretrios dentro de seu home:

5 Processo

niced um processo legal, que gasta menos tempo de CPU e executa mais lentamente.

www.serpro.gov.br

42

Introduo ao Linux: Perdendo o medo da tela preta

/home/usuario

secao1

secao2

resumo

exercicios

resumo

exercicios

2. Entre no diretrio secao1/exercicios e crie a seguinte estrutura de diretrios usando apenas um comando:/home/usuario/secao1/exercicios

diretorioA

diretorioB

diretorio1

diretorio2

Diretorio3

diretorio10

diretorio20

diretorio30

diretorio21

diretorio22

3. Entre no diretrio secao1/exercicios e criar um arquivo de nome exercicio3.txt usando o cat com o seguinte contedo: GNU/Linux um sistema operacional: uma srie de programas que deixam voc interagir com o computador e executar outros programas. ... A parte mais importante de um sistema operacional o kernel. Num sistema GNU/Linux, o componente do kernel o Linux. O resto do sistema consiste noutros programas, muitos dos quais escritos por ou para o Projeto GNU; Como o kernel sozinho no forma um sistema operacional utilizvel, ns preferimos utilizar o termo GNU/Linux para nos referirmos aos sistemas a que muitas pessoas vulgarmente chamam de Linux. 4. Usando variveis de ambiente, imprima na tela a seguinte mensagem: O usuario logado atualmente eh "ruy". O shell sendo executado eh "/bin/bash". 5. Execute os comandos abaixo e expliquem o resultado obtido: printf printf printf printf printf printf printf printf printf printf "%d" 46 "%f 46 "%10d" 46 "%010d" 46 "%o" 46 "%x" 46 "|%s|" "uma string" "|%15s|" "uma string" "|%-15s|" "uma string" "|%-15.5s|" "uma string"

www.serpro.gov.br

43

Introduo ao Linux: Perdendo o medo da tela preta

4

Usando o VIM

Aps instalar o vim (aptitude install vim) preciso congur-lo. Para isso edite o arquivo /etc/vim/vimrc e procure pelas linhas abaixo e descomente-as (remover o caracter " do incio das linhas): "syntax on . . . "if has("autocmd") " filetype indent on "endif As informaes a partir daqui at o nal da seo foram retiradas de ftp://ftp.vim.org/pub/vim/doc/ book/vimbook-OPL.pdf O VI um dos muitos editores de texto que podem ser utilizados em ambiente UNIX. Para acrescentar mais funcionalidades, foi criado o VIM (Vi IMproviment). O VIM tem dois modos, o de insero e o de comandos, que o modo padro quando ele iniciado. Para iniciar o modo de insero, basta pressionar a tecla i. Para voltar ao modo de comandos basta pressionar a tecla ESC. Ao abrirmos um arquivo no VIM, ele cria no mesmo diretrio um arquivo oculto com o mesmo nome, mas com o suxo .swp. Aps nalizar a edio do arquivo, esse arquivo deveria se apagado automaticamente. Caso contrrio, ao tentar abrir o arquivo novamente, aparecer a mensagem: E325: ATENO Foi encontrado um arquivo de troca de nome ".temp.txt.swp" pertence a: 21537850814com data: Thu May 19 15:07:15 2011 nome do arquivo: ~21537850814/teste/temp.txt modificado: no nome de usurio: 21537850814 nome do host: serpro-1462846 ID do processo: 6508 (ainda executando) Ao abrir o arquivo "temp.txt" com data de: Thu May 19 15:02:30 2011 (1) Outro programa pode estar editando o mesmo arquivo. Se for esse o caso, cuidado para no acabar com duas verses do mesmo arquivo ao fazer alteraes. Saia do programa, ou continue com cuidado. (2) Ocorreu um travamento numa sesso de edio desse arquivo. Se esse for o caso, use ":recover" ou "vim -r temp.txt" para recuperar as alteraes (veja ":help recovery"). Se voc j vez isso, exclua o arquivo de troca ".temp.txt.swp" para evitar esta mensagem. O arquivo de troca ".temp.txt.swp" j existe! [A]brir somente-leitura, (E)ditar mesmo assim, (R)ecuperar, (S)air, (C)ancelar: Se isso acontecer, verique se mais ningum est com o arquivo aberto antes de apagar o arquivo .swp. Para navegar pelo texto utiliza-se as teclas como a imagem abaixo:

www.serpro.gov.br

44

Introduo ao Linux: Perdendo o medo da tela preta

k

h

l

jFigura 45: Teclas de navegao do VIM.

Ou seja, para movimentar o cursor um caracter para direita basta pressionar a tecla l. Para movimentar o cursor 3 caracteres a esquerda o comando 3h. Para subir 2 linhas, 2k, e assim sucessivamente. Para avanar uma palavra, pressione a tecla w. Para voltar uma palavra, pressione a tecla b. Para se deslocar 5 palavras para frente pressiona-se 5w. Para apagar o caracter onde o cursor est, pressione a tecla x. Para apagar 30 caracteres, do cursor para a direta usa-se 50x. Caso tenha cometido algum erro durante a edio, a tecla u desfaz o ltimo comando. Para refazer a combinao CTRL+r refaz. Depois de nalizada a edio do arquivo, entra-se no modo de comando e digita-se ESC6 :x. Isso salva o arquivo e sai do VIM. Para sair sem salvar as alteraes temos o comando ESC :q. Se o arquivo foi alterado mas ainda no foi salvo, necessrio sair incondicionalmente com o comando ESC :q!.

4.1

Editando um pouco mais rpido

Para ir para o incio da linha corrente pressiona-se a tecla ^. Para ir ao nal da linha pressiona-se $. Para ir para o nal da prxima linha pode-se usar a combinao 2$. Ou seja, o caracter $ signica nal da linha, e o ^ signica incio da linha (no somente no VIM). Por isso, para apagar at o nal da linha o comando d$, e para apagar at o incio da linha d^. Para apagar at o nal da linha pode-se usar tambm o comando D. Para localizar o prximo caracter na linha corrente o comando fx, onde x o caracter buscado. O comando Fx busca o caracter x antes do cursor.3fa

fi

2fu

G

N

U

/

L

i

n

u

x

u

m

s

i

s

t

e

m

a

o

p

e

r

a

c

i

o

n

a

l

Fi 2Fa

Figura 46: Buscando na mesma linha.

Como visto anteriormente, para descer 3 linhas, o comando 3j, e para subir 4 linhas 4k. Ou seja, se o cursor estiver na primeira linha e for preciso ir para a linha 53, basta digitar 53j. Mas se o cursor no estiver6 Pressionar

a tecla ESC do teclado

www.serpro.gov.br

45

Introduo ao Linux: Perdendo o medo da tela preta

na primeira linha isso no funciona. Para isso precisamos utilizar o comando 53G, que posicionar o cursor na linha 53. Para apagar um caracter usamos x, uma palavra dw, uma linha dd. Todos esses comandos funcionam com os contadores, ou seja, o comando 3x apaga 3 caracteres, o comando 4dd apaga 4 linhas. Mas para apagar 5 palavras, pode-se usar 5dw ou d5w. A direfena que o comando 5dw apaga uma palavra 5 vezes, e o comando d5w apaga 5 palavras. Claro que existe uma diferena de processamento, mas hoje em dia isso desprezvel (a menos que queira apagar centenas ou talvez milhares de palavras). O importante acostumar-se a utilizar um deles. O comando J junta duas linhas, adicionando um espao ao nal da primeira. Para juntar 4 linhas, usa-se 4J. Para trocar o caracter onde o cursor est posicionado existe o comando r. Por exemplo, ra substitui o caracter pela letra a. J o comando 5ra substitui 5 caracteres pela letra a. O ~ troca letras maisculas por minsculas e vice-versa. 10~ ir trocar 10 letras. Realizar buscas em todo o documento um processo simples. Basta digitar o caracter / seguido da string que se deseja procurar e depois pressionar Enter. Isso ir posicionar o cursor na prxima ocorrncia da string7 Para continuar procurando, pressione a letra n. Para fazer uma busca reversa, use o comando ?. Isso ir procurar a ocorrncia anterior da string. n ir continuar procurando para trs. Tanto na busca para frente como para trs, pode ser necessrio inverter a direo da busca. Isso feito com o comando N. Como dito anteriormente, $ signica nal da linha, e ^ signica incio da linha. Ento, para procurar uma string no incio de uma linha use-se /^string, e para procurar no nal da linha, /string$. Para editar mais de um arquivo na mesma tela podemos divid-la. Com um arquivo aberto em modo de comando, basta digitar :split arquivo2.txt. Isso ir dividir a tela e abrir o arquivo2.txt. O comando CTRL+ww vai para o prximo documento aberto. possvel copiar partes de um arquivo para outro usando os comandos normalmente. Por exemplo, para copiar uma linha do arquivo1.txt para arquivo2.txt, basta usar o CTRL+ww at chegar ao arquivo desejado, posicionar o cursor na linha a ser copiada e usar o comando yy para copiar. Usar CTRL+ww para ir ao arquivo destino, posicionar na linha de cima de onde o trecho deve ser colado e pressionar p para colar.

4.2

Modo VisualEntrando em modo visual, ao movimentar o cursor, o texto ser selecionado. O VIM permite 3 modos visuais:

v: modo caracter a caracter. Ao movimentar o cursor lateralmente, seleciona caracter por caracter. Ao movimentar para baixo, seleciona o texto at a linha de baixo, na mesma coluna. V: modo linha a linha. Ao movimentar o cursor para baixo, seleciona a linha. Movimento lateral no tem efeito. CRTL+v: modo retangular. Ao movimentar lateralmente, seleciona caracter a caracter. Ao movimentar para baixo, seleciona o mesmo bloco da linha de baixo. Para apagar o texto selecionado, pressione d. Quando em modo caracter a caracter, o D apaga a linha. Quando em modo v, o comando c apaga o texto selecionado e entra em modo de insero. O comando C ir apagar o texto selecionado, ir entrar em modo de insero, mas ir abrir uma linha em branco. Quando em modo V, o comando c e C tem o mesmo efeito, apagar as linhas selecionadas, entrar em modo de insero e inserir uma linha em branco.7 Os

caracteres especiais .*[]^%?~$ precisam ser escapados.

www.serpro.gov.br

46

Introduo ao Linux: Perdendo o medo da tela preta

O modo CTRL+v o mais interessante. O comando c apaga o bloco selecionado, e inclue o que for digitado em todas as linhas. O comando C apaga do bloco selecionado at o nal da linha e insere o que foi digitado em todas as linhas. Para fazer isso, selecione o bloco desejado e pressione a tecla c ou C; digite o texto desejado; pressione a tecla ESC duas vezes. O texto digitado ir aparecer em todas as linhas que foram selecionadas no bloco. Em qualquer um dos 3 modos, o comando J junta as linhas selecionadas, incluindo um espao em branco entre cada linha. Para juntar sem o espao entre linhas usa-se o comando gJ. O comando de insero funciona somente no modo visual em bloco. Para usar, selecione o bloco desejado; pressione I seguido do texto a ser inserido; pressione ESC duas vezes, e o texto ir aparecer antes do local selecionado. Em qualquer um dos 3 modos, o comando rx ir substituir o texto selecionado pela letra x.

4.3

Editando cdigo fonte

O VIM tem vrias funcionalidades que facilitam o trabalho de desenvolvimento, e algumas delas sero tratadas nessa sesso. O comando :syntax on ativa o destaque de sintaxe do cdigo. Ele diferencia conforme a extenso do arquivo. A auto indentao tambm feita conforme a extenso do arquivo, e ativada com o comando :set autoindent. Para indentar um arquivo j existente basta posicionar o cursor no caracter { que inicia o bloco a ser indentado e usar o comando =%. O comando % serve para localizar o par dos caracteres (), {}, [] e /* */. Ele tambm localiza o os comandos #ifdef, #else e #endif Ao posicionar o cursor sob uma varivel, o comando gd vai at a declarao dela.

4.4

Modo comando

A substituio de algum texto possvel com o comando :% s/palavra1/palavra2/g. Isso ir substituir em todo o texto, as ocorrncias de palavra1 por palavra2. possvel especicar o range ao qual a substituio deve ser aplicada. Para substituir, por exemplo, somente das linhas 4 a 8, o comando seria :4,8 s/palavra1/palavra2/. Se no tiver certeza, e quiser conrmar cada substituio, basta usar o c ao nal: :4,8 s/palavra1/palavra2/c. Para facilitar esse processo, pode-se habilitar a exibio das linhas com o comando :set number. Para desabilitar o comando :set nonumber. Se quiser executar um comando grep sem sair do VIM, o comando :grep include *. Isso procura pela ocorrncia da palavra include em todos os arquivos do diretrio atual. Para executar um shell sem sair do VIM, o comando :shell. Para voltar ao VIm, basta digitar exit. O VIm consegue auto-completar baseado em alguns arquivos. O comando CTRL +p. Quando algum trecho muito utilizado, pode-se criar abreviaturas. Por exemplo, o comando :abbreviate #i #include /lib/libblkid.so.1 (0xb78b0000) libuuid.so.1 => /lib/libuuid.so.1 (0xb78ac000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7765000) /lib/ld-linux.so.2 (0xb78d3000) $ ldd /bin/grep linux-gate.so.1 => (0xb7735000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb772b000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75e5000) /lib/ld-linux.so.2 (0xb7736000) Esse procedimento tem a vantagem de diminuir o tamanho dos pacotes e do espao utilizado pelos programas. Mas torna mais complicado o empacotamento, pois preciso garantir que todos os pacotes que dependam de determinada biblioteca sejam compatveis com a mesma verso dela (gura 47).pacote grep-2.6.3-3 pacote grep depende de pacote libc6 >= 2.3 pacote libc6-2.11.2-10 pacote util-linux-2.17.2-9 pacote util-linux depende de pacote libc6 >=2.10

Figura 47: Pacote grep e linux-util dependem do pacote libc6

Gerenciador de pacotes um software que facilita a instalao, remoo, congurao e manuteno de pacotes. Por exemplo, ao instalar o pacote grep, o gerenciador de pacotes ir vericar se o pacote libc6 j est instalado; se no estiver, ele avisa que tal pacote necessrio. www.serpro.gov.br 49

Introduo ao Linux: Perdendo o medo da tela preta

Gerenciador avanado de pacotes um software que funciona junto com o gerenciador de pacotes. Ele resolve as dependncias do pacote durante a instalao. Por exemplo, ao instalar o pacote grep, o gerenciador avanado de pacotes ir vericar se o pacote libc6 j est instalador; se no estiver, ele instala o pacote.

5.1

Gerenciamento de pacotes no DebianAs informaes dessa seo foram retiradas de http://www.debian.org/doc/manuals/apt-howto/.

O gerenciador de pacotes no Debian o dpkg. O gerenciador avanado de pacotes o apt. O apt tem duas interfaces, o synaptics e o aptitude. O aptitude e o synaptics gerenciam melhor a remoo dos pacotes, por isso prefervel utilizar um deles ao invs de utilizar o apt. O arquivo de congurao mais importante do apt o /etc/apt/sources.list. Nele deve-se colocar os repositrios onde o apt ir buscar os pacotes. Ele tem o seguinte formato: deb http://host/debian distribuio seo1 seo2 seo3 deb-src http://host/debian distribuio seo1 seo2 seo3 Um exemplo: ############################################################# ################### OFFICIAL DEBIAN REPOS ################### ############################################################# ###### Debian Main Repos deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free ###### Debian Update Repos deb http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.br.debian.org/debian/ squeeze-proposed-updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://ftp.br.debian.org/debian/ squeeze-proposed-updates main contrib non-free ############################################################## ##################### UNOFFICIAL REPOS ###################### ############################################################## ###### 3rd Party Binary Repos #### Debian Multimedia - http://www.debian-multimedia.org/ ## Run this command: apt-get update && apt-get install debian-multimedia-keyring && apt-get update deb http://www.debian-multimedia.org stable main non-free Tambm possvel adicionar os CDs/DVDs de instalao, e repositrios locais.

5.2

Instalando um novo pacote

O apt utiliza um banco de dados de pacotes para saber quais pacotes esto disponveis, quais esto instalados e quais no esto. Para atualizar esse banco de dados deve-se executar o comando aptitude update. Ele busca as listas de pacotes disponveis nos repositrios congurados no arquivo /etc/apt/sources.list. importante executar esse comando de tempos em tempos e antes de instalar algum pacote. Para instalar um pacote preciso saber o nome dele88 pesquisa

de pacotes abordado na seo 5.3

www.serpro.gov.br

50

Introduo ao Linux: Perdendo o medo da tela preta O comando para instalar aptitude install pacote. Um exemplo: # aptitude install cpufreqd Os NOVOS pacotes a seguir sero instalados: cpufreqd fancontrol{a} libcpufreq0{a} libsensors4{a} libsysfs2{a} lm-sensors{a} 0 pacotes atualizados, 6 novos instalados, 0 a serem removidos e 8 no atualizados. preciso obter 333 kB de arquivos. Depois do desempacotamento, 1298 kB sero usados. Voc deseja continuar? [Y/n/?] Y Obter:1 http://ftp.br.debian.org/debian/ squeeze/main libcpufreq0 i386 007-1 [13,7 kB] Obter:2 http://ftp.br.debian.org/debian/ squeeze/main libsensors4 i386 1:3.1.2-6 [51,0 kB] Obter:3 http://ftp.br.debian.org/debian/ squeeze/main libsysfs2 i386 2.1.0+repack-1 [28,5 kB] Obter:4 http://ftp.br.debian.org/debian/ squeeze/main cpufreqd i386 2.4.2-1 [82,1 kB] Obter:5 http://ftp.br.debian.org/debian/ squeeze/main fancontrol all 1:3.1.2-6 [40,8 kB] Obter:6 http://ftp.br.debian.org/debian/ squeeze/main lm-sensors i386 1:3.1.2-6 [117 kB] Buscados 333 kB em 2s (149 kB/s) Selecionando pacote previamente no selecionado libcpufreq0. (Lendo banco de dados ... 28839 ficheiros e directrios actualmente instalados.) Desempacotando libcpufreq0 (de .../libcpufreq0_007-1_i386.deb) ... Selecionando pacote previamente no selecionado libsensors4. Desempacotando libsensors4 (de .../libsensors4_1%3a3.1.2-6_i386.deb) ... Selecionando pacote previamente no selecionado libsysfs2. Desempacotando libsysfs2 (de .../libsysfs2_2.1.0+repack-1_i386.deb) ... Selecionando pacote previamente no selecionado cpufreqd. Desempacotando cpufreqd (de .../cpufreqd_2.4.2-1_i386.deb) ... Selecionando pacote previamente no selecionado fancontrol. Desempacotando fancontrol (de .../fancontrol_1%3a3.1.2-6_all.deb) ... Selecionando pacote previamente no selecionado lm-sensors. Desempacotando lm-sensors (de .../lm-sensors_1%3a3.1.2-6_i386.deb) ... Processando gatilhos para man-db ... Configurando libcpufreq0 (007-1) ... Configurando libsensors4 (1:3.1.2-6) ... Configurando libsysfs2 (2.1.0+repack-1) ... Configurando cpufreqd (2.4.2-1) ... No cpufreq interface found, not starting cpufreqd. Configurando fancontrol (1:3.1.2-6) ... Configurando lm-sensors (1:3.1.2-6) ... O pacote cpufreqd depende dos pacotes fancontrol, libcpufreq0, libsensors4, libsysfs2 e lm-sensors, por isso eles foram selecionados para instalao tambm. Ao executar o aptitude install, se o pacote j estiver instalado, nada ser feito: # aptitude install cpufreqd Nenhum pacote ser instalado, atualizado ou removido. 0 pacotes atualizados, 0 novos instalados, 0 a serem removidos e 8 no atualizados. preciso obter 0 B de arquivos. Depois do desempacotamento, 0 B sero usados. Para reinstalar o pacote utiliza-se o comando aptitude reinstall: # aptitude reinstall cpufreqd Os pacotes a seguir sero REINSTALADOS: cpufreqd 0 pacotes atualizados, 0 novos instalados, 1 reinstalados, 0 a serem removidos e 8 no atualizados. preciso obter 0 B/82,1 kB de arquivos. Depois do desempacotamento, 0 B sero usados. (Lendo banco de dados ... 28952 ficheiros e directrios actualmente instalados.) Preparando para substituir cpufreqd 2.4.2-1 (usando .../cpufreqd_2.4.2-1_i386.deb) ... Stopping CPU Frequency daemon: cpufreqd. www.serpro.gov.br 51

Introduo ao Linux: Perdendo o medo da tela preta Desempacotando substituto cpufreqd ... Processando gatilhos para man-db ... Configurando cpufreqd (2.4.2-1) ... No cpufreq interface found, not starting cpufreqd.

5.3

Pesquisando pacotes

Para instalar um pacote necessrio saber seu nome correto. Para localizar um pacote pode-se usar o apt-get ou o aptitude: $ aptitude search squid p biosquid p biosquid-dev p gadmin-squid p gadmin-squid-dbg p gosa-plugin-squid p squid p squid-cgi p squid-common p squid-langpack p squid-prefetch p squid3 v squid3-cgi v squid3-client p squid3-common p squid3-dbg p squidclient p squidguard p squidguard-doc p squidtaild p squidview

-

utilities for biological sequence analysis headers and static library for biological sequence analysis GTK+ configuration tool for squid GTK+ configuration tool for squid (debug) squid plugin for GOsa Internet object cache (WWW proxy cache) A full featured Web Proxy cache (HTTP proxy) - control CGI Internet object cache (WWW proxy cache) - common files Localized error pages for Squid Simple page-prefetch for Squid web proxy A full featured Web Proxy cache (HTTP proxy) A full featured Web Proxy cache (HTTP proxy) - common files A full featured Web Proxy cache (HTTP proxy) - Debug symbols A full featured Web Proxy cache (HTTP proxy) - control utility filter and redirector plugin for Squid filter and redirector plugin for Squid - Documentation Squid log monitoring program monitors and analyses squid access.log fil

$ apt-cache search squid tinyproxy - A lightweight, non-caching, optionally anonymizing http proxy adzapper - proxy advertisement zapper add-on awffull - web server log analysis program biosquid-dev - headers and static library for biological sequence analysis biosquid - utilities for biological sequence analysis calamaris - log analyzer for Squid or Oops proxy log files ccze - A robust, modular log coloriser dansguardian - Web content filtering frox - Transparent caching ftp proxy gadmin-squid-dbg - GTK+ configuration tool for squid (debug) gadmin-squid - GTK+ configuration tool for squid gadmintools - GTK+ server administration tools (meta-package) gosa-plugin-squid - squid plugin for GOsa proxytrack - Build HTTP Caches using archived websites copied by HTTrack jesred - A redirector for the Squid proxy libsnmp-session-perl - Perl support for accessing SNMP-aware devices polipo - a small, caching web proxy sqcwa - Workaround for Squid not caching some pages squid-langpack - Localized error pages for Squid squid-prefetch - Simple page-prefetch for Squid web proxy squid-common - Internet object cache (WWW proxy cache) - common files squid - Internet object cache (WWW proxy cache) squid-cgi - A full featured Web Proxy cache (HTTP proxy) - control CGI squid3-common - A full featured Web Proxy cache (HTTP proxy) - common files www.serpro.gov.br 52

Introduo ao Linux: Perdendo o medo da tela preta squid3-dbg - A full featured Web Proxy cache (HTTP proxy) - Debug symbols squid3 - A full featured Web Proxy cache (HTTP proxy) squidclient - A full featured Web Proxy cache (HTTP proxy) - control utility squidguard-doc - filter and redirector plugin for Squid - Documentation squidguard - filter and redirector plugin for Squid squidtaild - Squid log monitoring program squidview - monitors and analyses squid access.log files srg - Fast, Flexible and Detailed log analysis for the Squid Proxy kernel-patch-wrr - Extension to traffic Control/network bandwidth management Como pode-se ver, o aptitude trs somente pacotes que tem a expresso no nome. O apt-cache trs todos os pacotes que tem alguma relaa ao com a expresso.

Exerccio:Utilizando o man, veja o signicado da primeira coluna ao executar o comando aptitude search. Caracter p c i v Signicado

Tabela 6: Caracteres possveis na primeira coluna do aptitude search

Ambos retornam o nome do pacote e uma descrio. Para saber mais informaes pode-se usar os comando aptitude show ou apt-cache show. Ambos trazem informaes muito importantes como verso e dependncias. $ aptitude show squid3 Pacote: squid3 Novo: sim Estado: nao instalado Versao: 3.1.6-1.2 Prioridade: opcional Secao: web Mantenedor: Luigi Gangitano Tamanho Descompactado: 3654 k Depende de: libc6 (>= 2.7), libcap2 (>= 2.10), libcomerr2 (>= 1.01), libdb4.8, libexpat1 (>= 1.95.8), libgcc1 (>= 1:4.1.1), libgssapi-krb5-2(>= 1.8+dfsg), libk5crypto3 (>= 1.6.dfsg.2), libkrb5-3 (>= 1.6.dfsg.2), libldap-2.4-2 (>= 2.4.7), libltdl7 (>= 2.2.6b), libpam0g(>= 0.99.7.1), libsasl2-2, libstdc++6 (>= 4.4.0), libxml2 (>= 2.7.4), netbase, adduser, logrotate (>= 3.5.4-1), squid3-common (=3.1.6-1.2), lsb-base Sugere: squidclient, squid-cgi, resolvconf (>= 0.40), smbclient Descricao: A full featured Web Proxy cache (HTTP proxy) Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects. Squid version 3 is a major rewrite of Squid in C++ and introduces a number of new features including ICAP and ESI support. Pagina web: http://www.squid-cache.org $ apt-cache show squid3 Package: squid3 Priority: optional Section: web Installed-Size: 3568 Maintainer: Luigi Gangitano www.serpro.gov.br 53

Introduo ao Linux: Perdendo o medo da tela preta Architecture: i386 Version: 3.1.6-1.2 Depends: libc6 (>= 2.7), libcap2 (>= 2.10), libcomerr2 (>= 1.01), libdb4.8, libexpat1 (>= 1.95.8), libgcc1 (>= 1:4.1.1), libgssapi-krb5-2 (>= 1.8+dfsg), libk5crypto3 (>= 1.6.dfsg.2), libkrb5-3 (>= 1.6.dfsg.2), libldap-2.4-2 (>= 2.4.7), libltdl7 (>= 2.2.6b), libpam0g (>= 0.99.7.1), libsasl2-2, libstdc++6 (>= 4.4.0), libxml2 (>= 2.7.4), netbase, adduser, logrotate (>= 3.5.4-1), squid3-common (= 3.1.6-1.2), lsb-base Suggests: squidclient, squid-cgi, resolvconf (>= 0.40), smbclient Filename: pool/main/s/squid3/squid3_3.1.6-1.2_i386.deb Size: 1447238 MD5sum: dfe5c39ca1ddc4008301c20b4ba0eb8a SHA1: 6ca9a3f47d1e3eecc320f96431537b21be50d919 SHA256: e909c704d23f8022c84d0feb8708aa3ea1084f0e95cbd59e7fee596eafd5cf6a Description: A full featured Web Proxy cache (HTTP proxy) Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects. . Squid version 3 is a major rewrite of Squid in C++ and introduces a number of new features including ICAP and ESI support. Homepage: http://www.squid-cache.org Tag: admin::file-distribution, admin::monitoring, implemented-in::{c,c++,perl}, interface::{commandline,daemon,web}, network::{client,firewall,load-balancing, routing,server,service}, protocol::{dns,ftp,http,ident,ip,ldap,radius,ssl,xmlrpc}, role::program, scope::application, security::authentication, security::firewall, use::{filtering,proxying,transmission}, works-with::network-traffic, works-with::text, works-with-format::html, works-with-format::xml Outro comando que trs informaes sobre o pacote o apt-cache showpkg: $ apt-cache showpkg squid3 Package: squid3 Versions: 3.1.6-1.2 (/var/lib/apt/lists/ftp.br.debian.org_debian_dists_squeeze_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/ftp.br.debian.org_debian_dists_squeeze_main_binary-i386_Packages MD5: 0ad37b028ae214b43e8d47ad13b9089b Reverse Depends: squidguard,squid3 squid3-dbg,squid3 3.1.6-1.2 jesred,squid3 Dependencies: 3.1.6-1.2 - libc6 (2 2.7) libcap2 (2 2.10) libcomerr2 (2 1.01) libdb4.8 (0 (null)) libexpat1 (2 1.95.8) libgcc1 (2 1:4.1.1) libgssapi-krb5-2 (2 1.8+dfsg) libk5crypto3 (2 1.6.dfsg.2) libkrb5-3 (2 1.6.dfsg.2) libldap-2.4-2 (2 2.4.7) libltdl7 (2 2.2.6b) libpam0g (2 0.99.7.1) libsasl2-2 (0 (null)) libstdc++6 (2 4.4.0) libxml2 (2 2.7.4) netbase (0 (null)) adduser (0 (null)) logrotate (2 3.5.4-1) squid3-common (5 3.1.6-1.2) lsb-base (0 (null)) squidclient (0 (null)) squid-cgi (0 (null)) resolvconf (2 0.40) smbclient (0 (null)) Provides: 3.1.6-1.2 Reverse Provides: Vamos supor que seja preciso determinado comando, mas seu pacote no esteja instalado, mas no sabe-se qual o nome do pacote. Para isso existe o comando apt-le, que pode ser usado como abaixo: $ apt-file search lspci www.serpro.gov.br 54

Introduo ao Linux: Perdendo o medo da tela preta debian-installer: /usr/share/doc/debian-installer/devel/hardware/arm/glantank/info/lspci debian-installer: /usr/share/doc/debian-installer/devel/hardware/arm/glantank/info/lspci-v debian-installer: /usr/share/doc/debian-installer/devel/hardware/arm/kurobox-pro/info/lspci debian-installer: /usr/share/doc/debian-installer/devel/hardware/arm/n2100/info/lspci debian-installer: /usr/share/doc/debian-installer/devel/hardware/arm/n2100/info/lspci-v debian-installer: /usr/share/doc/debian-installer/devel/hardware/mipsel/cobalt/info/lspci grub-coreboot: /usr/lib/grub/i386-coreboot/lspci.mod grub-efi-amd64: /usr/lib/grub/x86_64-efi/lspci.mod grub-efi-ia32: /usr/lib/grub/i386-efi/lspci.mod grub-ieee1275: /usr/lib/grub/i386-ieee1275/lspci.mod grub-pc: /usr/lib/grub/i386-pc/lspci.mod manpages-ja: /usr/share/man/ja/man8/lspci.8.gz manpages-pl: /usr/share/man/pl/man8/lspci.8.gz manpages-tr: /usr/share/man/tr/man8/lspci.8.gz manpages-zh: /usr/share/man/zh_CN/man8/lspci.8.gz manpages-zh: /usr/share/man/zh_TW/man8/lspci.8.gz pciutils: /usr/bin/lspci pciutils: /usr/share/man/man8/lspci.8.gz Ele lista todos os pacotes que contenham algum arquivo com esse nome como parte. Se a procura tivesse sido por somentels, ele traria tambm o pacote que contm o pacote lspci.

Exerccio:Faa uma pesquisa que retorne somente o pacote que tenha o comando /usr/bin/lspci.

5.4

Atualizando pacotes

O comando aptitude safe-upgrade atualiza um pacote se ele j estiver instalado, caso contrrio, nada ser feito. Se executado sem nenhum parmetro, o comando ir atualizar todos os pacotes que tenham uma nova verso disponvel. Algumas vezes, para atualizar um pacote necessrio remover outro. Nesses casos o aptitude safe-upgrade no atualizar esse pacote. Para conseguir isso deve-se utilizar o comando aptitude full-upgrade.

5.5

Removendo pacotes

A remoo de pacotes tem dois conceitos. O remove e o purge. O purge faz a remoo do pacote e de todos seus arquivos de congurao. Exemplo abaixo: # aptitude purge squid3 Os pacotes a seguir sero REMOVIDOS: libltdl7{u} squid-langpack{u} squid3{p} squid3-common{u} 0 pacotes atualizados, 0 novos instalados, 4 a serem removidos e 8 no atualizados. preciso obter 0 B de arquivos. Depois do desempacotamento, 10,3 MB sero liberados. Voc deseja continuar? [Y/n/?] Y (Lendo banco de dados ... 31537 ficheiros e directrios actualmente instalados.) Removendo squid3 ... Stopping Squid HTTP Proxy 3.x: squid3 Waiting.....................done. . Expurgando arquivos de configurao de squid3 ... Purging startup links... Purging logfiles... www.serpro.gov.br 55

Introduo ao Linux: Perdendo o medo da tela preta Please, remove /var/spool/squid3 yourself. Processando gatilhos para man-db ... (Lendo banco de dados ... 31482 ficheiros e directrios actualmente instalados.) Removendo libltdl7 ... Removendo squid3-common ... Removendo squid-langpack ... # ls /etc/squid3/ ls: impossvel acessar /etc/squid3/: Arquivo ou diretrio no encontrado

5.6

Compilando cdigo fonte

O Debian atualmente tem mais de 29mil pacotes. Mas eventualmente necessrio compilar um programa, seja para adicionar alguma funcionalidade, seja para obter uma verso mais recente. Caso j exista o pacote ocial prefervel sua atualizao no somente pela facilidade de instalao, mas tambm pela facilidade de gerenciamento e pela segurana. Abaixo um exemplo de compilao de um pacote: $ wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz --2011-05-25 13:36:49-- http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz Resolvendo www.ex-parrot.com... 93.93.130.49 Conectando-se a www.ex-parrot.com|93.93.130.49|:80... conectado. A requisicao HTTP foi enviada, aguardando resposta... 200 OK Tamanho: 160381 (157K) [application/gzip] Salvando em: "iftop-0.17.tar.gz" 100%[=====================================>] 160381 139K/s em 1,1s

2011-05-25 13:36:51 (139 KB/s) - "iftop-0.17.tar.gz" salvo [160381/160381] $ tar xzf iftop-0.17.tar.gz $ cd iftop-0.17/ $ ./configure $ make $ make install O comando ./congure para congurar o pacote. Ele verica se todas as dependncias esto resolvidas e cria o Makefile. Para ver funcionalidades possveis de serem adicionadas ao programa basta executar ./congure --help, e depois adicionar o parmetro ao comando, por exemplo, ./congure --enable-defaultpromiscuous. O comando make compila os cdigos fonte gerando os objetos, faz a ligao com as bibliotecas dinmicas e/ou estticas e gera o(s) executvei(s). O make install copia os executveis, as bibliotecas, os headers, os manuais e os arquivos de congurao para seus devidos lugares. Antes de compilar um programa deve-se sempre ler a documentao para saber a maneira correta de compilar, as opes e as dependncias.

Exerccio:

www.serpro.gov.br

56

Introduo ao Linux: Perdendo o medo da tela preta

Baixar o pacote iftop, compilar e instalar. Obs.: necessrio instalar os pacotes gcc, make, libpcap-dev e libncurses5-dev

www.serpro.gov.br

57

Introduo ao Linux: Perdendo o medo da tela preta

66.1

Conguraes bsicasPersonalizao do ambienteInformaes retiradas de http://focalinux.cipsga.org.br/guia/avancado/ch-pers.htm

As variveis de ambiente so variveis que podem alterar o funcionamento do sistema sem precisar alterar arquivos de congurao. Elas so individuais e cam residentes em memria, ou seja, ao efetuar logoff ou desligar o sistema elas so apagadas. Para denir uma nova varivel de ambiente basta fazer VARIAVEL=valor. Isso dene uma varivel para o ambiente atual. O mais correto export-la para que, se um sub-shell for aberto a partir do shell atual, a varivel tambm possa ser utilizada. Para isso execute export VARIAVEL=valor. A visualizao feita com o comando echo $VARIAVEL. Obs1.: Para declarar a varivel no h espao antes e depois do sinal de igual. Obs2.: Para exibir o contedo da varivel deve-se usar o $. Para declarar no deve-se colocar o $. No Debian, para que uma varivel seja inicializada em todo login ela deve ser denida em /etc/environment. O arquivo /etc/profile onde devem ser colocados comando para serem executados toda vez que um usurio efetuar login (como denir um alias9 para os usurios, por exemplo). Ao ser chamado atravs de um shell que solicite login, o bash l esse arquivo e executa os comandos contidos nele. Depois ele procura por arquivo de congurao pessoais dentro do home do usurio. A ordem de execuo : /etc/prole ~/.bash_prole ~/.bash_login ~/.prole Aps executar o /etc/profile o bash procura pelos outros arquivos, e caso encontre, executa somente o primeiro que encontrar. Algoritmicamente seria: exec /etc/profile if ( ~/.bash_profile exists) { exec ~/.bash_profile exit } else if ( ~/.bash_login exists) { exec ~/.bash_login exit } else exec ~/.profile endif Caso o bash seja carregado atravs de um shell que no requer login (um terminal no X, por exemplo), o seguinte arquivo executado: ~/.bashrc. O diretrio /etc/skel contm os modelos de arquivos .bash_profile e .bashrc que sero copiados para o diretrio pessoal dos usurios no momento que for criada uma conta no sistema.9 criao

de alias abordado em 3.19

www.serpro.gov.br

58

Introduo ao Linux: Perdendo o medo da tela preta

6.2

/etc/fstabInformaes retiradas de http://focalinux.cipsga.org.br/guia/iniciante/ch-disc.html

O arquivo /etc/fstab onde ca especicado quais as parties sero montadas quando o sistema ligado. Nele tambm pode-se colocar parties que no sero montadas automaticamente, para facilitar o processo de montagem. O formato do arquivo pode ser visto abaixo: # proc /proc proc defaults /dev/sda2 / ext4 errors=remount-ro /dev/sda1 none swap sw /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto Os campos so: Campo le system mount point type options dump pass Descrio A partio que ser montada Diretrio onde a partio ser montada Sistema de arquivos da partio montada Opes de montagem da partio. Diferentes sistemas de arquivos tem diferentes opes Especica a frequncia de backup feita com o programa dump no sistema de arquivos. 0 desativa o backup. Dene a ordem em que o sistemas de arquivos sero vericados na inicializao. 0 desativa a vericao. A partio / deve ser a primeira a ser vericadaTabela 7: Campos do /etc/fstab

0 0 0 0

0 1 0 0

6.3

/etc/networks

As conguraes de rede no Debian cam dentro deste diretrio. O arquivo interfaces onde ca a congurao das placas. Um exemplo abaixo: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp Nesse caso a interface eth0 ir ser habilitada automaticamente e ser congurada atravs de um servio de DHCP. Para congurar a placa com IP xo a congurao mostrada abaixo: auto eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1 broadcast 192.168.0.255 #opcional network 192.168.0.0 #opcional www.serpro.gov.br 59

Introduo ao Linux: Perdendo o medo da tela preta

Depois de alterar o arquivo, pode-se reiniciar a rede com o comando /etc/init.d/networking restart. Para habilitar e desabilitar uma interface de rede, os comandos so respectivamente ifup eth0 e ifdown eth0. Para saber se uma interface de rede est linkada o comando mii-tool. Obs.: As linhas auto lo e iface lo inet loopback no devem ser removidas, pois conguram a interface loopback com o endereo 127.0.0.1

6.4

/etc/hostname e /etc/hosts

O arquivo /etc/hostname deve ter o nome da mquina, sem o domnio. o nome que ser retornado ao executar o comando hostname sem nenhum parmetro. Para alterar o domnio DNS deve-se alterar o arquivo /etc/hosts. Ne