102
 Introdução ao Linux  Curso de Introdução ao Linux (Marco Álvarez, Cláudia Nasu, Alfredo Lanari, Luciene Marin) DCT - UFMS, 1996  

[eBook Informática Português] - [Editora] - Linux Curso de ~1

Embed Size (px)

Citation preview

Page 1: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução ao Linux 

Curso de Introdução ao Linux (Marco Álvarez, Cláudia Nasu,Alfredo Lanari, Luciene Marin)

DCT - UFMS, 1996 

Page 2: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução ao Linux 

Sumário

Conceitos Básicos ............................................. 3

Introdução ........................................................ 12

Iniciando .......................................................... 18

Arquivos e Diretórios ....................................... 29

O Editor vi ....................................................... 50

Segurança ......................................................... 59

Redirecionamento ............................................ 67

Gerenciamento da execução de comandos ...... 74

Shell do Linux .................................................. 83

Ferramentas de Comunicação ......................... 92

Page 3: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 3

Introdução ao Linux 

Ca pí t u l o 0Con cei t os Bá si cos

 

Muitas pessoas possuem uma dificuldade em lidar com os computadores,simplesmente porque não sabem o que é, como funciona e para que serve. É certo queexiste uma dificuldade inicial relacionada a operação do computador em si. Isto é, há umasérie de comandos com formatos difíceis de lembrar e quais as respectivas tarefas que

eles executam.Entretanto, nos últimos anos estão surgindo novas facilidades para osusuários de microcomputadores pessoais. Tais como interfaces gráficas poderosas queeliminam a necessidade de digitação de longas linhas de comandos (Windows, X11,System 7, etc). Nestas interfaces, os comandos são executados via menus, caixas dediálogos e ícones.

Geralmente, estas interfaces gráficas ainda apresentam opções de seexecutar comandos através do método “tradicional”, ou seja, digitando-se o comando porextenso. Isto porque muitos comandos não funcionam nestas interfaces gráficas; ouainda porque algumas opções mais detalhadas só podem ser ativadas pela linha decomando. Mas a tendência é que todos os comandos sejam implementados em forma

gráfica e iterativa.A princípio é necessário formalizarmos certos termos que serão utilizados

durante todo o texto. Termos simples, mas que muitas vezes esquecemos ousimplesmente não sabemos por que não temos a obrigação de tê-los em mente. Afinalusuários não precisam ser especialistas em computadores para poderem utilizá-los.Vamos então às definições preliminares:

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 pessoas não possuem uma visão

clara do que é um microcomputador. E por este mesmo motivo, não se imaginamprovidas de meios de como lidar com estes equipamentos.

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

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

 processamento de informações.”

Page 4: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 4

Introdução ao Linux 

Quando dizemos programável significa que há um conjunto de instruçõesou programa que diz ao computador o que deve ser feito. É o que chamamos de software.Por ser uma máquina o computador também é composto por fios, cabos, placas, circuitose outros equipamentos físicos. É o que chamamos de hardware. Desta forma, umcomputador é 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 os resultados.

Graficamente temos:

Saída

Programa

Entrada Processamento

 

As informações manipuladas pelo computador podem variar muito, bemcomo a maneira de ser t ratada internamente. Podemos classificá- las da seguinte maneira:

1. Dados: são letras e números. A princípio, computadores só podiamreconhecer e entender estes tipos de informações através de uma tabela mantidainternamente que convertia cada conjunto de 8 sinais elétricos em uma letra ou dígito,criando um sistema de codificação e decodificação compreensível para o ser humano.Esta tabela existe até os dias de hoje e chama-se tabela ASCII. Outros tipos de tabelasforam criadas como a EBCDIC 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 corrente elétrica por um fio e o númeroum (1) pela passagem de corrente. A tabela ASCII é formada por 8 dígitos. Como cadadígito pode assumir o valor zero ou um, podemos representar 256 caracteres diferentes

(28=256) mais que suficiente para as letras e dígitos existentes.No princípio da computação, se quiséssemos escrever uma letra teríamos

que ligar e desligar um conjunto de fios para indicar que queremos representar umadeterminada letra do alfabeto. Hoje em dia basta pressionar no teclado que é gerado umsinal ou interrupção para o microprocessador informando qual a tecla pressionada. Ocomputador então consulta a tabela ASCII, identifica a tecla e desenha ponto a ponto ocaracter no monitor. Todo o desenho dos caracteres é mantido em uma tabela nocomputador.

Page 5: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 5

Introdução ao Linux 

2. Sons: atualmente podemos armazenar e manipular sons como em umamesa de som de mais alta tecnologia devido aos avanços na área de sons digitais. Músicae som são grandezas físicas ditas analógicas, isto é, caracterizadas por perturbações doar. Mas computadores não entendem estas perturbações, então para que os mesmospudessem ser reconhecidos, adaptou-se um microfone ao microcomputador que ésensível às vibrações e que converte -as em impulsos elétricos que podem ser

manipulados pelos computadores. Por isto é chamado de som digital. Os circuitosresponsáveis por esta conversão chama-se conversor analógico-digital.

3. Imagens: os primeiros computadores possuíam muito pouca capacidadee velocidade e portanto não podiam tratar de imagens com a mesma eficiência que hojeem dia. Imagens estáticas como fotografias podem ser capturadas por aparelhosespeciais conhecidos como scanners através de sensores infravermelhos e da reflexão daluz. Imagens dinâ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 destetipo de informações é que temos que representar as imagens ponto a ponto e além distomanter informações sobre brilho, cor, intensidade, luminosidade, etc, gastando umaquantidade maior de memória para podemos manter imagens em computadores.

Arquivos O computador organiza as informações internamente através de uma

unidade denominada arquivo. Um arquivo contem um determinado tipo de informação e écriado por um outro arquivo especial denominado arquivo de programa ou arquivo

executável, que é o software em si. Podemos então classificar os arquivos como sendo:1) arquivos executáveis: são os programas ou softwares propriamente

ditos. Através deles é que criamos e modificamos outros tipos de arquivos. Elesfornecem 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 utilizar os arquivos executáveis, mas não existe

um padrão sobre o funcionamento dos mesmos. Assim, para sair de um determinadoeditor de textos eu utilizo a tecla F3, em outro editor a tecla de saída pode ser ALT+X.Cada equipe de programadores define o funcionamento do programa que esta criando.

Atualmente existe uma tendência a padronizar as teclas com operaçõesmais comuns de forma que funcionem igualmente em todos os programas e os usuáriosnão tenham tantas dificuldades em aprender a usar diferentes softwares. Uma dasvantagens das interfaces gráficas é a padronização das operações mais comuns.

2)  arquivos de dados: contém apenas informações alfabéticas e numéricas(alfanuméricas). São utilizados para substituir o excesso de papéis e documentos em

empresas, mantendo informações cadastrais em computador ao invés de mantê-los emarquivos de aço. Entretanto, em alguns casos os arquivos de dados, apesar de diminuir ovolume de papéis excessivo, não tem a intenção de eliminar o processo manual, mas defornecer um meio mais rápido e eficiente de consulta e acesso às informações. É umaforma alternativa de manter dados importantes e volumosos.

3) arquivos de sons: comportam voz, música e sons em geral capturadosatravés de uma placa de som e um microfone ou um instrumento musical acoplado aocomputador por uma placa especial.

Page 6: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 6

Introdução ao Linux 

4) arquivos de imagens: possuem imagens estáticas capturadas comscanners ou dinâmicas capturadas com câmeras digitalizadoras.

Diretórios  Se guardássemos todos os arquivos de um computador juntos em um único

lugar, teríamos pelo menos dois grandes problemas. Primeiro, seria extremamente

difícil, ou mesmo impossível saber se já existe algum arquivo armazenado com aquelenome. Segundo o Sistema Operacional, para executar o último arquivo, teria quepercorrer todos os outros até chegar no arquivo desejado. Este processo sem dúvidatornaria o computador lento.

Para facilitar a organização do disco rígido, catalogar arquivos commesmas características e facilitar o trabalho do Sistema Operacional, foi criado então oconceito de diretório.

Um diretório nada mais é que um “repositório” de arquivos e outrosdiretórios (chamados de sub -diretórios), formando uma estrutura hierárquica chamada deárvore de diretório. Podemos entender diretórios como sendo o endereço de um arquivodentro do disco rígido.

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 de se tratar a língua docomputador para que possamos conversar com ele. Um bit é a menor informação para omicrocomputador. Ele representa o estado de um fio. O dígito um (1) representa apassagem de corrente por um fio, e o dígito zero (0) representa a ausência de corrente .

Este sistema de numeração é denominado binário porque só utiliza doisdígitos. O sistema de numeração que nós conhecemos é o sistema decimal. Existemoutros sistemas e meios de converter números de um sistema para outro. Assim foiestabelecida uma forma de comunicação inicial do ser humano com o computador, aindaque de uma forma muito difícil para nós humanos.

Toda e qualquer informação é representada na forma de bits ou conjunto debits. Como pudemos ver anteriormente, os dados (letras e números) são codificados nocomputador através da tabela ASCII. Imagens são representadas em monitores através demapas de bits (bitmaps), ou seja cada ponto luminoso da tela corresponde a um único bitna memória indicando se deve estar ligado ou desligado. Desenhos são formadosativando os pontos corretos e mantendo outros desativados. As cores podem serrepresentadas 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

= 256 combinações distintas, uma vez que cada bitpode assumir dois valores diferentes (0 ou 1). Com o passar do tempo esta unidadetornou-se pequenas para representar os arquivos e a capacidade de armazenamento dosmeios magnéticos, por isto foram criadas novas unidades:

Unidade Medida Abreviação1 byte 8 bits B1 kilobyte 1024 B KB1 megabyte 1024 KB MB

Page 7: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 7

Introdução ao Linux 

1 gigabyte 102 4 MB GB1 terabyte 1024 GB TB

Software (Programas) 

Programa é uma seqüência de instruções que dizao computador o que ele deve fazer. Isto é, qual é a tarefaespecífica que deve realizar. Programa e software sãosinônimos e aparecerão como tal durante todo este texto.

Os softwares podem ser classificados em doisgrandes grupos de acordo com a atividade que desempenham:

1. Básico2. Aplicativos

1. Softwares Básicos servem para a operação e programação docomputador. Podem ser divididos em Utilitários e Ferramentas de Desenvolvimentos.Sem os softwares básicos os computadores não poderiam ser utilizados pelo homem.Eles formam um conjunto de programas que interagem entre os seres humanos e osmicros.

Software Básico

Ferramentas deDesenvolvimento

Utilitários

 

Utilitários são aqueles que operam o computador, controlando seusrecursos e fornecendo um meio de nos comunicarmos com o computador de formainteligível. Um exemplo clássico de Utilitário é o Sistema Operacional. Sem ele nãopoderíamos dizer ao computador o que desejamos que ele faça.

Ferramentas de Desenvolvimento são softwares para a programação docomputador, ou seja, são programas que permitem criar outros programas de uso geralou específico. Por exemplo linguagem C, Pascal, Basic, Clipper, etc.

2. Softwares Aplicativos são programas de uso específico para usuáriosfinais, como processadores de textos (Microsoft Word, Fácil, Wordstar), planilhaseletrônicas (Excel, Quattro), sistemas gerenciadores de bancos de dados (Clipper,FoxProw, Acces), entre outros.

É o software que diz ao computador como a informação fornecida pelousuário deve ser processada. Por exemplo, se fornecermos os números 2 e 10 para o

Page 8: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 8

Introdução ao Linux 

computador, dependendo do programa ou software que estiver sendo executado, estesnúmeros poderão ser somados e o resultado impresso será 12, ou então o resultado podeser 20 se o programa sendo executado multiplicar os dois números fornecidos pelousuário.

Portanto é o software que fornece um ambiente para a manipulação de umdeterminado tipo de informação. Se não temos um software para reprodução de sons, não

podemos ouvir nem gravarmos música no micro. Para criarmos e modificarmos osarquivos criados por um aplicativo, devemos aprender como funciona especificamente oaplicativo, não precisamos necessariamente saber nada sobre Softwares Básicos.

Hardware  Consiste na parte física do computador, placas, fios e cabos que conduzem

a eletricidade e permitem a comunicação e conexão dos diferentes componentes de umcomputador. Através do hardware nos comunicamos com a máquina e vice-versa.

Quando um novo dispositivo é ligado ao computador é necessário uma“interface”, isto é, uma placa que permita a comunicação entre o dispositivo e a unidadede processamento em si (UCP). Além disto é necessário um software especial paraacessar este dispositivo (driver) e permitir a criação e manipulação de informaçõesutilizadas pelo dispositivo. Em geral a instalação de dispositivos não é muito difícil, masrequer alguns conhecimentos a mais a respeito do funcionamento do computador.Interrupções, canais de entrada e saída, configuração das portas e uso do DMA sãorequisitos básicos para a instalação de muitos periféricos no computador.

O hardware de um computador é formado basicamente pelos seguinteselementos:

1. Dispositivos de Entrada2. UCP (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 naentrada ou saída de informações.

Dispositivos de Entrada permitem ao ser humano introduzir informaçõesno 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 atividades através de ícones e opções que

aparecem no monitor.c) scanner: captura imagens estáticas como fotografias.

d) câmeras digitalizadoras: captura imagens em movimento.e) leitora ótica: efetua leitura de informações em cartões marcados.

Page 9: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 9

Introdução ao Linux 

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

a) monitor: semelhante a um aparelho de televisão, em geral exibe oscaracteres 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) paletes: permite a gravação de slides

Há certos equipamentos que ora funcionam como disposi tivos de entrada eora como dispositivos de saída, logo são conhecidos como Dispositivos de Entrada e

Saída:a) modem: permitem a troca de informações entre computadores via linha

telefônica.b) unidades de disquetes: permitem a leitura/gravação de informações em

meio magnético flexível de baixa capacidade e velocidade.c) unidades de disco rígido (winchester): permitem a leitura/gravação de

informações em meio magnético rígido de alta capacidade e velocidade.

d) CD-R/W (compact disc read write): permitem a leitura/gravação deinformações em discos a laser.

Page 10: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 10

Introdução ao Linux 

A Unidade Central de Processamento (UCP) conhecida comomicroprocessador é o cérebro da máquina. Cabe à UCP controlar todo o fluxo deinformações entre os dispositivos de entrada, saída, além de realizar todo o acesso àmemória principal e à memória secundária. Em suma, é o principal componente docomputador responsável pelo processamento da entrada gerando a saída desejada.

Internamente, é composta por uma Unidade de Controle responsável poracessar a Memória Principal para buscar dados e instruções para serem executad as e pela

Unidade Lógica e Aritmética responsável por todos os cálculos matemático e lógicossimples. Para os cálculos mais complexos que envolvem ponto flutuante (números reaisde alta precisão), é necessário um chip especial, o co-processador matemático que podeser embutido internamente no microprocessador.

Existem diversos fabricantes de microprocessadores. Os mais utilizadosem computadores pessoais são 80286, 80386, 80486 e Pentium de fabricação da Intel.Estes microprocessadores são conhecidos simplesmente pela terminação 286, 386 ou486. O que difere um dos outros é a capacidade de manipular dados e a velocidade doclock.

Microprocessador Capacidade Modelo Clock

80386 32 bits SX 33 Mhz803 86 32 bits DX 50 Mhz804 86 32 bits DX 55 Mhz804 86 32 bits DX2 66 Mhz804 86 32 bits DX4 75 Mhz

Pentium 64 bits -- 100 Mhz

A capacidade de um processador refere-se a quantidade de bits que eleconsegue enviar e receber dos outros dispositivos. Quanto maior a capacidade demanipular bits, melhor e mais rápido é o desempenho do computador. Além disto existetambém o relógio interno ou clock. Trata-se de um pequeno cristal de quartzo que emite

pulsos constantes a um determinado intervalo de tempo. Quanto maior a freqüência (emMegaHertz), mais rápido é o computador. Estes pulsos do relógio são utilizados peloprocessador para controlar o ciclo de execução das instruções.

A Memória Principal é um circuito especial dedicado a manter informaçõesenquanto o computador estiver funcionando. É denominada de memória RAM. É nela queficam armazenados os programas e informações enquanto estivermos manipulando-as.Cabe ao Sistema Operacional reconhecer e gerenciar o espaço livre para que sejapossível executar programas e manusear informações. O microprocessador

Page 11: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 11

Introdução ao Linux 

constantemente acessa a Memória Principal para ler e escrever informações einstruções.

A memória RAM (Random Access Memory) é extremamente volátil, istoé, seu conteúdo é descartado assim que o computador é desligado ou ocorre uma falha naenergia. Para que as informações não se percam, precisamos armazená-las de formadefinitiva naquilo que denominamos Memória Secundária. São os discos flexíveis,

discos rígidos, fitas streamer e discos a laser. Cabe também ao Sistema Operacionalreconhecer e acessar os periféricos responsáveis pela leitura e gravação nestes meios.

O problema da memória RAM é a lentidão com que o microprocessadoracessa seu conteúdo. Criou-se então uma pequena, mas veloz memória denominadaMemória Cache que fica entre o microprocessador e a memória RAM ou internamentena CPU. Geralmente possui capacidade para 128 até 1024 KB, ao contrário da memóriaRAM que pode atingir até 128 MB.

O computador utiliza a memória RAM como área de trabalho, isto é,enquanto o computador estiver ligado e programas estiverem sendo executados, tudoocorre na memória RAM. A memória secundária serve apenas para armazenar de forma“definitiva” os arquivos para que eles não se percam assim que desligarmos omicrocomputador.

Existem outros tipos de memórias especiais. Memória ROM (Read OnlyMemory) é um tipo de memória que já vem gravada de fábrica com um pequenoprograma com tarefas mínimas para que o computador possa ser ligado e funcioneadequadamente. Algumas vezes este circuito é chamado de BIOS (Basic Input OutputSystem) e contem uma série de pequenos programas para acessar teclado, monitor, discorígido, etc.

Há alguns tipos especiais de memória apenas de leitura:PROM (Programmable Read Only Memory) pode ser gravada pelo próprio

usuário e não mais pelo fabricante, mas uma vez gravada não mais poderá ser apagada.EPROM (Erasable Programmable Read Only Memory) capaz de ser

programável pelo usuário e se necessário apagar seu conteúdo através de umequipamento especial.

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

Sistema Operacional O Sistema Operacional é um programa especial que gerencia todos os

recursos da máquina, tais como memória, teclado, vídeo (monitor), mouse, entre outros .É através do Sistema Operacional que executamos outros programas,

gravamos ou lemos informações em disquetes, visualizamos textos em vídeo ouimpressora, etc. Sem o Sistema Operacional não conseguiríamos realizar estas tarefas.Ou seja, simplesmente não poderíamoss utilizar o computador.

Existem inúmeros Sistemas Operacionais, tais como: MS-DOS, UNIX,OS/2, VM/CMS, QNN, etc. Cada um deles possuem características próprias e éexecutando em máquinas diferentes. Assim, não podemos executar um programa emSistemas Operacionais distintos, a não ser que o fabricante do programa nos garanta estaportabilidade.

Page 12: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Conceitos Básicos 12

Introdução ao Linux 

O Windows só consegue executar programas MS-DOS porque foramfeitos por um mesmo fabricante, a Microsoft. E porque, a princípio, o Windows não é umSistema Operacional por si, ele necessita do MS-DOS para funcionar. A versão 95 doWindows é planejado para ser independente do MS-DOS, mas que aceita aplicativos doMS-DOS.

É de responsabilidade do Sistema Operacional:

1. Carregar e executar programas.2. Controlar dispositivos de entrada e saída (teclado, monitor, mouse, etc).3. Gerenciar arquivos e diretórios.4. Gerenciar a memória RAMComo pudemos ver anteriormente, todo e qualquer programa executado

