Apostila Linux

101
 APOSTILA SISTEMA OPERACIONAL LINUX 1

Transcript of Apostila Linux

Page 1: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 1/101

APOSTILA

SISTEMA OPERACIONAL

LINUX

1

Page 2: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 2/101

A presente apostila é uma adaptação de dois outros materiais abaixo relacionados.

Guia Foca GNU/Linux - http://focalinux.cipsga.org.br/ - desenvolvido por Gleydson Mazioli da Silva

Linux – Curso de Introdução ao Linux – DCT – UFMS – 1996Desonvolvido por: Marcos Álvares, Cláudia Nasu, Alfredo Lanari e LucieneMarin

Foram suprimidos alguns itens destas apostilas e acrescidos outros,principalmente exemplos de utilização dos comandos básicos do linux.

Alguns itens acrescidos foram baseados no livro:Linux – Administração e Suporte – Novatec – Chuck V. TibetOutros retirados da internet.

A criação desta apostila tem o intuído de poder atender as necessidadescurriculares da disciplina de Sistemas Operacionais da primeira fase do Curso Técnicode Telecomunicações.

Indice

1 - Conceitos Básicos ........................................................................................................................... 6

1.1 Computador ................................................................................................................................ 7

1.2 Arquivos ..................................................................................................................................... 81.3 Diretórios .................................................................................................................................... 9

1.4 Bits, Bytes e Unidades ................................................................................................................9

1.5 Software (Programas) ............................................................................................................... 10

1.6 Hardware .................................................................................................................................. 11

1.7 Sistema Operacional ................................................................................................................. 14

1.8 Processo de Boot ...................................................................................................................... 16

2 - Introdução ..................................................................................................................................... 16

2.1 Histórico ................................................................................................................................... 16

2.2 Uma visão geral do LINUX ..................................................................................................... 18

2.2.1 Algumas Características do Linux ....................................................................................19

2.3 A estrutura do LINUX .............................................................................................................. 202.3.1 Estrutura Lógica ............................................................................................................... 20

3 - Iniciando ........................................................................................................................................ 21

3.1 A Sessão LINUX ...................................................................................................................... 21

2

Page 3: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 3/101

3.2 Encerrando a sessão .................................................................................................................. 23

3.3 Ciclo de Execução do Comando ...............................................................................................24

3.4 Alteração da Password: ........................................................................................................... 24

3.5 Estruturas de Arquivos e Diretórios ......................................................................................... 24

3.6 Diretórios .................................................................................................................................. 25

3.7 Diretório de Entrada ................................................................................................................. 26

3.8 Diretório Corrente .................................................................................................................... 26

3.9 Diretório Raiz ........................................................................................................................... 273.10 Diretório Superior ................................................................................................................... 27

3.11 Diretório Anterior ................................................................................................................... 27

3.12 Caminho na estrutura de diretórios .........................................................................................27

3.12.1 Exemplo de diretório ....................................................................................................... 27

3.13 Estrutura básica de diretórios do Sistema Linux .................................................................... 28

3.14 Nomes e Caminhos ................................................................................................................. 29

3.15 Nomes de arquivos e diretórios .............................................................................................. 30

3.16 Caracteres Especiais do Shell – ou Coringas ......................................................................... 30

3.16.1 Substituição do Nome do Arquivo .................................................................................. 30

3.16.2 Marcação do Caractere Especial ..................................................................................... 32

3.17 Comandos ............................................................................................................................... 333.17.1 Comandos Internos .......................................................................................................... 33

3.17.2 Comandos Externos ......................................................................................................... 34

3.17.3 Aviso de comando (Prompt) ............................................................................................ 34

3.17.4 Interpretador de comandos .............................................................................................. 34

3.17.5 Terminal Virtual (console) .............................................................................................. 35

4 Fundamentos do Linux .................................................................................................................... 36

4.1 Comandos para manipulação de diretórios ...............................................................................37

4.1.1 ls - (ou dir) Lista diretórios e seus conteúdos. ................................................................ 37

4.1.2 cd – Mudando o diretório de trabalho .............................................................................. 39

4.1.3 pwd – Identificação do diretório corrente ........................................................................ 39

4.1.4 mkdir – Criando diretórios ............................................................................................... 40

4.1.5 rmdir – Removendo diretórios ..........................................................................................41

4.2 - Comandos para manipulação, gerenciamento e configuração de arquivos e/ou diretórios . . .41

4.2.1 touch – Criando arquivos vazios ...................................................................................... 41

4.2.2 cat – Visualizando o conteúdo de um arquivo ..................................................................42

4.2.3 tac - Visualizando o conteúdo de um arquivo reversamente ............................................ 42

4.2.4 rm - Removendo arquivos e/ou diretórios ........................................................................ 42

4.2.5 cp – Copiando arquivos .................................................................................................... 43

4.2.6 mv – Movendo ou Renomeando arquivos ........................................................................ 44

4.2.7 file – Identificando arquivos ............................................................................................. 45

4.2.8 more – Paginando a saída padrão ...................................................................................... 464.2.9 less – Paginando a saída padrão ........................................................................................ 46

4.2.10 sort – Ordenando um texto .............................................................................................. 47

4.2.11 head – Verificando o ínicio de um arquivo ..................................................................... 48

4.2.12 tail - Verificando o final de um arquivo ......................................................................... 48

4.2.13 ln – Criando um link ....................................................................................................... 49

4.2.14 find – Encontrando arquivos e diretórios pelo file system ............................................. 49

4.2.15 locate – Encontrando arquivos ........................................................................................ 51

4.2.16 grep – Procurando nos arquivos ..................................................................................... 51

4.2.17 nl – Visualizando e numerando um arquivo .................................................................... 52

4.2.18 cmp – Comparando arquivos ........................................................................................... 52

4.2.19 wc – Contando palavras em um texto .............................................................................534.3 Comandos Diversos .................................................................................................................. 53

4.3.1 clear – Limpando a tela ..................................................................................................... 53

4.3.2 cal – Calendário ................................................................................................................. 53

3

Page 4: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 4/101

4.3.3 history – Histórico dos comandos ..................................................................................... 53

4.3.4 date .................................................................................................................................... 53

4.3.5 echo ....................................................................................................................................54

4.3.6 cut ..................................................................................................................................... 54

4.3.7 who ................................................................................................................................... 55

4.3.8 whoami ............................................................................................................................. 55

4.3.9 w ....................................................................................................................................... 56

4.3.10 su .....................................................................................................................................564.3.11 reboot .............................................................................................................................. 56

4.3.12 halt .................................................................................................................................. 56

4.3.13 shutdown .........................................................................................................................56

4.3.14 talk ................................................................................................................................... 58

4.3.15 mesg ................................................................................................................................ 58

5 Editor de texto VI ............................................................................................................................ 59

5.1 Editor do UNIX ........................................................................................................................ 59

5.2 Modos de Operação do VIM .................................................................................................... 59

5.3 O Buffer de edição ....................................................................................................................60

5.4 Comandos básicos do VIM (vi ou vim) .................................................................................. 60

5.4.1 Chamando o VIM: ............................................................................................................ 615.4.2 Editando: ...........................................................................................................................61

5.4.3 Salvando/Saindo do Vim: ................................................................................................. 62

5.4.4 Copiando e Colando ......................................................................................................... 63

5.4.5 Apagando (deletando): ..................................................................................................... 63

5.4.6 Outros Comandos ............................................................................................................. 63

6 Segurança ........................................................................................................................................ 65

6.1 Acesso a Diretórios e Arquivos ................................................................................................ 65

6.2 Permissões de acesso a arquivos e diretórios .......................................................................... 65

6.3 Donos, grupos e outros usuários ............................................................................................... 66

6.4 Tipos de Permissões de acesso ................................................................................................ 66

6.5 Etapas para acesso a um arquivo/diretório .............................................................................. 67

6.6 Exemplos práticos de permissões de acesso ............................................................................. 67

6.6.1 Exemplo de acesso a um arquivo ..................................................................................... 67

6.6.2 Exemplo de acesso a um diretório .................................................................................... 68

6.7 A conta root ............................................................................................................................. 69

6.8 Modo de permissão ..................................................................................................................69

6.8.1 Formato octal .................................................................................................................... 69

6.8.2 Formato simbólico do modo de permissões ..................................................................... 70

6.9 chmod – Alterando o permissionamento de arquivos e diretórios .......................................... 71

6.10 chgrp –Alterando o grupo ...................................................................................................... 72

6.11 chown – Alterando o dono .................................................................................................... 726.12 umask – Mudando as permissões padrão .............................................................................. 73

6.13 id - A identificação do usuário/grupo .................................................................................... 74

6.14 newgrp - Participação em grupos ......................................................................................... 74

7 Redirecionamentos e Pipe .............................................................................................................. 76

7.1 Entrada e Saída dos comandos ................................................................................................. 76

7.2 Entrada e Saída Padrão: ........................................................................................................... 76

7.3 Redirecionamento de E/S ........................................................................................................ 77

7.4 Símbolos de redirecionamento ................................................................................................ 77

7.4.1 < Redirecionamento de entrada ....................................................................................... 77

7.4.2 > Redirecionamento de saída ...........................................................................................77

7.4.3 >> ......................................................................................................................................787.4.4 << ......................................................................................................................................78

7.4.5 | (pipe) ............................................................................................................................... 78

7.4.6 Diferença entre o "|" e o ">" ............................................................................................. 79

4

Page 5: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 5/101

7.4.7 tee – Redirecionamentos multiplos .................................................................................. 79

7.5 Redirecionamento de erro padrão ............................................................................................ 80

8 Gerenciamento da execução de comandos/programas .................................................................... 81

8.1 Processos .................................................................................................................................. 81

8.2 Estrutura de processos ............................................................................................................. 81

8.3 Processos do usuário .................................................................................................................82

8.4 Executando um comando/programa ......................................................................................... 82

8.5 path .......................................................................................................................................... 828.6 Tipos de Execução de comandos/programas ........................................................................... 83

8.7 Executando comandos/programas em seqüência .................................................................... 83

8.8 Agrupando comandos ............................................................................................................... 84

8.9 foreground e "background" ...................................................................................................... 84

8.10 ps – Consultando informações sobre os processos ................................................................ 84

8.11 top - Consultando informações dinamicamente ..................................................................... 86

8.12 Controle de execução de processos ....................................................................................... 87

8.12.1 Interrompendo a execução de um processo ..................................................................... 87

8.12.2 Parando momentaneamente a execução de um processo ................................................ 87

8.12.3 jobs .................................................................................................................................. 87

8.12.4 fg - foreground ................................................................................................................. 888.12.5 bg - background ............................................................................................................... 88

8.12.6 kill .................................................................................................................................... 89

8.12.7 killall ................................................................................................................................ 89

8.12.8 Fechando um programa quando não se sabe como sair ................................................. 90

8.12.9 Eliminando caracteres estranhos ..................................................................................... 91

9 Compactadores ............................................................................................................................... 92

9.1 O que fazem os compactadores/descompactadores? ................................................................ 92

9.2 Tipos de compactação .............................................................................................................. 93

9.3 Extensões de arquivos compactados ....................................................................................... 93

9.4 gzip .......................................................................................................................................... 94

9.5 zip ............................................................................................................................................ 95

9.6 unzip ........................................................................................................................................ 96

9.7 tar ............................................................................................................................................. 97

9.8 bzip2 ........................................................................................................................................ 99

9.9 rar .............................................................................................................................................. 99

9.10 zcat ........................................................................................................................................101

9.11 zgrep ..................................................................................................................................... 101

9.12 zcmp ..................................................................................................................................... 101

9.13 zless e zmore .........................................................................................................................102

5

Page 6: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 6/101

1 - Conceitos Básicos

Muitas pessoas possuem uma dificuldade em lidar com oscomputadores, simplesmente porque não sabem o que é, como funciona epara que serve. É certo que existe uma dif iculdade inicial relacionada àoperação do computador em si. Isto é, há uma série de comandos com

formatos dif íceis de lembrar e quais as respectivas tarefas que elesexecutam.Entretanto, nos últimos anos estão surgindo novas facil idades para

os usuários de microcomputadores pessoais. Tais como interfaces gráficaspoderosas que eliminam a necessidade de digitação de longas l inhas decomandos. Nestas interfaces, os comandos são executados via menus,caixas de diálogos e ícones.

Geralmente, estas interfaces gráficas ainda apresentam opções de seexecutar comandos através do método “tradicional”, ou seja, digitando-seo comando por extenso. Isto porque muitos comandos não funcionamnestas interfaces gráficas; ou ainda porque algumas opções mais

detalhadas só podem ser ativadas pela l inha de comando. Mas a tendênciaé que todos os comandos sejam implementados em forma gráfica eiterativa.

A princípio é necessário formalizarmos certos termos que serãouti l izados durante todo o texto. Termos simples, mas que muitas vezesesquecemos ou simplesmente não sabemos por que não temos a obrigaçãode tê-los em mente. Afinal usuários não precisam ser especialistas emcomputadores para poderem utilizá-los. Vamos então às definiçõespreliminares:

1.1 Computador A primeira vista parece desnecessário ter que dar uma definição do

que é um computador, mas o que se vê na prática, é que muitas pessoasnão possuem uma visão clara do que é um microcomputador. E por estemesmo motivo, não se imaginam providas de meios de como l idar comestes equipamentos.

Por computador entendemos simplesmente como uma máquina capazde realizar cálculos e operações sobre informações, podendo, desta forma,resolver uma série de problemas, desde que seja fornecido um programa.

Quando dizemos programável signif ica que há um conjunto deinstruções ou programa que diz ao computador o que deve ser feito. É oque chamamos de software. Por ser uma máquina o computador tambémé composto por fios, cabos, placas, circuitos e outros equipamentosfísicos. É o que chamamos de hardware. Desta forma, um computador éum sistema integrado formado por hardware ou componentes f ísicos e porsoftware que é a parte inteligente que comanda o computador.

Por  processamento de informação devemos entender a capacidade dereceber informações, transformá-las (processamento) e exibir osresultados.Graficamente temos:

6

Entrada Processamento Saída

mento

Programa

mento

“Computador é uma máquina programável capaz de

realizar processamento de informações.”

Page 7: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 7/101

As informações manipuladas pelo computador podem variar muito,bem como a maneira de ser tratada internamente. Podemos classif icá-lasda seguinte maneira:

1. Dados : são letras e números. A princíp io, com putadores só podiamreconhecer e entender estes tipos de informações através de uma tabelamantida internamente que convertia cada conjunto de 8 sinais elétricosem uma letra ou dígito, criando um sistema de codificação e decodificaçãocompreensível para o ser humano. Esta tabela existe até os dias de hoje echama-se tabela ASCII. Outros tipos de tabelas foram criadas como aEBCDIC e ANSI Windows, mas a dominante é a tabela ASCII.

Exemplo:A 10000001B 10000010C 10000011

Como a corrente elétrica pode assumir apenas dois estados,convencionou-se que o número zero (0) indica a ausência de correnteelétrica por um fio e o número um (1) pela passagem de corrente. A tabelaASCII é formada por 8 dígitos. Como cada dígito pode assumir o valor zero

ou um, podemos representar 256 caracteres diferentes (28=256) mais quesuficiente para as letras e dígitos existentes.

No princípio da computação, se quiséssemos escrever uma letrateríamos que l igar e desligar um conjunto de fios para indicar quequeremos representar uma deter minada letra do alfabeto. Hoje em diabasta pressionar no teclado que é gerado um sinal ou interrupção para o

microprocessador informando qual a tecla pressionada. O computadorentão consulta a tabela ASCII, identif ica a tecla e desenha ponto a ponto ocaractere no monitor. Todo o desenho dos caracteres é mantido em umatabela no computador.

2. Sons : atualmente podemos armazenar e m anipular sons como emuma mesa de som de mais alta tecnologia devido aos avanços na área desons digitais. Música e som são grandezas físicas ditas analógicas, isto é,caracterizadas por perturbações do ar. Mas computadores não entendemestas perturbações, então para que os mesmos pudessem serreconhecidos, adaptou-se um microfone ao microcomputador que é

sensível às vibrações e que as converte em impulsos elétricos que podemser manipulados pelos computadores. Por isto é chamado de som digital. Ocircuito responsável por esta conversão chama-se conversor analógico-digital.

3. Imagens : os primeiros computadores possuíam muito poucacapacidade e velocidade e, portanto não podiam tratar de imagens com amesma eficiência que hoje em dia. Imagens estáticas como fotografiaspodem ser capturadas por aparelhos especiais conhecidos como scannersatravés de sensores infravermelhos e da reflexão da luz. Imagensdinâmicas (animação e vídeo) podem ser obtidas por câmeras de vídeoligadas a microcomputadores através de placas e softwares especiais. O

problema deste tipo de informações é que temos que representar asimagens ponto a ponto e além d isto manter informações sobre bri lho, cor,intensidade, luminosidade, etc., gastando uma quantidade maior dememória para podemos manter imagens em computadores.

7

Page 8: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 8/101

1.2 ArquivosO computador organiza as informações internamente através de uma

unidade denominada arquivo. Um arquivo contém um determinado tipo deinformação e é criado por um outro arquivo especial denominado arquivode programa ou arquivo executável, que é o software em si. Podemosentão classificar os arquivos como sendo:

1. A rquivos executáveis : são os p rogramas ou softwares propriamenteditos. Através deles é que criamos e modificamos outros tipos de arquivos.Eles fornecem um ambiente particular. Podem ser:

iterativos : quando se comunicam com o usuário. não iterativos : quando não se comunicam com o usuário.

Usuários podem aprender a uti l izar os arquivos executáveis, mas nãoexiste um padrão sobre o funcionamento dos mesmos. Assim, para sair deum determinado editor de textos eu uti l izo à tecla F3, em outro editor atecla de saída pode ser ALT+X. Cada equipe de programadores define ofuncionamento do programa que esta criando.

Atualmente existe uma tendência a padronizar as teclas com

operações mais comuns de forma que funcionem igualmente em todos osprogramas e os usuários não tenham tantas dif iculdades em aprender ausar diferentes softwares. Uma das vantagens das interfaces gráficas é apadronização das operações mais comuns.

2. A rqu ivos de dados : con tém apenas informações alf abé ticas enuméricas (alfanuméricas). São uti l izados para substituir o excesso depapéis e documentos em empresas, mantendo informações cadastrais emcomputador ao invés de mantê-los em arquivos de aço. Entretanto, emalguns casos os arquivos de dados, apesar de diminuir o volume de papéisexcessivo, não têm a intenção de eliminar o processo manual, mas defornecer um meio mais rápido e eficiente de consulta e acesso àsinformações. É uma forma alternativa de manter dados importantes evolumosos.

3. A rquivos de sons : compor tam voz, música e sons em geralcapturados através de uma placa de som e um microfone ou uminstrumento musical acoplado ao computador por uma placa especial.

4. A rqu ivos de imagens : possuem imagens estáticas cap turadas comscanners ou dinâmicas capturadas com câmeras digitalizadoras.

1.3 DiretóriosSe guardássemos todos os arquivos de um computador juntos em um

único lugar, teríamos pelo menos dois grandes problemas. Primeiro, seriaextremamente dif íci l , ou mesmo impossível saber se já existe algumarquivo armazenado com aquele nome. Segundo o Sistema Operacional,para executar o último arquivo, teria que percorrer todos os outros atéchegar no arquivo desejado. Este processo sem dúvida tornaria ocomputador lento.

Para facil itar a organização do disco rígido, catalogar arquivos commesmas características e facil itar o trabalho do Sistema Operacional, foicriado então o conceito de diretório.

Um diretório nada mais é que um “repositório” de arquivos e outrosdiretórios (chamados de subdiretórios), formando uma estruturahierárquica chamada de árvore de diretório. Podemos entender diretórioscomo sendo o endereço de um arquivo dentro do disco rígido.

8

Page 9: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 9/101

1.4 Bits, Bytes e Unidades Toda e qualquer informação no computador é representada através

do sistema de numeração binária. Trata-se de uma forma matemática dese tratar à língua do computador para que possamos conversar com ele.Um bit é a menor informação para o microcomputador. Ele representa oestado de um fio. O dígito um (1) representa a passagem de corrente porum fio, e o dígito zero (0) representa a ausência d e corrente.

Este sistema de numeração é denominado binário porque só uti l izadois dígitos. O sistema de numeração que nós conhecemos é o sistemadecimal. Existem outros sistemas e meios de converter números de umsistema para outro. Assim foi estabelecida uma forma de comunicaçãoinicial do ser humano com o computador, ainda que de uma forma muitodifícil para nós humanos.

 Toda e qualquer informação é representada na forma de bits ouconjunto de bits. Como pudemos ver anteriormente, os dados (letras enúmeros) são codificados no computador através da tabela ASCII. Imagenssão representadas em monitores através de mapas de bits (bitmaps), ou

seja, cada ponto luminoso da tela corresponde a um único bit na memóriaindicando se deve estar l igado ou desligado. Desenhos são formadosativando os pontos corretos e mantendo outros desativados. As corespodem ser representadas por grupos de bits. Por exemplo, 4 bits podem

ser usados para indicar até 2 4 = 16 cores diferentes.Convencionou-se, então, quantificar a informação em uma unidade

denominada byte (B). Um byte representa 8 bits, ou seja, 28= 256combinações distintas, uma vez que cada bit pode assumir dois valoresdiferentes (0 ou 1). Com o passar do tempo esta unidade tornou-sepequenas para representar os arquivos e a capacidade de armazenamento

dos meios magnéticos, por isto foram criadas novas unidades:

1.5 Software (Programas)Programa é uma seqüência de instruções que diz ao computador o

que ele deve fazer. Isto é, qual é a tarefa específ ica que deve realizar.Programa e software são sinônimos e aparecerão como tais durante todoeste texto.Os softwares podem ser classif icados em dois grandes grupos de acordocom a atividade que desempenham:

1. Básico2. Apl icat ivos

1. Softwares Básicos servem para a operação e programação docomputador. Podem ser divididos em Util itários e Ferramentas de

Desenvolvimentos. Sem os softwares básicos os computadores nãopoderiam ser utilizados pelo homem. Eles formam um conjunto deprogramas que interagem entre os seres humanos e os micros.

9

Unidade Medida Abreviação1 byte 8 bits B1 kilobyte 1024 B kB1 megabyte 1024 kB MB1 gigabyte 1024 MB GB1 terabyte 1024 GB TB

Page 10: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 10/101

Utilitários são aqueles que operam o computador, controlando seusrecursos e fornecendo um meio de nos comunicarmos com o computadorde forma inteligível. Um exemplo clássico de Utilitário é o SistemaOperacional . Sem ele não poderíamos dizer ao computador o quedesejamos que ele faça.

Ferramentas de Desenvolvimento são softwares para a programaçãodo computador, ou seja, são programas que permitem criar outrosprogramas de uso geral ou específ ico. Por exemplo, l inguagem C, Pascal,Basic, Clipper, etc.

2. Softwares Aplicativos são programas de uso específ ico parausuários finais, como processadores de textos (Microsoft Word, Fácil,Wordstar), planilhas eletrônicas (Excel, Quattro), sistemas gerenciadoresde bancos de dados (Clipper, FoxProw, Acces), entre outros.

É o software que diz ao computador como a informação fornecidapelo usuário deve ser processada. Por exemplo, se fornecermos osnúmeros 2 e 10 para o computador, dependendo do programa ou softwareque estiver sendo executado, estes números poderão ser somados e oresultado impresso será 12, ou então o resultado pode ser 20 se oprograma sendo executado multipl icar os dois números fornecidos pelousuário.

Portanto é o software que fornece um ambiente para a manipulaçãode um determinado tipo de informação. Se não temos um software parareprodução de sons, não podemos ouvir nem gravarmos música no micro.Para criarmos e modificarmos os arquivos criados por um aplicativo,devemos aprender como funciona especif icamente o aplicativo, nãoprecisamos necessariamente saber nada sobre Softwares Básicos.

1.6 HardwareConsiste na parte f ísica do computador, placas, f ios e cabos que

conduzem a eletricidade e permitem a comunicação e conexão dosdiferentes componentes de um computador. Através do hardware noscomunicamos com a máquina e vice-versa.

Quando um novo dispositivo é l igado ao computador é necessáriouma “interface”, isto é, uma placa que permita a comunicação entre odispositivo e a unidade de processamento em si (CPU). Além disto, énecessário um software especial para acessar este dispositivo (driver) epermitir a criação e manipulação de informações uti l izadas pelodispositivo. Em geral a instalação de dispositivos não é muito difícil, masrequer alguns conhecimentos a mais a respeito do funcionamento docomputador. Interrupções, canais de entrada e saída, configuração dasportas e uso do DMA são requisitos básicos para a instalação de muitos

periféricos no computador.O hardware de um computador é formado basicamente pelosseguintes elementos:

1. Dispositivos de Entrada

Software Básico

Ferramentas de

DesenvolvimentoUtilitários

10

Page 11: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 11/101

2. CPU (Microprocessador)3. Memória Principal4. Memória Secundária.5. Dispositivos de Saída.Dispositivos de Entrada e Dispositivos de Saída são denominados

periféricos, pois não estão diretamente relacionados ao processamento,mas sim na entrada ou saída de informações.

Dispositivos de Entrada permitem ao ser humano introduzirinformações no computador. São exemplos de dispositivos de entrada:

a) teclado : fornece informações alfanuméricas ao computador(dados).b) mouse : Permite a seleção de a tividades através de ícones eopções que aparecem no monitor.c) scanner: captura imagens estáticas como fotografias.d) câmeras digital izadoras : captura imagens em movimento.e) leitora ótica : efetua leitura de informações em cartões marcados.

Dispositivos de Saída exibem os resultados do processamento,permitindo a comunicação do computador com o homem:

a) monitor : semelhante a um ap arelho de televisão, em geral ex ibeos caracteres digitados em um teclado.

b) impressora : reproduz os resultados em papel.c) plotter : exibe gráficos t écnicos e complexos em papel.d) datashow : projeta informações em um telão.e) pale tes : permite a gravação de slides

Há certos equipamentos que ora funcionam como dispositivos deentrada e ora como dispositivos de saída, logo são conhecidos comoDispositivos de Entrada e Saída.

a) modem : permitem a troca de informações entre computadores vialinha telefônica.

b) unidades de d isquetes : permitem a lei tura/g ravação deinformações em meio magnético f lexível de baixa capacidade e

11

Page 12: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 12/101

velocidade.c) un idades de disco rígido ( HD) : permi tem a lei tura/gravação de

informações em meio magnético rígido de alta capacidade e velocidade.d) CD -R /W (compact disc read write) : permi tem a le itura/gravação

de informações em discos a laser.e) DVD-R/Wf) Memórias Compact Flash

A Unidade Central de Processamento (CPU) conhecida como

microprocessador é o cérebro da máquina. Cabe à CPU controlar todo ofluxo de informações entre os dispositivos de entrada, saída, além derealizar todo o acesso à memória principal e à memória secundária. Emsuma, é o principal componente do computador responsável peloprocessamento da entrada gerando a saída desejada.

Internamente, é composta por uma Unidade de Controleresponsável por acessar a Memória Principal para buscar dados einstruções para serem executadas e pela Unidade Lógica e Aritméticaresponsável por todos os cálculos matemáticos e lógicos simples. Para oscálculos mais complexos que envolvem ponto flutuante (números reais dealta precisão), é necessário um chip especial, o co-processadormatemático que pode ser embutido internamente no microprocessador.

Existem diversos fabricantes de microprocessadores. Os maisuti l izados em computadores pessoais são, por exemplo: 80486 (conhecidosimplesmente pela terminação 486), Pentium de fabricação da Intel, etc. Oque difere um dos outros é a capacidade de manipular dados e avelocidade do clock.

A capacidade de um processador refere-se à quantidade de bits queele consegue enviar e receber dos outros dispositivos. Quanto maior acapacidade de manipular bits, melhor e mais rápido é o desempenho docomputador. Além disto, existe também o relógio interno ou clock . Trata-se de um pequeno cristal de quartzo que emite pulsos constantes a umdeterminado intervalo de tempo. Quanto maior a freqüência (emMegaHertz), mais rápido é o computador. Estes pulsos do relógio sãouti l izados pelo processador para controlar o ciclo de execução dasinstruções.

A Memória Principal é um circuito especial dedicado a manterinformações enquanto o computador estiver funcionando. É denominada dememória RAM. É nela que ficam armazenados os programas e informaçõesenquanto estivermos manipulando-as. Cabe ao Sistema Operacional

12

Microprocessador Capacidade Modelo Clock80486 32 bits DX2 66MHz80486 32 bits DX4 75

Page 13: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 13/101

reconhecer e gerenciar o espaço l ivre para que seja possível executarprogramas e manusear informações. O microprocessador constantementeacessa a Memória Principal para ler e escrever informações e instruções.

A memória RAM (Random Access Memory) é extremamente voláti l ,isto é, seu conteúdo é descartado assim que o computador é desligado ouocorre uma falha na energia. Para que as informações não se percam,precisamos armazená-las de forma definitiva naquilo que denominamos

Memória Secundária . São os discos f lexíveis, discos rígidos, f itasstreamer e discos a laser. Cabe também ao Sistema Operacionalreconhecer e acessar os periféricos responsáveis pela leitura e gravaçãonestes meios.

O problema da memória RAM é a lentidão com que omicroprocessador acessa seu conteúdo. Criou-se então uma pequena, masveloz memória denominada Memória Cache que fica entre omicroprocessador e a memória RAM ou internamente na CPU. Geralmentepossui capacidade para 128 até 1024 KB.

O computador uti l iza a memória RAM como área de trabalho, isto é,enquanto o computador estiver l igado e programas estiverem sendoexecutados, tudo ocorre na memória RAM. A memória secundária serveapenas para armazenar de forma “definitiva” os arquivos para que elesnão se percam assim que desligarmos o microcomputador.

Existem outros tipos de memórias especiais. Memória ROM (ReadOnly Memory) é um tipo de memória que já vem gravada de fábrica comum pequeno programa com tarefas mínimas para que o computador possaser l igado e funcione adequadamente. Algumas vezes este circuito échamado de BIOS (Basic Input Output System) e contem uma série depequenos programas para acessar teclado, monitor, disco rígido, etc.

Há alguns tipos especiais de memória apenas de leitura:

PROM (Programmable Read Only Memory) pode ser gravada pelopróprio usuário e não mais pelo fabricante, mas uma vez gravada não maispoderá ser apagada.

EPROM (Erasable Programmable Read Only Memory) capaz de serprogramável pelo usuário e se necessário apagar seu conteúdo através deum equipamento especial.

EEPROM (Electrical Erasable Programmable Read Only Memory) podeser programada pelo usuário e apagada através da aplicação de umacorrente elétrica em um de seus pinos.

1.7 Sistema Operacional 

O Sistema Operacional é um programa especial que gerencia todosos recursos da máquina, tais como memória, teclado, monitor de vídeo,mouse, entre outros.

É através do Sistema Operacional que executamos outros programas,gravamos ou lemos informações em CD-ROMs, pendrive, visualizamostextos em vídeo ou impressora, etc. Sem o Sistema Operacional nãoconseguiríamos realizar estas tarefas. Ou seja, simplesmente nãopoderíamos utilizar o computador.

Existem inúmeros Sistemas Operacionais, tais como: MS-DOS, UNIX,OS/2, VM/CMS, QNN, etc. Cada um deles possui características próprias e é

executando em máquinas diferentes. Assim, não podemos executar umprograma em Sistemas Operacionais distintos, a não ser que o fabricantedo programa nos garanta esta portabil idade.

O Windows só consegue executar programas MS-DOS porque foram

13

Page 14: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 14/101

feitos por um mesmo fabricante, a Microsoft. E porque, a princípio, oWindows não é um Sistema Operacional por si, ele necessita do MS-DOSpara funcionar. As versões a partir do Windows 95 foram planejadas paraserem independentes do MS-DOS, mas que aceitam aplicativos do MS-DOS.

No Linux o Kernel mais o conjunto de ferramentas GNU compõem oSistema Operacional. O kernel (que é a base principal de um sistemaoperacional) poderá ser construído de acordo com a configuração do seu

computador e dos periféricos que possui.É de responsabilidade do Sistema Operacional:1. Carregar e executar programas.2. Controlar dispositivos de entrada e saída (teclado, monitor, etc).3. Gerenciar arquivos e diretórios.4. Gerenciar a memór ia RAMComo pudemos ver anteriormente, todo e qualquer programa

executado em um computador uti l iza a memória RAM. Da mesma forma, oSistema Operacional deve ser carregado, ou seja, copiado do disco rígidoou disco flexível para a memória RAM. Denominamos este processo deBOOT. Toda vez que l igamos o computador, é feita uma série de testespara verif icar o funcionamento dos periféricos e se tudo estiver perfeito, oSistema Operacional pode ser carregado.

Os Sistemas Operacionais ainda podem ser classificados quanto aonúmero de pessoas que podem utilizar os recursos ao mesmo tempo equanto ao número de programas que podem ser executados em umamesma máquina.

1. Monousuário: permitem apenas um usuário interagindo com osistema.

2. Multiusuário: permitem vários usuários conectados ao sistemasimultaneamente.3. Monotarefa: apenas um programa pode ser executado de cada

vez. Caracterizam-se por permitir que o processador, a memória e

os periféricos permaneçam exclusivamente dedicados àexecução de um único programa.

Enquanto um programa aguarda por um evento o processadorpermanece ocioso. A memória é sub-uti l izada caso o programanão a preencha totalmente.

Simples implementação por não haver preocupação comproblemas decorrentes de compartilhamento de recursos.Ex.: MS-DOS

4. Multitarefa: vários programas podem ser executados ao mesmotempo. Várias aplicações comparti lham os mesmos recursos. O SO se preocupa em gerenciar o acesso concorrente aos seus

diversos recursos. Redução do tempo de resposta das aplicações processadas e de

custos. Mais eficientes, mas de implementação mais complexa.

Ex: Windows, Linux

O MS-DOS é um Sistema Operacional monousuário e monotarefa, ouseja, permite apenas um operador e executa apenas um programa de cadavez. O Windows, apesar de não ser um Sistema Operacional, fornece umambiente monousuário e multitarefa, onde apenas um único usuário pode

14

Page 15: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 15/101

executar vários aplicativos ao mesmo tempo.Em geral Sistemas Operacionais que são multiusuários são também

multitarefa, como o UNIX e QNN, onde podemos ter vários usuários emterminais distintos executando, cada um, uma série de programasdiferentes ao mesmo tempo.

Além disto, Sistemas Operacionais podem ser classif icados quanto aotipo de comunicação com o usuário, podendo ser:

1. Interface por linha de comando : quando o usuário tem que digitaro comando por extenso na tela do computador. A comunicação, emgeral é feita em modo texto. Preferencialmente uti l izada porespecialistas.

2. Interface gráfica para usuários (GUI): quando os comandos sãoexecutados em um ambiente gráfico com o uso do mouse. Voltadaprincipalmente para o usuário final.

1.8 Processo de Boot É a “carga” do sistema operacional, a partir da memória secundária

(floppy, hd, cd, etc.) para a memória RAM principal;Um pequeno programa executa esta tarefa. Este não faz partenecessariamente do Sistema Operacional. Ex: Lilo, GRUB

2 - Introdução

2.1 HistóricoO Sistema Operacional UNIX foi desenvolvido nos laboratórios da

AT&T para uso próprio, baseado em um antigo projeto que deveria ser oprimeiro Sistema Operacional multiusuário e multitarefa, o MULTICS.

Porém, este projeto estava muito além da capacidade dosequipamentos para a época. Desta forma o projeto foi arquivado, mas

alguns de seus idealizadores (Ken Thompson, Dennis Ritchie e RuddCanadaday) resolveram escrever uma versão simplif icada e monousuáriapara um computador com menores recursos. O resultado impressionou,mesmo sendo utilizada uma máquina limitada.

Assim, o código foi reescrito para outros computadores melhores,apresentando excelentes resultados. Por coincidência ou não, estescomputadores para os quais o Sistema Operacional foi reescrito eramutil izados por quase todas as Universidades que se interessaram por esteSistema Operacional muito superior aos que vinham sendo uti l izados noslaboratórios de computação.

A partir de então, a AT&T l icenciou seu mais novo projeto para asUniversidades, mostrando uma enorme visão e capacidade inovadora, poisalém do Sistema Operacional, foi cedido o código do mesmo para asUniversidades, que não mediram esforços em depurar o programa e incluir

15

Page 16: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 16/101

novas características.Foi dentro das Universidades que o UNIX cresceu e adquiriu muitas

das características que o tornam poderoso, dando origem a diversasversões além da original proveniente dos laboratórios da AT&T. Estacaracterística tornou o UNIX um sistema poderoso na medida em que foiconcebido não apenas por uma equipe de projetistas, mas sim por todauma comunidade de pessoas interessadas em extrair o melhor das

máquinas.A princípio, o código do UNIX foi escrito em linguagem assembler oude máquina que é altamente dependente do hardware ou parte f ísica docomputador. Para que o código fosse reescrito, era necessário muitoesforço e tempo. Entretanto, um dos criadores d Sistema OperacionalUNIX resolveu uti l iza uma nova l inguagem para escrever o U NIX, era alinguagem C que oferecia o poder da l inguagem de máquina com afacilidade das linguagens estruturadas de alto nível.

A grande vantagem de se uti l izar à l inguagem C ao invés dalinguagem de máquina própria do computador é a de que a primeira éaltamente portável, isto é, um programa escrito em C para umdeterminado computador poderá ser executado quase sem nenhumamodificação em outro tipo de máquina completamente diferente. Enquantoque se fosse feito um programa em linguagem de máquina para umdeterminado computador o programa seria executado somente neste tipode computador e não nos demais, para isto, seria preciso reescrever todoo programa.

O UNIX foi projetado para ser executado em computadores de grandecapacidade, ou seja, mini e supercomputadores, pois somente estasmáquinas podiam oferecer suporte aos recursos necessários para oambiente gerado pelo Sistema Operacional.

Crescendo longe do alcance dos usuários de microcomputadores, oUNIX atingiu uma estabil idade e estrutura jamais alcançada por umSistema Operacional. Mas nestes quase trinta anos de existência do UNIX,os microcomputadores evoluíram a ponto de fornecer o mínimo decondições para que este poderoso Sistema Operacional pudesse serimplementado para os micros IBM-PC e compatíveis.

Diversas versões do UNIX foram escritas e l icenciadas para vendacom nomes semelhantes (XENIX, UNISYS, AIX, etc), porém com as mesmascaracterísticas essenciais, sendo que atualmente existem inúmerasversões comerciais e outras tantas versões livres que foram desenvolvidasem Universidades ou por hackers através da rede Internet.

Apesar de ter sido desenvolvido para l idar com dispositivos decaracteres, UNIX foi pioneiro na área de gráficos em estações detrabalhos. As primeiras interfaces gráficas para usuários (GUI) foramprojetadas e uti l izadas em Sistemas operacionais UNIX, desenvolvidas peloMIT (Massachussets Institute of Technology). Trata-se do X WindowSystem.

Como se pode notar, UNIX é um sistema de inúmeras possibil idades.Praticamente todos os recursos que os sistemas operacionais mais atuaisutilizam já haviam sido executados em UNIX há muito. Todas as áreas dacomputação puderam ser desenvolvidas com o UNIX.

As tendências atuais levam a uma tentativa de padronizar o SistemaOperacional UNIX combinando as melhores características das diversasversões do mesmo. Prova disto é a criação do POSIX (Portable OperatingSystem Interface / Interface Portável para Sistemas Operacionais), um

16

Page 17: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 17/101

padrão de Sistema Operacional desenvolvido pela IEEE (Institute of Eletrical and Eletronic Engineers). Além da OSF (Open System Fundation)que reúne as principais l íderes do mercado de equipamentos para definir opadrão de GUI (interfaces gráficas) para UNIX.

A versão que será abordada durante este curso é o LINUX, um clonedo Sistema Operacional UNIX para microcomputadores IBM-PC 386 ecompatíveis. O LINUX foi desenvolvido inicialmente por Linus Torvalds na

Universidade de Helsinski na Finlândia.O LINUX possui a vantagem de ser um software l ivre e ser compatívelcom o padrão POSIX. Além de unir em um único Sistema Operacional asvantagens das diferentes versões de UNIX comerciais disponíveis. Destaforma, LINUX torna-se a melhor opção para que usuários demicrocomputadores possam usufruir da capacidade do UNIX.

Apesar de não poder rodar aplicativos para MS-DOS, o LINUX poderodar todos os softwares de desenvolvidos para UNIX, além de estaremdisponíveis softwares que permitem a emulação do MS-DOS e do Windows.

O LINUX pode ser útil em empresas que desejam possuir estações detrabalho com poder razoavelmente comparável às estações existentescomo SUNs e outras usando PCs, com fiel semelhança no seu uso.

O LINUX pode conviver pacificamente com outros sistemasoperacionais no PC. Existe uma infinidade de formas de instalá-lo: em umapartição DOS já existente, sem haver a necessidade de reparticionar o HDe conseqüentemente sem nenhuma perda de informação, pode ainda serinstalado em um HD exclusivamente dedicado a ele.

Para conviver com outros sistemas operacionais, existem algumasmaneiras de carregar o sistema operacional, o Lilo (Linux Loader) quepode funcionar como um BOOT manager no qual se escolhe qual partiçãoou drive irá dar a partida, o loadlin que é um uti l itário DOS para carregar o

LINUX a partir do DOS, ou por meio de um disco de boot.O LINUX pode ser obtido de diversas formas diferentes, existemdiversos livros à venda, os quais incluem CDs com distribuições do LINUX.Outra forma de obtê-lo inteiramente grátis e via FTP pela INTERNET.

Existe hoje, um movimento no sentido de torna o LINUX um sistemapopular, dado que a superioridade técnica ele já possui.

2.2 Uma visão geral do LINUX Como vimos acima o Linux é um sistema operacional criado em 1991

por Linus Torvalds na universidade de Helsinki na Finlândia. É um sistemaOperacional de código aberto distribuído gratuitamente pela Internet. Seucódigo fonte é liberado como Free Software (software l ivre) o aviso decopyright do kernel feito por Linus descreve detalhadamente isto e mesmoele está proibido de fazer a comercialização do sistema.

Isto quer dizer que você não precisa pagar nada para usar o Linux, enão é crime fazer cópias para instalar em outros computadores, nósinclusive incentivamos você a fazer isto. Ser um sistema de código abertopode explicar o desempenho, estabil idade e velocidade em que novosrecursos são adicionados ao sistema.

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

O sistema segue o padrão POSIX  que é o mesmo usado por sistemas

17

Page 18: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 18/101

UNIX  e suas variantes. Assim, aprendendo o Linux você não encontrarámuita dif iculdade em operar um sistema do tipo UNIX, FreeBSD, HPUX,SunOS, etc., bastando apenas aprender alguns detalhes encontrados emcada sistema.

O código fonte aberto permite que qualquer pessoa veja como osistema funciona (úti l para aprendizado), corri ja alguma problema ou façaalguma sugestão sobre sua melhoria, esse é um dos motivos de seu rápido

crescimento, do aumento da compatibil idade de periféricos (como novasplacas sendo suportadas logo após seu lançamento) e de sua estabil idade.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 pelosistema operacional). Este é um ponto forte para empresas que desejammanter seus micros em funcionamento e pretendem investir em avançostecnológicos com as máquinas que possui.

Hoje o Linux é desenvolvido por milhares de pessoas espalhadas pelomundo, cada uma fazendo sua contribuição ou mantendo alguma parte dokernel gratuitamente. Linus Torvalds ainda trabalha em seudesenvolvimento e também ajuda na coordenação entre osdesenvolvedores.

O suporte ao sistema também se destaca como sendo o maiseficiente e rápido do que qualquer programa comercial disponível nomercado. Existem centenas de consultores especializados espalhados aoredor do mundo.

2.2.1 Algumas Características do Linux

Um Sistema Operacional deve gerenciar os recursos da máquina damelhor maneira possível de forma a poder oferecer aos usuários o máximo

do computador. Dentre as principais funções do SO, podemos destacar:1. Criar e manipular uma estrutura de arquivos e diretórios.2. Controlar o acesso à memória e outros dispositivos controlados pelo

microprocessador, como monitor, teclado, impressora, etc.3. Gerenciar a execução de programas, trazendo-os da memória para o

microprocessador.A primeira vista, parece que o LINUX nada possui de diferente de

qualquer outro Sistema Operacional, mas nenhum é tão bom em unir eintegrar o que há de melhor em um computador de forma harmoniosa eeficiente devido a sua própria origem em meio a toda uma comunidade depessoas interessadas em obter o máximo e o melhor em desempenho.

Cabe ressaltar também que o Linux possui todas as características quefazem do UNIX um excelente sistema operacional, entre elas Portabil idade,Multiusuário e Multitarefa, Estrutura hierárquica de arquivos, Ferramentase Utilitários, Comunicação com outros sistemas.

Daremos uma rápida olhada em algumas das principaiscaracterísticas e vantagens que fazem o LINUX único:

Multitarefa. Linux, como as outras versões do UNIX é um sistemamultitarefa, possibil itando a execução de múltiplas aplicações dediferentes usuários no mesmo sistema ao mesmo tempo. A performance deuma máquina 486 de 50 MHz é comparável com muitas workstations de

médio porte rodando UNIX.O X Window System é, de fato, um padrão na indústria de sistemasgráficos para máquinas UNIX. Uma versão completa do X Window System,conhecida como Xfree86 está disponível pra Linux.

18

Page 19: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 19/101

TCP/IP (Transmission Control Protocol / Internet Protocol), esteé um conjunto de protocolos que liga milhões de universidades e empresasnuma rede mundial conhecida como Internet. Com uma conexão Etherneto Linux permite que seja feita uma conexão da Internet a uma rede local.

Memória Virtual. O Linux pode usar parte do seu HD comomemória virtual, “aumentando” assim a capacidade da memória RAM.

Compatibilidade com o IEEE POSIX. Linux foi desenvolvido com a

portabilidade de software em mente.

2.3 A estrutura do LINUX 

2.3.1 Estrutura Lógica

2.3.1.1 Kernel/Shel lKernel é o núcleo do Sistema Operacional LINUX, que permanece

residente na memória. Através dele que o usuário possui o acesso aosrecursos oferecidos pelo hardware (o computador em si). Todo ogerenciamento de memória, dispositivos, processos, entre outros é

coordenados pelo kernel. Basicamente está dividida em duas partes:1. gerenciamento de dispositivos: supervisiona a transmissão de

dados entre a memória principal e os dispositivos periféricos.Desta forma, o kernel abrange todos os drivers controladores dedispositivos que podem ser ligados a um computador.

2. gerenciamento de processos: aloca recursos, escalona processos eatende a solicitação de serviços dos processos.

Shell é um programa executado após a inicial ização do sistema queservirá como interpretador de comandos entre o usuário e o Kernel doLINUX. É ele quem fornece uma interface de l inha de comando para que o

usuário possa dizer ao Sistema Operacional o que deve ser feito. Emtermos técnicos, o shell é um interpretador de comandos que analisa otexto digitado na l inha de comandos e executa esses comandos produzindoalgum resultado O Shell traduz o comando digitado em chamadas desistema que são executadas em linguagem de máquina pelo kernel. Alémdisto, fornece um ambiente programável através de scripts.

A palavra shell vem do inglês "concha". A idéia é que você quandoentra no sistema Linux está entrando em uma concha, cuja "casca"protege o usuário do sistema e o sistema do usuário. A "casca" da shellnão irá permitir que o usuário execute alguma coisa que ele não tempermissão e não permite que outro usuário invada a intimidade de outro.

O shell tem como referência um (sub)diretório onde o usuário temtotal controle, conhecido como diretório "home". Ali o usuário temprivi légios para criar, alterar, apagar e modificar arquivos e diretórios. Emteoria, tudo o que o usuário produzir será mantido no home, separado pela"casca" do shell dos outros usuários.

Existem inúmeros shells cada um com ligeiras diferenças entre si.Muitas vezes é possível uti l izar vários shells diferentes em um mesmomicro rodando LINUX, isto porque ele é multitarefa e multiusuário, demodo que cada usuário poderia uti l izar o shell que lhe agradar mais. Entreos mais utilizados estão o Bourne Shell, o C shell e o Korn Shell. No Linuxuti l izamos normalmente a BASH (ou Bourne Again Shell).

2.3.1.2 UtilitáriosExistem centenas de uti l itários (comandos) para a realização de

19

Page 20: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 20/101

tarefas especializadas ou rotineiras, entre elas manipulação e formataçãode textos, cálculos matemáticos, gerenciamento e manutenção de arquivose diretórios, administração de sistemas, manutenção de segurança,controle da saída para impressora, desenvolvimento de programas efi ltragem de dados.

Cada um destes uti l itários é digitado na l inha de comando do LINUXque será interpretado pelo Shell do sistema. Este por sua vez se

encarregará de realizar diversas chamadas ao Kernel para a execução docomando.Como as interfaces gráficas são muito recentes, o LINUX teve toda a

sua potencialidade explorada em termos de ambiente dedesenvolvimentos. Isto equivale a dizer que o que se pode fazer com umsoftware de Formatação de Textos do tipo aponte e cl ique, pode serrealizada através do antigo modo de l inha de comando no LINUX.

Mas isto não impede que as facil idades do ambiente de janelas sejaexplorado, pelo contrário. Os mais profissionais programas aplicativosrodam sobre o Sistema Operacional LINUX, entre eles o Gerenciador deBanco de Dados ORACLE, INGRES e FoxBASE+, formatadores de textosPostscript, Tex e FamaMaker de qualidade extraordinárias.

2.3.1.3 ProcessosQuando um programa ou uti l itário é executado, passa a se chamar

processo. Cada processo iniciado possui um estado indicando sua condição(em execução, parado, interrompido, etc) e a prioridade. Sendo que osprocessos do sistema possuem prioridades sobre os do usuário.

Com base nas informações sobre os processos em andamento, a CPUprecisa escalonar os processos para dedicar a cada um, um determinadotempo dando a impressão de que vários processos estão sendo executados

ao mesmo tempo.Exemplos de estados de processos: Execução (R - running) - processo está sendo executado pelo

processador. Dormindo (S - sleeping) –o processo está “dormindo” ou aguardando

algo para realizar alguma atividade Espera ou Bloqueado (wait) - aguarda por algum evento externo ou por

algum recurso para prosseguir seu processamento. Zumbi (Z - zombie) – o processo que se encontra neste estado

teoricamente não mais existir ia, ou estaria morto, porem uma cópia

dele ainda reside na memória. Essa situação pode ocorrer seeliminarmos um processo pai sem antes fazermos o mesmo com seusfi lhos, pois dessa maneira o processo que controlava as ações dosdemais não mais existe e estes perdem sua função passando então parao estado zumbi.

Ctrl + z - Suspende um processo em andamento permitindo digitaroutro comando durante a execução de um programa.

Ctrl + c - Suspende um processo em andamento.

3 - Iniciando

3.1 A Sessão LINUX Antes de iniciar a sessão no sistema propriamente dita, temos que

levar em consideração o signif icado das teclas especiais que são uti l izadas

20

Page 21: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 21/101

pelo LINUX, bem como de alguns conceitos iniciais.Por ser um Sistema Operacional que suporta vários usuários

(multiusuário), antes de tudo, é preciso se identificar. O LINUX então seencarregará de permitir ou não seu acesso verif icando sua senha, seestiver correta l ibera o diretório de entrada e executa arquivos deinicialização locais e o interpretador apropriado. Após este processo, vocêestará apto a executar os comandos do LINUX.

Quando o terminal estiver l igado, provavelmente será apresentadoum sinal de prontidão do sistema da seguinte forma:

Login:

Isto signif ica que o sistema está esperando para que o usuário seidentif ique com o nome de usuário que lhe foi concedido peloAdministrador de Sistema junto com uma senha de acesso. Após digitar onome de usuário, pressione ENTER. Será apresentado um novo sinal deprontidão:

Password:

Este sinal pede que seja digitada a sua senha. Note que à medidaque forem digitados os caracteres, eles não aparecerão no vídeo pormedidas de segurança.

Se algo deu errado (foi novamente apresentado o sinal de login),tente novamente, certif icando-se de ter digitado o nome de usuário e asenha exatamente como recebeu do Administrador pois o LINUX diferenciaas letras maiúsculas das minúsculas. Isto quer dizer que para o LINUX A(letra “a” maiúscula) é diferente de a (letra “a” minúscula). Esta é umadica que serve não apenas para iniciar a sessão, mas também para todosos comandos LINUX.

 Tendo o usuário se identif icado com o nome da conta e a senha (seesta existir, pois existem contas criadas especialmente para uso semsenha), o LINUX checa em um arquivo de configuração pelo nome da contae a senha correspondente devidamente encriptada. Estando ambasregistradas e corretas, o Sistema Operacional permite o acesso ao usuárioexecutando o shell indicado também neste arquivo.

O shell providencia uma interface de comunicação entre o kernel e ousuário. Esta interface consiste de uma li nha de comando (ou prompt) naqual deve ser digitado o comando por extenso seguido por seusparâmetros (se tiver). Em uma linha de comando podemos ter mais de umcomando em seqüência para serem executados.

Em geral esta l inha de comando é formada por um símbolo que podeser de porcentagem (%) ou cifrão ($) para usuários comuns e grade (#)para usuários com privilégio de raiz, dependendo do tipo de shell usado.

Usuário_logado@máquina_logada dir._corrente]$ : usuário“não root”Usuário_logado@máquina_logada dir._corrente]# : usuário“root”Os parâmetros que aparecem após o nome do comando podem ser

nomes de arquivos e/ou caminhos de diretórios. Eles devem sempre serdigitados com um espaço entre si e depois do comando. Muitas vezes

alguns símbolos que aparecem na l inha de comando não são parâmetros,mas sim comandos para o shell determinando a seqüência em que o(s)comando(s) devem ser executados.

O LINUX aceita e executa um comando quando, ao terminarmos de21

Page 22: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 22/101

digitarmos o comando, pressionarmos a tecla ENTER, RETURN ou ↵ (variade computador para computador).

Caso seja encontrado algum erro na digitação do comando antes quea tecla ENTER seja pressionada, podemos corrigi-lo utilizando as teclas dedireção ← e → para posicionarmos o cursor na posição em que o erro foicometido. Cursor é o símbolo gráfico que aparece logo após a l inha decomando e que se movimenta à medida que caracteres são digitados eaparecem na tela.

Para apagar caracteres antes do cursor, basta pressionar a tecla deBACKSPACE (←  ) ou a combinação de teclas CTRL+H (^H). Se desejarapagar toda a l inha tente CTRL+U (^U). Pode ser que a tecla DEL tambémfunciona para apagar caracteres, mas de maneira diferente, ao invés deapagar caracteres antes do cursor, ele apaga caracteres após o mesmo.

Algumas vezes podemos recuperar os comandos dadosanteriormente. Certos tipos de shell possuem um arquivo oculto nodiretório de entrada do usuário que armazena até os n últimos comandosdigitados. É o arquivo de histórico dos comandos. Para recuperá-los

podemos utilizar as teclas ↑ ou ↓. Ou então utilizar os comandos do shell:history e “!”.O comando history lista os n últimos comandos digitados.

Exemplo:  Util ize os comandos history e “!” para re-executar um comando$ history$ !200Em alguns shells estas teclas não estão definidas, ou então outras

realizam estas mesmas funções. Procure junto ao Administrador deSistemas quais teclas ou conjunto de teclas usar para editar a l inha decomando.

Certos comandos são interativos e outros não-interativos . Comandosinterativos são aqueles que após serem executados, exigem que algumasperguntas sejam respondidas para que possam prosseguir. Comandos não-interativos simplesmente executam os comandos sem nada perguntar eretornam à l inha de comando do LINUX.Exemplos de comandos não-interativos:

ls exibe l ista do conteúdo do diretório correntedate - exibe a data e hora do s istemacal <ano> exibe calendário do ano especif icadowho - exibe l ista de todos os usuários ativos no s istemaclear limpa a tela

Exemplos de comandos interativos:passwd modifica a senhaf tp - permi te t rans fe rênc ia de a rquivosmail - gerencia correspondências

3.2 Encerrando a sessãoVocê pode usar dois comandos para encerrar uma sessão, os

comandos exit ou logout no  prompt  do shell. Em alguns sistemasaparecerá na tela o prompt  de logout  e as informações relativas ao tempodecorrido durante a sessão. É importante encerrar devidamente uma

sessão pelos seguintes motivos:Segurança: Se você continuar com a sessão aberta e abandonar oterminal, o sistema fica vulnerável ao acesso de pessoas não autorizadas,e seus arquivos poderão ser manipulados por essas pessoas;

22

Page 23: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 23/101

Cobrança : Se a sua organização usa os recursos de contabilidade dosistema para cobrar pela sua uti l ização, você será cobrado pelo tempo quepermanecer dentro da sessão.

3.3 Ciclo de Execução do ComandoO shell analisa a linha do comando separando seus vários

componentes com o uso de es paços em branco. Este procedimento é

conhecido como  parsing (análise), e é composto dos seguintes passos:1. O shell examina se há algum caracter especial a ser interpretado na

linha de comando;2. Supondo que os caracteres até o primeiro branco se referem a um

comando, o shell procura um arquivo executável (programa) com omesmo nome;

3. Se o shell localiza o programa, ele verif ica se o usuário que fez opedido tem permissão de acesso para usar o comando;

4. O shel l continua a examinar o resto da linha de comando para ver aformatação;

5. Finalmente, ela informa ao kernel para executar o programa,passando todas as opções e argumentos válidos para o programa;6. Enquanto o kernel copia o arquivo executável do disco para a

memória e executa-o, o shell permanece inativo até que o programatenha encerrado. O programa em execução na memória é chamadode  processo;

7. Quando o processo termina de ser executado, o controle retorna oshell que exibe novamente o  prompt  para avisar que está prontapara o próximo comando;

3.4 Alteração da Password:

Os procedimentos de alteração e definição de uma senha sãosemelhantes, com a exceção de que na alteração o usuário recebe antes oprompt para informar a senha antiga. A nova senha deve ter no mínimotrês caracteres diferentes da senha antiga. O comando  passwd verif ica ainformação sobre a idade da senha nos arquivos /etc./default/passwd e/ouetc./shadow para determinar a validade da senha e se a senha pode seralterada. Os superusuários não recebem o prompt para fornecer a senhaantiga.Exemplo: Altere a sua senha uti l izando o comando passwd

$passwd

Changing password for guestEnter old passwd: Enter new passwd:Re-Type new passwd: Passwd changed$

3.5 Estruturas de Arquivos e DiretóriosExistem 4 tipos básicos de arquivos em LINUX: Arquivo diretório; Arquivo convencional; Arquivo de dispositivo;

Arquivo simbólico ou de ligação;Um arquivo diretório nada mais é do que um tipo de arquivo

contendo informações sobre arquivos que conceitualmente (e não

23

Page 24: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 24/101

f isicamente) estão contidos nele. Isso signif ica que o conteúdo de seusarquivos não está armazenado dentro do diretório. Assim sendo, não hálimite para o tamanho de um diretório. Teoricamente você poderia colocarno seu diretório tantos arquivos quanto quisesse, até o ponto de estourara capacidade do seu disco.

Os dados contidos no arquivo diretório são apenas os nomes de cadaarquivo e seus ponteiros para uma tabela de informações de controle de

todos os arquivos do sistema. Esta tabela contém informaçõesadministrativas do arquivo, como dados de segurança, tipo, tamanho,datas de acesso e dados que indicam onde ele está gravado no disco.

Quando você vai usar um arquivo, o sistema operacional consulta odiretório para verif icar se existe no disco um com o nome que vocêespecif icou. Em caso afirmativo, o sistema obtém, da tabela asinformações necessárias para poder manipulá-lo. Caso contrário, o sistemaenvia uma mensagem informando que não foi possível encontrar o arquivo.

Um diretório pode conter outros diretórios, aos quais chamamossubdiretórios. Um subdiretório pode conter outros arquivos esubdiretórios, que também podem conter arquivos e subdiretórios e assimpor diante. Este é um relacionamento pai/f i lho entre um diretório e seusarquivos e diretórios subordinados. Cada diretório pai guarda informaçõessobre os arquivos e diretórios que estão a um nível abaixo dele - seusfilhos.