em um computador utiliza a memória RAM. Da mesma forma, o Sistema Operacionaldeve ser carregado, ou seja, copiado do disco rígido ou disco flexível para a memóriaRAM. Denominamos este processo de BOOT. Toda vez que ligamos o computador, éfeita uma série de testes para verificar o funcionamento dos periféricos e se tudo estiverperfeito, o Sistema Operacional pode ser carregado.

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

1. Monousuário: permitem apenas um usuário.2. Multiusuário : permitem vários usuários.3. Monotarefa: apenas um programa pode ser executado de cada vez.4. Multitarefa: vários programas podem ser executados ao mesmo tempo.O MS-DOS é um Sistema Operacional monousuário e monotarefa, ou seja,

permite apenas um operador e executa apenas um programa de cada vez. O Windows,apesar de não ser um Sistema Operacional, fornece um ambiente monousuário emultitarefa, onde apenas um único usuário pode executar vários aplicativos ao mesmotempo.

Em geral Sistemas Operacionais que são multiusuários são tambémmultitarefa, como o UNIX e QNN, onde podemos ter vários usuários em terminaisdistintos executando, cada um, uma série de programas diferentes ao mesmo tempo.

Além disto, Sistemas Operacionais podem ser classificados quanto ao tipode comunicação com o usuário, podendo ser:

1. interface por linha de comando: quando o usuário tem que digitar ocomando por extenso na tela do computador. A comunicação, em geral é feita em modotexto. Preferencialmente utilizada por especialistas.

interface gráfica para usuários (GUI) : quando os comandos são executados em um

ambiente gráfico com o uso do mouse. Voltada principalmente para o usuário final.

Page 13: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 13

Introdução ao Linux 

Ca pí t u l o 1

I n t r o d u ç ã o  

1. Histórico

O Sistema Operacional UNIX foi desenvolvido nos laboratórios da AT&T

para uso próprio, baseado em um antigo projeto que deveria ser o primeiro Sistema

Operacional multiusuário e multitarefa, o MULTICS.

Porém, este projeto estava muito além da capacidade dos equipamentos para a

época. Desta forma o projeto foi arquivado, mas alguns de seus idealizadores (Ken

Thompson, Dennis Ritchie e Rudd Canadaday) resolveram escrever uma versão

simplificada e monousuária para 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, estes computadores para

os quais o Sistema Operacional foi reescrito eram utilizados por quase todas as

Universidades que se interessaram por este Sistema Operacional muito superior aos que

vinham sendo utilizados nos laboratórios de computação.

A partir de então, a AT&T licenciou seu mais novo projeto para as

Universidades, mostrando uma enorme visão e capacidade inovadora, pois além do

Sistema Operacional, foi cedido o código do mesmo para as Universidades, que não

mediram esforços em depurar o programa e incluir novas características.

Foi dentro das Universidades que o UNIX cresceu e adquiriu muitas das

características que o tornam poderoso, dando origem a diversas versões além da original

proveniente dos laboratórios da AT&T. Esta característica tornou o UNIX um sistema

poderoso na medida em que foi concebido não apenas por uma equipe de projetistas, mas

sim por toda uma comunidade de pessoas interessadas em extrair o melhor das máquinas.

A princípio, o código do UNIX foi escrito em linguagem assembler ou de

máquina que é altamente dependente do hardware ou parte física do computador. Para que

Page 14: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 14

Introdução ao Linux 

o código fosse reescrito, era necessário muito esforço e tempo. Entretanto, um dos

criadores do Sistema Operacional UNIX resolveu utilizar uma nova linguagem para

escrever o UNIX, era a linguagem C que oferecia o poder da linguagem de máquina com

a facilidade das linguagens estruturadas de alto nível.

A grande vantagem de se utilizar a linguagem C ao invés da linguagem de

máquina própria do computador é a de que a primeira é altamente portável, isto é, umprograma escrito em C para um determinado computador poderá ser executado quase

sem nenhuma modificação em outro tipo de máquina completamente diferente. Enquanto

que se fosse feito um programa em linguagem de máquina para um determinado

computador o programa seria executado somente neste tipo de computador e não nos

demais, para isto, seria preciso reescrever todo o programa.

O UNIX foi projetado para ser executado em computadores de grande

capacidade, ou seja, mini e supercomputadores, pois somente estas máquinas podiam

oferecer suporte aos recursos necessários para o ambiente gerado pelo Sistema

Operacional.Crescendo longe do alcance dos usuários de microcomputadores, o UNIX

atingiu uma estabilidade e estrutura jamais alcançada por um Sistema Operacional. Mas

nestes quase trinta anos de existência do UNIX, os microcomputadores evoluíram a

ponto de fornecer o mínimo de condições para que este poderoso Sistema Operacional

pudesse ser implementado para os micros IBM-PC e compatíveis.

Diversas versões do UNIX foram escritas e licenciadas para venda com

nomes semelhantes (XENIX, UNISYS, AIX, etc) porém com as mesmas características

essenciais, sendo que atualmente existem inúmeras versões comerciais e outras tantas

versões livres que foram desenvolvidas em Universidades ou por hackers através da redeInternet.

Apesar de ter sido desenvolvido para lidar com dispositivos de caracteres,

UNIX foi pioneiro na área de gráficos em estações de trabalhos. As primeiras interfaces

gráficas para usuários (GUI) foram projetadas e utilizadas em Sistemas operacionais

UNIX, desenvolvidas pelo MIT (Massachussets Institute of Technology). Trata-se do X

Window System.

Como se pode notar, UNIX é um sistema de inúmeras possibilidades.

Praticamente todos os recursos que os sistemas operacionais mais atuais utilizam já

haviam sido executados em UNIX há muito. Todas as áreas da computação puderam serdesenvolvidas com o UNIX.

As tendências atuais levam a uma tentativa de padronizar o Sistema

Operacional UNIX combinando as melhores características das diversas versões do

mesmo. Prova disto é a criação do POSIX, um 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 o padrão de GUI (interfaces gráficas) para UNIX.

Page 15: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 15

Introdução ao Linux 

A versão que será abordada durante este curso é o LINUX, um clone do

Sistema Operacional UNIX para microcomputadores IBM-PC 386 e compatí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 livre e ser compatível com o

padrão POSIX. Além de unir em um único Sistema Operacional as vantagens dasdiferentes versões de UNIX comerciais disponíveis. Desta forma, LINUX torna-se a

melhor opção para que usuários de microcomputadores possam usufruir da capacidade

do UNIX.

Apesar de não poder rodar aplicativos para MS-DOS, o LINUX pode rodar

todos os softwares de desenvolvidos para UNIX, além de estarem disponí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 de

trabalho com poder razoavelmente comparável às estações existentes como SUNs e

outras usando PCs, com fiel semelhança no seu uso.O LINUX pode conviver pacificamente com outros sistemas operacionais no

PC. Existe uma infinidade de formas de instalá-lo: em uma partição DOS já existente,

sem haver a necessidade de reparticionar o HD e conseqüentemente sem nenhuma perda

de informação, pode ainda ser instalado em um HD exclusivamente dedicado a ele.

Para conviver com outros sistemas operacionais, existem algumas maneiras

de carregar o sistema operacional, o Lilo (Linux Loader) que pode funcionar como um

BOOT manager no qual se escolhe qual partição ou drive irá dar a partida, o loadlin que é

um utilitá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, existem diversos

livros à venda, os quais incluem CDs com distribuições do LINUX da forma SlackWare.

Outra forma de obtê-lo inteiramente grátis e via ftp pela INTERNET.

Existe hoje, um movimento no sentido de tornar o LINUX um sistema

popular, dado que superioridade técnica ele já possui.

Existem algumas outras versões de UNIX para PCs, tais como Xenix, SCO

Unix, FreeBSD e NetBSD, as últimas duas também livres, no entanto além de mais

popular, o LINUX possui uma série de características a mais, não encontradas em outras

versões, mesmo comerciais, de UNIX. 

2. Uma visão geral do LINUX

Um Sistema Operacional deve gerenciar os recursos da máquina da melhor

maneira possível de forma a poder oferecer aos usuários o máximo do computador.

Dentre as principais funções do sistema Operacional, podemos destacar:

Page 16: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 16

Introdução ao Linux 

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 e integrar o que há de melhor

em um computador de forma harmoniosa e eficiente devido a sua própria origem em

meio a toda uma comunidade de pessoas interessadas em obter o máximo e o melhor em

desempenho. Cabe ressaltar também que o Linux possui todas as características que

fazem do UNIX um excelente sisterma operacional, entre elas : Portabilidade,

Multiusuário e Multitarefa, Estrutura hierárquica de arquivos, Ferramentas e Utilitários,

Comunicação com outros sistemas.Daremos uma rápida olhada em algumas das principais características e

vantagens que fazem o LINUX único :

Multitarefa. Linux, como as outras versões do UNIX é um sistema multitarefa,

possibilitando a execução de múltiplas aplicações de diferentes usuários no mesmo

sistema ao mesmo tempo. A performance de uma 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 sistemas gráficos para

máquinas UNIX. Uma versão completa do X Window System, conhecida como  Xfree86 

está disponível pra Linux.TCP/IP (Transmission Control Protocol / Internet Protocol), este é um conjunto de

protocolos que liga milhões de universidades e empresas numa rede mundial conhecida

como Internet. Com uma conexão Ethernet o 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 como memó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.

3. A estrutura do LINUX

Est r u tu r a Lóg i ca

Ker n el / Sh el l

Page 17: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 17

Introdução ao Linux 

Kernel é o núcleo do Sistema Operacional LINUX, que permanece residente

na memória. Através dele que o usuário possui o acesso aos recursos oferecidos pelo

hardware (o computador em si). Todo o gerenciamento 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 amemória principal e os dispositivos periféricos. Desta forma, o kernel

abrange todos os drivers controladores de dispositivos que podem ser

ligados a um computador

2. gerenciamento de processos: aloca recursos, escalona processos e atende a

solicitação de serviços dos processos

Shell é o interpretador de comandos do LINUX. É ele quem fornece uma

interface para que o usuário possa dizer ao Sistema Operacional o que deve ser feito. O

shell traduz o comando digitado em chamadas de sistema que são executadas em

linguagem de máquina pelo kernel. Além disto, fornece um ambiente programável atravésde scripts.

Existem inúmeros shells cada um com ligeiras diferenças entre si. Muitas

vezes é possível utilizar vários shells diferentes em um mesmo micro rodando LINUX,

isto porque ele é multitarefa e multiusuário, de modo que cada usuário poderia utilizar o

shell que lhe agradar mais. Entre os mais utilizados estão o Bourne Shell, o C shell e o

Korn Shell.

U t i l i t á r i o s

Existem centenas de utilitários (comandos) para a realização de tarefasespecializadas ou rotineiras, entre elas manipulação e formatação de textos, cálculos

matemáticos, gerenciamento e manutenção de arquivos e diretórios, administração de

sistemas, manutenção de segurança, controle da saída para impressora, desenvolvimento

de programas e filtragem de dados.

Cada um destes utilitários é digitado na linha de comando do LINUX que será

interpretado pelo Shell do sistema. Este por sua vez se encarregará de realizar diversas

chamadas ao Kernel para a execução do comando.

Como as interfaces gráficas são muito recentes, o LINUX teve toda a sua

potencialidade explorada em termos de ambiente de desenvolvimentos. Isto equivale adizer que o que se pode fazer com um software de Formatação de Textos do tipo aponte e

clique, pode ser realizada através do antigo modo de linha de comando no LINUX.

Mas isto não impede que as facilidades do ambiente de janelas seja

explorado, pelo contrário. Os mais profissionais programas aplicativos rodam sobre o

Sistema Operacional LINUX, entre eles o Gerenciador de Banco de Dados ORACLE,

INGRES e FoxBASE+, formatadores de textos Postscript, Tex e FamaMaker de

qualidade extraordinárias.

Page 18: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Introdução 18

Introdução ao Linux 

Pr ocessos

Quando um programa ou utilitá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 os processos do sistema possuemprioridades sobre os do usuário.

Com base nas informações sobre os processos em andamento, a CPU precisa

escalonar os processos para dedicar a cada um, um determinado tempo dando a

impressão de que vários processos estão sendo executados ao mesmo tempo.

Page 19: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 19

Introdução ao Linux 

Ca pí t u l o 2

I n i c i a n d o  

1. A Sessão LINUX

Antes de iniciar a sessão no sistema propriamente dita, temos que levar em

consideração o significado das teclas especiais que são utilizadas 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 se encarregará de permitir ou não

seu acesso verificando sua senha, se estiver correta libera o diretório de entrada e

executa arquivos de inicialização locais e o interpretador apropriado. Após este

processo, você estará apto a executar os comandos do LINUX.

Quando o terminal estiver ligado, provavelmente será apresentado um sinal de

prontidão do sistema da seguinte forma:

Login:

Isto significa que o sistema stá esperando para que o usuário se identifique

com o nome de usuário que lhe foi concedido pelo Administrador de Sistema junto com

uma senha de acesso. Após digitar o nome de usuário, presione E NTER. Será apresentada

um novo sinal de prontidão:

Password:

Este sinal pede que seja digitada a sua senha. Note que a medida que forem

digitados os caracteres, eles não aparecerão no vídeo por medidas de segurança.

Se algo deu errado (foi novamente apresentado o sinal de login), tente

novamente, certificando -se de ter digitado o nome de usuário e a senha exatamente como

recebeu do Administrador pois o LINUX diferencia as letras maiúsculas das minúsculas.

Isto quer dizer que para o LINUX A (letra “a” maiúscula) é diferente de a (letra “a”

Page 20: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 20

Introdução ao Linux 

minúscula). Esta é uma dica que serve não apenas para iniciar a sessão, mas também para

todos os comandos LINUX.

Tendo o usuário se identificado com o nome da conta e a senha (se esta

existir, pois existem contas criadas especialmente para uso sem senha), o LINUX checa

em um arquivo de configuração pelo nome da conta e a senha corespondente

devidamente encriptada. Estando ambas registradas e corretas, o Sistema Operacionalpermite o acesso ao usuário executando o shell indicado também neste arquivo.

O shell providencia uma interface de comunicação entre o kernel e o usuário.

Esta interface consiste de uma linha de comando (ou prompt) na qual deve ser digitado o

comando por extenso seguido por seus parâmetros (se tiver). Em uma linha de comando

podemos ter mais de um comando em sequência para serem executados.

Em geral esta linha de comando é formada por um símbolo que pode ser de

porcentagem (%) ou cifrão ($) para usuários comuns e grade (#) para usuários com

privilégio de raíz, dependendo do tipo de shell usado.

Os parâmetros que aparecem após o nome do comando podem ser nomes dearquivos e/ou caminhos de diretórios. Eles devem sempre ser digitados com um espaço

entre si e depois do comando. Muitas vezes alguns símbolos que aparecem na linha de

comando não são parâmetros, mas sim comandos para o shell deteminando a sequência

em que o(s) comando(s) devem ser executados.

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

digitarmos o comando, presionarmos a tecla ENTER, RETURN ou ↵ (varia de

computador para computador).

Caso seja encontrado algum erro na digitação do comando antes que a tecla

ENTER seja pressionada, podemos corrigí-lo utilizando as teclas de direção ← e → paraposicionarmos o cursor na posição em que o erro foi cometido. Cursor é o símbolo

gráfico que aparece logo após a linha de comando e que se movimenta a medida em que

caractere são digitados e aparecem na tela.

Para apagar caracteres antes do cursor, basta pressionar a tecla de

BACKSPACE (←← ) ou a combinação de teclas CTRL+H (^H). Se desejar apagar toda a

linha tente CTRL+U (^U). Pode ser que a tecla DEL também funciona para apagar

caracteres, mas de maneira diferente, ao invés de apagra caracteres antes do cursor, ele

apaga caracteres após o mesmo.

Algumas vezes podemos recuperar os comandos dados anteriormente. Certostipos de shell possuem um arquivo oculto no diretório de entrada do usuário que

armazena até os n últimos comandos digitados. É 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 comando digitados.

Page 21: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 21

Introdução ao Linux 

Exemplo : Utilize os comandos history e “!” para re-executar um comando

$ history199 ls

200 pwd

201 clear

202 history

$ !200

pwd

 /home/guest

$

Em alguns shells estas teclas não estão definidas, ou então outras realizam

estas mesmas funções. Procure junto ao Administrador de Sistemas quais teclas ou

conjunto de teclas usar para editar a li nha de comando.

Certos comando são interativos e outros não-interativos. Comandos

interativos são aqueles que após serem executados, exigem que algumas perguntas sejam

respondidas para que possam prosseguir. Comandos não-interativos simplesmente

executam os comandos sem nada perguntar e retornam à linha de comando do LINUX.

Exemplos de comandos não-interativos:ls - exibe lista do conteúdo do diretório corrente

date - exibe a data e hora do sistema

cal <ano> - exibe calendário do ano especificado

who - exibe lista de todos os usuários ativos no sistema

clear - limpa a tela

Exemplos de comandos interativos:

passwd - modifica a senha

ftp - permite transferência de arquivosmail - gerencia correspondências

2. Encerrando a sessão

Page 22: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 22

Introdução ao Linux 

Você pode usar dois comandos para encerrar uma sessão, os comandos exit ou

logout no  prompt  do shell. Em alguns sistemas aparecerá na tela o prompt de logout e as

informações relativas ao tempo decorrido 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 o terminal, o

sistema fica vulnerável ao acesso de pessoas não autorizadas, e seus arquivos poderão sermanipulados por essas pessoas;

Cobrança: Se a sua organização usa os recursos de contabilidade do sistema

para cobrar pela sua utilização, você será cobrado pelo tempo que permanecer dentro da

sessão.

3. Ciclo de Execução do Comando

O shell analisa a linha do comando separando seus vários componentes com o

uso de espaç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, a shell procura um arquivo executável (programa) com o mesmo

nome;

3. Se o shell localiza o programa, ele verifica se o usuário que fez o pedidotem permissão de acesso para usar o comando;

4. O shell continua a examinar o resto da linha de comando para ver a

formataçã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 inativa até que o programa tenha encerrado. O

programa em execução na memória é chamado de processo;

7. Quando o processo termina de ser executado, o controle retorna à shell queexibe novamente o  prompt  para avisar que está pronta para o próximo

comando;

4. Alteração da Password:

Page 23: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 23

Introdução ao Linux 

Os procedimentos de alteração e definição de uma senha são semelhantes,

com a exceção de que na alteração o usuário recebe antes o  prompt para informar a senha

antiga. A nova senha deve ter no mínimo três caracteres diferentes da senha antiga. O

comando passwd verifica a informação sobre a idade da senha nos arquivos

 /etc/default/passwd e/ou etc/shadow para determinar a validade da senha e se a senha pode

ser alterada. Os super-usuários não recebem o prompt para fornecer a senha antiga.

Exemplo : Altere a sua senha utilizando o comando passwd 

$passwd

Changing password for guest

Enter old passwd :

Enter new passwd :

Re-Type new passwd :

Passwd changed$

5. Estruturas de Arquivos e Diretórios

Existem 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 fisicamente) estão contidos

nele. Isso significa que o conteúdo de seus arquivos não está armazenados dentro do

diretório. Assim sendo, não há limite para o tamanho de um diretório.Teoricamente você

poderia colocar no seu diretório tantos arquivos quanto quisesse, até o ponto de estourar

a capacidade do seu disco.

Os dados contidos no arquivo diretório são apenas o nome de cada arquivo eseu ponteiro para uma tabela de informações de controle de todos os arquivos do

sistema. Esta tabela contém informações administrativas 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 o diretório

para verificar se existe no disco um com o nome que você especificou. Em caso

Page 24: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 24

Introdução ao Linux 

afirmativo, o sistema obtém, da tabela as informações necessárias para poder manipulá-

lo. Caso contrário, o sistema envia uma mensagem informando que não foi possível

encontrar o arquivo.

Um diretório pode conter outros diretórios, aos quais chamamos sub-

diretórios. Um subdiretório pode conter outros arquivos e subdiretórios, que também

podem conter arquivos e subdiretórios e assim por diante. Este é um relacionamentopai/filho entre um diretório e seus arquivos e diretórios subordinados. Cada diretório pai

guarda informações sobre os arquivos e diretórios que estão a um nível abaixo dele - seus

filhos.

Um arquivo convencional é um conjunto de caracteres presentes em algum

meio de armazenamento, como por exemplo um disco. Ele pode conter texto para uma

carta, código de programa ou qualquer informação armazenada 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. Os arquivos especiais associados aosdispositivos periféricos estão localizados no diretório /dev.

Um arquivo simbólico é um arquivo convencional que aponta para outro

arquivo em qualquer lugar do sistema de arquivos LINUX.

6. Diretórios

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

organizadamente. Se todos os arquivos do sistema fossem armazenados em um mesmo

lugar, o LINUX levaria muito tempo para verificar todos os arquivos até encontrar aqueleque está procurando. Os diretórios são um meio de oferecer endereços dos arquivos, de

maneira que o LINUX possa acessá-la rápida e facilmente.

Ao entrar pela primeira vez em sua conta, você já está em um subdiretório do

sistema LINUX, chamado seu diretório de entrada (home directory). A menos que você

crie alguns subdiretórios em sua conta, todos os seus arquivos serão armazenados em

seu diretório de entrada. Teoricamnte, você pode fazer isso, mas a manutenção de seus

arquivos será mais eficiente se você criar seu próprio sistema se subdiretórios. Assim

ficará mais fácil manter o controle de seus arquivos porque eles estarão agrupados em

diretórios por assunto ou por tipo. O LINUX também realiza buscas de maneirras maiseficiente em diretórios pequenos que nos grandes. Nos capítulos seguintes, você

aprenderá os comandos necessários para criar diretórios, levar arquivos para outros

diretórios e passar de um diretório para outro.

Page 25: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 25

Introdução ao Linux 

7. Diretório de Entrada

Como mencionamos anteriormente neste capítulo, seu diretório de entrada é

aquele em que você é colocado quando abre uma sessão em um sistema 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 sistema de arquivos do LINUX. No alto de seu

sistema pessoal de arquivos, em vez do diretório-raiz, está seu diretório de entrada.

Abaixo dele estarão os subdiretórios que você criar, que podem, por sua vez, se ramificar

em subdiretórios e/ou arquivos.

Os diretórios de entrada dos usuários são iguais a qualquer outro diretório de

um diagrama de sistema de arquivos. Entretanto, sendo o diretório principal de sua conta,

seu diretório de entrada tem um status especial. Sempre que você entra no sistema, o

LINUX define uma variável chamada HOME que identifica o seu diretório de entrada. O

LINUX usa o valor da variável HOME como ponto de referência para determinar quais

arquivos e diretórios do sistema de arquivos você pode acessar e também para orientar-separa onde levá -lo quando você deseja mudar de diretório corrente.

8. Diretórios Corrente

O diretório corrente, ou de trabalho (working directory), é o diretório em que

você está em um determinado momento. Por exemplo, quando você entra no sistema, o

diretório corrente é sempre seu diretório de entrada. Se você passar para um de seus

subdiretórios, este passará a ser o diretório corrente.Durante toda a sessão, o LINUX mantém o controle de seu diretório corrente.

Todos os comandos são executados sobre o diretório corrente, a menos que você

especifique outro. Por exemplo, qualquer arquivo ou subdiretório que você criar será em

princípio criado no diretório corrente. Sempre que você digitar ls, verá uma lista dos

arquivos e diretórios do diretório corrente.

Exemplo : Use o comando ls para mostrar o conteúdo do diretório corrente

$ls

curso/ teste.txt

$

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 o diretório pai do diretório

corrente (o diretório ao qual o diretório corrente pertence). Quando precisar se referir

Page 26: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 26

Introdução ao Linux 

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 listar o conteúdo do diretório corrente :

$ls .curso/ teste.txt

$

2 - Use o comando ls para listar o conteúdo do diretório pai do diretório

corrente :

$ls ..

linux/ alunos.txt prog.sh

$

9. Nomes e Caminhos

Quando você digita um comando que opera sobre um arquivo ou diretório,

precisa especificar o nome do arquivo ou do diretório desejado. O caminho, de um

arquivo ou diretório é a lista de todos os diretórios que formam a ligação entre ele e o

diretório-raiz.

Você só pode identificar individualmente cada arquivo e diretório por seu

nome e caminho, porque seu nome pode ser idêntico ao de outro arquivo em outro localdo sistema. Por exemplo, suponha que haja duas contas de usuário, chamadas luciene e

alfredo, cada uma contendo um subdiretório chamado vendas. O LINUX pode diferenciar

esses dois subdiretórios por seus caminhos. Um deles seria /.../luciene/vendas e o outro

seria /.../alfredo/vendas, onde as reticências representam os diretó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, o LINUX sempre interpretará o nome do arquivo ou

diretório como seu nome e caminho inteiro, porque ele mantém o controle de seu

diretório corrente e pode preencher a parte do nome de caminho que falta.

Além do caminho absoluto, você também pode usar o caminho relativo, de umarquivo ou diretório. O caminho relativo não começa com o diretório raiz, mas com o

diretório mais próximo do diretório cujo caminho está sendo definido. Para especificar

um caminho relativo para seu diretório de entrada, você pode começar o caminho com

$HOME ou com um ~ (til), que é um sinônimo para $HOME. Por exemplo, se seu

diretório de 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ório marco. Sempre que você

Page 27: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 27

Introdução ao Linux 

digitar $HOME como parte de um nome de caminho, o LINUX o interpretará como o

nome de caminho completo de seu diretório de entrada. A variável HOME funciona em

todos as shells. Em C shell, você pode também usar o caractere ~ (til) no nome de

caminho para representar o diretório de entrada. C shell define o ~ exatamente como o

Bourne shell define a variável HOME.

Para especificar um caminho a partir do diretório corrente, você pode iniciaro caminho com um . (que representa o diretório corrente), ou com o nome do primeiro

subdiretório naquele caminho. O ponto é opcional neste caso porque se o nome de

caminho não começar com uma /, o LINUX considera que você quer que ele comece

com o diretório corrente.

Se você já tiver mudado de diretório algumas vezes, talvez não esteja 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 dos arquivos que ele contém. Entretanto, uma

maneira mais simples de saber qual o diretório corrente é digitar pwd, que será

apresentado mais adiante. 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

$

10. Nomes de arquivos e diretórios

As 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 caracter;

• Evite usar caracteres especiais pois estes tem um significado diferente

para a shell. Os caracteres especiais da shell são os seguintes: ? @ # $ ^ &* () ‘ [] \ | ; ‘ “ <> ;

• Não use espaços nos nomes dos arquivos. A shell interpreta os espaços

como delimitadores nas linhas de comandos. Ao invés de espaços use um

ponto (.) ou um sublinhado (_) (underscore);

Page 28: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 28

Introdução ao Linux 

• O LINUX faz diferença entre letras maiúsculas e minúsculas. Por

exemplo, report, Report, REPORT e rePort são todos nomes distintos de

arquivos;

• Os nomes de arquivos devem ser exclusivos dentro de cada diretório.

Entretanto, o mesmo nome de arquivo pode ser usado em diretórios

diferentes;• Os nomes dos arquivos podem ter no máximo 14 caracteres de

comprimento (em alguns sistemas este tamanho pode chegar a 256

caracteres);

• Podem ser usadas extensões nos nomes de arquivos a fim dar um melhor

signicado aos seus nomes. A extensão descritiva (sufixo) é geralmente

precedida por um ponto. Por exemplo, a extensão .c é usada para

identificar os programas em linguagem C e .sh para se referir aos

programas em shell;

11. Caracteres Especiais do Shell

Alguns caracteres tem significado especial para o Shell. Esses caracteres são

interpretados quando o Shell encontra-os durante o processamento da linha de comando.

11.1. Substituição do Nome do Arquivo

Três caracteres especiais permitem a referência a grupos de arquivos oudiretórios em uma linha de comando. Estes caracteres são chamados Meta caracteres ou

Coringas.

Asterisco

O * substitui qualquer conjunto de caracteres.

Ponto de interrogação

O caracter ? substitui qualquer caracter.

Colchetes

O símbolo [] contém uma lista de caracteres. Um dos caracteres dentro docolchetes será substituido. Um hífen separando os caracteres que estão entre

colchetes indica um intervalo. Um ! dentro do colchetes indica o sentido da

procura invertido.

Page 29: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 29

Introdução ao Linux 

Esses caracteres especiais poupam tempo de digitação. O mais importante é que

eles podem ser usados para fazer referência a arquivos cujo nome não se conhece

exatamente.

Exemplos :1- Liste todos os arquivos com extensão .new :

$ ls *.new

File.new

arquivo.new

$

2- Liste todos os arquivos cujo nome termine com um numero entre 1 e 5 :

$ ls *[1 -5]

file1arquivo3

dir5

$

3- Liste todos os arquivos cujo nome tem três caracteres e começam com f :

$ ls f??

fig

fin

$  

11.2. Marcação do Caracter Especial

Para usar literalmente um caracter especial sem que o Shell interprete seu significado

ele deve ser marcado. O shell trata um caracter especial marcado como um caracter

normal. 

Aspas Quando se coloca um caracter 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 caracteres especiais entre apóstrofes

são ignorados ;

Barra invertida 

Page 30: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Iniciando 30

Introdução ao Linux 

Geralmente, a barra invertida faz o mesmo que colocar um caracter entre

apóstrofes. Quando uma barra invertida é usada, ela deve preceder cada caracter a ser

marcado;

Page 31: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 31

Introdução ao Linux 

Ca pí t u l o 3

Ar qu i vos e D i r et ó r i os

1. Manipulando Arquivos e Diretórios

A função essencial de um computador é armazenar informações (arquivos) e

catalogá-los de forma adequada em diretórios, fornecendo, se possível, algum esquema

de segurança de modo que pessoas não autorizadas não tenham acesso a arquivos

importantes.

Neste capítulo você aprenderá como manipular arquivos e diretórios no

LINUX. Saber copiar, mover, exibir o conteúdo de um arquivo, e localizar um arquivo

são algumas das atividades que veremos neste capítulo.

Os comandos aqui apresentados não são a totalidade dos comandosdisponíveis, mas certamente são suficientes para que você consiga executar funções

típicas e usuais de um programador ou de um usuário de aplicativos em ambiente LINUX.

1.1. Identificando o Diretório Corrente

pwd 

O comando pwd (print working directory) não possui nenhuma opção ou

argumento. Este comando mostra o nome do diretório corrente ou de diretório de

trabalho (working directory). Você pode util izá-lo para se situar no sistema de arquivos.

Por exemplo, é sempre útil verificar o diretório corrente antes de criar ou remover

arquivos e diretórios. Do mesmo modo, o pwd é útil para confirmar o diretório corrente

após várias trocas de diretórios.

Page 32: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 32

Introdução ao Linux 

Exemplo : Descubra qual o diretório corrente

$pwd

 /home/guest

1.2. Criando diretórios

mkdir

Nos diretórios podemos agrupar informações afins, isto é, arquivos que

possuem alguma interrelação. O nome do diretório deve ser significativo e permitir um

acesso e uma localização rápida dos arquivos armazenados no seu sistema de arquivos.

O comando mkdir (make directory) é utilizado para criar diretórios. Os

nomes dos diretórios a serem criados são passados como argumentos para o comando.

Estes nomes podem ter até 255 caracteres em algumas versões do Sistema Operacional

UNIX, e devem ser únicos, isto é, não pode haver dois diretórios com mesmo nome

dentro de um mesmo subdiretório, nem mesmo um arquivo e um diretório iguais em um

mesmo subdiretório.

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

(permissão para leitura, escrita e execução).

Opções:

-mmodo Especifica o modo de permissão de acesso para o diretório que está

sendo criado;

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

criado;

Exemplos : 

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

$mkdir -m 711 teste

$ls -l

total 1

drwx--x--x 2 guest users 1024 May 15 21:27 teste / 

Page 33: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 33

Introdução ao Linux 

2 - Crie um diretório chamado curso com um diretório filho chamado aula1

$mkdir -p curso/aula1

$ls -l

total 2

drwx--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 1

drwxr-xr-x 2 guest users 1024 May 15 21:33 aula1/ 

$

Notas:

• 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órios;

1.3. Listando diretórios

ls [AaCFpdlmRrstucx][nomes] 

Normalmente o conteúdo de um diretório é listado em ordem alfabética, um

item por linha. As diversas opções do comando ls permitem adaptar o formato da

listagem.

Se nada for especificado em nomes todos os itens do diretório corrente são

listados. Entretanto em nomes é possível determinar máscaras (filtros) para selecionar

padrões de nomes de itens a serem listados.

Opções:

-A Lista todos os itens do diretório, inclusive os que começam com

ponto, exceto os itens . e .. não são listados;

-a Lista todos os itens , inclusive os que começam com pontos;

-C Listagem em várias colunas, em ordem alfabética;

-F Coloca uma / após itens que são diretórios e um * após itens que

são arquivos executáveis;

-p Coloca uma / após itens que são diretórios;

-d Lista apenas o nome de itens que são diretórios, não lista seus

conteúdos;

Page 34: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 34

Introdução ao Linux 

-l Lista o conteúdo de um item que é diretório;

-m Formata a saída como texto corrido, os itens são separados por

vírgula;

-R Lista todos os diretórios encontrados e seus subdiretórios;

-r Lista em ordem alfabética reversa, ou em ordem de hora/data

reversa;-s Mostra o tamanho em blocos de cada item;

-t Ordena os itens por hora/data de modificação;

-u Usada em conjunto com -t para ordenar pela hora/data do último

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

-c Usada em conjunto com -t para ordenar pela hora/data da última

modificação do item na tabela de arquivos do Sistema de Arquivos;

-x Lista em várias colunas, ordenando os itens em linhas ao invés de

em colunas;

Exemplos : 

1 - Liste todos os itens do diretório corrente inclusive os que começam com

ponto :

$ls -a

./ ../ .less .kermrc curso/ teste/ 

$

2 - Liste o conteúdo do diretório mostrando o tamanho em blocos de cada

item :

$ls -s

total 2

1 curso/ 1 teste/ 

$

3 - Liste o conteúdo do diretório corrente e seus subdiretórios :

$ls -Rcurso/ teste/ 

curso :

aula1/ 

curso/aula1 :

teste :

$

Page 35: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 35

Introdução ao Linux 

1.4. Mudando de diretório

cd <nome-diretório> 

O comando cd (change directory) é utilizado para mudar o diretório de

trabalho corrente. Não há opções para este comando. O nome do novo diretório de

trabalho é indicado em nome-do-diretório. Se você não especificar um diretório, cd fará

com que o seu diretório de entrada (home directory) se torne o seu diretório corrente.

Se nome-do-diretório for um subdiretório do seu diretório corrente, basta informar o

nome dele. Caso contrário você pode informar o nome relativo ou absoluto do diretório

para o qual você quer mudar.

Exemplo :

1- Troque o diretório corrente para curso, verifique,volte ao seu diretório

base :

$cd curso

 /curso$ pwd

 /home/guest/curso

 /curso$ cd

$

2 - Vá para o diretório aula1, verifique :

$cd curso/aula1

 /curso/aula1$ pwd

 /home/guest/aula1

Notas:

• O programa cd foi incorporada do Bourne Shell, C Shell e Korn Shell, não

sendo um utilitário UNIX;

1.5. Removendo diretórios

rmdir [ps] <lista-de-diretórios> 

Page 36: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 36

Introdução ao Linux 

O comando rmdir (remove a directory) é utilizado para remover um ou mais

diretórios vazios. O diretório que será removido deve estar vazio e não pode ser o

diretório corrente. Apenas o usuário que criou o diretório ou um super-usuário pode

remover um diretório, a não ser que o diretório tenha acesso de gravação para outros

usuários.

Os nomes dos diretórios podem ser especificados como absolutos ourelativos

Opções:

-p Remove diretórios citados e respectivos diretórios pai que ficarem

vazios com a remoção;

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

$rmdir -p curso/aula1

$ls

teste/ $

Notas:

• Para remover diretórios que não estejam vazios, utilize rm -r;

Exemplo : Remova o diretório teste

$rmdir teste

rmdir : teste: Directory not empty

$rm -r teste

$

1.6. Tipo de um arquivo

file [m] <arquivos> 

Você já deve ter percebido em alguma oportunidade que alguns arquivos não

podem ser listados na tela do micro/terminal, pois possuem códigos executáveis ou

outros dados não adequados para serem mostrados na tela do terminal ou micro, o

micro/terminal pode até mesmo ficar "preso" como resultado da tentativa de exibir um

arquivo desses. O comando file pode ser utilizado para verificar o tipo de um arquivo,

sem que seja preciso lis tá-lo para saber seu conteúdo.

Page 37: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 37

Introdução ao Linux 

O comando file toma como argumentos uma lista de nomes de arquivos ou

diretórios (ou caminhos relativos/absolutos) especificados na linha de comando, e

examina-os, relatando que tipo de arquivo são: arquivo de texto, de programa em C,

diretório, etc.

Opções:-m Atualiza a hora/data de acesso dos arquivos para a hora/data

atual;

-f  arq Usa como argumentos para file a lista de nomes de arquivos contida

em arquivo.Assim você não precisa passar todos os arquivos que

você deseja investigar na linha de comando;

Exemplos :

1- Descubra o t ipo do arquivo curso$ file curso

curso : Directory

$

2- Descubra o tipo de cada arquivo contido no arquivo teste.file :

$ file -f teste.file

curso : Directory

teste : Directory

texto : ascii text$

Notas:

• O comando file pode confundir os scripts shell com programas em C,

devido à semelhança em suas estruturas;

1.7. Conteúdo de um arquivo:

cat [svte] <arquivos>

O comando cat mostra o conteúdo de arquivos (ou da entrada padrão),

apresentado-o na tela (de fato, na saída padrão). É possível utilizar o cat para criar, exibir

e juntar arquivos. Quando utiliza-se o cat para concatenar arquivos, os arquivos da origem

permanecem intactos.

Page 38: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 38

Introdução ao Linux 

Opções:

-s Suprime mensagens de erro que normalmente aparecem quando

tenta-se utilizar o cat em um arquivo inexistente;

-v Mostra os caracteres de controle, utilizando o formato ^X, onde X

é uma letra;-t Mostra as tabulações em um arquivo como ^I. Deve ser usada em

conjunto com a opção -v;

-e Mostra $ ao final de cada linha. Deve ser usada em conjunto com a

opção -v;

Exemplos :

1- Mostre o conteúdo do arquivo teste.file :

$cat teste.file

cursoteste

texto

$

2 - Mostre o conteúdo do arquivo teste.file marcando o final de cada linha :

$cat -e teste.file

curso$

teste$

texto$$

Notas:

• Veja no capítulo de Redirecionamento de E/S outras aplicações do

comando cat;

pg [número][pstring][cefn][+linha][+/padrão] <arquivos>

O comando pg exibe arquivos em telas (uma por vez) Após preencher cadatela é mostrado um prompt onde você pode teclar ENTER ou utilizar alguns comandos

internos do pg. Ele permite procura de padrões para frente e para trás, posicionamento

em linhas do arquivo, e outros.