Um arquivo convencional  é um conjunto de caracteres presentesem algum meio de armazenamento, como por exemplo, um disco. Ele podeconter texto para uma carta, código de programa ou qualquer informaçãoarmazenada para um futuro uso.

Um arquivo de dispositivo , como um diretório, não contém dados.Ele é basicamente um ponteiro para um dispositivo periférico, como por

exemplo, uma unidade de disco, um terminal ou uma impressora. Osarquivos especiais associados aos dispositivos periféricos estãolocalizados no diretório /dev.

Um arquivo simbólico é um arquivo convencional que aponta paraoutro arquivo em qualquer lugar do sistema de arquivos LINUX.

3.6 Diretórios Todos os arquivos fazem parte de algum diretório. Assim, eles são

mantidos organizadamente. Se todos os arquivos do sistema fossemarmazenados em um mesmo lugar, o LINUX levaria muito tempo paraverif icar todos os arquivos até encontrar aquele que está procurando. Osdiretórios são um meio de oferecer endereços dos arquivos, de maneiraque o LINUX possa acessá-la rápida e facilmente.

Ao entrar pela primeira vez em sua conta, você já está em umsubdiretório do sistema LINUX, chamado seu diretório de entrada (homedirectory). A menos que você crie alguns subdiretórios em sua conta,todos os seus arquivos serão armazenados em seu diretório de entrada.

 Teoricamente, você pode fazer isso, mas a manutenção de seus arquivosserá mais eficiente se você criar seu próprio sistema se subdiretórios.Assim ficará mais fácil manter o controle de seus arquivos porque elesestarão agrupados em diretórios por assunto ou por tipo. O LINUX também

realiza buscas de maneira mais eficiente em diretórios pequenos que nosgrandes. Nos capítulos seguintes, você aprenderá os comandosnecessários para criar diretórios, levar arquivos para outros diretórios epassar de um diretório para outro.

24

Page 25: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 25/101

3.7 Diretório de EntradaComo mencionamos anteriormente neste capítulo, seu diretório de

entrada é aquele em que você é colocado quando abre uma sessão em umsistema LINUX. Esse diretório tem o mesmo nome que seu nome de login.Você pode pensar em sua conta como uma versão em miniatura do sistemade arquivos do LINUX. No alto de seu sistema pessoal de arquivos, em vezdo diretório raiz está seu diretório de entrada. Abaixo dele estarão ossubdiretórios que você criar, que podem, por sua vez, se ramificar emsubdiretórios e/ou arquivos.

Os diretórios de entrada dos usuários são iguais a qualquer outrodiretório de um diagrama de sistema de arquivos. Entretanto, sendo odiretório principal de sua conta, seu diretório de entrada tem um statusespecial. Sempre que você entra no sistema, o LINUX define uma variávelchamada HOME que identif ica o seu diretório de entrada. O LINUX usa ovalor da variável HOME como ponto de referência para determinar quaisarquivos e diretórios do sistema de arquivos você pode acessar e tambémpara orientar-se para onde levá-lo quando você deseja mudar de diretório

corrente.O caractere til ( ~ ) representa o diretório principal do usuárioatualmente logado. Você pode usar o ti l com a maioria dos comandos doShell. Por exemplo: cd ~ (muda para o diretório de entrada)

3.8 Diretório CorrenteO diretório corrente, ou de trabalho (working directory), é o diretório

em que você está em um determinado momento. Por exemplo, quandovocê entra no sistema, o diretório corrente é sempre seu diretório deentrada. Se você passar para um de seus subdiretórios, este passará a sero diretório corrente.

Durante toda a sessão, o LINUX mantém o controle de seu diretóriocorrente. Todos os comandos são executados sobre o diretório corrente, amenos que você especif ique outro. Por exemplo, qualquer arquivo ousubdiretório que você criar será em princípio criado no diretório corrente.Sempre que você digitar ls, verá uma l ista dos arquivos e diretórios dodiretório corrente.

O caractere ponto (.) representa o diretório corrente onde o usuárioestá num determinado momento.Exemplo: Use o comando ls para mostrar o conteúdo do diretório corrente.$ls

 Todos os diretórios do LINUX contém um arquivo chamado “.”(ponto), que é um arquivo especial que representa o diretório corrente(um sinônimo). Sempre que você quiser se referir ao diretório corrente,pode fazê-lo usando um ponto (.).

Outro arquivo especial, chamado “..” (dois pontos) representa odiretório pai do diretório corrente (o diretório ao qual o diretório correntepertence). Quando precisar se referir ao diretório pai do diretório corrente,você pode usar dois pontos ( ..) em vez do nome do diretório.Exemplos:1- Use o comando ls para l istar o conteúdo do diretór io corrente: $ls .2- Use o comando ls para l istar o conteúdo do diretório pai do diretório

corrente. $ls ..

25

Page 26: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 26/101

3.9 Diretório RaizEste é o diretório principal do sistema. Dentro dele estão todos os

diretórios do sistema. O diretório Raiz é representado por uma " / ", assimse você digitar o comando cd / você estará acessando este diretório.

Nele estão localizados outros diretórios como o /bin, /sbin, /usr,/usr/ local, /mnt, /tmp, /var, /home, etc. Estes são chamados desubdiretórios pois estão dentro do diretório "/". A estrutura de diretórios esubdiretórios pode ser, por exemplo, identif icada da seguinte maneira: / /bin /usr /mnt /tmp /var /home

A estrutura de diretórios também é chamada de Árvore de Diretóriosporque é parecida com uma árvore de cabeça para baixo. Cada diretóriodo sistema tem seus respectivos arquivos que são armazenados conformeregras definidas pela FHS (FileSystem Hierarchy Standard - HierarquiaPadrão do Sistema de Arquivos) versão 2.0, definindo que tipo de arquivodeve ser armazenado em cada diretório.

3.10Diretório Superior 

O diretório superior (Upper Directory) é identificado por .. (2pontos).

Caso estiver no diretório /usr/ local e quiser l istar os arquivos dodiretório /usr você pode digitar, “ls ..” , este recurso também pode serusado para copiar, mover arquivos/diretórios, etc.

3.11Diretório Anterior O diretório anterior é identif icado por "-". É úti l para retornar ao

último diretório usado. Se estive no diretório /usr/ local e digitar cd / l ib,você pode retornar facilmente para o diretório /usr/ local usando cd -.

3.12Caminho na estrutura de diretóriosSão os diretórios que teremos que percorrer até chegar ao arquivo

ou diretório que procuramos. Se desejar ver o arquivo/usr/doc/copyright/GPL você tem duas opções:

1. Mudar o diretório padrão para /usr/doc/copyright com o comando cd/usr/doc/copyright e usar o comando cat GPL

2. Usar o comando "cat" especificando o caminho completo na estruturade diretórios e o nome de arquivo: cat /usr/doc/copyright/GPL.As duas soluções acima permitem que você veja o arquivo GPL. A

diferença entre as duas é a seguinte:• Na primeira, você muda o diretório padrão para /usr/doc/copyright

(confira digitando pwd) e depois o comando cat GPL. Você pode ver osarquivos de /usr/doc/copyright com o comando "ls".

/usr/doc/copyright é o caminho de diretório que devemos percorrer parachegar até o arquivo GPL.• Na segunda, é digitado o caminho completo para o "cat" localizar o

arquivo GPL: cat /usr/doc/copyright/GPL. Neste caso, você continuará nodiretório padrão (confira digitando pwd). Digitando ls, os arquivos dodiretório atual serão listados.

O caminho de diretórios é necessário para dizer ao sistema

operacional onde encontrar um arquivo na "árvore" de diretórios.3.12.1 Exemplo de diretórioUm exemplo de diretório é o seu diretório de usuário, todos seus

arquivos essenciais devem ser colocados neste diretório. Um diretório

26

Page 27: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 27/101

pode conter outro diretório, isto é úti l quando temos muitos arquivos equeremos melhorar sua organização. Abaixo um exemplo de uma empresaque precisa controlar os arquivos de Pedidos que emite para as fábricas:/pub/vendas - diretório principal de vendas/pub/vendas/mes01-99 - diretório contendo vendas do mês 01/1999/pub/vendas/mes02-99 - diretório contendo vendas do mês 02/1999/pub/vendas/mes03-99 - diretório contendo vendas do mês 03/1999• o diretório vendas é o diretório principal.• mes01-99 subdiretório que contém os arquivos de vendas do mês

01/1999.• mes02-99 subdi retório que contém os arquivos de vendas do mês

02/1999.• mes03-99 subdi retório que contém os arquivos de vendas do mês

03/1999.• mes01-99, mes02-99, mes03-99 são diretórios usados para armazenar os

arquivos de pedidos do mês e ano correspondente. Isto é essencial paraorganização, pois se todos os pedidos fossem colocados diretamente nodiretório vendas, seria muito dif íci l encontrar o arquivo do cl iente "João"

Você deve ter reparado que usei a palavra subdiretório para mes01-99, mes02-99 e mes03-99, porque que eles estão dentro do diretóriovendas. Da mesma forma, vendas é um subdiretório de pub.

3.13Estrutura 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./f loppy Ponto de montagem de unidade de disquetes/home Diretórios contendo os arquivos dos usuários./ l ib Bibliotecas compartilhadas pelos programas do sistema e

módulos do kernel./lost+found Local para a gravação de arquivos/diretório s recuperados

pelo uti l itário fsck.ext2. Cada partição possui seu própriodiretório lost+found.

/mnt Ponto de montagem temporário. (em alguns distribuições l inuxo cdrom, floppy, partição Windows estão dentro deste diretório)

/proc Sistema de arquivos do kernel. Este diretório não existe em seudisco rígido, ele é colocado lá pelo kernel e usado por diversosprogramas que fazem sua leitura, verif icam configurações dosistema ou modificar o funcionamento de dispositivos dosistema 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 criadospor programas./usr Contém maior parte de seus programas. Normalmente acessível

somente como leitura.

27

Page 28: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 28/101

/var Contém maior parte dos arquivos que são gravados comfreqüência pelos programas do sistema, e-mails, spool deimpressora, cache, etc.

3.14Nomes e CaminhosQuando você digita um comando que opera sobre um arquivo ou

diretório, precisa especif icar o nome do arquivo ou do diretório desejado.

O caminho, de um arquivo ou diretório é a lista de todos os diretórios queformam a l igação entre ele e o diretório raiz.

Você só pode identif icar individualmente cada arquivo e diretório porseu nome e caminho, porque seu nome pode ser idêntico ao de outroarquivo em outro local do sistema. Por exemplo, suponha que haja duascontas de usuário, chamadas luciene e alfredo, cada uma contendo umsubdiretório chamado vendas. O LINUX pode diferenciar esses doissubdiretórios por seus caminhos. Um deles seria /.../luciene/vendas e ooutro seria /.../alfredo/vendas, onde as reticências representam osdiretórios intermediários. Embora você possa se referir a um arquivo ou

diretório dentro de seu diretório de entrada usando apenas seu nome, oLINUX sempre interpretará o nome do arquivo ou diretório como seu nomee caminho inteiro, porque ele mantém o controle de seu diretório correntee pode preencher a parte do nome de caminho que falta.

Além do caminho absoluto, você também pode usar o caminhorelativo, de um arquivo ou diretório. O caminho relativo não começa com odiretório raiz, mas com o diretório mais próximo do diretório cujo caminhoestá sendo definido. Para especif icar um caminho relativo para seudiretório de entrada, você pode começar o caminho com $HOME ou comum ~ (til), que é um sinônimo para $HOME. Por exemplo, se seu diretóriode entrada é marco, a variável HOME terá o valor /.. ./marco, onde as

reticências representam os diretórios entre o diretório raiz (/) e o diretóriomarco. Sempre que você digitar $HOME como parte de um nome decaminho, o LINUX o interpretará como o nome de caminho completo de seudiretório de entrada. A variável HOME funciona em todos os shells. Em CShell, você pode também usar o caractere ~ (ti l) no nome de caminho pararepresentar o diretório de entrada. C Shell define o ~ exatamente como oBourne Shell define a variável HOME.

Para especif icar um caminho a partir do diretório corrente, vocêpode iniciar o caminho com um . (que representa o diretório corrente), oucom o nome do primeiro subdiretório naquele caminho. O ponto é opcionalneste caso porque se o nome de caminho não começar com uma /, o LINUXconsidera que você quer que ele comece com o diretório corrente.

Se você já tiver mudado de diretório algumas vezes, talvez nãoesteja seguro de qual é o diretório corrente no momento. Para descobrir,use o comando ls e poderá se lembrar do nome do diretório pela lista dosarquivos que ele contém. Entretanto, uma maneira mais simples de saberqual o diretório corrente é digitar pwd, que será apresentado maisadiante. O comando pwd imprime o caminho completo do diretóriocorrente.

Exemplo: Use o comando pwd para mostrar o caminho do diretório

corrente$pwd/home/guest$

28

Page 29: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 29/101

3.15Nomes de arquivos e diretóriosAs convenções usadas para dar nomes a arquivos e a diretórios estão

descritas abaixo. É aconselhável dar nomes descritivos e sugestivos aos arquivos, e

diretórios; Os nomes dos arquivos devem começar com uma letra. Evite usar +,-

ou . como primeiro caractere; Evite usar caracteres especiais, pois estes têm um signif icado diferentepara a Shell. Os caracteres especiais do Shell são os seguintes: ? @ # $^ & * ( ) ‘ [ ] \ | ; ‘ “ <> ;

Não use espaços nos nomes dos arquivos. O Shell interpreta os espaçoscomo delimitadores nas l inhas de comandos. Ao invés de espaços useum ponto (.) ou um

O LINUX faz diferença entre letras maiúsculas e minúsculas. Porexemplo, report, Report, REPORT e rePort são todos nomes distintos dearquivos;

Os nomes de arquivos devem ser exclusivos dentro de cada diretório.Entretanto, o mesmo nome de arquivo pode ser usado em diretóriosdiferentes;

Os nomes dos arquivos podem ter no máximo 14 caracteres decomprimento (em alguns sistemas este tamanho pode chegar a 256caracteres);

Podem ser usadas extensões nos nomes de arquivos a f im dar ummelhor signif icado aos seus nomes. A extensão descritiva (sufixo) égeralmente precedida por um ponto. Por exemplo, a extensão .c é usadapara identificar os programas em linguagem C e .sh para se referir aosprogramas em Shell;

Identificado os arquivos pela cor:Em verde : arquivos executáveisEm azul : diretóriosEm branco: arquivosEm azul claro: atalhosEm amarelo: dispositivos (dev device)Em vermelho: bibliotecas e arquivos empacotados ou compactados

3.16 Caracteres Especiais do Shell – ou CoringasAlguns caracteres têm signif icado especial para o Shell. Esses

caracteres são interpretados quando o Shell encontra-os durante oprocessamento da l inha de comando.

3.16.1 Substituição do Nome do Arquivo

Quatro caracteres especiais permitem a referência a grupos dearquivos ou diretórios em uma linha de comando. Este é um recurso quepermite que você faça a f i ltragem do que será l istado, copiado, apagado,etc. Estes caracteres são chamados Meta caracteres ou Coringas.

Asterisco O * substitui qualquer conjunto de caracteres, ou seja, faz

referência a um nome completo, ou ao restante de um arquivo oudiretório.

Ponto de interrogação O caractere ? substitui qualquer letranuma determinada posição.

29

Page 30: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 30/101

Colchetes O símbolo [ ] contém uma lista de caracteres. Um doscaracteres dentro do colchetes será substituído. Um hífen separando oscaracteres que estão entre colchetes indica um intervalo. Um ! dentro doscolchetes indica o sentido da procura invertido. [a-z] [0-9] - Faz referência a caracteres de a até z seguido de um

caractere de 0 até 9. [a,z] [1,0] - Faz a referência aos caracteres a e z seguido de um

caractere 1 ou 0 naquela posição. [a-z,1,0] - Faz referência aos caracteres de a até z ou 1 ou 0 naquela

posição.A procura de caracteres é "Case Sensitive" assim se você deseja que

sejam localizados todos os caracteres alfabéticos você deve usar [a-z,A-Z].Caso a expressão seja seguida de um ^, faz referência a qualquer

caractere exceto o da expressão. Por exemplo, [^abc] faz referência aqualquer caractere exceto a, b e c.

Chaves O símbolo { } – Expande e gera strings para pesquisa dediversos padrões de um arquivo/diretório.

X{ab,01} - Faz referência à seqüência de caracteres Xab ou X01 X{a-z,10} Faz referencia a seqüência de caracteres de Xa até Xz e

X10.O que diferencia este método de expansão dos demais é que a

existência do arquivo/diretório é opcional para geração do resultado. Istoé útil para a criação de diretórios. Lembrando que os 4 tipos de curingas("*", "?", "[]", "{}") podem ser usados juntos.

Esses caracteres especiais poupam tempo de digitação. O maisimportante é que eles podem ser usados para fazer referência a arquivoscujo nome não se conhece exatamente.

Para entender melhor vamos a prática:

Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt,teste2.txt, teste3.txt, teste4.new, teste5.new.

Caso deseje listar todos os arquivos do diretório /usr/teste você podeusar o coringa "*" para especificar todos os arquivos do diretório:

cd /usr/teste e ls * ou ls /usr/teste/*.Não tem muito sentido usar o comando ls com "*" porque todos os

arquivos serão listados se o ls for usado sem nenhum Coringa.Agora para l istar todos os arquivos teste1.txt, teste2.txt, teste3.txt

com exceção de teste4.new, teste5.new, podemos usar inicialmente 3métodos:

1. Usando o comando ls *.txt que pega todos os arquivos que começamcom qualquer nome e terminam com .txt.2. Usando o comando ls teste?.txt, que pega todos os arquivos quecomeçam com o nome teste, tenham qualquer caractere no lugar docoringa ? e terminem com .txt. Com o exemplo acima teste*.txt tambémfaria a mesma coisa, mas se também tivéssemos um arquivo chamadoteste10.txt este também seria l istado.3. Usando o comando ls teste[1-3].txt, que pega todos os arquivos quecomeçam com o nome teste, tenham qualquer caractere entre o número 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtém umafiltragem mais exata, pois o coringa ? especif ica qualquer caractere

naquela posição e [] especifica números, letras ou intervalo que seráusado.

Agora para l istar somente teste4.new e teste5.new podemos usar osseguintes métodos:

30

Page 31: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 31/101

• ls *.new que l ista todos os arquivos que terminam com .new• ls teste?.new que l ista todos os arquivos que começam com

teste,contenham qualquer caractere na posição do coringa? e terminem com .new.

• ls teste[4,5].* que l ista todos os arquivos que começam com testecontenham números de 4 e 5 naquela posição e

terminem com qualquer extensão.Existem muitas outras formas de se fazer a mesma coisa, istodepende do gosto de cada um. O que pretendi fazer aqui foi mostrar comoespecificar mais de um arquivo de uma só vez. O uso de curingas será útilao copiar arquivos, apagar, mover, renomear, e nas mais diversas partesdo sistema. Alias esta é uma característica do GNU/Linux: permitir que amesma coisa possa ser feita com liberdade de várias maneiras diferentes.Outros Exemplos:$ ls *.new Lista todos os arquivos com extensão .new :$ ls *[1 - 5] Lista todos os arquivos cujo nome termine com um

numero entre 1 e 5 :$ ls f?? Lista todos os arquivos cujo nome tem três caracteres e

começam com f :

3.16.2Marcação do Caractere Especial

Para usar l iteralmente um caractere especial sem que o Shellinterprete seu signif icado ele deve ser marcado. O Shell trata umcaractere especial marcado como um caractere normal.

Aspas Quando se coloca um caractere especial entre aspas “ “ ,o Shell ignora todos os caracteres especiais exceto o cifrão ($), o acento

grave (‘) e a barra invertida ( \);Apóstrofe O apóstrofe é mais restritivo. Todos os caracteresespeciais entre apóstrofes são ignorados;

Barra invertida Geralmente, a barra invertida faz o mesmo quecolocar um caractere entre apóstrofes. Quando uma barra invertida éusada, ela deve preceder cada caractere a ser marcado;

Por exemplo, se você quiser buscar por um asterisco (*) em seuarquivo /etc/shadow, pode tentar o seguinte comando.

# grep * /etc/shadowInfelizmente, esse comando busca pelo nome de cada arquivo no

diretório atual, no arquivo /etc/shadow.O problema é que o asterisco é um curinga, que busca por quase

tudo, dependendo do contexto. É onde a barra invertida pode ajudar.Quando você coloca a barra invertida na frente de um caractere especial,ela “escapa” o signif icado daquele caractere. Em outras palavras, de fato,o seguinte comando busca por asteriscos no arquivo /etc/shadow:

# grep \* /etc/shadowA barra invertida é jeitosa para outras situações, tal como listar

diretórios de duas palavras, como My Documents da Microsoft. Porexemplo, se você tiver montado um drive Microsoft Windows a partir deum computador remoto no diretório /mnt/win1., pode tentar listar os

arquivos no diretório com o seguinte comando.# ls /mnt/win1/My\ DocumentsAcrescentando a barra invertida o Shell ignora o espaço em branco.

31

Page 32: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 32/101

3.17ComandosComandos são ordens que passamos ao sistema operacional para

executar uma determinada tarefa.Cada comando tem uma função específ ica, 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 apostila tem uma lista de vários comandos organizados porcategoria com a explicação sobre o seu funcionamento e as opções aceitas(incluindo alguns exemplos).

É sempre usado um espaço depois do comando para separá-lo deuma opção ou parâmetro que será passado para o processamento. Umcomando 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 l istagem 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 identif icada por uma letra. Podem ser usadas mais de umaopçã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 é equivalentea ls -a.

Pode ser usado tanto "-" como "--", mas há casos em que somente "-"ou "--" esta disponível.

Parâmetros: Um parâmetro identif ica 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 passadoao comando ls, neste caso queremos que ele l iste os arquivos do diretório /usr/doc/copyright . É normal errar o nome de comandos, mas não sepreocupe, quando isto acontecer o sistema mostrará a mensagemcommand not found (comando não encontrado) e voltará ao aviso decomando. As mensagens de erro não fazem nenhum mal ao seu sistema,somente dizem que algo deu errado para que você possa corrigir eentender o que aconteceu. No GNU/Linux, você tem a possibil idade decriar comandos personalizados usando outros comandos mais simples (istoserá 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 comandols.Os comandos podem ser executados em seqüência (um após o

término do outro) se os separarmos com “ ; “ (ponto e virgula) . Porexemplo: ls ; pwd; date; echo teste.

3.17.1 Comandos Internos

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

Quando executa um comando, o interpretador de comandos verif icaprimeiro se ele é um Comando Interno caso não seja é verif icado se é umComando Externo .

Exemplos de comandos internos são: cd, exit, echo, bg, fg, source,32

Page 33: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 33/101

help

3.17.2 Comandos Externos

São comandos que estão localizados no disco. Os comandos sãoprocurados no disco usando o path e executados assim que encontrados.

3.17.3 Aviso de comando (Prompt)

Aviso de comando (ou Prompt), é a l inha mostrada na tela paradigitação de comandos que serão passados ao interpretador de comandospara sua execução.

A posição onde o comando será digitado é marcada um "traço"piscante na tela chamado de cursor . Tanto em shells texto como emgráficos é necessário o uso do cursor para sabermos onde iniciar adigitação de textos e nos orientarmos quanto à posição na tela.

O aviso de comando do usuário root é identif icado por uma "#"

(tralha, cerquilha), e o aviso de comando de usuários é identif icado pelosímbolo "$". Isto é padrão em sistemas UNIX.Você pode retornar comandos já digitados pressionando as teclas

Seta para cima / Seta para baixo.A tela pode ser rolada para baixo ou para cima segurando a tecla

SHIFT e pressionando PGUP ou PGDOWN. Isto é úti l para ver textos querolaram rapidamente para cima.

Abaixo algumas dicas sobre a edição da l inha de comandos (não énecessário se preocupar em decorá-los):• Pressione a tecla Back Space ("← ") para apagar um caractere àesquerda do cursor.• Pressione a tecla Del para apagar o caractere acima do cursor.• Pressione CTRL+A para mover o cursor para o inicio da l inha decomandos.• Pressione CTRL+E para mover o cursor para o f im da l inha decomandos.• Pressione CTRL+U para apagar o que estiver à esquerda do cursor. Oconteúdo apagado é copiado para uso com CTRL+y.• Pressione CTRL+K para apagar o que estiver à direita do cursor. Oconteúdo apagado é copiado para uso com CTRL+y.• Pressione CTRL+L para l impar a tela e manter o texto que estiver

sendo digitado na l inha de comando (parecido com o comando clear).• Pressione CTRL+Y para colocar o texto que foi apagado na posiçãoatual do cursor.3.17.4 Interpretador de comandos

 Também conhecido como "Shell". É o programa responsável eminterpretar as instruções enviadas pelo usuário e seus programas aosistema operacional (o kernel). Ele que executa comandos l idos dodispositivo de entrada padrão (teclado) ou de um arquivo executável. É aprincipal ligação entre o usuário, os programas e o kernel. O GNU/Linuxpossui diversos tipos de interpretadores de comandos, entre eles posso

destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado é o bash.O interpretador de comandos do DOS, por exemplo, é o command.com.

Os comandos podem ser enviados de duas maneiras para ointerpretador: interativa e não-interativa:

33

Page 34: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 34/101

Interativa Os comandos são digitados no aviso de comando epassados ao interpretador de comandos um a um. Neste modo, ocomputador depende do usuário para executar uma tarefa, ou próximocomando.

Não-interativa São usados arquivos de comandos criados pelousuário (scripts) para o computador executar os comandos na ordemencontrada no arquivo. Neste modo, o computador executa os comandos

do arquivo um por um e dependendo do término do comando, o script podechecar qual será o próximo comando que será executado e darcontinuidade ao processamento.

Este sistema é úti l quando temos que digitar por várias vezesseguidas um mesmo comando ou para compilar algum programa complexo.

O Shell Bash possui ainda outra característica interessante: Acomplementação dos nomes. Isto é feito pressionando-se a tecla TAB. Porexemplo, se digitar "ls tes" e pressionar <tab>, o Bash localizará todos osarquivos que iniciam com "tes" e completará o restante do nome. Caso acomplementação de nomes encontre mais do que uma expressão quesatisfaça a pesquisa, ou nenhuma, é emitido um beep. Se você apertarnovamente a tecla TAB imediatamente depois do beep, o interpretador decomandos irá listar as diversas possibilidades que satisfazem a pesquisa,para que você possa escolher a que lhe interessa. A complementação denomes funciona sem problemas para comandos internos.Exemplo: ech (pressione TAB). ls /vm(pressione TAB)

3.17.5 Terminal Virtual (console)

 Terminal (ou console) é o teclado e tela conectados em seucomputador. O GNU/Linux faz uso de sua característica multi-usuária

usando os "terminais virtuais". Um terminal virtual é uma segunda seçãode trabalho completamente independente de outras, que pode seracessada no computador local ou remotamente via telnet, rsh, r login, etc.

No GNU/Linux, em modo texto, você pode acessar outros terminaisvirtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla defunção corresponde a um número de terminal do 1 ao 6 (o sétimo é usadopor padrão pelo ambiente gráfico X). O GNU/Linux possui mais de 63terminais virtuais, mas apenas 6 estão disponíveis inicialmente pormotivos de economia de memória RAM (cada terminal virtual ocupaaproximadamente 350 Kb de memória RAM, desative a quantidade que nãoestiver usando para l iberar memória RAM para uso de outros programas!) .

Se estiver usando o modo gráfico, você deve segurar CTRL+ ALTenquanto pressiona uma tela de <F1> a <F6>.

Um exemplo prático: Se você estiver usando o sistema no Terminal 1com o nome "joao" e desejar entrar como "root" para instalar algumprograma, segure ALT enquanto pressiona <F2> para abrir o segundoterminal virtual e faça o login como "root". Será aberta uma nova seçãopara o usuário "root" e você poderá retornar a hora que quiser para oprimeiro terminal pressionando ALT+<F1>.

34

Page 35: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 35/101

4 Fundamentos do LinuxAbaixo temos uma relação de comandos básicos para do Linux,

seguidos de uma descrição e exemplos. Porem, assim como conhecer oscomandos do Linux, é importante também saber como acessar seusrecursos de ajuda, pois isso te desobriga de decorar as seqüências das

funcionalidades extras. Sabendo usar todos os recursos, você certamenteterá boa produtividade em suas tarefas no Linux.

A melhor forma de conhecer os parâmetros adicionais de cadacomando é consultando as informações de ajuda. Para isso, pode-se usar o

35

Page 36: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 36/101

recurso do comando man (manual), com a seguinte sintaxe: man[comando] . Exemplo: $ man pwd ; $ man cp

 Também é possível uti lizar o comando help. Para usar o help e obterdetalhes do comando a sintaxe é: [comando] --help . Exemplo: $ pwd--help; $ cp –help

Ou ainda o comando info. Exemplo: $ info pwd ; $ info cp

4.1 Comandos para manipulação de diretórios

4.1.1 ls - (ou dir) Lista diretórios e seus conteúdos.

O comando ls (l ist) é versáti l . Ele não apenas permite que vocêrelacione os arquivos e diretórios em seu diretório atual, mas com asopções adequadas, também é possível encontrar as permissões e tamanhode um arquivo. O comando permite que você verif ique a propriedade,diferencie entre tipos de arquivos e classif ique o resultado de váriasmaneiras.

Podemos uti l izar o ls acompanhado ou não das opções de l istagem(flags). O retorno dependerá das opções fornecidas, porém será sempreuma listagem dos arquivos, diretórios, links simbólicos e hard links de umdiretório qualquer.

Normalmente o conteúdo de um diretório é l istado em ordemalfabética, um item por l inha. As diversas opções do comando ls permitemadaptar o formato da listagem.

Se nada for especificado em nomes todos os itens do diretóriocorrente são l istados. Entretanto em nomes é possível determinarmáscaras (f i ltros) para selecionar padrões de nomes de itens a seremlistados.

ls [opções] [caminho/arquivo] [caminho1/arquivo1 ] ...

onde:caminho/arquivo Diretório/arquivo que será l istado.caminho1/arquivo1 Outro Diretório/arquivo que será l istado. Podem ser

feitas várias l istagens de uma só vez.opções  -a (all ) L is ta todos os arquivos ( inc lusive os ocul tos – que começam com

ponto) de um diretório.-d (di rectory) L is ta os nomes dos di retórios ao invés do conteúdo.-f Não classifica a listagem.

-F Insere um caractere após arquivos executáveis ('*'), diretórios ('/ '),soquete ('='), l ink simbólico ('@') e pipe ('| '). Seu uso é úti l paraidentificar de forma fácil tipos de arquivos nas listagens dediretórios.

-G Oculta a coluna de grupo do arquivo.-h Mostra o tamanho dos arqu ivos em Kbytes, Mbytes, Gbytes.-l Usa o formato longo para listagem de arquivos. Lista as permissões,

data de modificação, donos, grupos, etc.- r L is ta em ordem a lfabét ica reversa , ou em ordem de hora/data-R Lista diretórios e sub-diretórios recursivamente .

-s Most ra o t amanho em bl ocos de cada item;- t Ordena os i tens por hora/data de mod if icação ;-u Usada em con junto com - t para ordenar pe la hora/data do ú lt imo

acesso, ao invés de pela última modificação;

36

Page 37: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 37/101

- c Usada em con junto com - t para ordenar pe la hora/data da ú lt imamodificação do item na tabela de arquivos do Sistema de Arquivos;

-x L is ta em vár ias co lunas, ordenando os itens em linhas ao invés deem colunas;

--full-time Lista data e hora completa.Classificação da l istagem.A listagem pode ser classificada usando-se as seguintes opções:

-f Não classifica, e usa -au para listar os arquivos.-r Inverte a ordem de classificação.-c Classifica pela data de alteração.-X Classif ica pela extensão.-U Não classifica, lista os arquivos na ordem do diretório.

Uma l istagem feita com o comando ls - la normalmente é mostrada daseguinte maneira:

-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste

Abaixo as explicações de cada parte:-rwxr-xr-- São as permissões de acesso ao arquivo teste. A primeira

letra (da esquerda) identif ica o tipo do arquivo, se tiver um d é umdiretório, se tiver um "-" é um arquivo normal.

As permissões de acesso são explicadas em detalhes no capítulo:permissões de acesso a arquivos e diretórios.1 Se for um diretório, mostra a quantidade de subdiretórios existentes

dentro dele. Caso for um arquivo, será 1.gleydson Nome do dono do arquivo teste.user Nome do grupo que o arquivo teste pertence.8192 Tamanho do arquivo (em bytes).

nov Mês da criação/ última modificação do arquivo.4 Dia que o arquivo foi criado.16:00 Hora em que o arquivo foi criado/modificado. Se o arquivo foi

criado há mais de um ano, em seu lugar é mostrado o ano dacriação do arquivo.

teste Nome do arquivo.

Caso o caminho não seja informado, será considerado o diretórioatual. Seguido do caractere coringa “ * “ serve para indicar que umdestino é igual a “todos” os arquivos e diretórios. Alem do asteriscopodem ser usados outros caracteres coringas como ?, \ , [ ].

Exemplos do uso do comando ls:$ ls Lista o conteúdo do diretório corrente, em colunas, sem

mostrar os atributos dos arquivos listados.$ ls /bin /sbin Lista os arquivos do diretório /bin e /sbin$ ls -a Lista os diretórios, arquivos ocultos e executáveis) .$ ls - l Lista o conteúdo do diretório corrente detalhadamente, cada

arquivo em uma linha, mostrando os atributos dos arquivoslistados).

$ ls -l a /b in L is tagem completa dos a rquivos do di re tó ri o /b in inclus iveos ocultos.

$ ls –l | more Idem anterior, paginando$ ls -R Lista os arquivos do diretório e subdiretórios, inclusive ocultos.$ ls .. Lista o conteúdo do diretório acima “ .. “.

37

Page 38: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 38/101

$ ls –l /usr/local | more Lista o diretório especificado, como ls –l,paginando.

$ ls –lh Lista o diretório exibindo o tamanho em K, M ou G.$ ls *a.* Mostrará somente os arquivos que terminam com a letra “a”

antes do “.”.$ ls a???.* Mostrará todos os arquivos que comecem com a letra “a” e que

após a letra “a” existam exatamente 3 caracteres.)

$ ls ????a.?? Mostrará arquivos que tenham exatamente 4 caracteresantes da letra “a”. Os arquivos deverão terminar com a letra“a” e Ter extensão com exatamente 2 caracteres.

$ ls * Mostrará todos os arquivos.$ ls *.a* Mostrará todos os arquivos cuja extensão comece com “a”.

4.1.2 cd – Mudando o diretório de trabalho

O comando cd (change directory) é utilizado para mudar o diretóriode trabalho corrente. Não há opções para este comando. Se você não

especif icar um diretório o comando cd fará com que o seu diretório deentrada (home directory) se torne o seu diretório corrente. Se for umsubdiretório do seu diretório corrente, basta informar o nome dele. Casocontrário você pode informar o nome relativo ou absoluto do diretório parao qual você quer mudar.

O Linux, assim como qualquer Unix, utiliza-se de barras comuns enão invertidas como em outros sistemas, para informar sobre a árvore dediretórios.

Você precisa ter a permissão de execução para entrar no diretório.

cd [/diretório/caminho de destino]

onde:diretório - diretório que deseja entrar.Exemplos:Usando cd sem parâmetros ou cd ~, você retornará ao seu diretório deusuário (diretório home).$ cd ~ retornará ao di retório de entrada (d iretór io home do usuár io)$ cd / retornará ao diretório raiz.$ cd - retornará ao diretório anteriormente acessado.$ cd .. sobe um diretório.$ cd ../.. sobe dois diretórios$ cd ../[diretório ] sobe um diretório e entra imediatament e no

próximo (por exemplo, quando você está em /usr/sbin, vocêdigita cd ../bin, o comando cd retorna um diretório (/usr) eentra imediatamente no diretório bin (/usr/bin).

4.1.3 pwd – Identificação do diretório corrente

O comando pwd (present working directory) retorna o nome dodiretório corrente ou de diretório de trabalho (working directory)identif icando o caminho completo do diretório a partir da raiz. Não possuinenhuma opção ou argumento. Você pode uti l izá-lo para se situar no

sistema de arquivos. Por exemplo, é sempre úti l verif icar o diretóriocorrente antes de criar ou remover arquivos e diretórios. Do mesmo modo,o pwd é úti l para confirmar o diretório corrente após várias trocas dediretórios.

38

Page 39: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 39/101

4.1.4 mkdir – Criando diretórios

O comando mkdir (make directory) é utilizado para criar diretórios nosistema. Um diretório é usado para armazenar arquivos de umdeterminado tipo. O diretório pode ser entendido como uma pasta ondevocê guarda seus papeis (arquivos). Nos diretórios podemos agruparinformações afins, isto é, arquivos que possuem alguma inter-relação. O

nome do diretório deve ser significativo e permitir um acesso e umalocalização rápida dos arquivos armazenados no seu sistema de arquivos.

Os nomes dos diretórios a serem criados são passados comoargumentos para o comando. Estes nomes podem ter até 255 caracteresem algumas versões do Sistema Operacional UNIX, e devem ser únicos,isto é, não pode haver dois diretórios com mesmo nome dentro de ummesmo subdiretório, nem mesmo um arquivo e um diretório iguais em ummesmo subdiretório.

Os novos diretórios normalmente são criados com modo depermissão 777

(permissão para leitura, escrita e execução).mkdir [opções] [caminho/diretório ] [caminho1/diretório1 ]

onde:caminho Caminho onde o diretório será criado.diretório Nome do diretório que será criado.opções:  -m (modo) Especi fica o modo de permissão de acesso para o di retór io

que está sendo criado;-p Cria os diretórios pai citados no nome do diretório que está sendo

criado;

Para criar um novo diretório, você deve ter permissão de gravação.Por exemplo, para criar um diretório em /tmp com o nome de teste queserá usado para gravar arquivos de teste, você deve usar o comando"mkdir /tmp/teste".

Podem ser criados mais de um diretório com um único comando(mkdir /tmp/teste /tmp/teste1 /tmp/teste2).

Exemplos:1. Crie um diretório chamado teste com o seguinte modo de permissão :

711

$mkdir - m 711 teste$ls - ltotal 1drwx--x-- x 2 guest users 1024 May 15 21:27 teste/

2. Crie um diretório chamado curso com um diretório f i lho chamado aula1$mkdir - p curso/aula1$ls - ltotal 2drwx--x-- x 2 guest users 1024 May 15 21:27 teste/drwxr- xr- x 3 guest users 1024 May 15 21:33 curso/$ls - l curso total 1drwxr- xr- x 2 guest users 1024 May 15 21:33 aula1/

Notas:

39

Page 40: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 40/101

As opções -p e -m não estão disponíveis em todos os sistemas; Veja comando umask para alterar permissões padrão na criação de

diretórios4.1.5 rmdir – Removendo diretórios

O comando rmdir (remove directory) é uti l izado para remover um oumais diretórios vazios. O diretório que será removido deve estar vazio enão pode ser o diretório corrente. Apenas o usuário que criou o diretórioou um superusuário pode remover um diretório, a não ser que o diretóriotenha acesso de gravação para outros usuários. É possível apagar váriosníveis de diretórios, se o diretório que você remover apagar os outros. Osnomes dos diretórios podem ser especif icados com caminhos absolutos ourelativos.

rmdir [caminho/diretório ] [caminho1/diretório1 ]

onde:caminho Caminho do diretório que será removido.

diretório Nome do diretório que será removido.Opções:-p Remove di retór ios ci tados e respect ivos diretórios pai que f icarem

vazios com a remoção;

Exemplo: Remova o diretório aula1, se o diretório pai f icar vazio remova -o :

$rmdir -p curso/aula1

É necessário que esteja um nível acima do diretório(s) que será(ão)removido(s). Para remover diretórios que contenham arquivos, use o

comando rm com a opção  –r. 

4.2  - Comandos para manipulação, gerenciamento econfiguração de arquivos e/ou diretórios

4.2.1 touch – Criando arquivos vazios

O comando touch é utilizado para criar um arquivo vazio. Há ocasiõesem que você simplesmente precisa configurar um arquivo vazio em Linux.Por exemplo, antes de poder ativar a cota para um usuário ou um grupo, é

preciso criar um arquivo vazio.O comando touch também pode ser usado para mudar ou atualizar adata e a hora que um arquivo ou diretório foi criado.

touch [opções] [arquivos]

Onde:arquivos Arquivos que serão criados ou terão sua data/hora modificados.opções  -t MMDDhhmm[ANO.segundos] Usa Minutos (MM), Dias (DD), Horas (hh),

minutos (mm) e opcionalmente o ANO e segundos paramodificação do(s) arquivos ao invés da data e hora atual.

-a, --time=atime Faz o touch mudar somente a data e hora do acessoao arquivo.Exemplos:$ touch teste Cria o arquivo teste caso ele não existir.

40

Page 41: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 41/101

$ touch -t 10011230 teste Altera da data e hora do arquivo para01/10 e 12:30.

$ touch - t 120112301999.30 tes te A ltera da data, hora ano , esegundos do arquivo para 01/12/1999 e12:30:30.

$ touch -t 12011200 * Altera a data e hora do arquivo para 01/12 e12:00.

4.2.2 cat – Visualizando o conteúdo de um arquivo

O comando concatenador (cat) é uti l izado para exibir o conteúdo deum arquivo binário ou texto na saída padrão, que inicialmente será seumonitor. É possível utilizar o cat para criar, exibir e juntar arquivos.Quando se uti l iza o cat para concatenar arquivos, os arquivos da origempermanecem intactos.

cat [opções] [diretório/arquivo ] [diretório1/arquivo1 ]

Ondediretório/arquivo Localização do arquivo que deseja visualizar oconteúdo.opções  -n Mostra o número das l inhas enquanto o conteúdo do arquivo émostrado.-s Não mostra mais que uma linha em branco entre um parágrafo eoutro.- Lê a entrada padrão.

O comando cat trabalha com arquivos texto. Use o comando zcat

para ver diretamente arquivos compactados com gzip.Exemplo: $ cat –n /etc/mtools. conf |less$ cat -n .bash_profiles

4.2.3 tac - Visualizando o conteúdo de um arquivoreversamente

Mostra o conteúdo de um arquivo binário ou texto (como o cat) sóque em ordem inversa.

tac [opções] [diretório/arquivo ] [diretório1/arquivo1 ]

onde:diretório/arquivo - Localização do arquivo que deseja visualizar o conteúdoopções  -s [string] Usa o [string] como separador de registros.- Lê a entrada padrão.Exemplo: $ tac /etc/mtools. conf |less

4.2.4 rm - Removendo arquivos e/ou diretórios

o comando rm remove arquivos. Também pode ser usado para apagar

diretórios e subdiretórios vazios ou que contenham arquivos.rm[opções][caminho][arquivo/diretório ] [caminho1]

[arquivo1/diretório1 ]

41

Page 42: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 42/101

onde:caminho Localização do arquivo que deseja apagar. Se omitido, assume

que o arquivo esteja no diretório atual.arquivo/diretório Arquivo que será apagado.opções  - i Pergunta antes de remover, es ta é a ti vada por padrão.- v Mos tra os arqu ivos na medida em que são remov idos .

- r Usado para remover arquivos em subdi retórios . Es ta opção tambémpode ser usada para remover subdiretórios.-R Remove recurs ivamente o conteúdo do di retór io não diferenciando

arquivos ou subdiretórios e seus respectivos conteúdos.-f Remove os arquivos sem perguntar.-- arquivo Remove arquivos/diretórios que contém caracteres especiais. O

separador "--" funciona com todos os comandos do Shell epermite que os caracteres especiais como "*", "?", "-", etc.sejam interpretados como caracteres comuns.

Use com atenção o comando rm, uma vez que os arquivos ediretórios forem apagados, eles não poderão ser mais recuperados.Exemplos:$ rm teste.txt Apaga o arquivo teste.txt no diretório atual.$ rm *.txt Apaga todos os arquivos do diretório atual que terminam com.txt.$ rm *.txt teste.novo Apaga todos os arquivos do diretório atual que

terminam com .txt e também o arquivo teste.novo.$ rm -rf / tmp/teste/* Apaga todos os arquivos e sub-diretór ios do diretór io

/tmp/teste mas mantém o sub-diretório /tmp/teste.$ rm -rf /tmp/teste Apaga t odos o s arquivos e sub-diretórios d o

diretório /tmp/teste, inclusive /tmp/teste.

$ rm -f -- --arquivo-- Remove o arquivo de nome --arquivo--.$ rm * -f Remove todos os arquivos (*), sem solicitar confirmação (-f).$ rm ../* -f Remove todos os arquivos do diretório acima ( ../* ), sem

solicitar confirmação ( -f ).

4.2.5 cp – Copiando arquivos

O comando cp (copy) copia, isto é, cria uma cópia de um arquivo comoutro nome ou em outro diretório sem afetar o arquivo original. Você podeusar esse comando para criar cópias de segurança de arquivosimportantes ou para copiar arquivos que queira modificar. Se há algumarquivo que você quer ter em mais de um diretório, pode usar o comandocp para copiá-lo para outros diretórios.

Na l inha de comando, arquivo - origem é o nome do arquivo que vocêquer copiar e arquivo - destino é o nome que você quer dar à cópia.Lembre - se: se você fizer uma cópia de um arquivo no mesmo diretório,ela não poderá ter o mesmo nome de arquivo - origem. Com este comandovocê pode acidentalmente perder arquivos se já existir um arquivo com onome arquivo -destino, neste caso o comando cp escreve o novo arquivopor cima do antigo.

cp [opções] [origem] [destino]onde:

42

Page 43: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 43/101

origem Arquivo que será copiado. Podem ser especif icados mais de umarquivo para ser copiado usando "Curingas".

destino O caminho ou nome de arquivo onde será copiado. Se o destinofor um diretório, os arquivos de origem serão copiados paradentro do diretório.

opções  - i Pergunta antes de subs ti tu ir um arqu ivo exi sten te .

- f Não pergunta , subst itui todos os arquivos caso já exista.- r Cop ia recurs ivamente arquivos dos di retórios e subdi retórios daorigem para o destino. É recomendável usar -R ao invés de -r.

-R Copia recurs ivamente arquivos e sub-di retór ios (como a opção - r) etambém os arquivos especiais FIFO e dispositivos.

- v Mos tra os a rquivos enquanto estão sendo cop iados.-s Cria li nk simb ólico ao invés de cop ia r.- l Faz o l ink no des tino ao invés de cop ia r os a rquivos.-p Preserva at ri bu tos do a rquivo , se for possíve l.-u Cop ia somente se o arquivo de or igem é mais novo que o arqu ivo de

destino ou quando o arquivo de destino não existe.O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos

origem e destino terão o mesmo conteúdo após a cópia.Exemplos:$ cp teste.txt teste1.txt Copia o arquivo teste.txt para teste1.txt.$ cp teste.txt /tmp Copia o arquivo teste.txt para dentro do diretório/tmp.$ cp * /tmp Copia todos os arquivos do diretório atual para /tmp.$ cp /bin/* . Copia todos os arquivos do diretório /bin para o

diretório em que nos encontramos no momento.$ cp [/caminho/arquivo(1) .. arquivo(n)] [/caminho] Copia N

arquivos ao mesmo tempo.$ cp * [/caminho/diretório] Copia todos os arquivos do diretório atual parao diretório especificado.

$ cp ../diretório-mesmo-nível/* . Copia tudo do diretório de mesmo níveldo atual (../diretório-mesmo-nível/*) para o diretóriocorrente ( . ).

$ cp * .. Copia tudo do diretório corrente (*) para o diretório acima ( ..).$cp -R Copia todo o conteúdo do diretório, inclusive subdiretórios.$ cp -R /bin /tmp Copia o diretório /bin e todos o s arquivos/sub-

diretórios existentes para o diretório /tmp.$ cp -R /bin/* /tmp Copia todos os arquivos do diretório /bin (exceto o

diretório /bin) e todos os arquivos/subdiretóriosexistentes dentro dele para /tmp.

$ cp -R /bin /tmp Copia todos os arquivos e o diretório /bin para /tmp.$ cp –u fi le1 f il e2 Se você j á t iver um arqu ivo chamado fi le2 e f il e1 fo r

mais novo, esse comando sobre grava o seuconteúdo sem informar.

$ cp arq ‘teste de cópia’$ cp arq teste\ de\ cópia Copia o arquivo arq para um chamado “teste

de cópia”. Observe que foi uti l izada a aspa ou abarra invertida para desconsiderar os espaços em

branco.

4.2.6 mv – Movendo ou Renomeando arquivos

43

Page 44: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 44/101

O comando mv (move) funciona com arquivos da mesma maneiracomo funciona com diretórios. Pode-se usar mv para renomear um arquivoou para movê-lo para outro diretório, dependendo dos argumentos quevocê uti l izar. O processo é semelhante ao do comando cp mas o arquivo deorigem é apagado após o término da cópia.

Na linha de comando, a origem é o nome do arquivo cujo nome vocêdeseja mudar, e o destino o novo nome para este arquivo. Se arquivo

destino já existir, mv primeiro remove o arquivo já existente e depoisrenomeia arquivo origem com o novo nome. Para evitar este problema,você tem duas opções:

1. Examinar o conteúdo do diretório antes de renomear um arquivo,para verif icar se o novo nome que você deseja atribuir já existe;

2. Usar a opção -i ( interactive) (presente em alguns sistemas) quepermite uma confirmação da remoção de um arquivo antes do comando mvremovê-lo.

Se arquivo destino for o nome de um diretório presente no diretóriocorrente, então o comando mv entende que arquivo origem deve sermovido para o diretório arquivo destino, e não que este deve ser eliminadoe substituído por arquivo origem.

Se você mover um arquivo para um novo diretório, o arquivo terá omesmo nome da origem, a menos que você especif ique o novo nometambém, dando o nome do caminho (relativo ou absoluto) antes do nomedo arquivo.

mv [opções] [origem] [destino]

Onde:origem Arquivo/diretório de origem.destino Local onde será movido ou novo nome do arquivo/diretório.

opções  - f Subst itui o a rquivo de des tino sem perguntar.-i Pergunta antes de subst ituir. É o p adrão.- v Mos tra os a rquivos que es tão sendo movidos.-u Move somente arqu ivos antigos, ou novos arquivos.

Exemplos:$ mv teste.txt teste1.txt Muda o nome do arquivo teste.txt parateste1.txt.$ mv teste.txt /tmp Move o arquivo teste.txt para /tmp. Lembre-se que o

arquivo de origem é apagado após ser movido.

$ mv teste.txt teste.new (supondo que teste.new já exista) Copia oarquivo teste.txt por cima de teste.new e apagateste.txt após terminar a cópia.

$ mv teste* Di r1 / Move múl ti plos arqu ivos para o d ire tó ri o D ir1$ mv [ /camin ho1/ arquivo1 ] [ /caminho2/a rquivo2 ] Move o a rquivo,

renomeando.$ mv [ /caminho/arquivo(1) . . arquivo(n)] [ /caminho] Move N arquivos do

caminho-origem para o caminho destino

4.2.7 file – Identificando arquivos

Você já deve ter percebido em alguma oportunidade que algunsarquivos não podem ser l istados na tela do micro, pois possuem códigosexecutáveis ou outros dados não adequados para serem mostrados na

44

Page 45: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 45/101

tela. O micro pode até mesmo ficar "preso" como resultado da tentativa deexibir um arquivo desses. O comando fi le pode ser uti l izado para verif icaro tipo de um arquivo, sem que seja preciso listá-lo para saber seuconteúdo.

O comando fi le toma como argumentos uma l ista de nomes dearquivos ou diretórios (ou caminhos relativos/absolutos) especif icados nalinha de comando, e examina- os, relatando que tipo de arquivo são:

arquivo de texto, de programa em C, diretório, etc.file [opções] [alvo]

opções- f Usado para veri fi car uma li sta de nomes cont ida dentro de um

diretório. Assim você não precisa passar todos os arquivos que vocêdeseja investigar na l inha de comando;

Exemplos:1. Descubra o tipo do arquivo curso

$ file curso

curso : Directory$

2. Descubra o tipo de cada arquivo contido no arquivo teste.f i le :$ f i le - f teste.f ilecurso : Directoryteste : Directorytexto : ascii text$

4.2.8 more – Paginando a saída padrãoPermite fazer a paginação de arquivos ou da entrada padrão. O

comando more pode ser usado como comando para leitura de arquivos queocupem mais de uma tela. Quando toda a tela é ocupada, o more efetuauma pausa e permite que você pressione Enter ou espaço para continuaravançando no arquivo sendo visualizado. Para sair do more pressione q.

more [arquivo]

Onde: arquivo É o arquivo que será paginado.

Para visualizar diretamente arquivos texto compactados pelo gzip .gzuse o comando zmore.

Exemplos: $ more /etc/passwd$ more /etc/inittab$ cat /etc/passwd|more

4.2.9 less – Paginando a saída padrão

Permite fazer a paginação de arquivos ou da entrada padrão. O

comando less pode ser usado como comando para leitura de arquivos queocupem mais de uma tela. Quando toda a tela é ocupada, o less efetuauma pausa (semelhante ao more) e permite que você pressione Seta para

45

Page 46: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 46/101

Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da página.Para sair do less pressione q.

less [arquivo]

Onde: arquivo É o arquivo que será paginado.

Para visualizar diretamente arquivos texto compactados pelo

uti l itário gzip (arquivos .gz), use o comando zless.

Exemplos: $ less /etc/passwd,$ cat /etc/passwd|less

4.2.10 sort – Ordenando um texto

O comando sort é utilizado para organizar as linhas de um arquivotexto ou da entrada padrão. A organização é feita por l inhas e as l inhassão divididas em campos que é a ordem que as palavras aparecem nalinha separadas por um delimitador (normalmente um espaço).

sort [opções] [arquivo]

Onde: Arquivo É o nome do arquivo que será organizado. Caso não for

especif icado, será usado o dispositivo de entrada padrão(normalmente o teclado ou um "|").

opções  -b Ignora linhas em branco.-d Somente usa let ras, d íg itos e espaços durante a organ ização.- f Ignora a di fe rença ent re ma iúsculas e minúsculas .

-r Inverte o resultado da comparação.-n Caso est iver organizando um campo que contém números, osnúmeros serão organizados na ordem aritmética. Por exemplo, sevocê tiver um arquivo com os números

1001050

Usando a opção -n, o arquivo será organizado desta maneira:1050100

Caso esta opção não for usada com o sort, ele organizará como umalistagem alfabética (que começam de a até z e do 0 até 9)

1010050

-c Ver if ica se o arquivo já es ta organ izado. Caso não es tiver, retorna amensagem "disorder on arquivo".

-o arquivo Grava a saída do comando sort no arquivo .-m arquivo1  arquivo2 Combina o conteúdo de arquivo1 e arquivo2 gerando

um único arquivo. Os dois arquivos precisam estar ordenados antesde se utilizar esta opção.

-t caractere Usa caractere como delimitador durante a organização delinhas. Por padrão é usado um espaço em branco como delimitadorde caracteres.

46

Page 47: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 47/101

+num1 -num2 Especif ica qual o campo dentro na l inha que será usadona organização. O(s) campo(s) usado(s) para organização estaráentre +num1 e +num2 . O delimitador padrão uti l izado é um espaçoem branco (use a opção -t para especif icar outro). A contagem éiniciada em "0". Caso não for especif icada, a organização é feita noprimeiro campo. Caso -num2 não seja especificado, a organizaçãoserá feita usando a coluna +num1 até o f im da l inha.

Abaixo, exemplos de uso do comando sort:$ sort texto.txt Organiza o arquivo texto.txt em ordem crescente.$ sor t texto .txt – r Organ iza o conteúdo do arquivo texto .txt em ordem

decrescente.$ cat texto.txt|sort Faz a mesma coisa que o primeiro exemplo, só que

neste caso a saída do comando cat é redirecionado aentrada padrão do comando sort.

$ sor t - f tex to .txt Ignora d if erenças ent re l et ras maiúscu las eminúsculas durante a organização.

$ sort +1 -3 texto.txt Organiza o arquivo texto.txt usando como referênciaa segunda até a quarta palavra (segundo ao quartocampo) que constam naquela l inha.

$ sort -t : +2 -3 passwd Organiza o arquivo passwd usando comoreferência a terceira até a quarta palavra (terceiro aoquarto campo). Note que a opção -t especif ica o caractere":" como delimitador de campos ao invés do espaço. Nestecaso, o que estiver após ":" será considerado o próximocampo.

4.2.11head – Verificando o ínicio de um arquivo

Util izamos o comando head para verif icar as 10 primeiras l inhas deum arquivo texto.

head [opções]

Onde:-c [numero] Mostra o [numero] de bytes do inicio do arquivo.

-n [numero] Mostra o [numero] de linhas do inicio do arquivo. Casonão for especificado, o head mostra as 10 primeiras linhas.

Exemplos: $ head teste.txt,$ head -n 20 teste.txt.

4.2.12 tail - Verificando o final de um arquivo

Utilizamos o comando tail para verificar as últimas 10 linhas de umarquivo texto.

tail [opções]Onde:-c [numero] Mostra o [numero] de bytes do final do arquivo.

47

Page 48: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 48/101

-n [numero] Mostra o [numero] de linhas do final do arquivo.

Exemplos: $ tail teste.txt,$ tail -n 20 teste.txt

4.2.13 ln – Criando um link 

Cria links para arquivos e diretórios no sistema. O link é ummecanismo que faz referência (um ponteiro) a outro arquivo ou diretórioem outra localização. O l ink em sistemas GNU/Linux faz referência real aoarquivo/diretório podendo ser feita cópia do link (será copiado o arquivoalvo), entrar no diretório (caso o l ink faça referência a um diretório), etc.

ln [opções] [origem] [link ]

Onde:origem Diretório ou arquivo de onde será feito o l ink.l ink  Nome do link que será criado.opções  -s Cria um link simbólico. Usado para criar l igações com o arquivo ou

diretório de destino.- v Mos tra o nome de cada arqu ivo an tes de fazer o li nk .-d Cria um hard link para di retórios . Somente o root pode usar estaopção.

Existem 2 tipos de links: simbólicos e hardlinks .• O l ink simbólico cria um arquivo especial no disco (do tipo link) quetem como conteúdo o caminho para chegar até o arquivo alvo (isto podeser verif icado pelo tamanho do arquivo do l ink). Use a opção -s para criar

links simbólicos.• O hardlink  faz referência a uma “cópia l inkada” do arquivo original,desta forma ele será perfeitamente idêntico, inclusive nas permissões deacesso, ao arquivo original, possuindo assim uma cópia do conteúdo alémdo apontador para o original, assim qualquer alteração feita no conteúdodo arquivo estará automaticamente atualizando o l ink. Ao contrário doslinks simbólicos, não é possível fazer um hardlink para um diretório oufazer referência a arquivos que estejam em partições diferentes.Observações:• Se for usado o comando rm com um link, somente o link seráremovido.• Se for usado o comando cp com um link, o arquivo original serácopiado ao invés do link.• Se for usado o comando mv com um link, a modificação será feita nolink.• Se for usado um comando de visualização (como o cat), o arquivooriginal será visualizado.

Exemplos:$ ln -s /dev/ttyS1 /dev/modem Cria o l ink /dev/modem para o arquivo

/dev/ttyS1.

$ ln -s /tmp ~/tmp Cria um link ~/tmp para o diretório /tmp.

4.2.14 find – Encontrando arquivos e diretórios pelo filesystem

48

Page 49: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 49/101

O comando find procura recursivamente por arquivos/diretórios nodisco. A busca recursiva faz com que a procura ocorra não apenas nosdiretórios especificados, mas em todos os seus subdiretórios. find podeprocurar arquivos através de sua data de modificação, tamanho, etcatravés do uso de opções. find, ao contrário de outros programas, usaopções longas através de um "-".

find [diretório] [opções/expressão ]

Onde:diretório Inicia a procura neste diretório, percorrendo seu sub-diretórios.opções/expressão  -name [expressão] Procura pelo nome [expressão] nos nomes de

arquivos e diretórios processados.-amin [num] Procura por arquivos que foram acessados [num] minutos

atrás. Caso for antecedido por "-", procura por arquivos que foramacessados entre [num] minutos atrás até agora.

-atime [num] Procura por arquivos que foram acessados [num] diasatrás. Caso for antecedido por "-", procura por arquivos que foram

acessados entre [num] dias atrás e a data atual.-group [nome] Procura por arquivos que possuam a identif icação de

nome do grupo igual a [nome].-user [nome] Procura por arquivos que possuam a identif icação de

nome do usuário igual a [nome].-mmin [num] Procura p or arquivos que tiveram seu conteúdo

modificado há [num] minutos. Caso for antecedido por "-", procurapor arquivos que tiveram seu conteúdo modificado entre [num]minutos atrás até agora.

-mtime [num] Procura por arquivos que tiveram seu conteúdo

modificado há [num] dias. Caso for antecedido por "-", procura porarquivos que tiveram seu conteúdo modificado entre [num] dias atrásaté agora.

-nouser Procura por arquivos que não correspondam àidentificação do usuário atual.

-nogroup Procura por arquivos que não correspondam àidentif icação do grupo do usuário atual.

-perm [modo] Procura por arquivos que possuam os modos de permissão[modo]. Os [modo] de permissão pode ser numérico (octal) ou literal.

-size [num] Procura por arquivos que tiverem o tamanho [num]. [num]pode ser antecedido de "+" ou "-" para especif icar um arquivo maior

ou menor que [num]. A opção -size pode ser seguida de:b - Especif ica o tamanho em blocos de 512 bytes. É o padrão caso[num] não seja acompanhado de nenhuma letra.c - Especif ica o tamanho em bytes.k - Especif ica o tamanho em Kbytes.

A maior parte dos argumentos numéricos podem ser precedidos por"+" ou "-". Para detalhes sobre outras opções e argumentos, consulte apágina de manual.

Uma última observação sobre o f ind, é que ele, dependendo do pontode partida da pesquisa, pode demorar muito até retornar alguma saída, ounão retornar nada se não for encontrado o alvo da pesquisa. Isso se dádevido ao find pesquisar cada arquivo e subdiretórios existentes a partirdo pondo de partida da pesquisa recursivamente.

49

Page 50: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 50/101

Exemplo:$ f ind / -name grep Procura no diretório ra iz e sub-di retór ios um

arquivo/diretório chamado grep.$ find / -name grep -maxdepth 3 Procura no diretório raiz e sub-diretórios

até o 3o. nível, um arquivo/diretório chamado grep.$ f ind . -s ize +1000k Procura no diretório atual e sub-diretórios um

arquivo com tamanho maior que 1000 kbytes(1Mbyte).$ fi nd / -mmin 10 Procura no di re tó ri o ra iz e sub -d iretór ios um arquivo

que foi modificado há 10 minutos atrás.$ find / -links 4 P rocura n o diretório r ai z e sub -diretório s, t odos o s

arquivos que possuem 4 links como referência.

4.2.15 locate – Encontrando arquivos

Esse comando tem a função, assim como o find, de localizar

arquivos. Porém, o find pode ser, em certas circunstâncias, um programade demorará a retornar algo. Para agil izar a ação de encontrar arquivos foicriado um banco de dados chamado locatedb localizado em /var/l ib quepossui os nomes dos arquivos guardados como registros. Dessa maneira, ocomando locate não procura por todo o f i le system e sim apenas em seubanco de dados. O comando uti l izado para atualizar o banco de dados dolocatedb é o updatedb sem flags.

locate [arquivo]

4.2.16 grep – Procurando nos arquivos

O comando grep procura uma seqüência de caracteres em um oumais arquivos, ou no dispositivo de entrada padrão l inha por l inha. A açãoespecif icada pelas opções é executada em cada l inha que contém aseqüência de caracteres procurada. A saída será a linha do arquivo em queo trecho foi encontrado.

Se mais de um arquivo for indicado como argumento do comando, ogrep antecede cada l inha de output que contém a seqüência de caracterescom o nome do arquivo e dois pontos. O nome do arquivo é mostrado paracada ocorrência da seqüência de caracteres em um determinado arquivo.A opção -l é usada para mostrar apenas uma vez o nome do arquivo que

contém várias ocorrências da seqüência de caracteres.grep [expressão] [arquivo] [opções]

Onde:expressão palavra ou frase que será procurada no texto. Se tiver mais de

2 palavras você deve identif icá-la com aspas "" caso contrário o grepassumirá que a segunda palavra é o arquivo!

arquivo Arquivo onde será feita a procura.opções  -A [número] Mostra o [número] de linhas após a linha encontrada pelo

grep.

-B [número] Mostra o [número] de linhas antes da linha encontradapelo grep.

-f [arquivo] Especif ica que o texto que será localizado, esta noarquivo [arquivo].

50

Page 51: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 51/101

-h Não mostra os nomes dos arqu ivos durante a procura.- i Ignora d iferença entre maiúscu las e minúscu las no texto procurado e

arquivo.-r Procura recursivamente-n Mos tra o nome de cada li nha encont rada pelo g rep.-U Trata o arquivo que será procurado como binário.

Se não for especif icado o nome de um arquivo ou se for usado umhífen "-", grep procurará a string no dispositivo de entrada padrão. O grepfaz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisardiretamente em arquivos compactados com gzip, os comandos e opçõessão as mesmas.

Exemplos: $ grep "capitulo" texto.txt,$ ps ax|grep inetd,$ grep "capitulo" texto.txt -A 2 -B 2.

4.2.17 nl – Visualizando e numerando um arquivoMostra o número de linhas junto com o conteúdo de um arquivo.

nl [opções] [arquivo]

Onde:-f [opc] Faz a f i ltragem de saída de acordo com [opc]:

a Numera todas as l inhas.t Não numera l inhas vazias.n Numera l inhas vazias.texto Numera somente l inhas que contém o [texto].

-v [num] Número inicial (o padrão é 1).- i [num] Número de l inhas adicionadas a cada l inha do arquivo (o padrãoé 1).

Exemplos: $ nl /etc/passwd,$ nl -i 2 /etc/passwd

4.2.18 cmp – Comparando arquivos

Compara dois arquivos de qualquer tipo (binário ou texto). Os doisarquivos especif icados serão comparados e caso exista diferença entreeles, é mostrado o número da l inha e byte onde ocorreu à primeiradiferença na saída padrão (tela) e o programa retorna o código de saída 1.

cmp [arquivo1] [arquivo2] [opções]

Opções:arquivo1/arquivo2 Arquivos que serão comparados.opções  - l Mostra o número do byte (hexadecimal) e valores diferentes de bytes

(octal) para cada diferença.-s Não mostra nenhuma diferença, só retorna o código de saída do

programa.Use o comando zcmp para comparar diretamente arquivos

binários/texto compactados com gzip.

51

Page 52: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 52/101

Exemplo: $ cmp teste.txt teste1.txt.

4.2.19 wc – Contando palavras em um texto

O comando wc (Word count) é utilizado para contar o número depalavras, bytes e linhas em um arquivo ou entrada padrão. Se as opções

forem omitidas, o wc mostra a quantidade de l inhas, palavras, e bytes.wc [opções] [arquivo]

Onde:arquivo Arquivo que será verif icado pelo comando wc.opções  -c Mostra os bytes do arquivo.-w Mos tra a quant idade de pa lavras do arqu ivo.-l Most ra a quantidade de linhas do arquivo.

A ordem da l istagem dos parâmetros é única, e modificando aposição das opções não modifica a ordem que os parâmetros são l istados.Exemplo:$ wc /etc/passwd Mostra a quantidade de l inhas, palavras e

letras (bytes) no arquivo /etc/passwd.$ wc -w /etc/passwd Mostra a quantidade de palavras.$ wc -l /etc/passwd Mostra a quantidade de linhas.$ wc -l -w /e tc /p asswd Mostra a quantidade de l inhas e p alav ras n o

arquivo /etc/passwd

4.3 Comandos Diversos

4.3.1 clear – Limpando a tela

Limpa a tela e posiciona o cursor no canto superior esquerdo dovídeo.

clear

4.3.2 cal – Calendário

Mostra um calendário do mês atual.

calExemplo: $ calcal [ano] (mostra os 12 meses de um determinado ano) Exemplo: $ cal2007cal MM YYYY (Exibe a data no formato especif icado)cal 01 2000 (Exibe o calendário do mês de Janeiro no ano 2000)

4.3.3 history – Histórico dos comandos

Lista os últimos 500 comandos que você digitou

history

4.3.4 date

52

Page 53: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 53/101

Permite ver/modificar a Data e Hora do Sistema. Você precisa estarcomo usuário root para modificar a data e hora. Muitos programas dosistema, arquivos de registro (log) e tarefas agendadas funcionam combase na data e hora fornecidas pelo sistema, assim esteja consciente dasmodificações que a data/hora pode trazer a estes programas(principalmente em se tratando de uma rede com muitos usuários).

Para ver a data atual digite apenas: date  

Para modificar digite: date MesDiaHoraMinuto[AnoSegundos]

Onde:MesDiaHoraM inuto[AnoSegundos] São respec ti vamente os números do

mês, dia, hora e minutos sem espaços. Opcionalmente você podeespecif icar o Ano (com 2 ou 4 dígitos) e os Segundos.

+[FORMATO] Def ine o formato da l is tagem que será usada pelocomando date. Os seguintes formatos são os mais usados: %d - Dia do Mês (00-31). %m - Mês do Ano (00-12).

%y - Ano (dois dígitos). %Y - Ano (quatro dígitos). %H - Hora (00-24). %I - Hora (00-12). %M - Minuto (00-59). %j - Dia do ano (1-366). %p - AM/PM (útil se utilizado com %d). %r - Formato de 12 horas completo (hh:mm:ss AM/PM). %T - Formato de 24 horas completo (hh:mm:ss). %w - Dia da semana (0-6).

Exemplos:Se quiser mudar a Data para 25/12 e a hora para 08:15 digite: date

12250815Para mostrar somente a data no formato dia/mês/ano: date +%d/%m/

%Y

4.3.5 echo

Mostra mensagens. Este comando é útil na construção de scripts

para mostrar mensagens na tela para o usuário acompanhar sua execução.echo [mensagem]

A opção -n pode ser usada para que não ocorra o salto de l inha apósa mensagem ser mostrada.

4.3.6 cut

Mostra seções de cada l inha do arquivo dependendo das opçõespassadas ao programa.

cut [opções] [arquivo]

53

Page 54: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 54/101

Onde:arquivo Arquivo que será verif icado pelo comando cut.opções  -b [bytes] Mostra somente a l ista de [bytes] do arquivo.-c [numero] Mostra somente o [número] de caracteres no arquivo. É

semelhante à opção "-b" mas tabs e espaços são tratados comoqualquer caractere.

-f [campos] Mostra somente a lista de [campos].-d [delimitador] Para uso com a opção -f, os campos são separados peloprimeiro caractere em [delimitador] ao invés de tabulações.

- s Para uso com a opção - f, somente mostra l inhas que contém ocaractere separador de campos.

Devem ser especif icadas opções para o funcionamento destecomando. Os bytes, campos e delimitadores podem ser especificadosatravés de intervalos de caracteres (usando a-z), através de vírgulas(a,b,d) ou da combinação entre eles.

Exemplos:$ cut -b 1,3 /etc/passwd - Pega a primeira e terceira letra (byte) de cada

linha do arquivo /etc/passwd$ cut -b 1,3-10 /etc/passwd Pega a primeira letra (byte) e terceira a

décima letra de cada l inha do arquivo/etc/passwd.

$ cut -c 1,3-10 /etc/passwd Pega o primeiro caractere e terceiro ao décimocaractere de cada l inha do arquivo/etc/passwd.

4.3.7 whoMostra quem está atualmente conectado no computador. Este

comando lista os nomes de usuários que estão conectados em seucomputador, o terminal e data da conexão.

who [opções]

opções  -H Mostra o cabeçalho das colunas.-i, -u, --id le Mostra o temp o que o usuário está p arado emHoras:Minutos.

-m, i am Mostra o nome do computador e usuár io associado ao nome. Éequivalente a digitar who i am ou who am i.

-q Mostra o total de usuários conectados aos terminais.-T, -w, --mesg Mostra se o usuário pode receber mensagens via talk(conversação).

+ O usuário recebe mensagens via talk- O usuário não recebe mensagens via talk.? Não foi possível determinar o dispositivo de terminal onde o

usuário está conectado.

4.3.8 whoami

54

Page 55: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 55/101

Mostra o nome que usou para se conectar ao sistema. É úti l quandovocê usa várias contas e não sabe com qual nome entrou no sistema.

whoami

4.3.9 w

Mostra quem está conectado no sistema e o que cada um estáfazendo.

w [opções][usuário]

onde:usuário Nome do usuário que deseja ver os detalhes. Se o usuário não

for digitado, o comando w mostra detalhes de todos os usuáriosconectados no sistema.

opções  -h Não mostra o cabeçalho-u Ignora os nomes de usuários enquanto verifica os processos atuais e

tempos de CPU.-f Mostra ou oculta o campo FROM na listagem.

4.3.10 su

Permite o usuário mudar sua identidade para outro usuário sem fazero logout. Útil para executar um programa ou comando como root sem terque abandonar a seção atual.

su [usuário]

Onde: usuário é o nome do usuário que deseja usar para acessar o

sistema. Se não digitado, é assumido o usuário root.Será pedida a senha do superusuário para autenticação. Digite exit

quando desejar retornar a identif icação de usuário anterior.

4.3.11 reboot

Reinicia o computador.

4.3.12 halt

Desliga a máquina. Exemplo: $ halt

4.3.13 shutdown

Desliga/reinicia o computador imediatamente ou depois dedeterminado tempo (programável) de forma segura. Todos os usuários dosistema são avisados que o computador será desligado. Este comandosomente pode ser executado pelo usuário root ou quando é usada a opção-a pelos usuários cadastrados no arquivo /etc/shutdown.allow que estejamlogados no console virtual do sistema.

shutdown [opções] [hora] [mensagem]onde:

55

Page 56: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 56/101

hora Momento que o computador será desligado. Você pode usar HH:MMpara definir a hora e minuto, MM para definir minutos, +SS paradefinir após quantos segundos, ou now para imediatamente(equivalente a +0).

O shutdown criará o arquivo /etc/nologin para não permitir que novosusuários façam login no sistema (com exceção do root). Este arquivo

é removido caso a execução do shutdown seja cancelada (opção -c)ou após o sistema ser reiniciado.mensagem Mensagem que será mostrada a todos os usuários

alertando sobre o reinicio/desligamento do sistema.opções  -h Inicia o processo para desligamento do computador.-r Reinicia o sistema-c Cancela a execução do shutdown. Você pode acrescentar uma

mensagem avisando aos usuários sobre o fato.- t [num] Faz com que o shutdown envie um s inal de término aos

processos e aguarde [num] segundos antes de enviar o sinal KILL.

O shutdown envia uma mensagem a todos os usuários do sistemaalertando sobre o desligamento durante os 15 minutos restantes e assimpermite que finalizem suas tarefas. Após isto, o shutdown muda o nível deexecução através do comando init para 0 (desligamento), 1 (modomonousuário), 6 (reinicialização). É recomendado utilizar o símbolo "&" nofinal da l inha de comando para que o shutdown seja executado emsegundo plano.

Quando restarem apenas 5 minutos para o reinicio/desligamento dosistema, o programa login será desativado, impedindo a entrada de novos

usuários no sistema.O programa shutdown pode ser chamado pelo init através dopressionamento da combinação das teclas de reinicial izaçãoCTRL+ALT+DEL alterando-se o arquivo /etc/inittab. Isto permite quesomente os usuários autorizados (ou o root) possam reinicializar osistema.Exemplos:$ shutdown -h now Desligar o computador imediatamente.$ shutdown -r now Reinicia o computador imediatamente.$ shutdown 19:00 A manutenção do servidor será iniciada às 19:00" -

Faz o computador entrar em modo monousuário (init

1) às 19:00 enviando a mensagem  A manutenção doservidor será iniciada às 19:00 a todos os usuáriosconectados ao sistema.

$ shutdown -r 15:00 O sistema será reiniciado às 15:00 horas" - Faz ocomputador ser reiniciado (init 6) às 15:00 horasenviando a mensagem O sistema será reiniciado às15:00 horas a todos os usuários conectados aosistema.

$ shutdown -r 20 Faz o sistema ser reiniciado após 20 minutos.$ shutdown -c Cancela a execução do shutdown.

$ shutdown - t 30 - r 20 Reini ci a o s is tema após 20 m inutos , espera 30segundos após o sinal de término para enviar o sinalKILL a todos os programas abertos.

56

Page 57: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 57/101

4.3.14 talk  

Inicia conversa com outro usuário em uma rede local ou Internet. Talk é um programa de conversação em tempo real onde uma pessoa vê o

que a outra escreve.talk [usuário] [tty ] ou talk [usuário@host ] 

Onde:usuário Nome de login do usuário que deseja iniciar a conversação.

Este nome pode ser obtido com o comando who.tty  O nome de terminal onde o usuário está conectado, para iniciar

uma conexão local.usuário@host  Se o usuário que deseja conversar estiver conectado em

um computador remoto, você deve usar o nome dousuário@hosname do computador.

Após o talk ser iniciado, ele verif icará se o usuário pode recebermensagens, em caso positivo, ele enviará uma mensagem ao usuáriodizendo como responder ao seu pedido de conversa.

Para poder fazer a rolagem para cima e para baixo no talk, pressioneCTRL+P(Previous - Tela anterior) e CTRL+N (Next - Próxima tela). Vocêdeve ter o daemon do talk instalado (talkd) para receber requisições deconversa.

Você deve autorizar o recebimento de talks de outros usuários paraque eles possam se comunicar com você, para detalhes veja o comando

mesg.

4.3.15 mesg

Permite ou não o recebimento de requisições de talk de outrosusuários.

mesg [y/n]

Onde:  y  permite que você receba "talks" de outros usuários.Digite mesg para saber se você pode ou não receber "talks" de

outros usuários. Caso a resposta seja "n" você poderá enviar um talk para

alguém, mas o seu sistema se recusará em receber talks de outraspessoas.

É interessante colocar o comando mesg y em seu arquivo deinicial ização bash_profi le para permitir o recebimento de "talks" toda vezque entrar no sistema.

57

Page 58: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 58/101

5 Editor de texto VI

5.1 Editor do UNIX 

O editor de textos que era originalmente fornecido com o UNIXchamava-se ed, e era orientado por l inha, isto é, editava somente umalinha por vez. Como o ed era pouco amigável, foi desenvolvido um novoeditor de l inha, chamado ex. O editor ex continha os comandos do ed e

mais alguns comandos novos. Um destes comandos era o vi, que permitiaao usuário exibir o arquivo que estava sendo editado em uma janela dotamanho da tela do terminal. Portanto o editor vi nada mais é que um exque exibe textos em telas inteiras em vez de apenas uma l inha por vez.

O editor vi não objetiva formatar textos: negritos, identações, justif icação, etc. O editor vi foi projetado para trabalhar em conjunto comformatadores de texto. Na prática o vi é muito usado para editar textosque não necessitam de formatação em nenhum momento, como porexemplo, códigos fonte de programas em alguma linguagem deprogramação.

O Editor “Vim” (VI Improved) é um dos editores mais usados nomundo unix/l inux, ele é uma versão melhorado do editor de texto vi, umdos mais antigos editores de texto criados.

O Editor Vim é um editor de texto altamente configurável construídopara possibil itar uma edição de texto de maneira eficiente. Ele não é umformatador de textos, isto é, não trabalha com justif icação ou formataçãode caracteres (bold, itál ico, etc), portanto o texto produzido com o vimnão tem uma aparência muito agradável.

Geralmente os sistemas unix/linux possuem um link simbólico /bin/viapontando para o executável /usr/bin/vim. Na maioria das vezes aspessoas uti l izam o “vim” pensando estar uti l izando o “vi”.

Neste capítulo vamos aprender alguns comandos do vim, suficientespara que você entenda o funcionamento do editor e consiga editararquivos simples.

5.2 Modos de Operação do VIM

No vim temos vários "modos", que são estados do editor. São eles:

Modo tecla rodapé descrição

de Inserção de

texto

i -- INSERT -- inserção de texto

de Comandos <ESC>

comandos de manipulação de texto

Linha de comando : : comandos de manipulação arquivo58

Page 59: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 59/101

Visual v -- VISUAL -- seleção visual de textoBusca / / busca de padrões no textoReposição R -- REPLACE -- inserção sobrescrevendo

* os modos foram colocados em ordem de importância de uso dagrande maioria dos usuários.

* para acessar qualquer um desses modos tecle 2ª coluna da tabela,

na dúvida aperte <ESC> antes da sua tecla de acesso.* para identif icar em qual modo você está, olhe no rodapé da tela!

(3ª coluna da tabela)

Modo de comando: Neste modo, o editor reconhece e executacomandos. Quando o editor é chamado, ele f ica inicialmente neste modo.Pressione a tecla esc para confirmar o modo de comando. No modo escapeos caracteres comuns (letras, números e sinais de pontuação) têm umsignificado especial e quase todos os caracteres funciona m comocomandos; portanto, existem muitos comandos. A maioria deles é fácil de

memorizar: a, A, i , I , o, O. Alguns comandos servem para passar para omodo insert, outros para movimentar o cursor sobre as l inhas do texto,alterar trechos do texto, buscar palavras, etc.

Modo Inserção de texto (insert): Neste modo, o editor permite aentrada de texto e não reconhece os comandos. Neste modo o vi funcionacomo uma máquina de escrever, com a diferença de que você poderetroceder sobre o texto já digitado para corrigir eventuais erros. Cadacaracter que for digitado aparecerá na tela exatamente como foi digitado.Neste modo não é possível mover-se dentro de uma l inha, ou entre aslinhas do texto.

No modo Linha de Comando (last l ine) você digita os comandos em

uma linha especial que aparece no final da tela quando se digita : (doispontos) no modo escape. Parte dos comandos do modo escape possuemsimilares no modo last l ine, como por exemplo os comandos de edição,que veremos mais adiante. Os comandos no modo last l ine devem serseguidos por ENTER, contrariamente ao que acontece no modo escape.

5.3 O Buffer de edição

Quando você edita um arquivo com o vi, na verdade você não estáalterando o arquivo em si. As alterações feitas são aplicadas em um buffer(uma área na memória, que passa a conter o arquivo sendo editado).

Quando você quiser que as alterações fiquem permanentemente aplicadasao arquivo, é necessário copiar o conteúdo do buffer para o disco, usandoo comando write (w) no modo last line. Portanto, se o comando write nãofor executado antes de deixar o vi, as alterações contidas no buffer nãoserão aplicadas ao arquivo que está no disco.

5.4 Comandos básicos do VIM (vi ou vim)

O editor vi contém um grande número de comandos para realizaruma grande variedade de tarefas especiais de edição, movimentação docursor e outras. Na verdade seria impossível tentar aprender todos os

comandos de uma vez. Vamos portanto aprender inicialmente como criarum arquivo, inser ir e editar o texto, e gravar o arquivo em disco. Oscomandos mais elaborados não serão abordados neste curso.

59

Page 60: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 60/101

5.4.1 Chamando o VIM:

Basta executar o comando vi, passando como argumento o nome doarquivo que se deseja criar:

[user@domain ~]$ vi abre o vim vazio, sem arquivo[user@domain ~]$ vi arquivo abre o arquivo "arquivo", se ele não existir, o cria

[user@domain ~]$ vi arquivo + abre com cursor no fim do arquivo[user@domain ~]$ vi arquivo +10 abre com cursor na linha 10[user@domain ~]$ vi arquivo +/linux abre com cursor na 1ª ocorrência de"linux"

Quando um novo arquivo é criado o vi apresenta uma tela com 23linhas e 80 colunas. O nome do arquivo aparece entre aspas no cantoinferior esquerdo da tela, seguido pela mensagem "[New File]".

Dessa mesma maneira é possível editar um arquivo já existente.Neste caso, no canto inferior esquerdo da tela, à frente do nome do

arquivo, aparecerá uma mensagem indicando quantas l inhas e quantoscaracteres o arquivo possui.Em cada l inha onde não tiver sido digitado nada até o momento,

aparecerá um ~ (til), indicando que a linha é uma linha nula. Uma linhanula não é o mesmo que uma linha preenchida com espaços.

5.4.2 Editando:

Ao entrar no vim, ele está no modo de comandos (ESC escape). Comosaber? Olhe no rodapé a tela. Nada na última linha.

Neste modo os caracteres têm signif icado especial, isto é, são

comandos. Para poder introduzir o texto é necessário passar para o modoinsert.

No modo escape o vi é sensível a maiúsculas e minúsculas, isto é,digitar o comando “a” é diferente de digitar o comando “A”.

Os comandos do modo escape que mudam o modo de operação do vipara o modo insert são: a, A, i , I , o, O (você verá que aparecerá um --INSERT --" no rodapé). Cada um deles permite que a inserção de textoocorra em posições distintas do arquivo. Isto é irrelevante se o arquivoeditado está totalmente vazio (só possui linhas nulas).

a (append) Inclui texto após o cursor;A (append) Inc lu i o texto ao f inal da li nha cor rente, não

importando em que posição o cursor está na l inha;i (insert) Insere texto antes do cursor;I ( insert) I nsere o tex to no início da linha co rrente, não

importando em que posição o cursor está na l inha;o (open) Abre uma nova li nha aba ixo da l inha co rren te e co loca o

cursor no início desta nova l inha;O (open) Abre uma nova l inha acima da li nha co rren te e coloca o

cursor no início desta nova l inha;Para parar de editar aperte a tecla <ESC>

Enquanto está digitando o texto, você pode uti l izar a tecla backspacepara retroceder sobre a linha corrente e corrigir eventuais erros, mas obackspace só funciona na l inha corrente. Para movimentar o cursor para

60

Page 61: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 61/101

outras l inhas do texto é necessário passar para o modo escape, teclandoESC, e a movimentação do cursor pode então ser realizada uti l izando assetas ←↑→↓, ou ainda as teclas h, j , k, e l (em minúsculo):

l Equ ivale à se ta →; De fa to faz o mesmo que a bar ra de espaços,e no modo escape serve para avançar adiante na l inha;

h Equ ivale à se ta ←; De fa to faz o mesmo que backspace, e nomodo escape serve para retornar na l inha;

 j Para mover o cursor para a linha de baixo. Equivale à seta ↓ ;k Para mover o cu rsor para a l inha de cima. Equ ivale à se ta ↑ ;O vi não distribui o texto automaticamente pelas l inhas. Quando uma

linha é digitada além das 80 colunas que normalmente são apresentadasna tela, aparentemente o vi faz um rearranjo no tamanho da l inha, mas defato isto deve ser feito manualmente, digitando ENTER na posição da l inhaonde deseja-se encerrá-la.

5.4.3 Salvando/Saindo do Vim:

Lembre-se que as alterações que você está promovendo estão sendoarmazenadas no buffer de edição. Para gravar estas alterações você deveutilizar o comando last line write. No modo escape, digite : (dois pontos),para entrar no modo last line. Aparecerá um sinal : no canto inferioresquerdo da tela. Digite w (ou write) e pressione ENTER. Após ter sidoconcluída a gravação, o cursor voltará à posição que estava antes deentrar no modo last line.

Sair do vi signif ica encerrar a execução do editor, e

consequentemente abandonar o buffer de edição. Existe mais de umamaneira de encerrar o vi. Na primeira delas você pode uti l izar o comandolast l ine quit. Entre no modo last l ine e então digite q (quit). Se o arquivonão possuir nenhuma alteração no buffer de edição que ainda não estejano disco o vi encerrará imediatamente. Porém se existir alguma alteraçãoque ainda não foi salva em disco, aparecerá uma mensagem indicativa, evocê poderá optar por encerrar o editor sem gravar as alterações usandoo comando q!.

Para salvar as alterações antes de encerrar o vi, você tem três

alternativas. Primeiro você pode utilizar o comando last line wq (writethen quit). Outra opção é uti l izar o comando last l ine x, que faz agravação automaticamente se houver alguma alteração que ainda nãotiver sido salva em disco. E f inalmente você pode uti l izar o comandoescape ZZ, que faz o mesmo que last l ine x.

Resumo dos comandosobs: antes de executar os comandos seguintes, aperte <ESC> para ir

ao modo de comandos, e é claro, após, um <ENTER>

<F12> saída forçada, salva e sai.:w salva o documento:w nome_do_arquivo salva o arquivo corrente como nome_do_arquivo.:q sai do vim

61

Page 62: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 62/101

:wq ou :x ou ZZ salva e sai:w! salva forçado:q! sai do vim sem salvar (forçado):wq! salva e sai forçado

5.4.4 Copiando e Colando

5.4.4.1 usando o mouse:No modo de Inserção mesmo, note que o cursor do teclado (esse

tracinho piscando na tela), está numa posição, e o cursor do mouse (mexao mouse para que ele se mova) está em outra posição.

Selecione uma parte do texto com o mouse, segurando o botãoesquerdo.

Ao colar, o texto selecionado com o MOUSE será colocado a partir docursor do TECLADO. Experimente. dependendo do mouse, a colagem sefaz:

- apertando o botão direito

- segurando o botão esquerdo e apertando o direito ao mesmo tempo- apertando o botão do meio (mouse de 3 botões) Tente, o seu será umas das 3 alternativas acima.

5.4.4.2 usando o modo visual:Entre no modo visual ( <ESC>v ), e simplesmente aperte as setas do

teclado, movendo o cursor do TECLADO e selecionando o texto desejado.Volte para o modo de comandos ( <ESC> ) e posicione o cursor do

 TECLADO no lugar onde você quer colar o texto selecionado. o comando decolagem é o "p" de Paste.

5.4.4.3 Mais subcomandos para copiar e colar:yy Copia a linha onde o cursor se encontra.:nyy Copia as próximas “n” linhas a partir da posição atual docursor.:p Cola o que foi copiado na linha abaixo do cursor atual.

5.4.5 Apagando (deletando):

Como no tópico anterior, use o modo visual ( <ESC>v ) paraselecionar o texto desejado. Para apagá-lo, digite "d", de Delete.

Com o l inux no modo texto, a tecla Delete do teclado tambémfunciona para apagar texto.

5.4.6 Outros Comandos

5.4.6.1 Subcomandos para alteração de TEXTO:

x deleta um caractere que esta sobre o cursordw deleta a palavra, do inicio da posição do cursor ate o fimdd deleta a linha inteira onde o cursor estiver colocando-a no buffer

ndd deleta “n” linhas a partir da posição atual do cursor (n número de linhas)D deleta a linha a partir da posição do cursor em dianterx substitui o caractere sob o cursor pelo especificado x (é opcional indicar o

caractere)

62

Page 63: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 63/101

Rtexto substitui o texto corrente pelo texto indicado (opcional indicar o textoadicionado)

cw substitui a palavra corrente. Pode-se inserir o novo conteúdo da palavraautomaticamente.

cc substitui a linha corrente. Pode-se inserir o novo conteúdo da linhaautomaticamente.

C substitui restante da linha corrente. Pode-se inserir o texto logo após o

comandou desfaz a ultima modificaçãoU desfaz todas as modificações

 J une a linha corrente a próxima:s/velho/novo Substitui a primeira ocorrência de "velho" por "novo" na linhacorrente.:% s/velho/novo Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por

"novo" em cada linha.:% s/velho/novo/g Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho"

por "novo".:% s/velho/novo/gc Igual ao anterior, mas pedindo confirmação para cada substituição.:% s/./u&/gc Converte para maiúsculas (u) o primeiro caracter (.) de cada linha.:e nome_do_arquivo Abrir arquivo nome_do_arquivo.:r nome_do_arquivo Insere o arquivo nome_do_arquivo no ponto onde está o

cursor.

5.4.6.2 Subcomandos para a localização de TEXTO::/palavra procura pela palavra ou caractere acima ou abaixo do texto, marcando

todas as ocorrências da palavra informada:+/palavra Marca todas as ocorrências da palavra informada e posiciona o curso na

próxima ocorrência/ Procura o padrão de caracteres digitado em todo o texto corrente.:?palavra move para a ocorrência anterior da palavra (para repetir a busca usar n)?palavra? procura a “palavra" no texto aciman repete o último comando utilizado / ou ?N repete o último comando / ou ? na direção reversaCtrl + g mostra o nome do arquivo, o numero da linha corrente e o total de linhas

5.4.6.3 Subcomandos para movimentação pelo texto:Enter move uma linha para baixo

Backspace move um caracter a esquerdaEspaço move um caractere a direitaCtrl + f passa para a tela seguinteCtrl + b passa para a tela anteriorCtr - d avanca um telaCtrl - u retorna uma telactrl-l limpa a telaH move o cursor para a primeira linha da telaM move o cursor para o meio da telaL move o cursor para a última linha da telah move o cursor para caractere a esquerda

 j move o cursor para a linha abaixok move o cursor para alinha acimal move o cursor para o caracter a direitaw move cursor para início da próxima palavra (ignora pontuação)

63

Page 64: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 64/101

W move cursor para inicio da próxima palavra (não ignora pontuação)b move cursor para inicio da palavra anterior (ignora pontuação)B move cursor para inicio da palavra anterior (não ignora pontuação)0 (zero) move cursor para inicio da linha corrente^ move cursor para o primeiro caracter não branco da linha$ move cursor para o fim da linha correntenG move para a linha ̈ G¨

G move para a última linha do arquivo

6 Segurança

6.1  Acesso a Diretórios e Arquivos Todos os arquivos em um sistema LINUX fazem parte de um mesmo

sistema de arquivos e, a princípio, podem ser acessados por qualquerusuário daquele sistema. Entretanto há uma maneira de restringir o acessoaos arquivos e diretórios para que somente determinados usuários possamacessá-los. A cada arquivo e diretório é associado um conjunto depermissões. Essas permissões determinam quais usuários podem ler, eescrever (alterar) um arquivo e, no caso de ser um arquivo executável,quais usuários podem executá-lo. Se um usuário tem permissão deexecução para um diretório, signif ica que ele pode realizar buscas dentro

daquele diretório, e não executá-lo como se fosse um programa.Quando um usuário cria um arquivo ou um diretório, o LINUXdetermina que ele é o proprietário (owner) daquele arquivo ou diretório. Oesquema de permissões do LINUX permite que o proprietário determinequem tem acesso e em que modalidade eles poderão acessar os arquivos ediretórios que ele criou. O superusuário, entretanto, tem acesso aqualquer arquivo ou diretório do sistema de arquivos

6.2 Permissões de acesso a arquivos e diretórios

A permissão de acesso protege o sistema de arquivos Linux do

acesso indevido de pessoas ou programas não autorizado.A permissão de acesso do GNU/Linux também impede que umprograma mal intencionado, por exemplo, apague um arquivo que nãodeve, envie arquivos para outra pessoa ou forneça acesso da rede para

64

Page 65: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 65/101

que outros usuários invadam o sistema. O sistema GNU/Linux é muitoseguro e como qualquer outro sistema seguro e confiável impede queusuários iniciantes (ou mal intencionados) instalem programas enviadospor terceiros sem saber para que eles realmente servem e causem danosirreversíveis em seus arquivos, seu micro ou sua empresa.

6.3 Donos, grupos e outros usuários

O princípio da segurança no sistema de arquivos GNU/Linux é definiro acesso aos arquivos por donos, grupos e outros usuários:

dono – (owner) - É a pessoa que criou o arquivo ou o diretório. Onome do dono do arquivo/diretório é o mesmo do usuário usado paraentrar no sistema GNU/Linux. Somente o dono pode modificar aspermissões de acesso do arquivo.

As permissões de acesso do dono de um arquivo somente se aplicamao dono do arquivo/diretório. A identif icação do dono também é chamadade user id (UID).

A identif icação de usuário e o nome do grupo que pertence são

armazenadas respectivamente nos arquivos /etc/passwd e /etc/group.Estes são arquivos textos comuns e podem ser editados em qualquereditor de texto, mas tenha cuidado para não modificar o campo quecontém a senha do usuário encriptada (que pode estar armazenada nestearquivo caso não estiver usando senhas ocultas).

grupo – ( group ) - Para pe rmitir que vário s u suário s d iferentestivessem acesso a um mesmo arquivo (já que somente o dono poderia teracesso ao arquivo), este recurso foi criado. Cada usuário pode fazer partede um ou mais grupos e então acessar arquivos que pertençam ao mesmogrupo que o seu (mesmo que estes arquivos tenham outro dono).

Por padrão, quando um novo usuário é criado, o grupo ele pertenceráserá o mesmo de seu grupo primário. A identificação do grupo é chamadade gid (group id).

Um usuário pode pertencer a um ou mais grupos. Para detalhes decomo incluir o usuário em mais grupos veja Adicionando um novo grupo aum usuário

outros – (others) - É a categoria de usuários que não são donos ounão pertencem ao grupo do arquivo.

Cada um dos tipos acima possui três tipos básicos de permissões deacesso que serão vistas a seguir.

6.4 Tipos de Permissões de acessoQuanto aos tipos de permissões que se aplicam ao dono , grupo e

outros usuários , temos 3 permissões básicas:r - Permissão de leitura (read) para arquivos. Caso for um diretório,

permite l istar seu conteúdo (através do comando ls, por exemplo).w - Permissão de gravação/escrita (write) para arquivos. Caso for um

diretório, permite a criação de arquivos ou outros diretórios dentro dele.Para que um arquivo/diretório possa ser apagado, é necessário o

acesso a gravação.x - Permite executar (execute) um arquivo (caso seja um programa

executável). Caso seja um diretório, permite que seja acessado através docomando cd.

65

Page 66: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 66/101

As permissões de acesso a um arquivo/diretório podem servisualizadas com o uso do comando ls -la. As 3 letras (rwx) são agrupadasda seguinte forma:

-rwxrwxrwx gleydson users teste

A primeira letra diz qual é o tipo do arquivo. Caso tiver um "d" é umdiretório, um "l" um link a um arquivo no sistema (veja ln, Seção 10 .4 para

detalhes) , um "-" quer dizer que é um arquivo comum, etc.Da segunda a quarta letra (rwx) dizem qual é a permissão de acessoao dono do arquivo. Neste caso gleydson ele tem a permissão de ler (r -read), gravar (w - write) e executar (x - execute) o arquivo teste.

Da quinta a sétima letra (rwx) diz qual é a permissão de acesso aogrupo do arquivo. Neste caso todos os usuários que pertencem ao grupousers têm a permissão de ler (r), gravar (w), e também executar (x) oarquivo teste.

Da oitava a décima letra (rwx) diz qual é a permissão de acesso paraos outros usuários . Neste caso todos os usuários que não são donos doarquivo teste têm a permissão para ler, gravar e executar o programa.

6.5 Etapas para acesso a um arquivo/diretório

O acesso a um arquivo/diretório é feito verif icando primeiro se ousuário que acessará o arquivo é o seu dono , caso seja, as permissões dedono do arquivo são aplicadas. Caso não seja o do no do arquivo/diretório,é verif icado se ele pertence ao grupo correspondente, caso pertença, aspermissões do grupo são aplicadas. Caso não pertença ao grupo , sãoverificadas as permissões de acesso para os outros usuários que não sãodonos e não pertencem ao grupo correspondente ao arquivo/diretório.

Após verificar aonde o usuário se encaixa nas permissões de acesso

do arquivo (se ele é o dono , pertence ao grupo , ou outros usuários), éverif icado se ele terá permissão acesso para o que deseja fazer (ler,gravar ou executar o arquivo), caso não tenha, o acesso é negado,mostrando uma mensagem do tipo: "Permission denied" (permissãonegada).

O que isto que dizer é que mesmo que você seja o dono do arquivo edefinir o acesso do dono (através do comando chmod) como somenteleitura (r) mas o acesso dos outros usuários como leitura e gravação, vocêsomente poderá ler este arquivo mas os outros usuários poderão ler/gravá-lo.

As permissões de acesso (leitura, gravação, execução) para donos,grupos e outros usuários são independentes, permitindo assim um nível deacesso diferenciado.

Lembre-se: Somente o dono pode modificar um arquivo/diretório!

6.6 Exemplos práticos de permissões de acesso

Abaixo dois exemplos práticos de permissão de acesso. Os doisexemplos são explicados passo a passo para uma perfeita compreensão doassunto.

6.6.1 Exemplo de acesso a um arquivoAbaixo um exemplo e explicação das permissões de acesso a um

arquivo no GNU/Linux (obtido com o comando ls –la):

66

Page 67: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 67/101

-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste

-rwxr-xr-- Estas são as permissões de acesso ao arquivo teste. Umconjunto de 10 letras que especif icam o tipo do arquivo, permissão dodono do arquivo, grupo do arquivo e outros usuários. Veja a explicaçãodetalhada sobre cada uma abaixo:

-rwxr-xr-- A primeira letra (do conjunto das 10 letras) determina otipo do arquivo. Se a letra for um d é um diretório, e você poderá acessá-lo usando o comando cd. Caso for um l é um link simbólico para algumarquivo ou diretório no sistema. Um - significa que é um arquivo normal.

-rwxr-xr-- Estas 3 letras (da segunda a quarta do conjunto das 10letras) são as permissões de acesso do dono do arquivo teste. O dono(neste caso gleydson) tem a permissão para ler (r), gravar (w) e executar(x) o arquivo teste.

-rwxr-xr-- Estas 3 letras (da quinta a sétima do conjunto das 10letras) são as permissões de acesso dos usuários que pertencem ao grupouser  do arquivo teste. Os usuários que pertencem ao grupo user  tem apermissão somente para ler (r) e executar (x) o arquivo teste não podendo

modificá-lo ou apagá-lo.-rwxr-xr-- Estas 3 letras (da oitava a décima) são as permissões deacesso para usuários que não são donos do arquivo teste e que nãopertencem ao grupo user . Neste caso, estas pessoas somente terão apermissão para ver o conteúdo do arquivo teste.

gleydson Nome do dono do arquivo teste.user  Nome do grupo que o arquivo teste pertence.teste Nome do arquivo.

6.6.2 Exemplo de acesso a um diretório

Abaixo um exemplo com explicações das permissões de acesso a umdiretório no GNU/Linux:

drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo

drwxr-x--- Permissões de acesso ao diretório exemplo. É um conjuntode 10 letras que especif icam o tipo de arquivo, permissão do dono dodiretório, grupo que o diretório pertence e permissão de acesso a outrosusuários. Veja as explicações abaixo:

drwxr-x--- A primeira letra (do conjunto das 10) determina o tipo doarquivo. Neste caso é um diretório porque tem a letra d.

drwxr-x--- Estas 3 letras (da segunda a quarta) são as permissões deacesso do dono do diretório exemplo. O dono do diretório (neste casogleydson) tem a permissão para listar arquivos do diretório (r), gravararquivos no diretório (w) e entrar no diretório (x).

drwxr-x--- Estas 3 letras (da quinta a sétima) são as permissões deacesso dos usuários que pertencem ao grupo user . Os usuários quepertencem ao grupo user  têm a permissão somente para l istar arquivos dodiretório (r) e entrar no diretório (x) exemplo.

drwxr-x --- Estas 3 letras (da oitava a décima) são as permissões deacesso para usuários que não são donos do diretório exemplo e que nãopertencem ao grupo user . Com as permissões acima, nenhum usuário que

se encaixe nas condições de dono e grupo do diretório tem a permissão deacessá-lo.

gleydson Nome do dono do diretório exemplo.user  Nome do grupo que diretório exemplo pertence.

67

Page 68: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 68/101

exemplo Nome do diretório.

OBSERVAÇÕES :O usuário root não tem nenhuma restrição de acesso ao sistema.Se você tem permissões de gravação no diretório e tentar apagar um

arquivo que você não tem permissão de gravação, o sistema perguntará sevocê confirma a exclusão do arquivo apesar do modo leitura. Caso você

tenha permissões de gravação no arquivo, o arquivo será apagado porpadrão sem mostrar nenhuma mensagem de erro (a não ser que sejaespecif icada a opção -i com o comando rm).

Por outro lado, mesmo que você tenha permissões de gravação emum arquivo, mas não tenha permissões de gravação em um diretório, aexclusão do arquivo será negada.

Isto mostra que é levado mais em consideração a permissão deacesso do diretório do que as permissões dos arquivos e sub-diretóriosque ele contém. Este ponto é muitas vezes ignorado por muitas pessoas eexpõem seu sistema a riscos de segurança. Imagine o problema que algumusuário que não tenha permissão de gravação em um arquivo mas que atenha no diretório pode causar em um sistema mal administrado.

6.7 A conta root 

A conta root é também chamada de super usuário , este é um loginque não possui restrições de segurança. A conta root somente deve serusada para fazer a administração do sistema, e usada o menor tempopossível.

Qualquer senha que criar deverá conter de 6 a 8 caracteres, etambém poderá conter letras maiúsculas e minúsculas, e tambémcaracteres de pontuação. Tenha um cuidado especial quando escolher suasenha root, porque ela é a conta mais poderosa. Evite palavras dedicionário ou o uso de qualquer outros dados pessoais que podem seradivinhados.

Se qualquer um lhe pedir senha root, seja extremamente cuidadoso.Você normalmente nunca deve distribuir sua conta root, a não ser queesteja administrando um computador com mais de um administrador dosistema.

Utilize uma conta de usuário normal ao invés da conta root paraoperar seu sistema. Porque não usar a conta root? Bem, uma razão paraevitar usar privilégios root é por causa da facilidade de se cometer danos

irreparáveis como root. Outra razão é que você pode ser enganado e rodarum programa Cavalo de Tróia -- que é um programa que obtém poderes dosuper usuário para comprometer a segurança do seu sistema sem que vocêsaiba.

6.8 Modo de permissão

6.8.1 Formato octal

O modo octal é um conjunto de oito números onde cada númerodefine um tipo de acesso diferente.

É mais flexível gerenciar permissões de acesso usando o modo octalao invés do comum, pois você especif ica diretamente a permissão dodono, grupo e outros ao invés de gerenciar as permissões de cada umseparadamente. Abaixo a l ista de permissões de acesso octal:

68

Page 69: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 69/101

r w x0 0 0 0 Nenhuma permissão de acesso1 0 0 1 Permissão de execução2 0 1 0 Permissão de gravação3 0 1 1 Permissão de gravação e execução4 1 0 0 Permissão de leitura

5 1 0 1 Permissão de leitura e execução6 1 1 0 Permissão de leitura e gravação7 1 1 1 Permissão de leitura, gravação e

execução

O uso de um destes números define a permissão de acesso do dono ,grupo ou outros usuários . Um modo fácil de entender como as permissõesde acesso octais funcionam, é através do modo 421 .

421 4 = Ler 2 = Gravar 1 = Executar 

* Basta agora fazer a soma das permissões para Dono, Grupo e Outros.• Somente permissão de execução, use 1.• Somente a permissão de leitura, use 4.• Somente permissão de gravação, use 2.• Permissão de leitura/gravação, use 6 (equivale a 2+4 / Gravar+Ler).• Permissão de leitura/execução, use 5 (equivale a 1+4 /

Executar+Ler).• Permissão de execução/gravação, use 3 (equivale a 1+2 /

Executar+Gravar).• Permissão de leitura/gravação/execução, use 7 (equivale a 1+2+4 /

Executar+Gravar+Ler).6.8.2 Formato simbólico do modo de permissões

O formato simbólico usa letras e símbolos para indicar o modo depermissão. Ele é composto de três elementos:

 Tipo de usuário:u Usuário ( Proprietário )g Grupoo Outrosa Todos

Ação: A ação signif ica como serão alteradas as permissões.

+ Acrescenta permissão(ões)- Remove permissão(ões)= Atribui a permissão explicitamente

Os operadores + e - acrescentam e removem as permissões relativasao modo de permissão corrente. O operador = reinicial iza todas aspermissões explicitamente (exatamente como indicado).

Tipo de permissãor Leituraw Gravaçãox Execução

A combinação desses três elementos forma o modo de

permissão no formato simbólico.

69

Page 70: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 70/101

6.9 chmod – Alterando o permissionamento de arquivos ediretórios

O comando chmod (change mode)muda a permissão de acesso a umarquivo ou diretório. Com este comando você pode escolher se usuário ougrupo terá permissões para ler, gravar, executar um arquivo ou arquivos.Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu

grupo é o grupo do usuário.chmod [opções] [ permissões] [diretório/arquivo ]

Onde:diretório/arquivo Diretório ou arquivo que terá sua permissãomudada.opções  -R Muda permissões recursi vamente de acesso do diretório/arquivo no

diretório atual e subdiretórios.ugoa+-=rwx

• ugoa Controla que nível de acesso será mudado. Especif icam,

em ordem, usuário (u), grupo (g), outros (o), todos (a).• +-= + coloca a permissão, - retira a permissão do arquivo e =

define a permissão exatamente como especif icada.• Rwx r  permissão de leitura do arquivo. w permissão de

gravação.  x  permissão de execução (ou acesso a diretórios).chmod não muda permissões de links simbólicos, as permissões

devem ser mudadas no arquivo alvo do l ink. Também podem ser usadoscódigos numéricos octais para a mudança das permissões de acesso aarquivos/diretórios.

DICA: É possível copiar permissões de acesso do arquivo/diretório,por exemplo, se o arquivo teste.txt tiver a permissão de acesso r-xr----- evocê digitar chmod o=u, as permissões de acesso dos outros usuários (o)serão idênticas ao do dono (u). Então a nova permissão de acesso doarquivo teste.txt será r-xr--r-x

Exemplos de permissões de acesso:chmod g+r * Permite que todos os usuários que pertençam ao grupo

dos arquivos (g) tenham (+) permissões de leitura (r) em todosos arquivos do diretório atual.

chmod o-r teste.txt Retira (-) a permissão de leitura (r) do arquivoteste.txt para os outros usuários (usuários que não são donos e

não pertencem ao grupo do arquivo teste.txt).chmod uo+x teste.txt Inclui (+) a permissão de execução do arquivoteste.txt para o dono e outros usuários do arquivo.

chmod a+x teste.txt Inclui (+) a permissão de execução do arquivoteste.txt para o dono, grupo e outros usuários.

chmod a=rw teste.txt Define a permissão de todos os usuáriosexatamente (=) para leitura e gravação do arquivo teste.txt.

chmod go-x teste Retira (-) a permissão de execução (x) doarquivo teste para o grupo e dos outros usuários.

chmod 764 teste Os números são interpretados da direita para aesquerda como permissão de acesso aos outros usuários (4),grupo (6), e dono (7). O exemplo acima faz os outros usuários(4) terem acesso somente leitura (r) ao arquivo teste, o grupo(6) ter a permissão de leitura e gravação (w), e o dono (7) ter

70

Page 71: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 71/101

permissão de leitura, gravação e execução (rwx) ao arquivoteste.

chmod 40 teste Define a permissão de acesso dos outros usuários(0) como nenhuma, e define a permissão de acesso do grupo(4) como somente leitura (r). Note usei somente dois números eentão a permissão de acesso do dono do arquivo não émodificada (leia as permissões de acesso da direita para a

esquerda!).chmod 751 teste Define a permissão de acesso dos outrosusuários (1) para somente execução (x), o acesso do grupo (5)como leitura e execução (rx) e o acesso do dono (7) comoleitura, gravação e execução (rwx).

6.10  chgrp –Alterando o grupo

O comando chgrp (change group) muda a identif icação do grupo deum arquivo ou diretório. Pode ser uti l izado para conceder permissão deleitura e escrita para outro grupo que não o seu, sem ter que conceder as

mesmas permissões para todos os demais usuários. Você só poderá mudaro grupo do arquivo que você mesmo criou. Além de você somente osuperusuário poderá fazer isso.

chgrp [opções] [grupo] [arquivo/diretório]

Onde:grupo Novo grupo do arquivo/diretório .arquivo/diretório Arquivo/diretório que terá o grupo alterado.opções  -R Al tera os grupos de arquivos/subdiretórios do di retór io atual .

Exemplo: Mude o grupo do arquivo memo1 para users2 :$ ls - l memo1-rw- r --r-- 1 guest users 984 May 12 11:02memo1$ chgrp users2 memo1$ ls - l memo1-rw- r --r-- 1 guest users2 984 May 12 11:02memo1$

6.11

chown – Alterando o donoO comando chown (change owner) é usado para mudar a

identif icação de proprietário associada a um arquivo/diretório. Você sópoderá aplicar este comando aos arquivos que você mesmo criou. Além devocê somente o superusuário poderá fazê-lo. Observe que uma vez quevocê tenha alterado a identif icação de proprietário que está associada aum arquivo, você não é mais o proprietário, e não poderá mais fazer aalteração inversa.

Opcionalmente pode também ser usado para mudar o grupo.

chown [opções] [dono.grupo] [diretório/arquivo]

onde:dono.grupo Nome do dono.grupo que será atribuído ao

diretório/arquivo . O grupo é opcional.

71

Page 72: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 72/101

diretório/arquivo Diretório/arquivo que o dono.grupo será modificado.opções  -R Al tera dono e grupo de arquivos no diretório atual e subdiretórios .

O dono.grupo pode ser especif icado usando o nome de grupo ou ocódigo numérico correspondente ao grupo (GID).

Exemplos:chown joão teste.txt Muda o dono do arquivo teste.txt para joão.

chown joão.users teste.txt Muda o dono do arquivo teste.txt para joão eseu grupo para users.chown -R joao. use rs * Muda o dono/g rupo dos a rquivos do d ire tório

atual e sub-diretórios para joão/users (desde que vocêtenha permissões de gravação no diretórios e sub-diretórios).

6.12  umask – Mudando as permissões padrão

O comando umask (user mask ) define ou muda o modo padrão depermissões iniciais do dono, grupo e outros usuários que o

arquivo/diretório receberá quando for criado ou copiado. No comando,número é um número octal de três dígitos, como visto no comando chmod.Entretanto aqui você especif ica de maneira inversa, isto é, em chmod sevocê uti l izar número igual a 777, você estará concedendo autorização deleitura + escrita + execução para você mesmo, para o grupo e para todosos demais usuários. Com o comando umask se você especificar númeroigual a 777, você estará negando acesso a todas as classes em qualquermodo. De fato, a permissão que será concedida é dada pela diferençaentre a permissão padrão original, que é 777, para diretórios e 666 paraarquivos, e a permissão especif icada em umask. Por Exemplo:

Diretórios: Permissão padrão 777 (rwxrwxrwx)Valor em umask 023Novas permissões 754 (rwxr -xr-- )

Arquivos: Permissão padrão 666 (rw-rw- rw-)Valor em umask 022Novas permissões 644 (rw-r --r --)

Sem especif icar um número umask mostrará o valor corrente damáscara de permissões. Os arquivos e diretórios criados antes do uso docomando permanecem com as permissões inalteradas.

Digite umask sem parâmetros para retornar o valor de sua umaskatual.

A umask tem efeitos diferentes caso o arquivo que estiver sendocriado for binário (um programa executável) ou texto . Veja a tabela aseguir para ver qual é a mais adequada a sua situação:

umask Arquivo DiretórioBinári

o Text

o0 r-x rw- rwx1 r-- rw- rw-2 r-x r-- r-x3 r-- r-- r--4 --x -w- -wx5 --- -w- -w-6 --x --- --x7 --- --- ---

72

Page 73: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 73/101

Um arquivo texto criado com o comando umask 012;touch texto.txtreceberá as permissões -rw-rw-r--, pois 0 (dono) terá permissões rw-, 1(grupo), terá permissões rw- e 2 (outros usuários) terão permissões r--.Um arquivo binário copiado com o comando umask 012;cp /bin/ls /tmp/lsreceberá as permissões -r-xr--r-x (confira com a tabela acima).

Por este motivo é preciso um pouco de atenção antes de escolher a

umask, um valor mal escolhido poderia causar problemas de acesso aarquivos, diretórios ou programas não sendo executados. O valor padrãoda umask na maioria das distribuições atuais é 022.

A umask é de grande uti l idade para programas que criamarquivos/diretórios temporários, desta forma pode-se bloquear o acesso deoutros usuários desde a criação do arquivo, evitando recorrer ao chmod.

umask [ permissão]

Exemplos :1- Mostrar o valor atual da máscara de permissões:

$ umask

022$

2- Mudar o valor da máscara para que os novos arquivos tenham aseguinte permissão : proprietário com acesso a leitura e escrita, grupocom acesso a leitura e execução e outro somente para leitura :

$ umask 012

6.13 id - A identificação do usuário/grupo

O comando id mostra o número e o nome que identif ica o usuário eseu grupo. As informações do grupo (GID) e dos usuários (UID) mostradas

pelo comando id são tiradas do arquivo /etc/passwd. Se o nome de umgrupo não for mostrado é porque o grupo primário do usuário que estádefinido no arquivo /etc/passwd não existe no arquivo /etc/group.

id

Exemplo: Mostrar a identif icação do usuário e do grupo a que pertence:$ idUID=528 (guest) GID=100 (users) GROUPS=100 (users)

6.14 newgrp - Participação em grupos

Um usuário pode pertencer a mais de um grupo ao mesmo tempo,contanto que ele esteja como membro de cada um desses grupos noarquivo /etc/group. Entretanto, o número de identif icação de grupoespecif icado no arquivo /etc/passwd continuará valendo como o grupoprimário do usuário. Esta identificação está associada aos arquivos ediretórios criados pelo usuário.

Ser um membro de um grupo signif ica ter acesso aos arquivos ediretórios pertencentes aos demais membros do mesmo grupo. O comandoid mostra a identif icação do usuário e do grupo. Os arquivos pertencentesa grupos diferentes do grupo primário do usuário, mas de grupos aos quaiso usuário pertence, podem ser acessados com o uso dos seguintescomandos:

chg rp Qu e modifica a identifi cação de g rupo associada aum arquivo ou diretório;

73

Page 74: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 74/101

newgrp Que mod if ica temporar iamente a vinculação de umusuário a um grupo. Os arquivos e diretórios criados depois que o usuáriomuda para outro grupo, refletem o "novo" grupo.

newgrp [grupo]

O comando newgrp muda temporariamente o grupo ao qual vocêpertence, dando-lhe acesso a todos os arquivos e diretórios acessíveis aos

membros do novo grupo. Para que você possa mudar de identidade degrupo, seu nome de usuário deve estar no arquivo /etc/group para o grupoao qual você deseja mudar. Sem argumentos o comando retorna o nome dogrupo ao que você está vinculado.Exemplo : Mude o grupo corrente para users2 :$ idUID=528( guest ) GID=100( users ) GROUPS=100( users )$ newgrp users2$ idUID=528( guest ) GID=200( users2 ) GROUPS=200( users2 )$

74

Page 75: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 75/101

7 Redirecionamentos e Pipe

7.1 Entrada e Saída dos comandos

Os operadores de redirecionamento do Shell são usados, assim comoem qualquer sistema, para direcionar a saída ou a entrada dos programas.

Quase todos os comandos do LINUX usam uma entrada e produzemuma saída. A entrada para um comando são os dados sobre os quais ocomando irá operar. Esses dados podem vir de um arquivo especif icadopelo usuário, de um arquivo de sistema do LINUX, do terminal (do teclado)

ou da saída de outro comando. A saída de um comando é o resultado daoperação que ele realiza sobre a entrada. A saída do comando pode serimpressa na tela do terminal, enviada a um arquivo, ou servir de entradapara outro comando.

Nas seções seguintes você vai aprender a manipular estas entradas esaídas, para poder criar e ler arquivos durante o uso de alguns comandos,e também aprenderá a encadear comandos, fazendo com que um comandoutilize como entrada a saída de outro.

7.2  Entrada e Saída Padrão:

Alguns comandos têm apenas uma fonte possível para a entrada; porexemplo, o comando date sempre uti l iza o sistema interno de relógio paraindicar a data e hora. Outros comandos exigem que você especif ique umaentrada. Se não especif icar uma fonte de entrada juntamente com essescomandos, o LINUX considera que ela virá do teclado, isto é, ele esperaráque você digite a entrada. Por isso o teclado é chamado de entradapadrão.

As informações do teclado são uti l izadas no processamento, e parasua facil idade o LINUX também ecoa (apresenta na tela) o que vocêdigitar. Desta forma, você pode certif icar-se de ter digitado os comandocorretamente.

Normalmente, quase todos os comandos enviam suas saídas para atela do terminal, que é chamada de saída padrão. Como com as entradas,você também pode redirecionar as saídas dos comandos para outrodestino que não é a saída padrão, por exemplo, para arquivos ou para aentrada de outros comandos.

Alguns comandos, como rm, mv e mkdir não produzem nenhumasaída. Entretanto esses comandos e muitos outros podem apresentarmensagens de erro na tela se não obtiverem sucesso no seuprocessamento. Isto ocorre porque a tela do terminal também é a saída deerros padrão, isto é, o local para onde são enviadas as mensagens de erro.

As mensagens de erro dos comandos não devem ser confundidas com assaídas dos comandos.A Shell do LINUX redireciona a fonte e o destino da entrada, de modo

que o comando não percebe se a entrada padrão está direcionada para o

75

Page 76: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 76/101

teclado do terminal ou para um arquivo. Da mesma forma, o comando nãopercebe se a saída padrão está direcionada para a tela do terminal, paraum arquivo ou para a entrada de outro comando.

7.3 Redirecionamento de E/S

Há três métodos básicos para redirecionar a entrada ou saída de umcomando. Uma delas é simplesmente fornecer como argumento para ocomando o nome do arquivo que deve ser usado como entrada ou saídapara o comando. Este método funciona com alguns comandos, como porexemplo, cat, pg e outros. Já comandos como o pwd não podem receberum arquivo como argumento. Mesmo com os fi ltros (classe de comandos aqual pertencem o cat e o pg) nem sempre é possível especificar a saída.

Outro método para redirecionar a entrada ou saída é uti l izar ossímbolos de redirecionamento. Como muitos comandos podem receberarquivos de entrada sob a forma de argumentos, os símbolos deredirecionamento são mais utilizados para direcionar a saída doscomandos.

Um terceiro método de redirecionar entradas e saídas é usandopipes, que enviam a saída de um comando para outro, ou seja, a saída deum comando serve como entrada para outro comando.

7.4 Símbolos de redirecionamento

Os caracteres especiais uti l izados na l inha do comando para fazer oShell redirecionar a entrada, saída ou erro do programa estão l istados edescritos a seguir. O Shell interpreta esses caracteres antes do comandoser executado.

7.4.1 < Redirecionamento de entradaO símbolo < (menor que) faz com que a entrada padrão seja

direcionada a um arquivo. Em muitos casos, especif icar < funcionaexatamente como especif icar o nome do arquivo como argumento docomando.

comando < arquivo

Por exemplo:$ cat Arquivo.teste$ cat < Arquivo.teste

produzirão exatamente o mesmo efeito.

7.4.2 > Redirecionamento de saída

O símbolo > (maior que) redireciona a saída de umprograma/comando/script para algum dispositivo ou arquivo ao invés dodispositivo de saída padrão (tela). Quando é usado com arquivos, esteredirecionamento cria ou substitui o conteúdo do arquivo.

Por exemplo, você pode usar o comando ls para l istar arquivos e usarls > l istagem para enviar a saída do comando para o arquivo l istagem. Use

o comando cat para visualizar o conteúdo do arquivo l istagem.O mesmo comando pode ser redirecionado para o segundo console/dev/tty2 usando: ls >/dev/tty2, o resultado do comando ls será mostrado

76

Page 77: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 77/101

no segundo console (pressione ALT e F2 para mudar para o segundoconsole e ALT e F1 para retornar ao primeiro).

comando > arquivo ou comando >> arquivo

Exemplo : Guarde no arquivo data.de.hoje a saída do comando date :$ date > data.de.hoje$ cat data.de.hoje

Mon May 20 10:10:28 WST 1996

7.4.3 >>

Redireciona a saída de um programa/comando/script para algumdispositivo ou final de arquivo ao invés do dispositivo de saída padrão(tela). A diferença entre este redirecionamento duplo e o simples, é secaso for usado com arquivos, adiciona (anexa) a saída do comando ao finaldo arquivo existente ao invés de substituir seu conteúdo.

Por exemplo, você pode acrescentar a saída do comando ls aoarquivo listagem do capítulo anterior usando ls / >>listagem. Use o

comando cat para visualizar o conteúdo do arquivo l istagem.comando >> arquivo ou comando >> arquivo

Exemplo: Acrescente ao arquivo data.de.hoje a saída do comando who :$ who >> data.de.hoje$ cat data.de.hojeMon May 20 10:10:28 WST 1996guest tty1 May 20 08:52

7.4.4 <<

Este redirecionamento serve principalmente para marcar o fim deexibição de um bloco. Este é especialmente usado em conjunto com ocomando cat, mas também tem outras aplicações.

comando << arquivo ou comando >> arquivo

Por exemplo:cat << finaleste arquivoserá mostradoaté que a palavra final seja

localizada no inicio da linhafinal

7.4.5 | (pipe)

Os símbolos de redirecionamento permitem realizar mais de umaoperação em um mesmo arquivo. Somente com esses símbolos você já temcondições de realizar tudo o que quiser sobre um arquivo. Suponha,entretanto, que você queira fazer um conjunto de operações diferentes emum mesmo arquivo. Cada operação implicaria a criação de um novoarquivo, sendo que o único propósito desses arquivos seria servir comoentrada para outro comando. Entretanto, tudo o que importa é o resultadofinal. Para situações como essas o LINUX possui outra maneira deredirecionar entradas e saídas: os pipes.

77

Page 78: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 78/101

O pipe ( | ) envia a saída de um comando para a entrada do próximocomando para continuidade do processamento. Os dados enviados sãoprocessados pelo próximo comando que mostrará o resultado doprocessamento.

comando 1 | comando 2

Você pode usar vários pipes em uma linha de comando, de maneira

que é possível combinar tantos comandos quantos necessários, bastandointercalá-los por símbolos de pipe. Uma seqüência de comandosencadeados desta maneira é chamada de pipeline.

Existem algumas regras básicas para compor um pipeline em umalinha de comandos LINUX. Essencialmente essas regras são o endosso daintuição de um usuário um pouco mais experiente, que facilmente percebeque em um pipeline não pode haver "vazamentos" nem "entupimentos" dopipe, isto é, não pode haver no meio do pipeline um comando que nãoproduza saídas (como é o caso do mkdir ou rm), ou um comando que nãoaceite entradas (como é o caso do date e pwd). O primeiro comando dopipeline deve ser um produtor de saída, obviamente.

Exemplo:$ ls – la | more esta l inha de comando faz a l is tagem longa de arquivos

que é enviado ao comando more (que tem a função deefetuar uma pausa a cada 25 l inhas do arquivo).

$ l s | grep arq | wc – l esta l inha de comando conta o número dearquivos que começam com a substring ‘arq’ no diretóriocorrente :

$ who | wc –l esta l inha de comando conta o número de usuários queestão presentes no sistema neste momento.

Outro exemplo é o comando "locate find|grep bin/", neste comando

todos os caminhos/arquivos que contém find na listagem serão mostrados(inclusive man pages, bibliotecas, etc.), então enviamos a saída destecomando para grep bin/ para mostrar somente os diretórios que contémbinários. Mesmo assim a listagem ocupe mais de uma tela, podemosacrescentar o more: locate find | grep bin/ | more.

Podem ser usados mais de um comando de redirecionamento (<, >,|) em um mesmo comando.

7.4.6 Diferença entre o "|" e o ">"

A principal diferença entre o "|" e o ">", é que o Pipe envolve

processamento entre comandos, ou seja, a saída de um comando éenviada a entrada do próximo e o ">" redireciona a saída de um comandopara um arquivo/dispositivo.

Você pode notar pelo exemplo acima (ls –la | more) que ambos ls emore são comandos porque estão separados por um "|"! Se um deles nãoexistir ou estiver digitado incorretamente, será mostrada uma mensagemde erro.

Um resultado diferente seria obtido usando um ">" no lugar do "|"; Asaída do comando ls -la seria gravada em um arquivo chamado more.

7.4.7 tee – Redirecionamentos multiplosO comando tee "divide" a saída de um comando e redireciona-a para

múltiplos destinos: para um arquivo especif icado e para a saída padrão

78

Page 79: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 79/101

(tela). O comando tee em geral é uti l izado como um pedaço de umpipeline. Se não estiver em um pipeline, o comando tee se comporta demaneira semelhante ao comando cat: recebendo l inhas na entrada eecoando-as na saída.

tee [opções] arquivo

comando | tee [arquivo]

Opções:-a Faz a sa ída ser anexada aos arquivos espec if icados , em vez de

substituir seus conteúdos;

Exemplos:$ ls –la | tee listagem.txt A saí da do comando será mostrada

normalmente na tela e ao mesmo tempo gravada no arquivolistagem.txt.

$ ls | grep arq | tee nomes | wc –l Este comando conta o númerode arquivos que começam com a substring ‘arq’ no diretório

corrente e guarde os arquivos encontrados no arquivo nomes.$ cat < arq2 | grep L inux | tee resp | wc – l Este comando conta onúmero de ocorrências da cadeia “Linux” no arquivo arq2,guarde as ocorrências no arquivo resp.

7.5 Redirecionamento de erro padrão

A entrada e a saída padrão possuem números de arquivos atribuídosno Shell. A entrada padrão está associada ao número 0 e a saída padrãoao número 1. A saída de erro padrão é para onde os programas enviamsuas mensagens de erros. Ela também possui um número, o 2. A

mensagem de erro gerada por um comando é normalmente direcionadapelo Shell para a saída de erro padrão, que é a mesma da saída padrão eenvia a mensagem de erro para a tele do nosso monitor.

A saída de erro padrão também pode ser redirecionada para umarquivo, uti l izando o símbolo >. Uma vez que este símbolo também éuti l izado para redirecionar a saída padrão, é necessário fazer umadistinção mais detalhada para evitar ambigüidade.

Os descritores de arquivos a seguir especif icam a entrada padrão,saída padrão e saída de erro padrão:

0 Entrada padrão;1 Saída padrão;2 Saída de erro padrão;

O descritor do arquivo deve ser colocado imediatamente antes doscaracteres de redirecionamento. Por exemplo, 1> indica a saída padrão,enquanto 2> indica a saída de erro padrão. Assim, o comando mkdir temp2> errfile faz o Shell direcionar qualquer mensagem de erro para o arquivoerrfi le. As indicações da entrada padrão (0>) e saída padrão (1>) sãonecessárias apenas para evitar ambigüidade.

Exemplo:$ find / -name meu.arquivo > find.res p 2> find.erro

$ cat find.resp/home/guest/meu.arquivo$cat find.errofind : /guest/1/fd : permission denied

79

Page 80: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 80/101

find : /guest/adm/.netscape : permission denied$

8 Gerenciamento da execução decomandos/programas

8.1 Processos

Cada vez que você executa um comando, um processo é iniciado.

Processo é o nome oficial de um comando que está sendo executado. Acada processo é designado um número único, e o computador controla adistribuição do tempo de processamento entre os processos que estãorodando, baseado neste número. Como o LINUX só dispõe de um únicoprocessador, ele trabalha em cada processo durante um tempo muito curtoe depois passa para outro processo, parecendo assim que todos osprocessos estão rodando simultaneamente. Desta forma, cada processo éexecutado com relativa rapidez e os usuários não precisam esperar otérmino dos outros processos para que o seu seja executado.

O processo associado a cada comando permanece ativo apenas até oencerramento da execução do comando. Você pode ter controle sobre osprocessos que estão rodando, listando-os, parando-os ou matando-os.

8.2 Estrutura de processos

Semelhante ao sistema de arquivos, a organização dos processos éhierárquica. Apresenta pais e f i lhos, e até mesmo um processo raiz. Oprocesso pai cria o processo filho, que também pode criar outrosprocessos. O termo nascer (spawn) é utilizado para indicar a criação deprocessos. O primeiro processo iniciado quando o sistema é inicializado éo init. Semelhante ao diretório raiz, no sistema de arquivos, este processoé o ancestral de todos os processos.

80

Page 81: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 81/101

8.3 Processos do usuário

Enquanto estiver em uma sessão LINUX, você está necessariamenterodando ao menos um processo, aquele associado ao seu shell (sh, paraBourne Shell ou csh, para C Shell). Se você executar qualquer comando,ele se torna um processo, que é criado pela shell, e recebe um número deprocesso. Neste instante, o processo pai, que é o processo associado ao

seu shell, se torna inativo e dizemos que está dormindo ( sleeping ).O processo associado ao comando que você está executando échamado de processo corrente. Ao terminar de executar o comando esteprocesso "morre", e o seu processo pai reassume o controle - este é oprocesso associado ao seu shell. Quando nenhum comando está sendoexecutado, o processo corrente é o associado ao seu shell.

Você pode l istar todos os seus processos que estão rodando em umdeterminado momento, usando o comando ps, que veremos logo maisadiante, e daí descobrir o número de um determinado processo (o process- id ou PID), que é a informação mais importante para você controlá-lo.

8.4 Executando um comando/programaPara executar um comando, é necessário que ele tenha permissões

de execução.No aviso de comando #(root) ou $(usuário), digite o nome do

comando e tecle Enter. O programa/comando é executado e receberá umnúmero de identif icação (chamado de PID - Process Identif ication), estenúmero é úti l para identif icar o processo no sistema e assim ter umcontrole sobre sua execução (será visto mais adiante neste capítulo).

 Todo o programa recebe uma identificação de usuário (UID) quando éexecutado o que determina quais serão suas permissões de acesso

durante sua execução. O programa normalmente usa o UID do usuário queo executou ou o usuário configurado pelo bit de permissão de acesso SUIDcaso estiver definido. Existem também programas que são executadoscomo root e modificam sua identificação de usuário para algum que tenhamenos privi légios no sistema (como o Apache, por exemplo). Todo oprograma executado no GNU/Linux roda sob o controle das permissões deacesso.

Exemplos de comandos: ls, df, pwd.

8.5 path

Path é o caminho de procura dos arquivos/comandos executáveis. Opath (caminho) é armazenado na variável de ambiente PATH. Você podever o conteúdo desta variável com o comando echo $PATH.

Por exemplo, o caminho /usr/local/bin:/usr/bin:/bin:/usr/bin/X11signif ica que se você digitar o comando ls, o interpretador de comandosiniciará a procura do programa ls no diretório /usr/ local/bin, caso nãoencontre o arquivo no diretório /usr/local/bin ele inicia a procura em/usr/bin, até que encontre o arquivo procurado.

Caso o interpretador de comandos chegue até o último diretório dopath e não encontre o arquivo/comando digitado, é mostrada a seguintemensagem:

bash: ls: command not found (comando não encontrado).O caminho de diretórios vem configurado na instalação do Linux, mas

pode ser alterado no arquivo /etc/profi le. Caso deseje alterar o caminho

81

Page 82: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 82/101

para todos os usuários, este arquivo é o melhor lugar, pois ele é lido portodos os usuários no momento do login.

Caso um arquivo/comando não esteja localizado em nenhum dosdiretórios do path, você deve executá-lo usando um ./ na frente docomando.

Se deseja alterar o path para um único usuário, modifique o arquivo.bash_profile em seu diretório de usuário (home).

OBSERVAÇÃO: Por motivos de segurança, não inclua o diretório atual$PWD no path.

8.6 Tipos de Execução de comandos/programas

Um programa pode ser executado de duas formas:Primeiro Plano - Também chamado de foreground . Quando você deve

esperar o término da execução de um programa para executar um novocomando. Somente é mostrado o aviso de comando após o término deexecução do comando/programa.

Segundo Plano - Também chamado de background . Quando você não

precisa esperar o término da execução de um programa para executar umnovo comando. Após iniciar um programa em background , é mostrado umnúmero PID (identif icação do Processo) e o aviso de comando é novamentemostrado, permitindo o uso normal do sistema.

O programa executado em background continua sendo executadointernamente. Após ser concluído, o sistema retorna uma mensagem depronto acompanhado do número PID do processo que terminou.

Para iniciar um programa em primeiro plano, basta digitar seu nomenormalmente. Para iniciar um programa em segundo plano, acrescente ocaractere "&" após o final do comando.

OBS: Mesmo que um usuário execute um programa em segundo planoe saia do sistema, o programa continuará sendo executado até que sejaconcluído ou finalizado pelo usuário que iniciou a execução (ou pelousuário root).

Exemplo: find / -name boot.b &O comando será executado em segundo plano e deixará o sistema

livre para outras tarefas. Após o comando find terminar, será mostradauma mensagem.

8.7  Executando comandos/programas em seqüência

Quando uma linha do comando é informada, a shell cria um processo

para executar o comando e passa para o estado sleeping até o processo seencerrar, devolvendo o controle ao processo da shell. O usuário não podeiniciar outros comandos enquanto o processo corrente estiver emexecução. Ao invés de informar comandos separadamente e aguardar avez de cada um ser executado, múltiplos comandos podem ser informadosem uma única l inha do comando, uti l izando um ponto e vírgula (;) comoseparador entre os comandos.

O ponto e vírgula (;) permite a execução serial de múltiploscomandos em uma única l inha do comando. Cada comando é separado dopróximo por ponto e vírgula. O <ENTER> assinala o fim da linha do

comando. Os espaços antes e depois do ponto e vírgula não sãoimportantes, embora sejam geralmente uti l izados por convenção. Oscomandos são executados na sequência especif icada na l inha do comando.Por exemplo: $ who ; date > arq

82

Page 83: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 83/101

guest tty1 May 20 09:56$ cat arqMon May 20 10:10:28 WST 1996$

8.8 Agrupando comandos

Múltiplos comandos podem também serem agrupados quandocolocados entre parênteses ( ). O ponto e vírgula ainda é uti l izado paraseparar os comandos. O shell trata cada grupo de comandos entreparênteses como uma tarefa simples e divide os processos filhos quandonecessário. A ordem da execução do programa é mantida. O agrupamentode comandos é geralmente uti l izado quando se deseja saída combinada demúltiplos comandos.Por exemplo: $ ( who ; date ) > arq

$ cat arqguest tty1 May 20 09:56Mon May 20 10:10:28 WST 1996

$

8.9 foreground e "background"

 Tipicamente, o shell permanece inativo durante a execução de umcomando. Não podendo ser executado outro comando enquanto o comandoanterior não tenha sido concluído e o shell exiba outro prompt docomando. Esta maneira de executar os comandos é chamada de execuçãoem foreground. Nesta modalidade um programa que leva muito tempo paraser executado resulta na diminuição de produtividade, uma vez que ousuário aguarda o encerramento do programa, para somente depois

executar outro comando ou programa.Como alternativa, os comandos podem ser executados embackground. Que é uma maneira de executar comandos que permite que oprograma seja executado (em background, ou "em bg"), semindisponibil izar o shell, onde você pode continuar executando comandosou programas e foreground. A execução em background é geralmenteuti l izada em programas que levam muito tempo para serem executados. Osímbolo & ao final de um comando leva o shell a executar o comando embackground. O PID (número de identif icação do processo) é exibidoautomaticamente, indicando que o processo foi iniciado, e em seguida éapresentado um novo prompt do shell. O processo em background é

executado quando a carga de serviço do sistema permite. A saída doprocesso continua sendo enviada à saída padrão, a menos que sejaredirecionada para um arquivo, por exemplo, o que é frequentementeutilizado.

Exemplo: Procure a partir da raiz, todos os arquivos com extensão .c,desvie os erros para find.erro e a resposta para find.resp. Execute embackground:

$ ( find / -name *.c > find.resp 2> find.erro )&[ 1 ] 220

$

8.10ps – Consultando informações sobre os processos

Algumas vezes é úti l ver quais processos estão sendo executados nocomputador. O comando ps exibe informações sobre processos ativos de

83

Page 84: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 84/101

acordo com as opções selecionadas. Os cabeçalhos de colunas deinformações apresentadas dependem das opções especif icadas. Porexemplo, a opção - f exibe oito colunas de informações; a opção - l exibe15 colunas. As descrições de cada coluna estão abaixo. Podem sercombinadas múltiplas opções. Algumas opções aceitam listas deparâmetros. Se não forem especif icadas opções, são exibidas informaçõessobre processos rodando debaixo da identificação do usuário e associados

apenas ao terminal corrente. A saída, neste caso, contém a identif icaçãodo processo, identif icador do terminal, tempo de execução cumulativo enome do comando.

ps [opções]

Onde:opções  -a Mostra os processos criados por você e de outros usuários dosistema.-x Mostra processos que não são controlados pelo terminal.-u Mostra o nome de usuário que iniciou o processo e hora em que o

processo foi iniciado.-m Mostra a memória ocupada por cada processo em execução.-f Mostra a árvore de execução de comandos (comandos que são

chamados por outros comandos).-l Ex ib e uma lista com 15 colunas de inf ormações;- t term Exibe informações de processos para o terminal espec if icado;-e Mostra variáveis de ambiente no momento da inicial ização doprocesso.-w Mostra a continuação da l inha atual na próxima l inha ao invés de

cortar o restante que não couber na tela.

--sort:[coluna] Organiza a saída do comando ps de acordo com a colunaescolhida. Você pode usar as colunas pid, utime, ppid, rss, size, user,priority.Pode ser especif icada uma l istagem em ordem inversa especif icando--sort:[-coluna].

Cabeçalhos da Coluna:F Valor em octa l que dá maiores in formações sobre a s ituação corrente

do processo;S Nesta co luna é apresentado o es tado do processo, conforme a segu ir :

O - Não existente;

S - Adormecido (sleeping);R - Rodando (running);I - Intermediário;Z - Interrompido;

 T - Terminado;B - Esperando (blocked);

UID Ident if icação do usuário propr ietár io do processo;P ID Ident if icação do p rocesso;PPID Identi f icação do processo pai;C Taxa de util ização do p rocessador ( CPU);PRI Pr ior idade do processo (valores mais altos indicam prioridades mais

baixas);NI Valor ut il izado na computação da pr ior idade. Pode ser atribuído pelo

usuário, através do comando nice;

84

Page 85: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 85/101

ADDR Endereço da memória do processo;SZ Tamanho do processo (em páginas ou blocos) na memór ia ;WCHAN Evento pe lo qua l o processo es tá esperando, e por isso está em

sleeping ou em waiting. Se estiver em branco, o processo está emexecução;

STIME Hora do início da execução do processo; TTY Terminal controlador;

 TIME Tempo de execução cumulativo do processo;CMD Nome do comando e argumentos associados ao processo;

As opções acima podem ser combinadas para resultar em umalistagem mais completa. Você também pode usar pipes "|" para filtrar asaída do comando ps.

Ao contrário de outros comandos, o comando ps não precisa do hífen"-" para especif icar os comandos. Isto porque ele não uti l iza opções longase não usa parâmetros.

Exemplos: $ ps ax|grep inetd$ ps auxf $ ps auxw

1- Mostre o status dos processos:$ psPID TTY STAT TIME COMMAND152 v01 S 0:00 - bash225 v01 R 0:00 ps

2- Mostre o status dos processos do usuário guest:$ ps - u guestUSER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND

528 152 0.0 1.6 368 532 v01 S 09:47 0:00 -bash528 226 0.0 0.6 73 216 v01 R 19:15 0:00 psNotas: As opções e colunas aqui descritas podem variar para alguns sistemas.

8.11 top - Consultando informações dinamicamente

Mostra os programas em execução ativos, parados, tempo usado naCPU, detalhes sobre o uso da memória RAM, Swap, disponibil idade paraexecução de programas no sistema, etc.

O comando top nos dá a mesma saída do ps, porém ficapermanentemente exibindo os processos em execução em seu

computador, os recursos utilizados por eles e atualizando-os regularmenteem intervalos de 5 segundos por padrão. Para sair do top, pressione atecla q.

top [opções]

Onde:-d [tempo] Atualiza a tela após o [tempo] (em segundos).-s Diz ao top para ser executado em modo seguro.-i Inicia o top ignorando o tempo de processos zumbis.-c Mostra a linha de comando ao invés do nome do programa.

A ajuda sobre o top pode ser obtida dentro do programa

pressionando a tecla h ou pela página de manual (man top).Abaixo algumas teclas úteis:Espaço Atualiza imediatamente a tela.CTRL+L Apaga e atualiza a tela.

85

Page 86: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 86/101

h Mos tra a te la de a juda do p rograma. É most rada toda a tecla quepodem ser usadas com o top.

i Ignora o tempo ocioso de processos zumbis.q Sai do programa.k F inal iza um processo - semelhante ao comando ki ll . Você será

perguntado pelo número de identif icação do processo (PID). Estecomando não estará disponível caso esteja usando o top com a opção

-s.n Muda o número de linhas mostradas na tela. Se 0 for especi fi cado,será usada toda a tela para l istagem de processos.

8.12 Controle de execução de processos

Abaixo alguns comandos e métodos úteis para o controle daexecução de processos no GNU/Linux.

8.12.1 Interrompendo a execução de um processo

Para cancelar a execução de algum processo rodando em primeiroplano, basta pressionar as teclas CTRL+C. A execução do programa serácancelada e será mostrado o aviso de comando. Você também pode usar ocomando kill,  para interromper um processo sendo executado.

8.12.2 Parando momentaneamente a execução de umprocesso

Para parar a execução de um processo rodando em primeiro plano,basta pressionar as teclas CTRL+Z. O programa em execução será pausado

e será mostrado o número de seu job e o aviso de comando.Para retornar a execução de um comando pausado, use fg ou bg.O programa permanece na memória no ponto de processamento em

que parou quando ele é interrompido. Você pode usar outros comandos ourodar outros programas enquanto o programa atual está interrompido.

8.12.3 jobs

 Job é qualquer seqüência de comandos. O recurso de controle de jobpermite ao usuário suspender, reiniciar ou encerrar jobs, como tambémmudar jobs entre a execução em background e foreground.

Os jobs apresentam os seguintes estados :Foreground : O job é processado imediatamente antes do cont ro le

retornar ao shell e outro prompt do shell seja exibido.Background: O job é executado e o she ll r etorna imediatamente o

controle ao usuário enquanto o sistema continua aprocessar o job.

Interrompido (Suspenso): É o job que está parado temporariamente. Este job pode ser reiniciado ou encerrado.

Concluído (Ki lled): Job que está parado e concluído . Este job não podeser reiniciado.

 jobs [-opções] Lista o status de todos os jobs.Opções :-l Lista completa de todos os jobs incluindo PDIs

86

Page 87: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 87/101

-p Exibe somente PDIs associados com jobs em execução.fg id_ job Coloca o job em foreground<^z> Suspende job em foregroundbg id_ job Coloca o job indicado em backgroundstop id_job Suspende o job indicado em backgroundkil l id_ job Encerra o job indicado

O número de identif icação de cada processo parado ou em segundoplano (job), é usado com os comandos fg e bg. Um processo interrompidopode ser f inalizado usando-se o comando kil l %[num], onde [num] é onúmero do processo obtido pelo comando jobs.Exemplos:1-Execute um job em background. Observe o que a identif icação do job e onúmero do PID são exibidos :

$ sleep 300&[ 1 ] 3105

2-Liste os jobs correntes. A saída do comando inclui o número do job entre[ ], o status do job (corrente,anterior,em execução,interrompido,concluído) e a linha do comando. O sinal ( + ) após o númerodo job indica o job corrente; o sinal ( - ) indica o job anterior..

$ jobs[ 1 ]+ running sleep 300&

3-Mude o job para foreground uti l izando o número do job :$ fg %sleep

4-Suspenda o job em foreground corrente. Observe o status Stopped nodisplay:

<CTRL z >[ 1 ]+Stopped sleep 300&

5-Mude o job contendo a sequência de caracteres “sleep” parabackground:$ bg %sleep[ 1 ] sleep 300&

8.12.4 fg - foreground

Permite fazer um programa rodando em segundo plano ou parado,rodar em primeiro plano. Você deve usar o comando jobs para pegar onúmero do processo rodando em segundo plano ou interrompida, estenúmero será passado ao comando fg para ativá-lo em primeiro plano.

fg [número]

Onde número é o número obtido através do comando jobs.Caso seja usado sem parâmetros, o fg utilizará o último programa

interrompido (o maior número obtido com o comando jobs).Exemplo: fg 1.

8.12.5bg - background

Permite fazer um programa rodando em primeiro plano ou parado,

rodar em segundo plano. Para fazer um programa em primeiro plano rodarem segundo, é necessário primeiro interromper a execução do comandocom CTRL+ Z, será mostrado o número da tarefa interrompida, use este

87

Page 88: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 88/101

número com o comando bg para iniciar a execução do comando emsegundo plano.

bg [número]

Onde: número é o número do programa obtido com o pressionamentodas teclas CTRL+Z ou através do comando jobs.

8.12.6 killDepois que um processo está em execução, independente de seu

estado podemos ter a necessidade de interrompê-lo. A esta açãochamamos de “matar” um processo, e o comando que uti l izamos para istoé o ki l l .

O comando kil l permite enviar “sinais” que alteram o comportamentodo processo em um determinado momento. Podemos uti l izar a f lag “-l”para que o comando kil l nos forneça a relação completa dos sinaisdisponíveis e o número correspondente de cada um deles.

kill [opções] [sinal ] [número]Onde:número É o número de identificação do processo obtido com o comando

ps. Também pode ser o número após o sinal de % obtido pelocomando jobs para matar uma tarefa interrompida.

sinal Sinal que será enviado ao processo. Se omitido usa -15 como padrão.opções  -9 Envia um sinal de destruição ao processo ou programa. Ele é

terminado imediatamente sem chances de salvar os dados ou apagaros arquivos temporários criados por ele.

-l Enumera os nomes dos sinaisVocê precisa ser o dono do processo ou o usuário root para terminá-lo ou destruí- lo. Você pode verif icar se o processo foi f inalizado através docomando ps. Os tipos de sinais aceitos pelo GNU/Linux são explicados emdetalhes em Sinais do Sistema.Exemplo:

$ psPID TTY STAT TIME COMMAND152 v01 S 0:00 bash230 v01 R 0:00 ps231 v01 S 0:00 sleep 30

$ kil l 231$ psPID TTY STAT TIME COMMAND152 v01 S 0:00 bash230 v01 R 0:00 ps[ 1 ]+Terminated sleep 30$

8.12.7 killall

88

Page 89: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 89/101

 Tem a mesma funcionalidade do comando kill, porém pode seruti l izado para atuar em vários processos ao mesmo tempo e permitefinalizar processos através do nome.

killall [opções] [sinal ] [ processo]

Onde: processo Nome do processo que deseja f inalizar

sinal Sinal que será enviado ao processo (pode ser obtido usando aopção -i).opções  -i Pede confirmação sobre a finalização do processo.-l Lista o nome de todos os sinais conhecidos.-q Ignora a existência do processo.-v Retorna se o sinal foi enviado com sucesso ao processo.-w Finaliza a execução do kil lal l somente após finalizar todos osprocessos.

Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhesem Sinais do Sistema.

Exemplo: ki l lal l -HUP inetd

8.12.8 Fechando um programa quando não se sabe comosair

Muitas vezes quando se esta iniciando no GNU/Linux você podeexecutar um programa e talvez não saber como fechá-lo. Este capítulo doguia pretende ajudá-lo a resolver este tipo de problema.

Isto pode também ocorrer com programadores que estão construindoseus programas e por algum motivo não implementam uma opção de

saída, ou ela não funciona!Em nosso exemplo vou supor que executamos um programa emdesenvolvimento com o nome contagem que conta o tempo em segundos apartir do momento que é executado, mas que o programador esqueceu decolocar uma opção de saída. Siga estas dicas para finalizá-lo:

Normalmente todos os programas UNIX (o GNU/Linux também é umSistema Operacional baseado no UNIX) podem ser interrompidos com opressionamento das teclas <CTRL> e <C>. Tente isto primeiro parafinalizar um programa. Isto provavelmente não vai funcionar se estiverusando um Editor de Texto (ele vai entender como um comando de menu).Isto normalmente funciona para comandos que são executados eterminados sem a intervenção do usuário.

Caso isto não der certo, vamos partir para a força!Mude para um novo console (pressionando <ALT> e <F2>), e faça o

login como usuário root .Localize o PID (número de identif icação do processo) usando o

comando: ps ax, aparecerão várias l inhas cada uma com o número doprocesso na primeira coluna, e a linha de comando do programa na últimacoluna. Caso aparecerem vários processos você pode usar ps ax|grepcontagem, neste caso o grep fará uma fi ltragem da saída do comando psax mostrando somente as l inhas que tem a palavra "contagem". Para

maiores detalhes, veja o comando grep.Feche o processo usando o comando kill PID, lembre-se de substituirPID pelo número encontrado pelo comando ps ax acima.

89

Page 90: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 90/101

O comando acima envia um sinal de término de execução para oprocesso (neste caso o programa contagem). O sinal de término mantém achance do programa salvar seus dados ou apagar os arquivos temporáriosque criou e então ser f inalizado, isto depende do programa.

Alterne para o console onde estava executando o programacontagem e verif ique se ele ainda está em execução. Se ele estiver paradomas o aviso de comando não está disponível, pressione a tecla <ENTER>.

Freqüentemente acontece isto com o comando kil l , você finaliza umprograma mas o aviso de comando não é mostrado até que se pressione<ENTER>.

Caso o programa ainda não foi f inalizado, repita o comando kil lusando a opção -9: ki l l -9 PID. Este comando envia um sinal deDESTRUIÇÃO do processo, fazendo-o terminar "na marra"!

Uma última dica: todos os programas estáveis (todos queacompanham as boas distribuições GNU/Linux) têm sua opção de saída.Lembre-se que quando finaliza um processo todos os dados do programaem execução podem ser perdidos (principalmente se estiver em um editorde textos), mesmo usando o ki l l sem o parâmetro -9.

Procure a opção de saída de um programa consultando o help on l ine,às páginas de manual, a documentação que acompanha o programa, infopages.

8.12.9 Eliminando caracteres estranhos

As vezes quando um programa mal comportado é f inalizado ouquando você visualiza um arquivo binário através do comando cat, épossível que o aviso de comando (prompt) volte com caracteres estranhos.

Para fazer tudo voltar ao normal, basta digitar reset e teclar ENTER.

Não se preocupe, o comando reset não reiniciará seu computador (como obotão reset do seu computador faz), ele apenas fará tudo voltar aonormal.

Note que enquanto você digitar reset aparecerão caracteresestranhos ao invés das letras. Não se preocupe! Basta digitarcorretamente e bater ENTER e o aviso de comando voltará ao normal.

90

Page 91: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 91/101

9 CompactadoresEsta seção explica o que são e como usar programas compactadores

no GNU/Linux, as características de cada um, como identificar um arquivocompactado e como descompactar um arquivo compactado usando oprograma correspondente.

A utilização de arquivos compactados é método útil principalmentepara reduzir o consumo de espaço em disco ou permitir grandesquantidades de texto serem transferidas para outro computador atravésde disquetes.

9.1 O que fazem os compactadores/descompactadores?

Compactadores são programas que diminuem o tamanho de um

arquivo (ou arquivos) através da substituição de caracteres repetidos.Para entender melhor como eles funcionam, veja o próximo exemplo:

compactadores compactam e deixam arquivos compactados.

-- após a compactação da frase --

%dores %m e deixam arquivos %dos

O que aconteceu realmente foi que a palavra compacta seencontrava 3 vezes na frase acima, e foi substituída por um sinal de %.Para descompactar o processo seria o contrário: Ele substituiria % porcompacta e nós temos a frase novamente restaurada.

Você deve ter notado que o tamanho da frase compactada caiu quasepela metade. A quantidade de compactação de um arquivo é chamada detaxa de compactação . Assim se o tamanho do arquivo for diminuído ametade após a compactação, dizemos que conseguiu uma taxa decompactação de 2:1 (lê-se dois para um), se o arquivo diminuiu 4 vezes,dizemos que conseguiu uma compactação de 4:1 (quatro para um) e assimpor diante.

Para controle dos caracteres que são usados nas substituições, osprogramas de compactação mantém cabeçalhos com todas assubstituições usadas durante a compactação. O tamanho do cabeçalhopode ser f ixo ou definido pelo usuário, depende do programa usado na

compactação.Este é um exemplo bem simples para entender o que acontecedurante a compactação, os programas de compactação executaminstruções muito avançadas e códigos complexos para atingir um alta taxade compactação.

Observações:Não é possível trabalhar diretamente com arquivos compactados! É

necessário descompactar o arquivo para usá-lo. Note que algunsprogramas atualmente suportam a abertura de arquivos compactados, masna realidade eles apenas simplif icam a tarefa descompactando o arquivo,abrindo e o recompactando assim que o trabalho estiver concluído.

Arquivos de texto têm uma taxa de compactação muito melhor quearquivos binários, porque possuem mais caracteres repetidos. É normalatingir taxas de compactação de 10 para 1 ou mais quando se compacta

91

Page 92: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 92/101

um arquivo texto. Arquivos binários, como programas, possuem uma taxade compactação média de 2:1.

Note que também existem programas compactadores especialmentedesenvolvidos para compactação de músicas, arquivos binários, imagens,textos.

9.2 Tipos de compactação

Existem basicamente dois tipos de compactação, a compactação sem perdas e a compactação com perdas.

Os exemplos a seguir tentam explicar de forma simples os conceitosenvolvidos.

A compactação sem perdas, como o próprio nome diz não causanenhuma perda nas informações contidas no arquivo. Quando vocêcompacta e descompacta um arquivo, o conteúdo é o mesmo do original.

A compactação com perdas é um tipo específ ico de compactaçãodesenvolvido para atingir altas taxas, porém com perdas parciais dosdados. É aplicada a tipos de arquivos especiais, como músicas e imagensou arquivos que envolvam a percepção humana.

Sabe-se que o ouvido humano não é tão sensível a determinadossons e freqüências, então a compactação de um arquivo de música poderiadeixar de gravar os sons que seriam pouco percebidos, resultando em umarquivo menor. Uma compactação do tipo ogg ou mp3 utiliza-se destesrecursos. O arquivo resultante é muito menor que o original, porém algunsdados sonoros são perdidos. Você só notaria se estivesse reproduzindo amúsica em um equipamento de alta qualidade e se tivesse um ouvido bemaguçado. Para efeitos práticos, você está ouvindo a mesma música eeconomizando muito espaço em disco.

Outro exemplo de compactação com perdas são as imagens  jpg .Imagine que você tem uma imagem com 60000 tons de cor diferentes, masalguns tons são muito próximos de outros, então o compactador resumepara 20000 tons de cor e a imagem terá 1/3 do tamanho original e o nossoolho conseguirá entender a imagem sem problemas e quase não perceberáa diferença. Exemplos de extensões uti l izadas em imagens compactadassão  jpg ,  png , gif .

Apesar das vantagens da grande taxa de compactação conseguida

nos processos com perdas, nem sempre podemos uti l izá-lo. Quandocompactamos um texto ou um programa, não podemos ter perdas, senão onosso texto sofre alterações ou o programa não executa. Nem mesmopodemos tem perdas quando compactamos imagens ou musicas que serãouti l izadas em processos posteriores de masterização, mixagem ouimpressão em alta qualidade.

9.3 Extensões de arquivos compactados

As extensões identif icam o tipo de um arquivo e assim o programa oprograma necessário para trabalhar com aquele tipo de arquivo. Existem

dezenas de extensões que identif icam arquivos compactados. Quando umarquivo (ou arquivos) é compactado, uma extensão correspondente aoprograma usado é adicionada ao nome do arquivo (caso o arquivo sejacompactado pelo gzip receberá a extensão .gz, por exemplo). Ao

92

Page 93: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 93/101

descompactar acontece o contrário: a extensão é retirada do arquivo.Abaixo segue uma l istagem de extensões mais usadas e os programascorrespondentes:• .gz Arquiv o compactado pelo gzip. Use o programa gzip para

descompactá-lo.• . bz2 Arquivo compactado pe lo bz ip2. Use o programa bz ip2 para

descompactá-lo.• .Z Arquiv o compactado pelo programa compress. Use o programauncompress para descompactá-lo.• . zi p Arquivo compactado pelo p rograma z ip . Use o p rograma unz ip

para descompactá-lo.• . ra r A rquivo compactado pe lo programa rar. Use o programa ra r

para descompactá-lo.• . tar .gz Arquivo compactado pelo programa gzip no uti l itário de

arquivamento tar. Para descompactá-lo, você pode usar o gzipe depois o tar ou somente o programa tar usando a opção -z.

• .tgz Abreviação de .tar.gz.• . tar.bz2 Arquivo compactado pelo programa bzip2 no uti l itário de

arquivamento tar. Para descompactá-lo, você pode usar o bzip2e depois o tar ou somente o programa tar usando a opção -j .

• . tar .Z Arquivo compactado pelo programa compress no uti li tár io dearquivamento tar. Para descompactá-lo, você pode usar ouncompress e depois o tar ou somente o programa tar usando aopção -Z.

9.4 gzip

É praticamente o compactador padrão do GNU/Linux, possui umaótima taxa de compactação e velocidade. A extensão dos arquivoscompactados pelo gzip é a .gz, na versão para DOS, Windows NT é usada aextensão .z.

gzip [opções] [arquivos]

Onde:arquivos Especifica quais arquivos serão compactados pelo gzip. Caso

seja usado um -, será assumido a entrada padrão. Curingaspodem ser usados para especif icar vários arquivos de uma sóvez.

Opções

-d [arquivo] Descompacta um arquivo.-f Força a compactação, compactando até mesmo links.- l [arquivo] Lista o conteúdo de um arquivo compactado pelogzip.-r Compacta diretórios e subdiretórios.-c [arquivo] Descompacta o arquivo para a saída padrão.-t [arquivo] Testa o arquivo compactado pelo gzip.-[num], --fast, --best Ajustam a taxa de compactação/velocidade da

compactação. Quanto melhor a taxa menor é a velocidade decompactação e vice-versa. A opção --fast permite uma compactaçãorápida e tamanho do arquivo maior. A opção --best permite uma

melhor compactação e uma velocidade menor. O uso da opção -[número] permite especif icar uma compactação individualmenteusando números entre 1 (menor compactação) e 9 (melhorcompactação). É úti l para buscar um bom equil ibro entre taxa de

93

Page 94: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 94/101

compactação/velocidade (especialmente em computadores muitolentos).Quando um arquivo é compactado pelo gzip, é automaticamente

acrescentada a extensão .gz ao seu nome.O gzip também reconhece arquivos compactados pelos programas

zip, compress, compress -H e pack. As permissões de acesso dos arquivossão também armazenadas no arquivo compactado.

Exemplos:gzip -9 texto.txt - Compacta o arquivo texto.txt usando a compactaçãomáxima (compare o tamanho do arquivo compactado usando ocomando ls -la).

gzip -d texto.txt.gz - Descompacta o arquivo texto.txtgzip -c texto.txt.gz - Descompacta o arquivo texto.txt para a telagzip -9 *.txt - Compacta todos os arquivos que terminam com .txtgzip -t texto.txt.gz - Verif ica o arquivo texto.txt.gz.

9.5 zip

Util itário de compactação compatível com pkzip (do DOS) e trabalhacom arquivos de extensão .zip. Possui uma ótima taxa de compactação evelocidade no processamento dos arquivos compactados (comparando-seao gzip).

zip [opções] [arquivo-destino ] [arquivos-origem ]

Onde:arquivo-destino Nome do arquivo compactado que será gerado.arquivos-origem Arquivos/Diretório s que serão compactados. Podem

ser usados curingas para especificar mais de um arquivo de uma sóvez

opções-r Compacta arquivos e subdiretórios.-e Permite encriptar o conteúdo de um arquivo .zip através de senha. A

senha será pedida no momento da compactação.-f Somente substitui um arquivo compactado existente dentro do

arquivo .zip somente se a versão é mais nova que a atual. Nãoacrescenta arquivos ao arquivo compactado. Deve ser executado nomesmo diretório onde o programa zip foi executado anteriormente.

-F Repara um arquivo .zip danificado.-[NUM] Ajusta a qualidade/velocidade da compactação. Pode serespecificado um número de 1 a 9. O 1 permite mínima compactaçãoe máxima velocidade, 9 permite uma melhor compactação e menorvelocidade.

-i [arquivos] Compacta somente os [arquivos] especificados.-j Se especificado, não armazena caminhos de diretórios.-m Apaga os arquivos originais após a compactação.-T [arquivo] Procura por erros em um arquivo .zip. Caso sejam

detectados problemas, uti l ize a opção -F para corrigi- los.-y Armazena links simbólicos no arquivo .zip. Por padrão, os links

simbólicos são ignorados durante a compactação.-k [arquivo] Modifica o [arquivo] para ter compatibil idade total com opkzip do DOS.

94

Page 95: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 95/101

-n [extensão] Não compacta arquivos identif icados por [extensão]. Ele éarmazenado sem compactação no arquivo .zip, muito úti l para usocom arquivos já compactados. Caso sejam especif icadas diversasextensões de arquivos, elas devem ser separadas por: - Por exemplo,zip -n .zip:.tgz arquivo.zip *.txt.

-q Não mostra mensagens durante a compactação do arquivo.-u Atualiza/adiciona arquivos ao arquivo .zip

-X Não armazena detalhes de permissões, UID, GID e datas dosarquivos.-z Permite incluir um comentário no arquivo .zip.

Caso o nome de arquivo de destino não termine com .zip, estaextensão será automaticamente adicionada. Para a descompactação dearquivos .zip no GNU/Linux, é necessário o uso do utilitário unzip.

Exemplos:zip textos.zip *.txt Compacta todos os arquivos com a extensão .txt

para o arquivo textos.zip (compare o tamanho do arquivocompactado digitando ls - la).

zip -r textos.zip /usr/*.txt Compacta todos os arquivos com a extensão.txt do diretório /usr e sub-diretórios para o arquivo textos.zip.

zip -9 textos.zip * Compacta todos os arquivos do diretório atualusando a compactação máxima para o arquivo textos.zip.

zip -T textos.zip Verif ica se o arquivo textos.zip contém erros.

9.6 unzip

Descompacta arquivos .zip criados com o programa zip. Esteprograma também é compatível com arquivos compactados pelo pkzip doDOS.

unzip [opções] [arquivo.zip] [arquivos-extrair ] [-d diretório]Onde:arquivo.zip Nome do arquivo que deseja descompactar. Podem

ser usados curingas para especificar mais de um arquivo para serdescompactado.

arquivos-extrair Nome dos arquivos (separados por espaço) queserão descompactados do arquivo .zip. Caso não seja especif icado, éassumido * (todos os arquivos serão descompactados). Se for usado-x arquivos, os arquivos especif icados não serão descompactados. Ouso de curingas é permitido.

-d diretório Diretório onde os arquivos serão descompactados. Casonão for especificado, os arquivos serão descompactados no diretórioatual.

opções-c Descompacta os arquivos para stdout (saída padrão) ao invés de

criar arquivos. Os nomes dos arquivos também são mostrados (veja aopção -p).

-f Descompacta somente arquivos que existam no disco e mais novosque os atuais.

-l Lista os arquivos existentes dentro do arquivo .zip.-M Efetua uma pausa a cada tela de dados durante o processamento (a

mesma função do comando more).-n Nunca substitui arquivos já existentes. Se um arquivo existe ele épulado.

95

Page 96: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 96/101

-o Substitui arquivos existentes sem perguntar. Tem a função contráriaa opção -n.

-P [SENHA] Permite descompactar arquivos .zip usando a[SENHA]. CUIDADO! qualquer usuário conectado em seu sistema podever a senha digitada na l inha de comando digitada.

-p Descompacta os arquivos para stdout (saída padrão) ao invés decriar arquivos. Os nomes dos arquivos não são mostrados (veja a

opção -c).-q Não mostra mensagens.-t Verif ica o arquivo .zip em busca de erros.-u Idêntico a opção -f só que também cria arquivos que não existem no

diretório.-v Mostra mais detalhes sobre o processamento do unzip.-z Mostra somente o comentário existente no arquivo.Por padrão o unzip também descompacta sub-diretórios caso o arquivo .ziptenha sido gerado com zip -r.

Exemplos:unzip texto.zip Descompacta o conteúdo do arquivo texto.zip no diretório

atual.unzip texto.zip carta.txt Descompacta somente o arquivo carta.txt do

arquivo texto.zip.unzip texto.zip -d /tmp/texto Descompacta o conteúdo do arquivo

texto.zip para o diretório /tmp/texto.unzip - l texto.zip Lista o conteúdo do arquivo texto.zip.unzip -t texto.zip Verif ica o arquivo texto.zip.

9.7 tar  

Na verdade o tar não é um compactador e sim um "arquivador" (ele junta vários arquivos em um só), mas pode ser usado em conjunto com umcompactar (como o gzip ou zip) para armazená-los compactados. O tartambém é muito usado para cópias de arquivos especiais ou dispositivosdo sistema. É comum encontrar arquivos com a extensão .tar, .tar.gz, .tgz,.tar.bz2, .tar.Z, .tgZ, o primeiro é um arquivo normal gerado pelo tar etodos os outros são arquivos gerados através tar junto com um programade compactação (gzip (.gz), bzip2 (.bz2) e compress (.Z).

tar [opções] [arquivo-destino ] [arquivos-origem ]

Onde:arquivo-destino É o nome do arquivo de destino. Normalmenteespecif icado com a extensão .tar caso seja usado somente oarquivamento ou .tar.gz/.tgz caso seja usada a compactação (usandoa opção -z).

arquivos-origem Especifica quais arquivos/diretório s serãocompactados.opções-c Cria um novo arquivo .tar-t Lista o conteúdo de um arquivo .tar-u Atual iza arqu ivos compactados no arqu ivo .tar

- j Usa o p rograma bzip2 para processar os a rquivos do tar-M, --multi-volume Cria/lista/descomp acta arquivos em múltiplosvolumes. O uso de arquivos em múltiplos volumes permite que uma

96

Page 97: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 97/101

grande cópia de arquivos que não cabe em um disquete, porexemplo, seja feita em mais de um disquete.

-O Descompacta arquivos para a saída padrão ao invés de gravar em umarquivo.

--remove-fi les Apaga os arquivos de origem após serem processadospelo tar.

-W Tenta veri ficar o arquivo gerado pelo tar após grava-lo.

x Extrai arquivos gerados pelo tar-X [ARQUIVO] Tenta apagar o [ARQUIVO] dentro de um arquivocompactado .tar.

-Z Usa o programa compress durante o processamento dos arquivos.-z Usa o programa gzip durante o processamento dos arquivos.

A extensão precisa ser especif icada no arquivo de destino para aidentificação correta:• Arquivos gerados pelo tar precisam ter a extensão .tar• Caso seja usada a opção -j para compactação, a extensão deverá ser

.tar.bz2

• Caso seja usada a opção -z para compactação, a extensão deverá ser.tar.gz ou .tgz• Caso seja usada a opção -Z para a compactação, a extensão deverá ser

.tar.Z ou .tgZÉ importante saber qual o tipo de compactador usado durante a

geração do arquivo .tar pois será necessário especificar a opçãoapropriada para descompacta-lo

Exemplos:tar -cf index.txt.tar index.txt Cria um arquivo chamado

index.txt.tar que armazenará o arquivo index.txt. Você podenotar digitando ls - la que o arquivo index.txt foi somentearquivado (sem compactação), isto é úti l para juntar diversosarquivos em um só.

tar -xf index.txt.tar Desarquiva o arquivo index.txt criadopelo comando acima.

tar -czf index.txt.tar.gz index.txt O mesmo que o exemplo dearquivamento anterior, só que agora é usado a opção -z(compactação através do programa gzip). Você agora podenotar digitando ls - la que o arquivo index.txt foi compactado edepois arquivado no arquivo index.txt.tar.gz (você tambémpode chama-lo de index.txt.tgz que também identif ica um

arquivo .tar compactado pelo gzip)tar -xzf index.txt.tar.gz Descompacta e desarquiva oarquivo index.txt.tar.gz criado com o comando acima.

gzip -dc index.tar.gz | tar -xf Faz o mesmo que o comando acimasó que de uma forma diferente: Primeiro descompacta o arquivoindex.txt.tar.gz e envia a saída do arquivo descompactado parao tar que desarquivará o arquivo index.txt.

tar -cjf index.txt.tar.bz2 index.txt Arquiva o arquivo index.txt emindex.txt.tar.bz2 compactando através do bzip2 (opção -j).

tar -xjf index.txt.tar.bz2 Descompacta e desarquiva oarquivo index.txt.tar.bz2 criado com o comando acima.

bzip2 -dc index.txt.tar.bz2 | tar -xf Faz o mesmo que o comando acimasó que de uma forma diferente: Primeiro descompacta o arquivoindex.txt.tar.bz2 e envia a saída do arquivo descompactadopara o tar que desarquivará o arquivo index.txt.

97

Page 98: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 98/101

tar -t index.txt.tar Lista o conteúdo de um arquivo .tar.tar -tz index.txt.tar.gz Lista o conteúdo de um arquivo .tar.gz.

9.8 bzip2

É um novo compactador que vem sendo cada vez mais usado porqueconsegue atingir a melhor compactação em arquivos texto se comparadoaos já existentes (em conseqüência sua velocidade de compactaçãotambém é menor; quase duas vezes mais lento que o gzip). Suas opçõessão praticamente as mesmas usadas no gzip, e você também pode usá-loda mesma forma. A extensão dos arquivos compactados pelo bzip2 é a.bz2

bzip2 [opções] [arquivos]

Onde:arquivos Especi fica quais arquivos serão compactados pelo bz ip2. Caso

seja usado um -, será assumido a entrada padrão. Curingas podemser usados para especif icar vários arquivos de uma só vez.

Opções-d [arquivo] Descompacta um arquivo.-f Força a compactação, compactando até mesmo links.- l [arquivo] Lista o conteúdo de um arquivo compactado pelo bzip2.-r Compacta diretórios e subdiretórios.-c [arquivo] Descompacta o arquivo para a saída padrão.-t [arquivo] Testa o arquivo compactado pelo bzip2.-[num], --fast, --best Ajustam a taxa de compactação/velocidade da

compactação. Quanto melhor a taxa menor é a velocidade decompactação e vice-versa. A opção --fast permite umacompactação rápida e um arquivo de tamanho maior. A opção

--best permite uma melhor compactação e uma velocidademenor. O uso da opção -[número] permite especif icar umacompactação individualmente usando números entre 1 (menorcompactação) e 9 (melhor compactação). É úti l para buscar umbom equil ibro entre taxa de compactação e/ou velocidade(especialmente em computadores muito lentos).

Quando um arquivo é compactado pelo bzip2, é automaticamenteacrescentada a extensão .bz2 ao seu nome. As permissões de acesso dosarquivos são também armazenadas no arquivo compactado.

Exemplos:

bzip2 -9 *.txt Compacta todos os arquivos que terminam com .txtbzip2 -t texto.txt.bz2 Verif ica o arquivo texto.txt.bz2.

9.9 rar 

O rar é um compactador desenvolvido por Eugene Roshal e possuiversões para GNU/Linux, DOS, Windows, OS/2 e Macintosh. Trabalha comarquivos de extensão .rar e permite armazenar arquivos compactados emvários disquetes (múltiplos volumes). Trata-se de um produto comercial,mas decidi coloca-lo aqui porque possui boas versões Shareware e podeser muito útil em algumas situações.

rar [ações] [opções] [arquivo-destino.rar ] [arquivos-origem ]Onde:arquivo-destino.ra r É o nome do arquivo de destino

98

Page 99: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 99/101

arquivos-origem Arquivos que serão compactados. Podem serusados curingas para especif icar mais de um arquivo.

açõesa Compacta arquivosx Descompacta arquivosd Apaga arquivos especif icadost Verif ica o arquivo compactado em busca de erros.

r Repara um arquivo .rar danificadol Lista arquivos armazenados no arquivo compactadou Atualiza arquivos existentes no arquivo compactado.m Compacta e apaga os arquivos de origem (move).e Descompacta arquivos para o diretório atualp Mostra o conteúdo do arquivo na saída padrãos Converte um arquivo .rar normal em arquivo auto-extrácti l . Arquivos

auto-extrácteis são úteis para enviar arquivos a pessoas que não temo programa rar. Basta executar o arquivo e ele seráautomaticamente descompactado (usando o sistema operacional quefoi criado). Note que esta opção requer que o arquivo default.sfxesteja presente no diretório home do usuário. Use o comando findpara localizá-lo em seu sistema.

opçõeso+ Substitui arquivos já existentes sem perguntaro- Não substitui arquivos existentessfx Cria arquivos auto-extrácteis. Arquivos auto-extrácteis são úteis para

enviar arquivos a pessoas que não tem o programa rar. Bastaexecutar o arquivo e ele será automaticamente descompactado. Noteque este processo requer que o arquivo default.sfx esteja presenteno diretório home do usuário. Use o comando find para localizá-lo em

seu sistema.y Assume sim para todas as perguntasr Inclui subdiretórios no arquivo compactadox [ARQUIVO] Processa tudo menos o [ARQUIVO]. Pode ser usadoscuringasv[TAMANHO] Cria arquivos com um limite de tamanho. Por padrão, o

tamanho é especif icado em bytes, mas o número pode ser seguido dek (ki lobytes) ou m(megabytes). Exemplo: rar a -v1440k .. ou rar a-v10m ..

p [SENHA] Inclui senha no arquivo. CUIDADO, pessoas conectadas em seusistema podem capturar a l inha de comando facilmente e descobrir

sua senha.m [0-5] Ajusta a taxa de compactação/velocidade de compactação. 0

não faz compactação alguma (mais rápido) somente armazena osarquivos, 5 é o nível que usa mais compactação (mais lento).

ed Não inclui diretórios vazios no arquivoisnd Ativa emissão de sons de alerta pelo programaierr Envia mensagens de erro para stderrinul Desativa todas as mensagensow Salva o dono e grupo dos arquivos.ol Salva l inks simbólicos no arquivo ao invés do arquivo físico que o l ink

faz referência.mm[f] Usa um método especial de compactação para arquivosmultimídia (sons, vídeos, etc). Caso for usado mmf, força o uso do

99

Page 100: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 100/101

método multimídia mesmo que o arquivo compactado não seja destetipo.

Os arquivos gerados pelo rar do GNU/Linux podem ser usados emoutros sistemas operacionais, basta ter o rar instalado. Quando é usada aopção -v para a criação de múltiplos volumes, a numeração dos arquivos éfeita na forma: arquivo.rar, arquivo.r00, arquivo.r01, etc, durante a

descompactação os arquivos serão pedidos em ordem. Se você receber amensagem cannot modify volume durante a criação de um arquivo .rar,provavelmente o arquivo já existe. Apague o arquivo existente e tentenovamente.

Exemplos:rar a texto.rar texto.txt Compacta o arquivo texto.txt em um arquivo

com o nome texto.rarrar x texto.rar Descompacta o arquivo texto.rarrar a -m5 -v1400k textos.rar * Compacta todos os arquivos do diretório

atual, usando a compactação máxima no arquivo textos.rar.Note que o tamanho máximo de cada arquivo é 1440 para serpossível grava-lo em partes para disquetes.

rar x -v -y textos.rar Restaura os arquivos em múltiplos volumes criadoscom o processo anterior. Todos os arquivos devem ter sidocopiados dos disquetes para o diretório atual antes deprosseguir. A opção -y é útil para não precisar-mos responderyes a toda pergunta que o rar f izer.

rar t textos.rar Verifica se o arquivo textos.rar possui erros.rar r textos.rar Repara um arquivo .rar danificado.

9.10zcat 

O comando zcat tem a mesma função e a sintaxe do comando cat,exceto que este é feito para exibir o conteúdo de arquivos compactadoscomo se não o fossem.

zcat [opções] [arquivo compactado]

9.11zgrep

O comando zgrep tem a mesma função e a sintaxe do comando grep,

exceto por ter sido criado para procurar trechos em arquivos textoscompactados.

zgrep [opções] [expressão] [arquivo compactado]

9.12zcmp

O comando zcmp tem a mesma função e a sintaxe do comando cmp,exceto que este é feito para comparar o conteúdo de arquivoscompactados.

zcmp [opções] [arquivo compactado1] [arquivo compactado2]

100

Page 101: Apostila Linux

5/16/2018 Apostila Linux - slidepdf.com

http://slidepdf.com/reader/full/apostila-linux-55ab4fb75f31d 101/101

9.13zless e zmore

O comando zless e zmore tem a mesma função e a sintaxe docomando less e more, exceto que este é feito para visualizar o conteúdode arquivos textos compactados sem precisar descompactar o arquivo.

zless ou zmore [arquivo compactado]

101