Se não for especificado nenhum arquivo, será utilizada a entrada padrão. Se

forem especificados mais de um, eles serão mostrados na ordem em que foram

especificados.

Page 39: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 39

Introdução ao Linux 

Opções:

-número Especifica quantas linhas devem compor uma tela, antes de ser

mostrado o prompt. Normalmente uma tela de exibição é composta

por uma linha a menos que o tamanho da tela do terminal/micro;

-pstring Especifica a string que deverá ser utilizada no prompt.

Normalmente aparece : (dois-pontos);-c Limpa a tela antes de exibir a próxima tela;

-e Elimina a pausa que normalmente ocorre entre exibição de dois

arquivos;

-f  Impede divisão de linhas (quebra de linhas) longas na tela;

-n Elimina a necessidade de digitar ENTER após cada comando interno

dado ao pg;

+linha Exibe o arquivo a partir da linha número linha;

+/padrão Exbie o arquivo a partir da primeira ocorrência de padrão;

Comandos internos de pg:

Você pode utilizar alguns comandos internos de pg para manipular a exibição

do arquivo. Para ver uma lista dos comandos internos possíveis digite h (help) no prompt

do pg e tecle ENTER;

Notas:

• Veja também o comando more;

1.8. Copiando arquivos

cp <arquivo-origem> <arquivo-destino>

O comando cp (copy) copia, isto é, cria uma cópia de um arquivo com outro

nome ou em outro diretório sem afetar o arquivo original. Você pode usar esse comando

para criar cópias de segurança de arquivos importantes ou para copiar arquivos que queira

modificar. Se há algum arquivo que você quer ter em mais de um diretório, pode usar o

comando cp para copiá-lo para outros diretórios.

Na linha 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 comando você pode acidentalmente perder arquivos se já

existir um arquivo com o nome arquivo-destino, neste caso o comando cp escreve o novo

arquivo por cima do antigo.

Page 40: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 40

Introdução ao Linux 

Exemplos :

1 - Copie o conteúdo do arquivo teste.file para um novo arquivo chamado

novo :

$ cp teste.file novo

$ls

curso/ novo teste.file teste/ $

2 - Copie o arquivo teste.file para o diretório teste :

$ cp teste.file teste

$ls teste

nota1/ teste.file

1.9 Movendo/Renomeando arquivos

mv <arquivo-origem> <arquivo-destino>

O comando mv funciona com arquivos da mesma maneira como funciona com

diretórios. Pode-se usar mv para renomear um arquivo ou para movê-lo para outro

diretório, dependendo dos argumentos que você utilizar.

Na linha de comando, arquivo-origem é o nome do arquivo cujo nome você

deseja mudar, e arquivo -destino o novo nome para este arquivo. Se arquivo-destino já

existir, mv primeiro remove o arquivo já existente e depois renomeia 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

verificar se o novo nome que você deseja atribuir já existe;

2. Usar a opção -i (interactive) (presente em alguns sistemas) que permite

uma confirmação da remoção de um arquivo entes de o comando mv removê-lo.

Se arquivo-destino for o nome de um diretório presente no diretório

corrente, então o comando mv entende que arquivo-origem deve ser movido para o

diretório arquivo -dest ino, e não que este deve ser eliminado e substituído por arquivo -

origem.

Se você mover um arquivo para um novo diretório, o arquivo terá o mesmonome de arquivo -origem, a menos que você especifique o novo nome também, dando o

nome do caminho (relativo ou absoluto) antes do nome do arquivo.

Exemplos :

1- Mova o arquivo file.teste para o diretório teste interativamente :

$ mv -i file.teste teste

Page 41: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 41

Introdução ao Linux 

mv : replace ‘teste/file.teste ‘ ? y

$ ls teste

file.teste nota1/ 

$

2- Troque o nome do arquivo teste.file par a copia :

$ mv teste.arquivo copia$ls

curso/ novo copia teste/ 

$

1.10. Como ligar arquivos

ln [-opções] fonte destino

Uma ligação é uma entrada em um diretório que aponta para um arquivo. O

Sistema operacional cria a primeira ligação a um arquivo quando este é criado. O

comando ln é geralmente usado para criar múltiplas referências ao arquivo em outros

diretórios. Uma ligação não cria outra cópia de um arquivo, ela é simplesmente outra

indicação para os mesmos dados. Quaisquer alteraçõ es em um arquivo são independentes

do nome usado para se referir ao arquivo.

As ligações não podem ser feitas entre sistemas de arquivos, a menos que a

opção -s seja usada. Esta opção cria uma ligação simbólica que é um arquivo que contém

o nome do caminho do arquivo ao qual ele está ligado.

Opções:

-f  Normalmente não se podem fazer ligações em um diretório para o

qual não se tenha permissão de acesso. A opção -f força uma ligação

mesmo se você não tiver permissão de acesso;

-s Permite a construção de um arquivo de ligação simbólica para ligar

um arquivo em um outro sistema de arquivos. Um arquivo de ligação

simbólica contém o nome absoluto do arquivo no outro sistema de

arquivos;

Exemplos :

1- Crie uma ligação para o arquivo texto chamada link :

$ ln texto link

Page 42: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 42

Introdução ao Linux 

$ cat link

Universidade Federal de Mato Grosso do Sul

$ cat texto

Universidade Federal de Mato Grosso do Sul

$

2- Crie uma ligação para o diretório aula1 chamado slink :$ ln -s curso/aula1 slink

$ ls -l

...

lrwxrwxrwx 1 guest users 11 May 15 22:27 slink → curso/aula1

$

Notas:

• Quando você liga um arquivo a outro com o mesmo nome, não está criandooutro arquivo, mas simplesmente dando ao arquivo antigo outro endereço. As mudanças

feitas no arquivo ou em uma de suas ligações afetam tanto o arquivo como todas as suas

ligações.

• As permissões são as mesmas para todas as ligações de um arquivo. Alterar

as permissões de uma das ligações implica em alterar as permissões de todas as ligações

automaticamente.

• As ligações criadas com ln podem ser removidas com rm. Isto não significa

que o arquivo original será removido.

1.11. Como remover arquivos

O comando rm remove as ligações a um arquivo. Quando a última ligação é

removida, o arquivo não pode mais ser acessado e o sistema libera o espaço ocupado

pelo arquivo para outro uso. Se o arquivo for de ligação simbólica, a ligação do arquivo éremovida.

Para remover um arquivo é exigida a permissão de gravação do diretório pai do

arquivo. Entretanto não é exigido o acesso de leitura ou gravação ao arquivo. Os

caracteres especiais podem ser usados para se referir a vários arquivos sem indicarcada

nome separadamente.

Opções :

-f  Força a remoção de arquivos com proteção de gravação.

rm [ -opções ] arquivo(s) 

Page 43: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 43

Introdução ao Linux 

-i Remove arquivos interativamente; mostra cada nome de arquivo e dá um

prompt para que se confirme a remoção.

-r Remove recursivamente o diretório citado e seus subdiretórios.

Exemplos :

1- Remova o diretório curso e todos os seus subdiretórios e arquivosinterativamente

$ rm -ir curso

$

2- Remova todos os arquivos que começam com file e o arquivo aula

$ rm file* aula

$

1.12. Formatação da Impressãopr [opções] <arquivo>

O comando pr prepara um arquivo para impressão, definindo as páginas.

Normalmente um arquivo é dividido em páginas com um cabeçalho que contém um

número de página, a data, a hora e o nome do arquivo. As linhas não são preenchidas

automaticamente, de modo que pr não pode ser usado como um formatador de textos.

Opções:+n Começa a impressão na página n ao invés de na página 1;

-n Produz a saída com n colunas. Como com outras opções que

produzem saídas em colunas, as linhas longas demais serão

truncadas para caber nas colunas. Assim, essas opções não são boas

para arquivos de texto a menos que as linhas do texto sejam bastante

curtas. Se usar esta opção, as opções -e e -i também serão utilizadas

automaticamente;

-a Exibe saídas em várias colunas com as linhas organizadas na

horizontal em vez de na vertical. Isto é, as linhas da entrada sãocolocadas em colunas através da página até a coluna n e a segunda

linha da entrada é colocada na primeira coluna da linha seguinte;

-m Mescla e exibe todos os arquivos de entrada lado a lado, um arquivo

por coluna. O número de colunas é determinado pelo número de

arquivos dados como argumentos;

-d Usa espaço duplo na exibição;

Page 44: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 44

Introdução ao Linux 

-ecn Substitui as tabulações no arquivo de entrada pelos caracteres

especificados. O caractere indicado pode ser o número n, neste

caso as tabulações serão expandidas para n+1, 2n+1, 3n+1, ... e

assim por diante. Se n for omitido ou for 0, as tabulações serão

ajustadas para oito espaços. O caractere que substituirá as

tabulações pode também ser o caractere não numérico c; Se c foromitido a tabulação não será utilizada. Se forem especificados os

dois argumentos n e c, o caractere c substitui as tabulações que

tenham n caracteres de comprimento. Note que o caractere não

numérico c deve preceder o caracter numérico n;

-ncn Numera as linhas na saída, permitindo n dígitos na numeração se n

não for especificado, são usados 5 dígitos. O número da linha é

separado do texto por um caractere c; Se c não for especificado o

separador será uma tabulação;

-wn Ajusta o tamanho das linhas para n caracteres. Útil quando seimprime em várias colunas;

-on Desloca (identando) as linhas com n caracteres;

-ln Ajusta o tamanho da página para n linhas. Normalmente as páginas

tem 66 linhas;

-h nome Usa nome para cabeçalho da impressão, ao invés de usar o nome do

arquivo. Se nome contiver espaços em branco, deverá ser

especificado entre aspas;

-p Faz uma pausa após cada página se a saída for direcionada para a tela

de um terminal;

Exemplos :

1 - Coloque espacejamento duplo e elimine a exibição de cabeçalho e rodapé

do arquivo texto1.txt :

$ pr -dt texto1.txt

2 - Troque o nome do cabeçalho do arquivo texto2.txt e dê uma pausa no

display entre cada página :

$ pr -ph “Testando o comando pr” texto2.txt

1.13. Impressão de arquivos

lp [opções] <arquivos>

Page 45: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 45

Introdução ao Linux 

O comando lp solicita e cancela serviços de impressão em impressoras.

A primeira forma de lp envia uma solicitação de impressão a uma impressora.

Se não for especificado um nome de arquivo na linha de comando, poderá ser

especificado pela entrada padrão. O comando lp determina um id-solicitação para cada

solicitação de impressão e informa este na saída padrão. Este número deve ser utilizado

para alterar opções de impressão ou cancelar o serviço de impressão após ter sidosolicitado.

A segunda forma de lp, com a opção -i, serve para alterar opções de impressão

em um serviço previamente solicitado. As opções que podem ser alteradas são todas as

que poderiam ter sido utilizadas na solicitação do serviço de impressão.

O comando cancel pode ser usado para cancelar uma solicitação feita

anteriormente. Use id-solicitação para cancelar serviços ainda não começados e

impressora para cancelar um serviço em andamento.

Opções:-c Cria uma cópia do arquivo a ser impresso. A impressão é feita a partir

da cópia;

-ddest Imprime na impressora especificada por destino. (use o comando

lpstat para verificar a impressora padrão e seu estado);

-H Para utilizar comandos especiais de manipulação;

-m Para enviar um mail após o término da impressão;

-nnum Imprime número de cópias do arquivo;

-oopc Para incluir opções que dependem da impressora, como por exemplo:

nobanner, nofilebreak, etc;length=número(unidade)

Imprime a saída com número linhas por página, ou com número

centímetros (ou polegadas) de comprimento quando for

especificado c (ou i) em unidade;

width=número(unidade)

Especifica a largura das páginas em colunas, centímetros ou

polegadas, como em length;

lpi=número 

Define a altura das linhas em número linhas por polegada;cpi=número 

Define a altura dos caracteres em número caracteres por polegada.

Pode-se usar paica, elite, compressed, ao invés de número;

stty=opções 

Ajusta opções do comando stty a serem usada pela impressora;

Page 46: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 46

Introdução ao Linux 

-P Imprime somente as páginas especificadas, por uma sequência de

números de páginas ou por um intervalo, ou ambas as

especificações;

-s Suprime mensagens resultantes do comando lp;

-ttítulo Imprime título na página de capa;

-w Escreve uma mensagem após o encerramento da impressão. Se vocêtiver encerrado a sessão quando isto acontecer, o comando lp lhe

enviará um mail;

Exemplos :

1 - Peça para que cinco cópias do arquivo report.txt sejam impressos na

impressora default do sistema :

$ lp -wn5 report.txtrequest id is lp00 ( 1 file )

2 - Peça para que os arquivos report.txt e texto1.txt sejam impressos na

impressora laser. Uma mensagem deve ser enviada através do correio avisando que a

impressão terminou :

$ lp -md laser texto1.txt report.txt

request id is laser ( 2 files )

Notas:

• A opção -i não está disponível em todos os sistemas;

• O comando lpr (do UNIX BSD) serve para o mesmo propósito que o

comando lp, embora as opções sejam diferentes;

1.14. Serviços de impressão

lpstat [opções][id-solicitações]

O comando lpstat relata o estado do serviço de impressão lp. Pode-se utilizar

este comando para saber a identificação de uma solicitação de serviço de impressão que

se deseja cancelar ou que se deseja alterar alguma opção de impressão.

O comando lpstat possui um grande número de opções, que não vamos

abordar neste curso. Vamos apenas apresentar opções suficientes para auxiliar o uso do

comando lp.

Page 47: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 47

Introdução ao Linux 

Quando utilizado sem opções e sem argumentos, o comando exibe o estado

de todas as solicitações feitas com lp por todos os usuários. Qualquer argumento (que

não seja uma opção) é interpretado como sendo um id-solicitação, nome ou classe de

impressora.

Opções:-d Exibe o destino (impressora) padrão do sistema;

-r Exibe o estado do gerenciador de solicitações de lp;

-t Exibe todas as informações sobre o estado do serviço de impressão;

Exemplos :

1 - Liste o status dos pedidos de impressão :

$ lpstatlp00 guest 1181 May 22 11 : 43

2 - Obtenha as informações de status sobre os pedidos de impressão do

usuário guest2 :

$ lpstat -u guest2

lp00 guest2 144 May 22 10 : 06

Notas:• Outras opções permitem que seja informada uma lista de itens sobre os

quais deseja-se obter informações. Os itens podem ser classes de impressoras,

identificações de impressoras, de usuários, etc. Estas opções tem o formato xlista, onde

x pode ser algumas das letras [acopuv], e lista é uma sequência de itens, separados por

vírgula;

1.15. Localizando arquivos

find diretórios [expressão]

O comando find procura recursivamente por arquivos em diretórios do

sistema de arquivos.

O argumento diretórios especifica em quais diretórios a busca deve ocorrer.

A busca recursiva faz com que a busca ocorra não apenas nos diretórios especificados,

mas em todos os subdiretórios dos diretórios especificados, nos subdiretórios dos

Page 48: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 48

Introdução ao Linux 

subdiretórios deles, etc. O argumento expressão consiste em um ou mais argumentos,

que podem ser um critério de busca ou uma ação que o find deve tomar, ou ainda ambos

os casos. Se vários argumentos forem especificados, eles devem ser separados por

espaço em branco.

O comando find também possui um grande número de opções que podem ser

utilizados na busca por arquivos em um sistema de arquivos. Neste curso vamos abordarapenas os mais usuais, suficientes para compreender o funcionamento do comando.

Expressão:

-name arq Seleciona os arquivos com nomes que correspondam a arquivo,

sendo que arquivo pode ser um nome de arquivo, ou um padrão de

nomes de arquivos (especificado com o uso de *), mas deve ser

precedido de uma barra invertida;

-user nome Seleciona arquivos que pertencem ao usuário nome;

-print Imprime o caminho de qualquer arquivo encontrado, isto é, quesatisfez os critérios da busca, determinados pelos argumentos

antecedentes ao -print;

-exec cmd ‘{}’\; Executa o comando cmd nos arquivos selecionados pelo

comando find ; Um par de chaves representa cada nome de arquivo

que está sendo avaliado; Um ponto e virgula marcado encerra a ação; 

(exp) Os parênteses podem ser usados para agrupar argumentos de uma

busca, geralmente com o propósito de permitir uma valiação

utilizando o argumento operador -o;

! Inverte o sentido do argumento que o sucede. Por exemplo, "!-namearquivo" seleciona um arquivo cujo nome não corresponde a

arquivo;

-o Permite uma seleção disjuntiva de arquivos, especificada por dois

argumentos distintos. Isto é, quando usamos dois argumentos para

especificar a busca, o arquivo é selecionado se satisfizer ambos os

critérios de busca. Com -o podemos selecionar arquivos que

satisfazem um ou outro dos argumentos especificado para a busca.

Por exemplo, "-name arquivo -o -user nome" selecionará arquivos

que possuem nomes correspondentes a arquivo ou cujo usuário sejacorrespondente a nome;

Exemplos :

1 - Encontre o arquivo teste.file a partir do seu diretório base, imprima os

caminhos

Page 49: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 49

Introdução ao Linux 

$ find /home/guest -name teste.fi le -print

./curso/aula1/teste.file

./teste.file

$

2 - Encontre todos os seus arquivos a partir do diretório curso :

$ find /home/guest/curso -user guest -print /home/guest/curso/aula1

...

3 - Encontre e apague todos os seus arquivos teste.file :

$ find /home/guest -name teste.file -exec rm {} \;

$

Notas:

• Como o comando find verifica todos os arquivos em um diretório

especificado em todos os subdiretórios contidos nele, o comando pode tornar-se

demorado. Veja mais adiante como executá- lo em background.

1.16. Procurando nos arquivos

O comando grep procura uma sequência de caracteres em um ou mais

arquivos, linha por linha. A ação especificada pelas opções é executada em cada linha que

contém a sequência de caracteres procurada.

Se mais de um arquivo for indicado como argumento do comando, o grep

antecede cada linha de output que contém a sequência de caracteres com o nome do

arquivo e dois pontos. O nome do arquivo é mostrado para cada ocorrência da sequênciade 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 sequência de caracteres.

Opções :

-i Ignora maiúsculas ou minúsculas;

-n Mostra o número de linhas com o output das linhas que contêm a

sequência de caracteres;

grep [-opções] ‘sequência de caracteres’ arquivo(s)

Page 50: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 50

Introdução ao Linux 

-l Mostra apenas uma vez o nome do arquivo (para arquivos que contêm

várias ocorrências da sequência de caracteres) ;

-v Mostra todas as linhas que não contém a sequência de caracteres;

Exemplo :1- Procure a sequência ‘pattern’ no arquivo fileA :

$ grep pattern fileA

aaapatternaaa

patterncccccc

$

2 - Procure a sequência em todos os arquivos do diretório, independente de

maiúsculas ou minúsculas :

$ grep -i pattern *fileA : aaapatternaaa

fileA : bbbPatternbb

fileA : patterncccccc

fileB : pattern

$

1.17. Ordenando dados nos arquivos

O comando sort ordena as linhas dos arquivos texto citados. Se não for

indicado o nome do arquivo, o sort recebe a entrada do terminal. O resultado é enviado

novamente para o terminal, a menos que a opção -o indique um arquivo de output. Para

vários arquivos, o sort junta os arquivos antes de ordená-los. O arquivo original não é

alterado.

O sort ordena o conteúdo do arquivo com seus valores associados do ASCII.

Por default o sort ordena as linhas do primeiro campo. Um campo é uma série de

caracteres separados por um espaço em branco ou um tab. O sort também permite aindicação de outros campos por onde se deve ordenar.

Opções :

-f  Não diferencia maiúsculas de minúsculas

-n Ordem numérica

-o file Salva o outpute no arquivo citado

sort [ -opções ] [ campos ] [ arquivo(s) ] 

Page 51: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 51

Introdução ao Linux 

-r Inverte a ordem da ordenação

-tchar O novo separador do campo indicado por char

-m Intercala (merge) arquivos, eles terão que estar classificados

+n Pule n campos (a partir do primeiro) para começar a ordenação

Exemplos :1- Ordene o arquivo teste, não diferencie maiúsculas de minúsculas e guarde o

output em teste.sort :

$ sort -f -o teste.sort teste

$ cat teste.sort

.profile

234

56

Banana

box$

2- Ordene o arquivo teste, respeitando a orden numérica :

$ sort -n teste

.profile

Banana

Pear

box

56234

$

Exercícios

1- Descubra quais os usuários que estão atualmente no sistema. Descubra quem é você

no sistema.

2- Mostre a data e hora atuais do sistema.

3- Crie, a partir do seu diretório base, a seguinte hierarquia de arquivos :

- Dir1 com os subdiretórios : subdir1 e subdir2

Page 52: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Arquivos e Diretórios 52

Introdução ao Linux 

- Dir2 com o subdiretório : subdir3

- Dir3 com os subdiretórios : subdir4 e subdir5

4- Copie o arquivo minha.musica para o subdiretório subdir1.

5- Apague o arquivo minha.musica de seu de seu diretório base.

6- Crie no subdir3 uma ligação para o arquivo minha.musica, que está no subdir1,

chamado musica.7- A partir do subdir5 crie uma ligação simbólica para o subdir12 chamado slink.

8- Usando a ligação criada, liste os arquivos do diretório subdir1.

9- Pesquise através de seu diretório base, todos os diretórios cujo o último caracter do

seu nome seja um número menor ou igual a 2. Dica : use os metacaracteres.

10- Copie o arquivo minha.musica para o diretório base. Mude o seu nome para

nova.musica e conte o número de palavras contidas nesse arquivo.

11- Pesquise , pelo seu diretório base, os arquivos ou diretórios que começam com a

letra d.

12- Use o comando date para exibir a data e hora atual do sistema nos seguintesformatos:

a - data em mm/dd/aa b - hora em hh:mm:ss c - dia do mês

13- Procure a cadeia “estudante” no arquivo nova.musica.

14- Procure as ocorrências da mesma cadeia independente de maiúsculas ou minúsculas.

15- Pesquise e mostre todos os caminhos dos arquivos cujo nome começa com a letra n.

16- Faça uma cópia do arquivo nova.musica chamado lixo, crie dois diretórios chamados

aula1 e aula2 e copie para eles o arquivo lixo. Execute um comando que procure estes

arquivos no disco inteiro e os apague.

17- Descubra o tipo de arquivo de : nova.musica , Dir3 e slink .

Page 53: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 53

Introdução ao Linux 

C a p í t u l o 4

O Ed i t o r vi

1. Editor do UNIX

O editor de textos que era originalmente fornecido com o UNIX chamava-se

ed, e era orientado por linha, isto é, editava somente uma linha por vez. Como o ed era

pouco amigável, foi desenvolvido um novo editor de linha, chamado ex. O editor ex 

continha os comandos do ed e mais alguns comandos novos. Um destes comandos era o

vi, que permitia ao usuário exibir o arquivo que estava sendo editado em uma janela do

tamanho da tela do terminal. Portanto o editor vi nada mais é que um ex que exibe textos

em telas inteiras em vez de apenas uma linha por vez.

O editor vi não objetiva formatar textos: negritos, identações, justificação,

etc. O editor vi foi projetado para trabalhar em conjunto com formatadores de texto. Na

prática o vi é muito usado para editar textos que não necessitam de formatação em

nenhum momento, como por exemplo códigos fonte de programas em alguma linguagem

de programação.

Neste capítulo vamos aprender alguns comandos do vi, suficientes para que

você entenda o funcionamento do editor e consiga editar arquivos simples.

2. Os três modos de operação do VIO editor vi tem três modos de operação distintos, que são:

modo insert ,

modo escape (também chamado de modo comando),

modo last line;

O modo insert é usado para a digitação do texto. Neste modo o vi funciona

como uma máquina de escrever, com a diferença de que você pode retroceder sobre o

Page 54: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 54

Introdução ao Linux 

texto já digitado para corrigir eventuais erros. Cada caracter que for digitado aparecerá

na tela exatamente como foi digitado. Neste modo não é possível mover-se dentro de

uma linha, ou entre as linhas do texto.

No modo escape os caracteres comuns (letras, números e sinais de

pontuação) têm um significado especial e quase todos os caracteres funcionam como

comandos; portanto, existem muitos comandos. A maioria deles é fácil de memorizar: a,A, i, I, o, O. Alguns comandos serverm para passar para o modo insert, outros para

movimentar o cursor sobre as linhas do texto, alterar trechos do texto, buscar palavras,

etc.

No modo last line você digita os comandos em uma linha especial que

aparece no final da tela quando se digita : (dois pontos) no modo escape. Parte dos

comandos do modo escape possuem similares no modo last line, como por exemplo os

comandos de edição, que veremos mais adiante. Os comandos no modo last line devem

ser seguidos por ENTER, contrariamente ao que acontece no modo escape.

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 aplicadas ao arquivo, é necessário copiar o conteúdo do buffer

para o disco, usando o comando write (w) no modo last line. Portanto, se o comando

write não for executado antes de deixar o vi, as alterações contidas no buffer não serão

aplicadas ao arquivo que está no disco.

4. Comandos básicos do VI

O editor vi contém um grande número de comandos para realizar uma grande

variedade de tarefas especiais de edição, movimentação do cursor e outras. Na verdade

seria impossível tentar aprender todos os comandos de uma vez. Vamos portanto

aprender inicialmente como criar um arquivo, inserir e editar o texto, e gravar o arquivo

em disco. Os comandos mais elaborados não serão abordados neste curso.

5. Criação e edição de arquivo

Basta executar o comando vi, passando como argumento o nome do arquivo

que se deseja criar:

Page 55: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 55

Introdução ao Linux 

vi <nome-arquivo>

Quando um novo arquivo é criado o vi apresenta uma tela com 23 linhas e 80

colunas. O nome do arquivo aparece entre aspas no canto inferior 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 linhas e quantos caracteres o arquivo possui.

Em cada linha onde não tiver sido digitado nada até o momento, aparecerá um

~ (til), indicando que a linha é uma linha nula. Uma linha nula não é o mesmo que uma

linha preenchida com espaços.

6. Como entrar no modo insert

Quando um arquivo é editado, o vi está no modo escape. Neste modo oscaracteres têm significado especial, isto é, são comandos. Para poder introduzir o texto é

necessário passar para o modo insert.

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 vi para o

modo insert são: a, A, i, I, o, O. Cada um deles permite que a inserção de texto ocorra em

posições distintas do arquivo. Isto é irrelevante se o arquivo editado está totalmente vazio

(só possui linhas nulas).

a (append) Inclui texto após o cursor;A (append) Inclui o texto ao final da linha corrente, não importando

em que posição o cursor está na linha;

i (insert) Insere texto antes do cursor;

I (insert) Insere o texto no início da linha corrente, não importando

em que posição o cursor está na linha;

o (open) Abre uma nova linha abaixo da linha corrente e coloca o

cursor no início desta nova linha;

O (open) Abre uma nova linha acima da linha corrente e coloca o

cursor no início desta nova linha;

7. Como sair do modo insert

Enquanto está digitando o texto, você pode utilizar a tecla backspace para

retroceder sobre a linha corrente e corrigir eventuais erros, mas o backspace só funciona

na linha corrente. Para movimentar o cursor para outras linhas do texto é necessário

Page 56: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 56

Introdução ao Linux 

passar para o modo escape, teclando ESC, e a movimentação do cursor pode então ser

realizada utilizando as setas ←↑→↓, ou ainda as teclas h, j, k, e l (em minúsculo):

l Equivale à seta →; De fato faz o mesmo que a barra de espaços, e no

modo escape serve para avançar adiante na linha;

h Equivale à seta ←; De fato faz o mesmo que backspace, e no modo

escape serve para retornar na linha; j Para mover o cursor para a linha de baixo. Equivale à seta ↓ ;

k Para mover o cursor para a linha de cima. Equivale à seta ↑ ;

O vi não distribui o texto automaticamente pelas linhas. Quando uma linha é

digitada além das 80 colunas que normalmente são apresentadas na tela, aparentemente o

vi faz um rearranjo no tamanho da linha, mas de fato isto deve ser feito manualmente,

digitando ENTER na posição da linha onde deseja-se encerrá-la.

8. Como gravar um arquivo em disco

Lembre-se que as alterações que você está promovendo estão sendo

armazenads no buffer de edição. Para gravar estas alterações você deve utilizar o

comando last line write. No modo escape, digite : (dois pontos), para entrar no modo last

line. Aparecerá um sinal : no canto inferior esquerdo da tela. Digite w (ou write) e

pressione ENTER. Após ter sido concluída a gravação, o cursor voltará à posição que

estava antes de entrar no modo last line.

9. Como sair do viSair do vi significa encerrar a execução do editor, e consequentemente

abandonar o buffer de edição. Existe mais de uma maneira de encerrar o vi. Na primeira

delas você pode utilizar o comando last line quit. Entre no modo last line e então digite q

(quit). Se o arquivo não possuir nenhuma alteração no buffer de edição que ainda não

esteja no disco o vi encerrará imediatamente. Porém se existir alguma alteração que

ainda não foi salva em disco, aparecerá uma mensagem indicativa, e você poderá optar

por encerrar o editor sem gravar as alterações usando o 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 (write then quit). Outra opção é

utilizar o comando last line x, que faz a gravação automaticamente se houver alguma

alteração que ainda não tiver sido salva em disco. E finalmente você pode utilizar o

comando escape ZZ, que faz o mesmo que last line x.

10. Comandos básicos de edição

Page 57: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 57

Introdução ao Linux 

Neste tópico vamos abordar comandos simples de edição de texto, como

movimentação de cursor, substituição de pedaços do texto, movimentação e cópia de

pedaços do texto, etc. Estas operações podem ser feitas no vi nos modos escape e last

line. Primeiramente vamos ver como se faz isto no modo escape e depois no modo last

line.O conceito de linha corrente, que é a linha onde se encontra o cursor em um

dado momento, é muito importante para compreender bem o funcionamento dos

comandos de edição.

11. Movimentação do cursor

Além das movimentações de cursor que já apresentamos acima, existem

outras que são muito importantes na edição de um texto.

Movimentação do cursor por caracteres: Os comandos f ou F (find) movem ocursor para a próxima ocorrência na linha corrente de um caracter especificado. Por

exemplo, fB move o cursor para frente até a primeira ocorrência da letra "B" na linha

corrente, enquanto que o comando FB move o cursor para trés até a primeira ocorrência

da letra "B" na linha corrente. Se com a busca (na direção especificada por f ou F) não for

encontrada a letra especificada, soará um sinal indicando o erro.

Movimentação do cursor por palavras : Os comandos w ou W (word) e b ou B

(back) movem o cursor para o início da palavra seguinte e da palvara anterior na linha

corrente respectivamente. Utilize as maiúsculas para mover sobre palvras que contenham

caracteres especiais, como por exemplo as palavras "amá-la", "disse-lhe" e "3+4=7".Assim, os comandos w e W podem ser usados para mover o cursor para frente até o

início da palavra seguinte na linha corrente, e os comando b e B podem ser usados para

mover o cursor para trás até o início da palvra anterior na linha corrente.

Movimentação do cursor por linhas: Os comandos 0 (zero) e $ movem o

cursor respectivamente para o início da linha corrente e para o final da linha corrente. Os

comandos h, j, k, e l que já foram apresentados acima também podem ser usados.

Movimentação do cursor por telas: Os comandos ^D (CTRL+D) (down) e ^U

(CTRL+U) (up) movem o texto metade da tela para baixo e metade da tela para cima,

respectivamente. O cursor continuará na mesma posição relativa, apenas o texto serárolado adiante ou para trás. Pode-se especificar a quantidade de linhas do texto que se

deseja rolar, como por exemplo: 8^D indica que o texto deve ser rolado 8 l inhas adiante,

enquanto que 5^U indica que o texto deve ser rolado 5 linhas para trás.

12. Alterações no texto (modo escape)

Page 58: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 58

Introdução ao Linux 

Agora que você já sabe como criar e inserir o texto em um arquivo com o vi, é

necessário que você aprenda a promover alterações no texto, para poder corrigir erros

eventuais, para melhorar a organização do texto, copiando ou movendo pedaços dele para

outros locais, ou mesmo eliminando algum trecho.

Antes é importante que você compreenda o conceito de buffers de deleção.

Estes buffers são locais onde o vi guarda temporariamente os pedaços que você eliminado texto. O vi normalmente possue 9 desses buffers, e você pode acessar qualquer um

deles especificando o número dele entre 1 a 9, precedido de aspas, por exemplo "5.

Quando um pedaço de texto é eliminado, este pedaço é armazenado no buffer número 1, e

então removido do texto que está no buffer de edição. Se mais um pedaço do texto for

eliminado, o pedaço que estava no buffer de deleção número 1 vai para o buffer número

2, e o pedaço que está sendo eliminado é armazenado no buffer número 1, e então

eliminado do buffer de edição. Assim, você pode sempre recuperar os últimos 9 pedaços

eliminados do texto.

Além desses 9 buffers, você pode criar outros, dando-lhes nomes de letras,por exemplo a, z, etc... dos quais você poderá recuperar pedaços de texto acessando-os

pelo nome que você atribuiu na criação do buffer, precedido de aspas: por exemplo "a.

Os comandos de edição a seguir fazem uso destes buffers. Para copiar um

pedaço de texto, por exemplo, você deverá primeiramente armazenar o pedaço desejado

em um buffer, para somente depois poder recuperá-lo na posição desejada do seu texto.

Desfazer alterações: Antes de aprender a utilizar os comandos que alteram o

texto é importante que você saiba como desfazer um alteração que foi feita

equivocadamente, ou que erroneamente. O comandos u e U (undo) são utilizados para

desfazer o resultado do último comando executado, voltando o texto à situação que seencontrava antes dele ter sido executado, e para desfazer todas as alterações executadas

sobre a linha corrente, respectivamente. Os comandos u e U desfazem apenas comandos

de edição, não de movimentação de cursor; isto significa que você pode desfazer o

último comando de edição mesmo que você já tenha movido o cursor para outra posição

do texto.

Marcar posições no texto: O comando m (mark) permite marcar posições no

texto, que podem ser utilizadas como endereços de referência para os outros comandos

de edição. O comando mx marca a linha corrente como sendo a linha x. Você poderá se

referir a esta linha mais adiante como sendo a linha 'x; qualquer letra minúscula pode serutilizada como nome de linha. Daí, o comando 'x pode ser usado para mover o cursor para

a linha x.

Eliminar pedaços do texto: Você pode eliminar caracteres, linhas e pedaços de

texto. Os comandos x e X eliminam os caracteres abaixo do cursor; se precedidos de um

número n, eliminam o caractere abaixo do cursor e os outros (n-1) caracteres vizinhos

que estão para frente e para trás do cursor, respectivamente. Por exemplo: imagine que o

cursor está na letra n da palavra "eliminar" , o comando 2x eliminará as letras "na", e o

Page 59: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 59

Introdução ao Linux 

comando 4X eliminará as letras "imin". Os comandos d e D eliminam pedaços de linhas

do texto. O comando D pode ser utilizado para eliminar da linha corrente o pedaço que

está entre a posição do cursor e o final da linha. O comando d deve ser seguido de um

número n que diga quantas linhas devem ser eliminadas abaixo da linha corrente; se ao

invés de n for especificado d, a própria linha corrente será eliminada. Por exemplo: dd

elimina a linha corrente; d2 elimina as duas linhas abaixo da linha corrente. Para eliminarum bloco de texto você pode especificar um endereço de linha ao invés do número n. Isto

fará com que todo o texto contido entre a posição do cursor e o endereço de linha

especificado seja eliminado. Por exemplo: se você já havia executado o comando mb na

linha 10, você pode eliminar todo o texto entre a linha corrente e a linha 10 usando o

comando d'b. Se você deseja armazenar em um buffer o pedaço que você está apagando,

informe o nome do buffer precedido de aspas. Por exemplo, o comando "a3d apaga as

três linhas seguintes à linha corrente e armazena no buffer de nome a.

Copiar pedaços do texto: Para copiar um pedaço de texto para outro local no

texto, você deverá primeiramente armazenar o pedaço desejado em um buffer de deleção(de 1 a 9, ou um que você crie dando-lhe o nome de uma letra). Para copiar o texto para

este buffer, utilize o comando y (yank). Assim, o comando y'a copiará para o buffer de

deleção número 1 o pedaço de texto que est iver contido entre a posição atual do cursor e

a posição previamente marcada com a letra a. O comando "x3y copiará para o buf fer de

nome x as três linhas seguintes à linha corrente. O comando yy copiará para o buffer

número 1 a linha corrente.

Recuperar pedaços de texto: Um pedaço de texto que foi eliminado com um

comando de deleção, ou copiado para um buffer com o comando y, pode ser recuprado

dos buffers com os comandos p e P (put). Os comandos p e P recuperam os trechos detexto dos buffers e os inserem depois do cursor (p) ou antes do cursor (P).

Normalmente os comandos p e P recuperam o último texto apagado ou copiado. Para

recuperar de um buffer específico, utilize os comandos "xp e "xP, onde "x é um número

de 1 a 9 ou um nome de um buffer previamente criado. Por exemplo, o comando "gp

insere o texto guardado no buffer g logo após o cursor, e o comando "3P insere o texto

do buffer 3 na posição anterior ao cursor.

Importante:

• Trechos de texto menores que uma linha devem ser armazenados em

buffers com nomes de letras;• Não existem comandos de movimentação e cópia de texto no modo escape.

Isto deve ser feito utilizando os buffers de deleção (de número ou de letra);

13. Alterações no texto (modo last line)

Page 60: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 60

Introdução ao Linux 

Ao contrário dos comandos do modo escape, os comandos do modo last line

aparecem na tela quando você os digita, e necessitam ser seguidos de ENTER. Muitos

dos comandos podem ser digitados por extenso ou abreviados, como por exemplo, você

pode digitar write ou apenas w.

Há vários símbolos adicionais que você pode usar para representar endereços

específicos. O símbolo . indica a linha corrente; o símbolo $ indica a última linha doarquivo; e os símbolos + e - podem ser usados para indicar algum número de linhas

acima ou abaixo da linha corrente.

O endereço que você digitar antes do comando especifica a linha sobre a qual

ele deve operar. Dois endereços separados por vírgula delimitam um bloco de texto. Se

não for especificado um endereço o comando atuará sobre a linha corrente.

O comando undo pode ser utilizado para desfazer o resultado do último

comando executado.

Apagar pedaços do texto: Como no modo last line você pode especificar dois

endereços, não é necessário que o cursor esteja em nenhuma posição especial paraeliminar um trecho do texto. Isto pode ser feito com o comando 10,15 d, que indica que

o pedaço de texto contido entre as linhas 10 e 15 deve ser apagado. Você também pode

utilizar endereços previamente marcados (no modo escape), como por exemplo 'a,'b d

que apagará o trecho contido entre a linha marcada pela letra a e a linha marcada pela

letra b. Ainda é possível utilizar os símbolos especiais mencionados acima: . d apaga a

linha corrente, e .,$ d apaga tudo a partir da linha corrente.

Mover pedaços de texto: Para especificar qual o pedaço de texto deve ser

movido pode-se utilizar um ou dois endereços, conforme se deseja mover uma ou mais

linhas do texto para um outra posição. O comando 3 m 7 move a linha 3 para logo abaixoda linha 7; o comando .,$ m 1 move o pedaço do texto a partir da linha corrente até o final

para o início do texto, abaixo da linha 1; o comando 'a,'b m . move o bloco delimitado

pelos endereços previamente marcados como a e b para abaixo da linha corrente.

Copiar pedaços de texto: O comando co funciona extamanente igual ao

comando m, exceto pelo fato de que não elimina do texto o pedaço de origem.

Page 61: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

O Editor vi 61

Introdução ao Linux 

Exercícios

1- Usando o editor de texto vi, edite um arquivo contendo um trecho de sua música

preferida. Salve o seu arquivo como musica.preferida e abandone o vi.2- Volte ao vi . Marque um bloco contendo as cinco primeiras linhas do texto e copie no

final do arquivo. Salve as alterações e abandone do vi.

3- Entre no vi e crie um arquivo contendo os nomes dos seus colegas do curso de Linux,

um nome em cada linha. Salve o arquivo como colegas.de.curso e abandone o vi. Coloque

os nomes em ordem alfabética. Dica : use o comando sort.

4 - Agora ordene os nomes contidos no arquivo pelo sobrenome em ordem inversa.

5 - Usando o vi, crie um arquivo chamado agenda com dez nomes e telefones (sem

incluir o DDD).

6 - Inclua, no começo do arquivo, o título : AGENDA.7 - Inclua, depois da sexta linha do arquivo , a seguinte linha :

Maria 2565620

8 - Inclua, em cada telefone, o prefixo de DDD.

9 - Altere o nome de Maria para Carmen.

10 - Exclua os dados de Carmen da sua agenda.

11- Recupere os dados de Carmen.

Page 62: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 62

Introdução ao Linux 

Ca pí t u l o 5

Seg u r a n ça

1. Acesso à 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 qualquer usuário daquele sistema.

Entretanto há uma maneira de restringir o acesso aos arquivos e diretórios para que

somente determinados usuários possam acessá-los. A cada arquivo e diretório é

associado um conjunto de permissões. Essas permissões determinam quais usuários

podem ler, e escrever (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 de execução para um diretório,

significa 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 LINUX determina que

ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do

LINUX permite que o proprietário determine quem tem acesso e em que modalidade

eles poderão acessar os arquivos e diretórios que ele criou. O super -usuário, entretanto,

tem acesso a qualquer arquivo ou diretório do sistema de arquivos.

2. Permissões de acesso:

O conjunto de usuários pode ser dividido em três classes: proprietário, grupo

e usuários. Um grupo pode incluir pessoas do mesmo departamento ou quem está

trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem

o mesmo número do grupo (também chamado de Group Id ou GID). Este número é

armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre

cada usuário. O arquivo /etc/group contém informações de controle sobre todos os

grupos do sistema. Assim, pode-se dar permissões de acesso diferentes para cada uma

destas três classes.

Page 63: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 63

Introdução ao Linux 

Quando você executa ls -l em um diretório qualquer, os arquivos são exibidos

de maneira semelhante a seguinte:

As colunas que aparecem na listagem são:

Esquema de permissões;

Número de ligações do arquivo;Nome do usuário;

Nome do grupo ao que o usuário pertence;

Tamanho do arquivo, em bytes;

Mês da criação do arquivo;

Dia da criação do arquivo;

Hora da criação do arquivo;

Nome do arquivo;

O esquema de permissões está dividido em 10 colunas, que indicam se o

arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para oproprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários

(colunas 8, 9 e 10).

Existem três modos distintos de permissão de acesso: leitura (read), escrita

(write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto

diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito

(de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que

estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de

execução somente se aplica a arquivos que podem ser executados, obviamente, como

programas já compilados ou script shell. Os valores válidos para cada uma das colunassão os seguintes:

1 d se o arquivo for um diretório; - se for um arquivo comum;

2,5,8 r se existe permissão de leitura; - caso contrário;

3,6,9 w se existe permissão de alteração; - caso contrário;

4,7,10 x se existe permissão de execução; - caso contrário;

A permissão de acesso a um diretório tem outras considerações. As

permissões de um diretório podem afetar a disposição final das permissões de um

arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os

arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos nãotenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão

de execução é definida para um diretório, ela permite que se pesquise ou liste o

conteúdo do diretório.

3.Verificando as permissões de acesso

Page 64: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 64

Introdução ao Linux 

O comando ls -l mostra os atributos dos arquivos e dos diretórios.

Normalmente as permissões padrão para os diretórios (rwxrwxrwx) permitem o acesso

de leitura, gravação e execução para todos os usuários (proprietário, membros do grupo e

outros). Para os arquivos as permissões padrão (rw-rw-rw-) permitem acesso de leitura e

gravação para o proprietário, membros do grupo e todos os demais usuários. As

permissões padrão podem ser modificadas com o uso do comando umask que seráapresentado mais adiante.

4. Alterando a permissão de acesso

O modo de permissão na linha de comando é representado em um dos dois

formatos - octal (absoluto) ou simbólico. O formato octal usa valores numéricos para

representar

4.1. Formato octal do modo de

permissões

Há oito valores numéricos possíveis (0-7) que representam o modo de

permissão para cada tipo de usuário. São eles :

0 Nenhum acesso

1 Apenas execução

2 Apenas gravação

3 Gravação e execução

4 Apenas leitura

5 Leitura e execução

6 Leitura e gravação

7 Acesso total (leitura, gravação e execução)

Exemplo : Usando o formato octal, mude o modo de permissão do arquivo

prog1 para que o proprietário tenha acesso total e todos os outros usuários (grupo e

outros) tenham apenas permissão de leitura e execução :

$ chmod 755 prog1

$ ls -l prog1

-rwxr-xr-x 1 guest users 1475 May 20 11:02 prog1

$

chmod modo-de- permissão arquivo 

Page 65: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 65

Introdução ao Linux 

4.1.Formato simbólico do modo de

permissões

O formato simbólico usa letras e símbolos para indicar o modo de permissão.Ele é composto de três elementos :

Tipo de usuário 

u Usuário ( Proprietário )

g Grupo

o Outros

a Todos

Ação A ação significa 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 relativas ao modo

de permissão corrente. O operador = reinicializa todas as permissões explicitamente

(exatamente como indicado)

Tipo de permissão

r Leitura

w Gravação

x Execução

A combinação desses três elementos formam o modo de permissão no

formato simbólico.

Exemplos :1- Tire a permissão de execução, sobre o arquivo teste, do grupo e dos outros

usuários :

$ chmod go-x teste

$ ls -l teste

-rwxrw-rw- 2 guest users 512 May 20 14:04 teste

$

Page 66: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 66

Introdução ao Linux 

2- Mude as permissões do arquivo prog2 para que todos os usuários possam

ler o executá-lo :

$ chmod a=rx prog2

$ ls -l

-r-xr-xr-x 1 guest users 1986 May 20 08:26 prog2

$

5. Mudando as permissões padrão

Modifica os modos padrão de permissão para os novos arquivos que você

criar. No comando, número é um número octal de três dígitos, como visto no comando

chmod. Entretanto aqui você especifica de maneira inversa, isto é, em chmod se você

utilizar número igual a 777, você estará concedendo autorização de

leitura+escrita+execução para você mesmo, para o grupo e para todos os demais

usuários. Com o comando umask se você especificar número igual a 777, você estará

negando acesso a todas as classes em qualquer modo. De fato, a permissão que será

concedida é dada pela diferença entre a permissão padrão original, que é 777 para

diretórios e 666 para arquivos, e a permissão especificada em umask. Por Exemplo :

Diretórios: Permissão padrão 77 7 (rwxrwxrwx)

Valor em umask 02 3

Novas permissões 75 4 (rwxr-xr-- )

Arquivos: Permissão padrão 66 6 (rw-rw-rw-)

Valor em umask 02 2

Novas permissões 644 (rw-r--r- -)

Sem especificar um número umask mostrará o valor corrente da máscara de

permissões. Os arquivos e diretórios criados antes do uso do comando permanecem com

as permissões inalteradas.

Exemplo :

1- Mostrar o valor atual da máscara de permissões :

$ umask

022

$

2- Mudar o valor da máscara para que os novos aquivos tenham a seguinte

permissão : proprietário com acesso a leitura e escrita, grupo com acesso a

leitura e execução e outro somente para leitura :

$ umask 012

umask [ permissão ]

Page 67: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 67

Introdução ao Linux 

$

6. "group-id" de um arquivo

O comando chgrp muda a identificação do grupo de um arquivo. Pode serutilizado para conceder permissão de leitura 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á mudar o grupo do arquivo que você mesmo criou. Al ém de você somente o super-

usuário poderá fazer isso.

Exemplo : Mude o grupo do arquivo memo1 para users2 :

$ ls -l memo1

-rw-r- -r-- 1 guest users 984 May 12 11:02 memo1

$ chgrp users2 memo1$ ls -l memo1

-rw-r- -r-- 1 guest users2 984 May 12 11:02 memo1

$

7. "owner" de um arquivo

Usado para mudar a identificação de proprietário associada a um arquivo.Você só poderá aplicar este comando aos arquivos que você mesmo criou. Além de você

somente o super -usuário poderá fazê-lo. Observe que uma vez que você tenha alterado a

identificação de proprietário que está associada a um arquivo, você não é mais o

proprietário, e não poderá mais fazer a alteração inversa.

Exemplo : Mude a propriedade do arquivo prog1 para guest2 :

$ ls -l prog1

-rw-r-xr-- 1 guest users 1765 May 17 13:34 prog1

$ chown guest2 prog1

$ ls -l prog1-rw-r-xr-- 1 guest2 users 1765 May 17 13:34 prog1

$

8. A identificação do usuário/grupo

chgrp grupo arquivo 

chown usuário arquivo 

id

Page 68: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 68

Introdução ao Linux 

Mostra os número e os nomes que identificam o usuário e seu 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 um grupo 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.

Exemplo : Mostrar a identificação do usuário e do grupo a que pertence :

$ id

UID=528( guest ) GID=100( users ) GROUPS=100( users )

$

8.1 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 grupo no arquivo /etc/group. Entretanto,o número de identificação de grupo especificado no arquivo /etc/passwd continuará

valendo como o grupo primário do usuário. Esta identificação está associada aos

arquivos e diretórios criados pelo usuário.

Ser um membro de um grupo, significa ter acesso aos arquivos e diretórios

pertencentes aos demais membros do mesmo grupo. O comando id mostra a

identificação do usuário e do grupo. Os arquivos pertencentes a grupos diferentes do

grupo primário do usuário, mas de grupos aos quais o usuário pertence, podem ser

acessados com o uso dos seguintes comandos:

chgrp Que modifica a identificação de grupo associada a um arquivo oudiretório;

newgrp Que modifica temporariamente a vinculação de um usuário a um

grupo. Os arquivos e diretórios criados depois que o usuário muda para outro grupo,

refletem o "novo" 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 de grupo, seu nome de usuário deve estar

no arquivo /etc/group para o grupo ao qual você deseja mudar. Sem argumentos o

comando retorna o nome do grupo ao que você está vinculado.

Exemplo : Mude o grupo corrente para users2 :

$ id

UID=528( guest ) GID=100( users ) GROUPS=100( users )

$ newgrp users2

newgrp [grupo]  

Page 69: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 69

Introdução ao Linux 

$ id

UID=528( guest ) GID=200( users2 ) GROUPS=200( users2 )

$

Page 70: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Segurança 70

Introdução ao Linux 

Exercícios

1 - Crie dois arquivos chamados perm1 e perm2. Os arquivos devem ter uma ou duas

linhas de texto cada um. Mostre o modo de permissão para esses arquivos. Anote os

modos de permissão para cada arquivo.

2 - Mude o modo de acesso para perm1 usando o formato octal para que o proprietário

possa acessar e modificar o arquivo, os membros do grupo possam apenas visualizar o

arquivo e todos os outros usuários sejam totalmente impedidos de acessar o arquivo.

Mostre as permissões de perm1 para confirmar que o novo modo de acesso foi alterado

corretamente.

3 - Mude o modo de acesso ao perm2 usando o formato simbólico para remover todo o

acesso dos membros do grupo e de todos os usuários(exceto o proprietário). Mostre as

permissões de perm2 para confirmar o novo modo de acesso.4 - Mostre e anote as opções atuais da mascara de permissões.

5 - Altere a permissão default para restringir todo o acesso dos membros do grupo e dos

outros usuários aos novos arquivos. Anote o comando usado.

6 - Crie um novo arquivo chamado perm3 com uma ou duas linhas de texto. Mostre e

anote o modo de permissão de perm3. Qual o efeito que a permissão default teve sobre

os três arquivos ? Explique.

7 - Altere o modo de perm1 e perm2 para que eles possam ser lidos e gravados por todos

os usuários. Use o formato octal para perm1 e o simbólico para perm2. Confirme estas

alterações.8 - Atribua a máscara de permissão o valor : 022

Page 71: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 71

Introdução ao Linux 

Ca pí t u l o 6

R e d i r e c i o n a m e n t o

1. Entrada e Saída dos comandos

Quase todos os comandos do LINUX usam uma entrada e poduzem uma saída.

A entrada para um comando são os dados sobre os quais o comando irá operar. Esses

dados podem vir de um arquivo especificado pelo 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 da operação que ele realiza sobre a entrada. A saída dos comando pode ser

impressa na tela do terminal, enviada a um arquivo, ou servir de entrada para outro

comando.

Neste capítulo você vai aprender a manipular estas entradas e saídas, para

poder criar e ler arquivos durante o uso de alguns comandos, e também aprenderá a

encadear comandos, fazendo com que um comando utilize como entrada a saída de outro.

2. Entrada e Saída Padrão:

Alguns comandos têm apenas uma fonte possível para a entrada; por exemplo

o comando date sempre utiliza o sistema interno de relógio para indicar a data e hora.Outros comandos exigem que você especifique uma entrada. Se não especificar uma

fonte de entrada juntamente com esses comandos, o LINUX considera que ela virá do

teclado, isto é, ele esperará que você digite a entrada. Por isso o teclado é chamadode

entrada padrão.

As informações do teclado são utilizadas no processamento, e para sua

facilidade o LINUX também ecoa (apresenta na tela) o que você digitar. Desta forma,

você pode certificar-se de ter digitado os comando corretamente.

Page 72: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 72

Introdução ao Linux 

Normalmente, quase todos os comandos enviam suas saídas para a tela do

terminal, que é chamada de saída padrão. Como com as entradas, você também pode

redirecionar as saídas dos comandos para outro destino que não é a saída padrão, por

exemplo para arquivos ou para a entrada de outros comandos.

Alguns comandos, como rm, mv e mkdir não produzem nenhuma saída.

Entretanto esses comandos e muitos outros podem apresentar mensagens de erro na telase não obtiverem sucesso no seu processamento. Isto ocorre porque a tela do terminal

também é a saída de erros 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 as saí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 teclado do terminal ou

para um arquivo. Da mesma forma, o comando não percebe se a saída padrão está

direcionada para a tela do terminal, para um arquivo ou para a entrada de outro comando.

3. Redirecionamento de E/S

Há três métodos básicos para redirecionar a entrada ou saída de um comando.

Uma delas é simplesmente fornecer como argumento para o comando o nome do arquivo

que deve ser usado como entrada ou saída para o comando. Este método funciona com

alguns comandos, como por exemplo cat, pg e outros. Já comandos como o pwd não

podem receber um arquivo como argumento. Mesmo com os filtros (classe de

comandos a qual pertencem o cat e o pg) nem sempre é possível especificar a saída.

Outro método para redirecionar a entrada ou saída é utilizar os símbolos deredirecionamento. Como muitos comandos podem receber arquivos de entrada sob a

forma de argumentos, os símbolos de redirecionamento são mais utilizados para

direcionar a saída dos comandos.

Um terceiro método de redirecionar entradas e saídas é usando pipes, que

enviam a saída de um comando para outro, ou seja, a saída de um comando serve como

entrada para outro comando.

4. Símbolos de redirecionamentoOs caracteres especiais utilizados na linha do comando para fazer a shell

redirecionar a entrada., saída ou erro do programa estão listados e descritos a seguir. A

shell interpreta esses caracteres antes do comando ser executado.

4.1 Redirecionamento de entrada

Page 73: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 73

Introdução ao Linux 

O símbolo < (menor que) faz com que a entrada padrão seja direcionada a um

arquivo. Em muitos casos, especificar < funciona exatamente como especificar o nome

do arquivo como argumento do comando. Por exemplo:

$ cat Arquivo.teste

$ cat < Arquivo.teste

produzirão exatamente o mesmo efeito.

4.2 Redirecionamento de saída

Os símbolos > e >> redirecionam a saída de um comando para um arquivo. O

símbolo > escreve a saída do comando dentro do arquivo que você indicar, quer esse

arquivo exista ou não, sendo que o conteúdo do arquivo já existente será substituído. O

símbolo >>, ao contrário, anexa a saída do comando ao arquivo indicado em vez de

substituir os dados que ele já continha. Na C Shell é necessário que o arquivo já exista,

para que o símbolo possa ser utilizado, caso contrário ocorrerá um erro.

Exemplos :

1 - 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

$

2 - Acrescente ao arquivo data.de.hoje a saída do comando who :

$ who >> data.de.hoje

$ cat data.de.hoje

Mon May 20 10:10:28 WST 1996

guest tty1 May 20 08:52

$

5. Pipes

Os símbolos de redirecionamento permitem realizar mais de uma operação

em um mesmo arquivo. Somente com esses símbolos você já tem condições de realizar

tudo oque quiser sobre um arquivo. Suponha, entretanto, que você queira fazer um

comando < arquivo

comando > arquivo ou comando >> arquivo

Page 74: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 74

Introdução ao Linux 

conjunto de operações diferentes em um mesmo arquivo. Cada operação implicaria a

criação de um novo arquivo, sendo que o único propósito desses arquivos seria servir

como entrada para outro comando. Entretanto, tudo o que importa é o resultado final.

Para situações como essas o LINUX possui outra maneira de redirecionar entradas e

saídas: os pipes.

Este símbolo pode ser usado para enviar a saída de um comando para a entrada

de outro. Você pode usar vários pipes em uma linha de comando, de maneira que é

possível combinar tantos comandos quantos necesários, bastando intercalá-los por

símbolos de pipe. Uma sequência de comandos encadeados desta maneira é chamada de

pipeline.

Existem algumas regras básicas para compor um pipeline em uma linha de

comandos LINUX. Essencialmente essas regras são o endosso da intuição de um usuárioum pouco mais experiente, que facilmente percebe que em um pipeline não pode haver

"vazamentos" nem "entupimentos" do pipe, isto é, não pode haver no meio do pipeline um

comando que não produza saídas (como é o caso do mkdir ou rm), ou um comando que

não aceite entradas (como é o caso do date e pwd). O primeiro comando do pipeline deve

ser um produtor de saída, obviamente.

Exemplos :

1- Conte o número de arquivos que começam com a substring ‘arq’ no

diretório corrente :$ ls | grep arq | wc -l

3

$

2- Conte o número de usuários que estão presentes no sistema neste

momento :

$ who | wc -l

2

$

6. Redirecionamentos múltiplos

O comando tee "divide" a saída de um comando e redireciona-a para múltiplos

destinos: para um arquivo especificado e para a saída padrão. O comando tee em geral é

comando 1 | comando 2

tee [iau] arquivo 

Page 75: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 75

Introdução ao Linux 

utilizado como um pedaço de um pipeline. Se não estiver em um pipeline, o comando tee

se comporta de maneira semelhante ao comando cat: recebendo linhas na entrada e

ecoando- as na saída.

Opções:

-a Faz a saída ser anexada aos arquivos especificados, em vez de

substituir seus conteúdos;-i Ignora o sinal de interrupção;

-u Impede o uso de buffer;

Exemplos :

1- Conte o número de arquivos que começam com a substring ‘arq’ no

diretório corrente e guarde os arquivos encontrados no arquivo nomes :

$ ls | grep arq | tee nomes | wc -l

3

$ cat nomesarq

arq2

arquivo

$

2- Conte o número de ocorrências da cadeia “Linux” no arquivo arq2, guarde

as ocorrências no arquivo resp :

$ cat < arq2 | grep Linux | tee resp | wc -l

2

$ cat respaaaaaLinuxaaaaa

Linuxbbbbbbbbb

$

7. Redirecionamento de erro padrão

A mensagem de erro gerada por um comando é normalmente direcionada pela

shell para a saída de erro padrão, que é a mesma da saída padrão. A saída de erro padrão

também pode ser redirecionada para um arquivo, utilizando o símbolo >. Uma vez queeste símbolo também é utilizado para redirecionar a saída padrão, é necessário fazer uma

distinção mais detalhada para evitar ambigüidade.

Os descritores de arquivos a seguir especificam a entrada padrão, saída padrão

e saída de erro padrão:

0 Entrada padrão;

1 Saída padrão;

Page 76: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 76

Introdução ao Linux 

2 Saída de erro padrão;

O descritor do arquivo deve ser colocado imediatamente antes dos caracteres

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 temp 2> errfile faz a shell direcionar qualquer

mensagem de erro para o arquivo errfile. As indicações da entrada padrão (0>) e saída

padrão (1>) são necessárias apenas para evitar ambigüidade.

Exemplo :

$ find / -name meu.arquivo > find.resp 2> find.erro

$ cat find.resp

 /home/guest/meu.arquivo

$cat find.erro

find : /guest/1/fd : permission denied

find : /guest/adm/.netscape : permission denied

...$

Page 77: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Redirecionamento 77

Introdução ao Linux 

Exercícios

1 - Crie um arquivo chamado list que contenha uma listagem de todos os arquivos que

começam com a letra d ou D e terminam com um número entre 1 e 5. O mesmo

comando deve mostrar a saída na tela. Dica : use o comando tee.

2 - Concatene os arquivos perm1 e perm2 no arquivo new.file. Acrescente no final de

new.file a seguinte frase : Usando desvio de saida padrão. Dica : use cat e desvio.

3 - Desvie para o arquivo info, as informações sobre cada usuário logado em sua máquina

e adicione ao arquivo o número de usuários que a estão utilizando. Dica : use tee e who.

4 - Crie um arquivo com o nome format utilizando o comando cat e redirecionamento

de saída. Informe o seguinte texto no arquivo : Este texto será armazenado no arquivo

format. Acrescente o seguinte texto ao arquivo format : Este texto será acrescentado no

arquivo format.5 - Liste todos os arquivos e diretórios corrente que foram alterados ontem, armazene a

resposta no arquivo Resposta. Conte o número de arquivos encontrados. Dica : use grep,

tee e pipe.

6 - Utilizando o vi crie dois arquivos chamados students1 e students2 com o texto

fornecido abaixo:

students1 students2 

Maria, Ricardo Freitas, Pedro

Silva, Joao Garcia, Maria

Souza, Thiago Matos, Rosa

7 - Concatene os dois arquivos redirecionando a saída para o arquivo students.all. Dica:

use cat.

8 - Remova o arquivo students.all e concatene os arquivos novamente, desta vez escreva

errado o nome do arquivo students1. O que aconteceu ? Quais as informações do arquivo

students.all?

9 - Repita o exercício 8, desta vez, redirecione as mensagens de erro para o arquivo

students.erro. Qual o conteúdo de cada arquivo ?

10 - Concatene os arquivos students1 e students2, salve os resultados no arquivostudents.temp e exiga simultaneamente os resultados no terminal. Dica : use tee.

Page 78: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos78

Introdução ao Linux 

Ca pí t u l o 7

Ger en ci a m en t o d a

Ex ecu çã o d e

C o m a n d o s

1. Processos

Cada vez que você executa um comando, um processo é iniciado. Processo é

o nome oficial de um comando que está sendo executado. A cada processo é designado

um número único, e o computador controla a distribuição do tempo de processamento

entre os processos que estão rodando, baseado neste número. Como o LINUX só dispõe

de um único processador, ele trabalha em cada processo durante um tempo muito curto e

depois passa para outro processo, parecendo assim que todos os processos estão

rodando simultaneamente. Desta forma, cada processo é executado com relativa rapidez

e os usuários não precisam esperar o término dos outros processos para que o seu seja

executado.

O processo associado a cada comando permanece ativo apenas até o

encerramento da execução do comando. Você pode ter controle sobre os processos que

estão rodando, listando-os, parando-os ou matando-os.

2. Estrutura de processosSemelhante ao sistema de arquivos, a organização dos processos é

hierárquica. Apresenta pais e filhos, e até mesmo um processo raiz. O processo pai cria o

processo filho, que também pode criar outros processos. O termo nascer (spawn) é

utilizado para indicar a criação de processos. 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.

Page 79: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos79

Introdução ao Linux 

3. Processos do usuário

Enquanto estiver em uma sessão LINUX, você está necessariamente rodando

ao menos um processo, aquele associado à sua shell (sh, para Bourne 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 de processo. Neste instante, o processo pai, que é o processo

associado à sua 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 este processo "morre", e o seu

processo pai reassume o controle - este é o processo associado à sua shell. Quando

nenhum comando está sendo executado, o processo corrente é o associado à sua shell.

Você pode listar todos os seus processos que estão rodando em um

determinado momento, usando o comando ps, que veremos logo mais adiante, 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.

4. Executando múltiplos comandos

Quando uma linha do comando é informada, a shell cria um processo para

executar o comando e passa para o estado sleeping até o processo se encerrar,

devolvendo o controle ao processo da shell. O usuário não pode iniciar outros comandosenquanto o processo corrente estiver em execução. Ao invés de informar comandos

separadamente e aguardar a vez de cada um ser executado, múltiplos comandos podem

ser informados em uma única linha do comando, utilizando um ponto e vírgula (;) como

separador entre os comandos.

O ponto e vírgula (;) permite a execução serial de múltiplos comandos em

uma única linha do comando. Cada comando é separado do pró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ão importantes, embora sejam geralmente utilizados por convenção. Os

comandos são executados na sequência especificada na linha do comando.

Exemplo :

$ who ; date > arq

guest tty1 May 20 09:56

$ cat arq

Mon May 20 10:10:28 WST 1996

$

Page 80: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos80

Introdução ao Linux 

5. Agrupando comandos

Múltiplos comandos podem também serem agrupados quando colocados

entre parênteses ( ). O ponto e vírgula ainda é utilizado para separar os comandos. A shell

trata cada grupo de comandos entre parênteses como uma tarefa simples e divide os

processos filhos quando necessário. A ordem da execução do programa é mantida. O

agrupamento de comandos é geralmente utilizado quando se deseja saída combinada de

múltiplos comandos.

Exemplo :

$ ( who ; date ) > arq

$ cat arq

guest tty1 May 20 09:56Mon May 20 10:10:28 WST 1996

$

6. Executando em "background"

Tipicamente, a shell permanece inativa durante a execução de um comando.

Não podendo ser executado outro comando enquanto o comando anterior não tenha sido

concluído e a shell exiba outro prompt de comando. Esta maneira de executar oscomando é chamada de execução em foreground. Nesta modalidade um programa que leva

muito tempo para ser executado resulta na diminuição de produtividade, uma vez que o

usuário aguarda o encerramento do programa, para somente depois executar outro

comando ou programa.

Como alternativa, os comandos podem ser executados em background. Que é

uma maneira de executar comandos que permite que o programa seja executado (em

background, ou "em bg"), sem indisponibilizar a shell, onde você pode continuar

executando comandos ou programas em foreground. A execução em background é

geralmente utilizada em programas que levam muito tempo para serem executados. Osímbolo & ao final de um comando leva a shell a executar o comando em background. O

PID (número de identificação do processo) é exibido automaticamente, indicando que o

processo foi iniciado, e em seguida é apresentado um novo prompt da shell. O processo

em background é executado quando a carga de serviço do sistema permite. A saída do

processo continua sendo enviada à saída padrão, a menos que seja redirecionada para um

arquivo, por exemplo, o que é frequentemente utilizado.

Page 81: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos81

Introdução ao Linux 

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 em background :

$ ( find / -name *.c > find.resp 2> find.erro )&

[ 1 ] 220

$

7. Os processos em andamento

O comando ps exibe informações sobre processos ativos de acordo com as

opções selecionadas. Os cabeçalhos de colunas de informações apresentadas dependem

das opções especificadas. Por exemplo, a opção -f exibe oito colunas de informações; a

opção -l exibe 15 colunas. As descrições de cada coluna estão abaixo. Podem ser

combinadas múltiplas opções. Algumas opções aceitam listas de parâmetros. Se não

forem especificadas opções, são exibidas informações sobre processos rodando debaixoda identificação do usuário e associados apenas ao terminal corrente. A saída, neste caso,

contém a identificação do processo, identificador do terminal, tempo de execução

cumulativo e nome do comando.

Opções:

-a Mostra informações sobre processos pertencentes a outros

usuários;

-f  Gera uma lista com oito colunas de informações;

-l Exibe uma lista com 15 colunas de informações;-e Enumera informações sobre cada processo em execução

correntemente;

-u usr Exibe informações de processos do usuário indicado;

-t term Exibe informações de processos para o terminal especificado;

Cabeçalhos da Coluna:

F Valor em octal que dá maiores informações sobre a situação

corrente do processo;

S Nesta coluna é apresentado o estado do processo, conforme aseguir:

O - Não existente;

S - Adormecido (sleeping);

R - Rodando (running);

I - Intermediár io;

Z - Interrompido;

ps [ -opções ]

Page 82: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos82

Introdução ao Linux 

T - Terminado;

B - Esperando (blocked);

UID Identificação do usuário proprietário do processo;

PID Identificação do processo;

PPID Identificação do processo pai;

C Taxa de utilização do processador (CPU);PRI Prioridade do processo (valores mais altos indicam prioridades

mais baixas);

NI Valor utilizado na computação da prioridade. Pode ser atribuído

pelo usuário, através do comando nice;

ADDR Endereço da memória do processo;

SZ Tamanho do processo (em páginas ou blocos) na memória;

WCHAN Evento pelo qual o processo está esperando, e por isso está em

sleeping ou em waiting. Se estiver em branco, o processo está em

execuçã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;

Exemplos :

1- Mostre o status dos processos :

$ psPID TTY STAT TIME COMMAND

152 v01 S 0:00 -bash

225 v01 R 0:00 ps

$

2- Mostre o status dos processos do usuário guest :

$ ps -u guest

USER 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 ps

...

$

Notas:

As opções e colunas aqui descritas podem variar para alguns sistemas;

Page 83: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos83

Introdução ao Linux 

8. Encerrando processos

O comando kill envia o sinal indicado aos processos especificados. Os nomes

dos sinais podem ser l istados com o comando kil l -l. Se não for indicado nenhum sinal, o

sinal padrão é 15 (encerramento por software). Alguns processos não são afetados por

certos sinais - o sinal 9 encerra esses processos. As indicações do sinal podem ser

simbólicas ou numéricas. O comando kill -l enumera apenas os nomes simbólicos.

O processo 0 (zero) indica todos os processos associados com a sessão.

Quando são especificados múltiplos processos, os processos pai devem ser listados

antes dos processo filho, pois o encerramento de um processo pai implica no

encerramento dos processos filho. Os processos indicados devem pertencer ao usuário

corrente, a não ser que o usuário seja super-usuário.

Opções

-l Enumera os nomes dos sinais;

-sinal O sinal pode ser especificado com o nome simbólico ou valor

numérico;

Exemplo :

$ ps

PID TTY STAT TIME COMMAND

152 v01 S 0:00 -bash

230 v01 R 0:00 ps

231 v01 S 0:00 sleep 30

$ kill 231

$ ps

PID TTY STAT TIME COMMAND

152 v01 S 0:00 -bash

230 v01 R 0:00 ps

[ 1 ]+Terminated sleep 30

$

Na Korn Shell e na C Shell existe a possibilidade de haver uma maior

manipulação e controle da execução de processos. Os jobs ( processos ) podem ser

kill [ sinal ] processos

Page 84: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos84

Introdução ao Linux 

alternados entre foreground e background; podem ser suspensos, reativados ou

interrompidos.

9. Controle de Job

Quando ksh e csh são chamados, o controle de job está ativado. Job é

qualquer sequência de comandos. O recurso de controle de job permite ao usuário

suspender, reiniciar ou encerrar jobs, como também mudar jobs entre a execução em

background e foreground.

Os jobs apresentam os seguintes estados :

• Foreground : O job é processado imediatamente antes do controle retornar

ao shell e outro prompt do shell seja exibido.

•Background : O job é executado e o shell retorna imediatamente o controle

ao usuário enquanto o sistema continua a processar o job.• Interrompido( Suspenso ) : É o job que está parado temporariamente. Este

 job pode ser reiniciado ou encerrado.

•Concluido( Killed ) : Job que está parado e concluído. Este job não pode ser

reiniciado.

9.1 Comandos de controle de job

Estão disponíveis os seguintes comandos para manipular jobs, conhecidos

como comandos embutidos do shell :

 jobs [ - opção ] Lista o status de todos os jobs.

Opções :

-l Lista completa de todos os jobs incluindo PDIs

-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 background

stop id_job Suspende o job indicado em background

kill id_job Encerra o job indicado

Exemplos :

Page 85: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos85

Introdução ao Linux 

1- Execute um job em background. Observe o que a identificação do job e o

nú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,concluido ) e a linha do

comando. O sinal ( + ) após o número do job indica o job corrente; o sinal ( - ) indica o

 job anterior..

$ jobs

[ 1 ]+ running sleep 300&

$

3 - Mude o job para foreground utilizando o número do job :

$ fg %sleep

4 - Suspenda o job em foreground corrente. Observe o status Stopped no

display :

<CTRL z >

[ 1 ]+Stopped sleep 300&

$

5 - Mude o job contendo a sequência de caracteres “sleep” para background :

$ bg %sleep[ 1 ] sleep 300&

$

Page 86: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Gerenciamento da Execução de Comandos86

Introdução ao Linux 

Exercícios

1 - Execute a seguinte sequência de comandos numa única linha ( múltiplos comandos

):•Vá para o diretório dir1;

•Apague todo o conteúdo de dir1;

•Crie um novo subdiretório, dentro de dir1, chamado testes;

•Retorne ao seu diretório base.

2 - Execute quatro comandos quaisquer numa única linha e desvie a saída dos três

últimos comandos no arquivo temp.resp.

3 - Procure, a partir da raíz, todos os arquivos chamados core. Guarde os arquivos

encontrados no arquivo find.resp e as mensagens de erro no arquivo find.erro. Execute

em background.4 - Liste o status dos processos ativos. Encerre o processo criado no exercício 3.

5 - Crie um arquivo progfile contendo os comandos a seguir : pwd ; date ; ls ; ps .

Programe este arquivo para ser executado depois de 8 minutos, em background, desvie o

resultado para o arquivo progfile.resp.

6 - Execute diversos comandos sleep em background em intervalos de 200, 500, 600

segundos. Registre os números de identificação do processo associado. Exiba os jobs

correntes.

7 - Transfira o primeiro job para foreground. Suspenda esse job, exiba os jobs

correntes. Coloque -o novamente em background. Suspenda o segundo job. Encerre todosos jobs. Você consegui encerrar o segundo job ? Senão, como fazê-lo.

8 - Execute um comando que encontre, a partir da raíz, o diretório dir1 e liste os

arquivos e subdiretórios ( todo o conteúdo destes também deve ser listado ). Desvie as

mensagens de erro para o arquivo find.erro e o resultado para find.resp. Execute em

background.

Page 87: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 87

Introdução ao Linux 

Ca pí t u l o 8

Sh el l d o Li n u x

Shell é um programa que habilita o usuário a interagir com os recursos do

computador. Como interpretador de comandos, o Shell é a interface entre o sistema e o

usuário. O usuário informa os comandos ao Shell, que os interpreta para que o sistema

operacional execute-os. A Shell funciona também como linguaguem de programação,

lendo os comandos de um arquivo e solicitando ao Kernel a execução deles um após o

outro.

Estão disponíveis três programas em Shell diferentes no LINUX : Bourne

Shell ( sh ), C Shell( csh ) e Korn Shell( ksh ). O administrador do sistema define um

shell para o usuário no arquivo etc/passwd. Se não for indicado um Shell, o Bourne shell

é o default. Somente um shell é utilizado de cada vez, o usuário porém pode utilizar

outros sheells se necessário.

1. Scripts Shell

Quando a shell é usada como linguagem de programação, ela lê e executa os

comandos contidos em um arquivo chamado script shell. Um script shell é executado de

maneira identica a uma sequência de comandos introduzidos interativamente pelo

teclado. Eles podem conter quaisquer comandos que possam ser introduzidos na linha de

comando : utilitários do LINUX , programas compilados e até outros scripts shell. Você

pode utilizar caracteres especiais para identificação de arquivos e para redirecionamento

de entradas/saídas de comandos. Além de comandos normais, um script shell pode conter

outros comandos chamados comandos de controle de fluxo. São semelhantes aos

comandos de controle de fluxos das linguagens de programação C e Pascal.

2. Executando Scripts Shell

Há dois métodos básicos para executar um script shell :

•Utilizar o comando sh para executar os comandos no script shell

Page 88: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 88

Introdução ao Linux 

•Utilizar primeiro o comando chmod para tornar o arquivo executável; depois

executar o arquivo como um comando.

sh 

O comando sh executa os comandos no arquivo como se eles fossem

informados no terminal. sh leva o shell a criar ( fork ) outro shell. Este shell secundárioé na verdade uma cópia do shell pai, que pode manipular somente um processo de cada

vez. Os comandos contidos no programa são manipulados pelo shell secundário.

O formato deste comando é : sh nome_progama

chmod 

O comando chmod é utilizado para fornecer permissão de execução ao arquivo

do programa a fim de executá-lo como um comando. O shell cria o novo processo para

executar o arquivo do programa.

Existem dois comandos para executar o script shell sem criar um novo

processo :

. ( ponto ) 

O comando .( ponto ) executa o programa como parte do processo corrente,

que continua a executar após o encerramento do programa. O comando . não

requer permissão para executar o arquivo do programa. Programas compilados (

binários ) não podem ser executados com este comando.

O formato deste comando é : . nome_programa

exec 

O exec é um dos diversos comandos embutidos do shell. Não é criado nenhum

processo novo para executar o programa porque este está imediatamente disponível ao

shell. O comando exec executa o programa sobrepondo ou, substituindo, o processo

corrente; não retorna ao programa original.

O formato deste comando é : exec nome_programa

3. Criando um Script Shell

Nós vamos restringir nossos estudos a programação shell em Bourn Shell.

A primeira linha de um script shell para a Bourn Shell deve conter um sinal :

(dois pontos) e nada mais. Isto indica que o arquivo é um script shell da Bourn Shell.

Os comentários que não produzem efeito algum na execução, são linhas que

começam com um #. No corpo da script shell pode se colocar diversos comandos que

Page 89: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 89

Introdução ao Linux 

se usa normalmente em uma linha de comando, ou ainda colocar comandos de controle

de fluxo.

3.1. Variáveis de ambiente e de usuários

As Shells admitem manipulação de variáveis como qualquer outra linguagem

de programação. Algumas variáveis são pré-definidas e são chamadas variáveis de

ambiente, outras, as variáveis e usuários , podem ser definidas pelo usuário. O usuário

pode mudar o valor de variáveis de usuários e torná-las somente para leitura ( ready- only

). Normalmente uma variável de usuário só é válida na shell onde foi criada, mas é

possível exportá-la para outras shells que você venha a abrir durante a sua sessão, com o

comando export.

Variáveis de ambiente

O shell fornece variáveis com informações relacionadas ao ambiente do shell

do usuário. Estas variaáveis são estabelecidas inicialmente pelo shell, mas podem ser

alteradas pelo usuário. Os nomes das variáveis de ambiente estão em letra maiúscula.

As variáveis mais utilizadas são :

HOME Nome do caminho do diretório de login

LOGNAME Nome do login do usuário

MAIL Arquivo do correio do usuário ( caixa postal )

PATH Lista dos diretórios procurados durante a execução do comando

PS1 Principal prompt do shellTERM Nome do terminal

Variáveis de usuário

O nome das variáveis deve ser especificado com as mesmas regras que se usa

em outras linguagens de programação. Depois do nome, sem nenhum espaço em branco,

vem o sinal = e imediatamente em seguida o valor que será atribuído à variável. Para

exibir o valor de uma variável utilize o comando echo e coloque $ antes do nome da

variável.

Exemplo :$ curso=Linux

$echo $curso

Linux

$echo curso

curso$

Page 90: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 90

Introdução ao Linux 

Para atribuir valores que contém espaço em branco ou caracteres espeiais a

uma variável, insira o valor entre aspas duplas.

Exemplo :

$ curso=“Introdução ao Linux”

$ echo $curso

Introdução ao Linux

$

O comando export permite que uma variável definida em uma shell fique

disponível nas shells que forem iniciadas a partir da shell onde a variável foi definida. Se

o comando export não for usado, uma variável só estará disponível na shell onde ela foi

criada.

Exemplo :

$ aula=variaveis

$ export aula

$ sh

$ echo $aula

variáveis

Variáveis Shell

São variáveis definidas automaticamente pela shell. Estas variáveis são

argumentos da linha de comando, número de processos, etc. Assim é possível construirum script shell que receba parâmetros. Ao ser executado o script, os parâmetros que lhe

são passados serão atribuidos às variáveis $1, $2 ...

Exemplo :

$ cat > prog1

:

echo Parametro 1 : $1

echo Parametro 2 : $2

$ prog curso Linux

Parametro 1 : cursoParametro 2 : Linux

$

4. Programação em Bourne Shell

Page 91: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 91

Introdução ao Linux 

A linguagem de programação shell oferece os seguintes recursos :

•Comentários;

•Comando exit que permite devolver um estado de saída;

•Comandos condicionais if e case;

•Comandos de iteração for, while e until;

•Comandos de desvio incondicional break e continue;

A variável $? : É usada para determinar o estado de saída do último comando

executado. Este estado de saída diz à shell se o comando falhou ou foi executado com

sucesso. Estado de saída igual a zero indica sucesso. 

O comando exit  : É usado para terminar um script shell e/ou devolver um

estado de saída. Normalmente retorna o estado de saída do último comando executado .

O comando test : Este comando testa determinadas condições, retornando o

resultado sob forma de estado de saída. Se a condição testada é verdadeira o comando

retorna zero, caso contrário, diferente de zero.Os comandos break / continue : Estes comandos são de desvio incondicional,

e são utilizados no interior dos laços de execução dos comandos for, while e until. O

comando break interrompe o laço de execução e abandona o comando que gerou o laço,

enquanto o comando continue desvia a execução do laço para o inicio dele,fazendo que o

restante dos comandos ( após continue ) não sejam executados. Neste último o comando

que gerou o laço não é abandonado.

Operadores :

! Operador lógico de negação;

-a Operador lógico e ( and ) ;-o Operador lógico ou ( or );

-zs1 Verdadeiro se a string s1 for de tamanho zero;

-ns1 Verdadeiro se a string s1 tem tamanho diferente de zero;

s1 = s2 Verdadeiro se strings s1 e s2 forem identicas;

s1 != s2 Verdadeiro se strings s1 e s2 forem diferentes;

n1 -eq n2 Verdadeiro se os números n1 e n2 forem identicos;

n1 -ne n2 Verdadeiro se os números n1 e n2 forem diferentes;

n1 -gt n2 Verdadeiro se n1 é maior que n2 ;

n1 -ge n2 Verdadeiro se n1 é maior ou igual a n2 ;n1 -lt n2 Verdadeiro se n1 é menor que n2 ;

n1 -le n2 Verdadeiro se n1 é menor ou igual a n2 ;

-r arquivo Verdadeiro se arquivo existe e pode ser lido;

-warquivo Verdadeiro se arquivo existe e pode ser alterado;

-x arquivo Verdadeiro se arquivo existe e pode ser executado;

-f arquivo Verdadeiro se arquivo existe e é um arquivo comum;

-d arquivo Verdadeiro se arquivo existe e é um diretório;

Page 92: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 92

Introdução ao Linux 

-s arquivo Verdadeiro se arquivo existe e não está vazio;

A construção if..then : Este comando estruturado funciona da mesma forma

que em outras linguagens de programação. As declarações if e then devem estar em

linhas diferentes. A decisão é baseada no estado de saída do comando executando entre o

if e o then.if  comando-teste

then

comandos

fi 

A construção if..then..else : É identico ao acima, incluindo o tratamento para o

caso de o resultado do comando avaliado retornar estado de saída igual a zero ( o else ).

if  comando-teste

thencomandos

else

comandos

fi 

A construção if..then..elif : É similar à construção anterior , mas combina as

declarações else if..then em uma só. Útil para tratamento de ifs aninhados.

if  comando-teste

thencomandos

elif 

comandos-teste

then 

comandos 

fi 

A construção case..esac : Esta construção permite tratar múltiplas escolhas,

selecionando um entre vários padrões e executando os comandos correspondentes. Umpadrão * pode ser usado para tratar qualquer padrão (o mesmo que otherwise em Pascal

ou default em C).

case palavra in 

padrão1 )

comandos ;;

padrão2 )

comandos ;;

Page 93: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 93

Introdução ao Linux 

* )

comandos ;;

esac 

A construção for..in : Este comando executa um conjunto de comandos uma

vez para cada item de uma lista. Para cada iteração do comando a variável após o for assume o valor do próximo item da lista. A lista construída é o resultado do comando

após o in.

for variável

in lista-argumentos

do

comandos

done

A construção while..do : Este comando executa iterativamente um conjunto decomandos, enquanto a condição após while for satisfeita, isto é, se o comando inserido

após while retornar estado de saída verdadeiro.

while comando-teste

do 

comandos

done 

A construção until..do : Idêntico ao anterior, mas a repetição dos comandos

ocorrerá até que a condição após until seja satisfeita, isto é, a repetição aconteceenquanto a condição for falsa.

until comando-teste

do 

comandos

done 

Exemplo1 :

:

# COPIA : Copia um arquivo em um diretório# opção -f é verdadeira se arquivo for um arquivo comum

# opção -d é verdadeira se arquivo for um diretório

#

if [ !-f $1 ]

then

echo “copia : $1 nao e um arquivo comum”

elif [ !-d $2 ]

Page 94: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 94

Introdução ao Linux 

then

echo “copia : $2 nao e um diretorio “

else

cp $1 $2

fi

Exemplo 2 :

:

# EXPLICA : Exibe uma frase que define o uso dos comandos de diretório

#

case $1 in

pwd )

echo “pwd - exibe o diretório corrente”echo “uso : pwd” ;;

cd )

echo “cd - Troca de diretorio corrente”

echo “uso : cd [ diretório ]” ;;

mkdir )

echo “mkdir - Cria diretórios especificados”

echo “uso : mkdir diretórios” ;;

rmdir )

echo “rmdir - Remove diretórios vazios”echo “uso : rmdir diretorios” ;;

* )

echo “explica - Explica um comando com uma mensagem”

echo “uso : explica [ comando ]” ;;

esac

Page 95: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Shell do Linux 95

Introdução ao Linux 

Exercícios

1 - Crie um arquivo que execute a seguinte sequência de comandos, chamado

meu.programa :

• Retorne para o diretório base;

• Liste todo o conteúdo do diretório corrente e o conteúdo de cada subdiretório;

• Dê a data atual do sistema;

2 - Execute esse arquivo sem criar um novo processo para executá-lo.

3 - Execute o arquivo meu programa, mudando o modo de permissão do arquivo.

4 - Crie uma variável chamada data e atribua a data de hoje. Verifique o seu conteúdo na

shell corrente.

5 - Crie uma nova shell e verifique o conteúdo de data. É o mesmo ? Por que ?

6 - Volte a shell anterior, exporte a variável. Crie uma nova shell e verifique o conteúdoda variável data. É o mesmo ? Por que ?

7 - Faça um programa ( script shell ) que execute a seguinte sequência :

• Receba os seguintes parâmetros : um diretório, uma letra e um arquivo.

• O programa de entrar no diretório especificado e procurar todos os arquivos que

começam com a letra dada ;

• Deve ainda concatenar ao final desse arquivo o número de arquivos encontrados.

8 - Faça um programa que apague um diretório dado como parâmetro, devem ser

deletados todos os subdiretórios e arquivos contidos no diretório. O programa deve

perguntar ao usuário se ele deseja realmente apagar o diretório.9 - Faça um programa que receba como parâmetro o nome de uma arquivo e exiba o seu

conteúdo caso ele exista, senão uma mensagem deve ser emitida.

10 - Faça um programa que execute a seguinte sequência :

• Receba o nome de um arquivo como parâmetro.

• Ofereça as opções : [ L ]er carta e [ E ]screver carta.

• Se a opção ler for escolhida o programa deve mostrar o conteúdo do arquivo.

• Se a opção escrever for escolhida o programa deve fornecer um editor de textos, o vi,

por exemplo.

Page 96: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 96

Introdução ao Linux 

Ca pí t u l o 9

Fer r a m en t a s d e

C o m u n i c a ç ã o

1. Visão geral de comunicação

Comunicação é uma troca de informações. A comunicação de dados é a

transmissão de informação eletrônicas a longas distâncias. Um sistema de comunicações é

composto por vários componentes de hardware ( computadores, modens, terminais e

outros periféricos e meios de comunicação ) que estão fisicamente ligados e pelo

software que gerencia a conexão lógica dos componentes de hardware. Os computadores

e terminais geram, processam e recebem dados. Os modens são dispositivos que

convertem os dados digitais gerados pelos computadores para o formato ( analógico )

que pode ser enviado pelas linhas de comunicação.

A transmissão de dados é feita através de uma rede de comunicação. Uma rede

de comunicação é formada por nós e ligações entre os nós. Existem vários tipos de redes

de comunicação: WANs apropriadas para grandes distancias ( entre países ), as MANs

para distâncias médias ( na mesma cidade ) e as LANs para curtas distâncias ( prédio ).

A transmissão de dados é gerenciada pelo software. Um conjunto de regras

comuns deve ser seguido por todos os nós da rede para evitar conflito na transmissão de

dados. Este conjunto de regras é chamado de  protocolo. As organizações se

desenvolveram para estabelecer protocolos de comunicação padrão da industria. O OSI (

Open Systems Interconnection ) é o modelo de comunicação padrão da industria dos

protocolos.Existem basicamente dois tipos de comunicação : local e remota. O LINUX

tem uma variedade de comandos para se comunicar com usuários do sistema local ou de

sistemas remotos.

2. Usando FTP

Page 97: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 97

Introdução ao Linux 

FTP ( File Transfer Protocol ) é um metódo para acessar sistemas remotos e

transferir arquivos de um computador para outro. O FTP é um protocolo da família de

protocolos TCP/ IP. O TCP/ IP é usado extensivamente como protocolo de comunicação

da Internet, bem como em muitas redes locais de computadores ( LANs ). Os sistemas

LINUX também usam TCP/ IP como seu protocolo.

O FTP oferece uma interface para o protocolo de transferência de arquivos.Ele permite que o usuário se conecte a outro site e envie e receba arquivos.

Um hostname pode ser tanto um hostname como um endereço da Internet.

Exemplo : Conectar a máquina Cruzeiro :

$ ftp Cruzeiro

Conected to Cruzeiro.lcc.ufms.br220 Cruzeiro FTP server (Version wu-2,4(1) Sun Jul 31 21:15:56 CDT 1994 )

ready

Name ( Cruzeiro:guest ) : guest

331 Password required for guest

Password :

230 User guest logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp >

Depois que o processo de login é completado, você verá o prompt ftp>,

indicando que o sistema está pronto para aceitar comandos.

2.1. “Anonymous” FTP

Geralmente, quando você se conecta a um sistema remoto via ftp, você deve

efetuar um login. Isto significa que você deve ser um usuário válido, com um username euma password para essa máquina remota. Como é impossível prever logins para todos que

querem acessar arquivos públicos, muitos sistemas usam anonymous FTP. Ele habilita

usuários a acessarem sites remotos mesmo sem possuir um username autorizado.

Geralmente se usa como username a palavra anonymous e a password, na maioria dos

sistemas, é o seu endereço de e-mail ( em alguns sistemas se usa como password a

palavra guest ).

ftp hostname

Page 98: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 98

Introdução ao Linux 

2.2. Comandos do FTP

O FTP habilita o usuário para executar vários comandos, aqui estão alguns

deles :

ascii Seta o tipo dos arquivos transferidos para ASCII. Este é o tipo

default.

binary Seta o tipo dos arquivos transferidos para o modo binário.

bye Termina a sessão de FTP com o servidor remoto e depois sai.

cd directory Muda o diretório de trabalho na máquina remota para o diretório

especificado.

chmodmode file Muda o modo de permissão do arquivo remoto file.

close Termina a sessão de FTP com o servidor remoto.

delete file Apaga o arquivo file na máquina remota.dir [ directory ] Imprime o conteúdo do diretório directory na máquina remota.

disconnect O mesmo que close.

get file [ local_file ] Copia o arquivo remoto file para a máquina local. Se o local_file

não for especificado ele é copiado com o mesmo nome da máquina

remota.

help [ comand ] Imprime informaões sobre o comando especificado. Se nenhum

comando é dado, imprime uma lista dos comandos conhecidos.

ls [ directory ] Lista o conteúdo do diretório remoto directory.

mdelete [ file ] Deleta o arquivo file na máquina remota.mdir files O mesmo que dir, exceto que múltiplos arquivos remotos podem ser

especificados.

mget files Igual ao get, mas para múltiplos arquivos.

pwd Imprime o nome do diretório de trabalho corrente na máquina

remota.

quit O mesmo que bye.

rmdir directory Deleta um diretório na máquina remota.

size file Retorna o tamanho do arquivo file na máquina remota.

status Mostra o status corrente do FTP.? [ comand ] O mesmo que help.

Alguns comandos do FTP tem o mesmo nome que comandos do LINUX mas

possuem funções um pouco diferentes. Por exemplo, o comando ls no FTP atua como

um ls -l no LINUX. Para abortar a transferencia de um arquivo, use a tecla de

interrupção CTRL C.

Page 99: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 99

Introdução ao Linux 

3. Usando telnet

O comando telnet é usado para a comunicação com outro host usando o

protocolo telnet,ou seja, ele permite abrir uma sessão numa outra máquina . Se telnet é

chamada sem o argumento host, ela entra no modo de comando, indicado por um prompt,

telnet>. Normalmente você pode usar :

onde hostname é o host que você quer para se conectar e port indica um endereço de

aplicações.

Telnet pode logar você em cada um dos dois modos : caracter-por-caracter ou

linha-por-linha. No modo caracter-por-caracter, a maioria dos textos escritos são

imediatamente enviados pelo host remoto para processamento. No modo linha-por-linha,

todos os textos são ecoados localmente, e somente as linhas completadas são enviadas

pelo host remoto.

Enquanto você estiver conectado a uma outra máquina, você pode entrar no

modo de comando do telnet usando o caracter de scape CTRL ]. No modo de comando

poderão ser usados os seguintes comandos:

close Fecha uma sessão do telnet e retorna ao modo de comando.

open host  Abre uma conecção com o host especificado.

quit Fecha a sessão de telnet e sai do telnet.

Exemplos :

1 - Abrindo uma sessão na máquiva Cruzeiro:

$ telnet Cruzeiro

Trying 200.17.52.209...

Connected to Cruzeiro.lcc.ufms.br.

Escape character is ‘^]’.

Linux 1.1.59 (Cruzeiro.lcc.ufms.br) (ttyp0)

Cruzeiro login: guest

Password:

Linux 1.1.59 (POSIX).

$

2 - Usando o Modo de Comando :

$ telnet

telnet hostname [port]

Page 100: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 10 0

Introdução ao Linux 

telnet> open Cruzeiro

Trying 200.17.52.209...

Connected to Cruzeiro.lcc.ufms.br.

...

4. Electronic Mail

Eletronic mail (e-mail) é um método para enviar uma mensagem de um usuário

num computador para um ou vários usuários em outros computadores. E-mail provê

transporte rápido e eficiente de dados e documentos. Para alguém com acesso a Internet,

e- mail provê um meio de comunicação com amigos em todo o mundo.

Há diferentes programas que podem ser usados para ler um mail. Os dois

programas mais comuns são: mail e mailx (Berkeley Mail). Há também programas mais

sofisticados como elm ou Pine.

4.1. Usando mailx

Suponha que alguém tenha enviado para você um mail. Como você saberia? O

sistema de mail procede mostrando uma mensagem quando você loga :

...

Linux 1.1.59 (POSIX)

You have new mail.

$

Para ler a mensagem digite o comando mail no prompt :

$ mail

Mail version 5.5 6/1/90. Type ? for help.

“var/spool/mail/guest” : 2 messages 2 new

>N 1 guest@Corinthians Thu Sep 15 02:23 131/4311 “Testando mail “

>N 2 guest@Cruzeiro Thu Sep 15 02:23 65/2748 “Aula de Linux “

&

Neste exemplo, guest recebeu duas mensagens. As mensagens tem um >N

indicando que são mensagens novas, seguidas do número da mensagem, o endereço do

remetente, o dia do mês, a data e a hora que a mensagem foi enviada e o assunto da

mensagem.

O símbolo & é o prompt do sistema de mail. Você pode ler as mensagens

digitando o número da mensagem neste prompt.

Page 101: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 10 1

Introdução ao Linux 

& 1

Message 1 :

From guest@Corinthians Thu Sep 15 02:23 1995

...

&

Para ver os comandos que podem ser usados no sistem de mail, digite ? no

prompt. Para sair do sistema de mail digite q no prompt.

Para enviar uma mensagem use o comando mail seguido do endereço eletronico :

$ mail guest@Cruzeiro

Subject : Teste

Testando mail ...

Para terminar o conteúdo da mensagem use CTRL D. A sequinte mensagemaparece :

Use “.” to terminate letter

.

EOT

$

Page 102: [eBook Informática Português] - [Editora] - Linux Curso de ~1

5/13/2018 [eBook Inform tica Portugu s] - [Editora] - Linux Curso de ~1 - slidepdf.com

http://slidepdf.com/reader/full/ebook-informatica-portugues-editora-linux-curso-de-1

Ferramentas de Comunicação 10 2

Introdução ao Linux 

Exercícios

1 - Usando FTP conecte-se a máquina de um colega e copie para a sua o arquivo

musica.preferida.

2 - Envie um mail para um colega. Não esqueça de colocar o assunto da mensagem.

3 - Abra uma sessão em outra máquina, usando telnet, e liste todo o conteúdo do

diretório base da outra máquina. Crie um arquivo chamado ola e escreva : Estive aqui <

nome da sua máquina. Encerre a sessão.