Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
LINUX 
Apostila Básica de Linux 
 
versão 1.0 
 
 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
i 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
 
 
 
 
HISTÓRICO DE ALTERAÇÕES 
 
 
 
Data Versão Descrição Autor 
05/08/2010 1.0 Elaboração/Revisão Fábio Rogério da Silva José 
05/08/2010 1.0 Revisão/Formatação Rita de C. Mayumi Seki 
 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
ii 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
 
Conteúdo 
 
 
1 COMANDOS DE USO GERAL .................................................................................................... 1 
2 SISTEMA DE ARQUIVOS DO UNIX/LINUX ................................................................................ 2 
2.1 ESTRUTURA HIERÁRQUICA ............................................................................................... 2 
2.2 FORMATO DO SISTEMA DE ARQUIVOS ............................................................................ 4 
2.3 CAMINHOS ........................................................................................................................... 5 
3 DIRETÓRIO DE LOGIN ............................................................................................................... 6 
4 COMANDOS DE MANIPULAÇÃO DE DIRETÓRIOS .................................................................. 7 
5 TRABALHANDO COM ARQUIVOS ............................................................................................. 8 
5.1 CARACTERÍSTICAS ............................................................................................................. 9 
5.2 TIPOS DE ARQUIVOS ........................................................................................................ 10 
5.3 COMANDOS DE MANIPULAÇÃO DE ARQUIVOS ............................................................. 11 
6 PERMISSÕES E ACESSO A ARQUIVOS ................................................................................. 14 
6.1 TIPOS DE ACESSOS ......................................................................................................... 15 
6.2 PERMISSÕES ..................................................................................................................... 16 
7 COMANDOS DE MANIPULAÇÃO DE PERMISSÃO DE ACESSO ............................................ 16 
8 EDITOR ..................................................................................................................................... 19 
8.1 ALGUNS EDITORES .......................................................................................................... 19 
8.2 vi ......................................................................................................................................... 20 
9 INTRODUÇÃO AO SHELL......................................................................................................... 22 
9.1 VARIÁVEIS ......................................................................................................................... 23 
9.1.1 Armazenamento ............................................................................................................ 23 
9.1.2 Atribuição de Valores .................................................................................................... 24 
9.1.3 Substituição de Variáveis .............................................................................................. 24 
9.1.4 Transferência de Variáveis Locais para o Ambiente ...................................................... 25 
10 HISTÓRICO (HISTORY) .......................................................................................................... 26 
11 PROCESSOS .......................................................................................................................... 26 
11.1 COMANDOS DE CONTROLE DE PROCESSOS .............................................................. 27 
12 REDIRECIONAMENTO DE E/S, FILTROS E PIPELINES ....................................................... 30 
13 COMANDOS DE REDIRECIONAMENTO DE E/S ................................................................... 32 
13.1 REDIRECIONANDO A SAÍDA PADRÃO ( > E >> ) ........................................................... 32 
13.2 REDIRECIONANDO A ENTRADA PADRÃO ( < ) ............................................................. 32 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
iii 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
13.3 REDIRECIONANDO A ENTRADA E A SAÍDA SIMULTANEAMENTE .............................. 33 
13.4 REDIRECIONANDO A SAÍDA DE ERROS ....................................................................... 34 
14 COMANDOS DE FILTROS ...................................................................................................... 34 
15 COMANDOS DE Pipelines....................................................................................................... 37 
15.1 PIPELINE ( | ) .................................................................................................................... 37 
15.2 CAPTURANDO A SAÍDA INTERMEDIÁRIA DE UM PIPELINE ......................................... 37 
16 TAREFAS ADMINISTRATIVAS ............................................................................................... 40 
16.1 Iniciando o Sistema ........................................................................................................... 40 
16.2 Finalizando o Sistema ....................................................................................................... 40 
17 BACKUPS ................................................................................................................................ 41 
18 COMUNICAÇÃO COM OUTROS USUÁRIOS ......................................................................... 43 
18.1 COMANDOS PARA COMUNICAÇÃO ............................................................................... 43 
19 PROGRAMAÇÃO DO SHELL .................................................................................................. 47 
REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................................. 47 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
1 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
1 COMANDOS DE USO GERAL 
 
O UNIX/LINUX diferencia entre letras maiúsculas. Por convenção, todos os 
comandos listados aqui devem ser digitados em letras minúsculas. 
As palavras em negrito constituem no nome do comando, devendo ser digitadas 
exatamente como são escritas; em itálico representam os parâmetros que o usuário 
especifica para o comando (nome de um arquivo, por exemplo); [ entre colchetes] é 
opcional, podendo ser omitido (na execução do comando os colchetes não devem ser 
digitados. Quando as opções estiverem separadas por uma barra vertical ( | ), indica que 
somente uma delas deve ser escolhida. 
 
1- CLEAR 
Nome clear- limpa a tecla do terminal 
Sinopse: Clear 
Descrição: o comando clear limpa a tela atualmente ativa. 
Exemplo: $ clear 
 
2- CAL 
 
Nome: cal- apresenta um calendário. 
Sinopse: cal [ mês [ano] ] 
Descrição: cal apresenta o calendário do ano e mês especificados. Na 
falta dos argumentos são assumidos e o mês e o ano 
corrente. 
Exemplo: $ cal 6 1997 
 
JUNE 
SUN MON TUE WED THU FRI SAT 
1 2 3 4 5 6 7 
8 9 10 11 12 13 14 
15 16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 
 
3- DATE 
 
Nome: date- apresenta/altera a data e a hora do sistemaSinopse: date 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
2 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Descrição: sem nenhum argumento, são apresentadas a hora e a data corrente. 
Somente o administrador pode alterar. 
Exemplo: $ date 
 Tue Jun 17 17:01:02 EST 1997 
É possível alterar a data passando o parâmetro MMDDHHMMYYYY 
Exemplo: $ date 081014002010 
 Isto irá alterar a data da máquina para 10/08/2010 as 14:00Hs 
 
4- PASSWD 
 
Nome: passwd- muda a senha de um usuário 
Sinopse: passwd 
Descrição: passwd altera a senha de um usuário. O superusuário (root) pode 
usar passwd para alterar a senha de qualquer usuário. 
Exemplo: $ passwd 
Changing password for fabio 
Old password: ******** ↔ 
New password: ******** ↔ 
Retype new password: ******** ↔ 
 
 Para alterar a senha de um determinado usuário digita-se o nome do usuário na 
frente no comando. 
Exemplo: $ passwd fabio 
Changing password for fabio 
Old password: ******** ↔ 
New password: ******** ↔ 
Retype new password: ******** ↔ 
 
 
2 SISTEMA DE ARQUIVOS DO UNIX/LINUX 
 
2.1 ESTRUTURA HIERÁRQUICA 
 
Os arquivos são manipulados internamente pelo sistema operacional UNIX. 
Entretanto para a visão do usuário, o sistema de arquivos é uma única estrutura 
hierárquica, onde poderão ter várias partições, discos e arquivos associados em forma de 
árvore. 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
3 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Figura 1: Árvore de Diretório do UNIX. 
 
 
No sistema de arquivo do UNIX, arquivos e diretórios são agrupados por função. 
Usuários controlam seus próprios arquivos e diretórios, enquanto o administrador do 
sistema controla e gerencia o sistema de arquivos e diretórios. Assim fica mais fácil 
organizar as centenas de arquivos e programas que normalmente são instalados em uma 
máquina que roda o UNIX. O topo da hierarquia é denominado diretório raiz (root) e é 
indicado com uma barra (/). 
O sistema UNIX fornece comandos que permitem criar novos diretórios quando a 
organização precisar de mudanças, como mover ou copiar arquivos de um diretório para 
outro, o que pode ser feito facilmente. 
A estrutura do diretório pode variar de acordo com a implementação do sistema. A 
seguir, a descrição daqueles que são encontrados na maioria dos sistemas UNIX. 
Tabela 1: Diretórios. 
DIRETÓRIO FINALIDADE 
/etc 
 
 
 
/dev 
Contém os comandos do administrador de sistemas e muitos arquivos de configuração 
do sistema, arquivos solicitados durante o bootup ou shutdown 
 
 
Contém os arquivos especiais (devices files) para todos os dispositivos de hardware. 
Estes arquivos funcionam como gateways para periférico, para assim os dados não 
serem armazenados nos periféricos. 
/bin 
 
 
 
/lib 
 
 
 
 
/home 
 
 
 
 
 
/tmp 
 
 
Contém os comandos necessários para operação básica do UNIX e para manipulação 
de arquivos. Geralmente estes comandos são acessíveis para todos os usuários. 
 
 
Contém as bibliotecas compartilhadas. Estes arquivos geralmente possuem nomes 
como /lib/lbc.so.4.3.2, neste exemplo indica a versão 4.3.2 da biblioteca padrão da 
linguagem C. 
 
 
Contém um subdiretório para cada usuário do sistema UNIX, ou seja, para cada conta. 
Cada usuário tem controle total sobre o conteúdo de seu próprio diretório, inclusive com 
a possibilidade de criar outros subdiretórios. O nome do diretório home pode variar, 
depende do sistema operacional, mas os principais são: /users e /usr/homes. 
 
 
Contém os arquivos temporários gerados durante a execução de certas aplicações. 
Estes arquivos podem ser eliminados sempre que assim o desejar. 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
4 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
cont. Tabela 1: Diretórios. 
DIRETÓRIO FINALIDADE 
/usr/etc 
 
 
 
 
/usr/bin 
 
 
 
/usr/lib 
 
 
 
 
 
 
/usr/include 
 
 
/usr/src 
 
 
/usr/man 
 
 
/usr/adm 
 
 
 
/usr/tmp 
Este diretório é similar ao diretório /usr. Quando existe contém basicamente arquivos de 
configuração para programas instalados em /usr/bin. Em alguns sistemas este diretório 
é apenas um link para o diretório /usr, que neste caso conterão a mesma coisa. 
 
 
Contém os comandos suplementares do UNIX. É possível executar o sistema 
operacional sem a maioria destes comandos. 
 
 
Contém as bibliotecas estáticas (geralmente possuem um nome como libc.a), arquivos 
de configuração e dados para programas individuais, programas auxiliares que são 
invocados somente por outros programas. Os arquivos deste diretório são acessados 
somente por programas residentes em /usr/bin. 
 
 
 
Contém os arquivos de cabeçalho (*.h) para linguagem de programação C. 
 
 
Contém os códigos fonte do kernel. 
 
 
Contém todos os arquivos associados às páginas dos manuais on-line. 
 
 
Contém arquivos de log administrativos gerados por vários programas do sistema e 
demons. 
 
 
Possui a mesma finalidade do diretório /tmp. A diferença está no fato deste diretório 
poder ser montado em outras partições (discos). 
 
 
 
2.2 FORMATO DO SISTEMA DE ARQUIVOS 
 
Um disco pode ter várias divisões chamadas de partições. Cada partição pode 
conter um sistema de arquivos. 
 
 
Figura 2: Representação interna do sistema de arquivos. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
5 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Para cada sistema de arquivos tem-se um setor de boot (boot block), que contém o 
código encarregado de, entre outras coisas, realizar a carga do código do kernel para a 
memória e iniciar sua execução. Posterior ao setor de boot, encontra-se o superblock, 
local em que são armazenadas várias informações a respeito do sistema de arquivos. As 
informações mais importantes armazenadas no superblock são: 
• o tamanho do sistema de arquivos 
• o número de blocos livres no sistema de arquivos 
• uma lista de blocos livres disponíveis no sistema de arquivos 
• o tamanho da lista de i-nodes livres, ou seja, o número de i-nodes para o 
sistema de arquivos 
• o número de i-nodes livres no sistema de arquivos 
• uma lista de i-nodes livres no sistema de arquivo; 
• outras informações 
 
Devido à importância do superblock, o UNIX sempre faz uma cópia do superblock 
na memória RAM. O superblock é atualizado no disco quando o comando sync é 
executado. Por questões de segurança, existe uma cópia do superblock em cada grupo 
de cilindros para caso ele seja perdido, danificado ou corrompido, possa ser recuperado a 
partir de um grupo de cilindros. 
 
2.3 CAMINHOS 
 
A maioria dos comandos do sistema UNIX opera sobre arquivos e/ou diretórios. Um 
caminho (path) representa os diretórios e subdiretórios que são passados para alcançar 
um arquivo ou diretório especificado. 
O diretório inicial é chamado diretório raiz, representado por uma barra ( / ). Um 
path pode ser especificado de duas formas: 
• absoluto 
• relativo 
 
Paths absolutos são aqueles que começam com uma barra ( / ). Paths relativos , 
ao contrário, sempre tomam o diretório atual como referência. Por exemplo: 
• /dev absoluto 
• /home/joao/texto absoluto 
• .. relativo (diretório imediatamente acima) 
• . relativo (diretório corrente) 
• usr/lib relativo 
• ../home/joao relativo 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
6 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Figura 3: Caminho no UNIX. 
 
 
Quando um diretório é criado, duas entradas são automaticamente criadas, 
chamadas ponto (.) e ponto-ponto (..). Geralmente são utilizadas para designar caminhos 
relativos. 
A entrada ponto (.) representa sua posição no diretório corrente. Caso esteja no 
diretório /home/joao , daí tem-se: 
• . representao diretório corrente /home/joão 
• ./texto representa /home/joão/texto 
A entrada ponto-ponto (..) representa o diretório imediatamente acima do diretório 
corrente, também chamado de diretório-pai . Caso esteja no diretório /home/João tem-se: 
• .. representa o diretório/ (raiz) 
• ../.. também representa o diretório/ (raiz) 
• ../bin representa o diretório /bin 
 
3 DIRETÓRIO DE LOGIN 
 
Quando um usuário é incluído no sistema receberá um username e opcionalmente 
uma password, e um diretório será criado para o uso próprio. O diretório é criado sob o 
diretório /home (ou /users) e tem o mesmo nome da identificação do usuário no login. A 
partir deste diretório, o usuário tem acesso livre para criar quantos arquivos e diretórios 
quiser. 
Quando o usuário entrar no sistema, o UNIX automaticamente o colocará sob este 
diretório, ou seja, este será o diretório corrente logo após o login. Este diretório é 
denominado de diretório login ou diretório HOME. A figura abaixo mostra o diretório de 
login do usuário joão. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
7 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Figura 4: Diretório HOME. 
 
4 COMANDOS DE MANIPULAÇÃO DE DIRETÓRIOS 
 
Um diretório é uma maneira de organizar os arquivos. Os diretórios também são 
considerados como sendo arquivos com formato pré-definidos. Podem conter os nomes 
dos arquivos e diretórios e seus números i-node associados. A seguir, apresenta-se os 
comandos básicos para manipulação de diretórios. 
 
PWD 
Nome: pwd - ecoa o nome do diretório corrente (formato absoluto) na saída padrão. 
Sinopse: pwd 
Descrição: pesquisa a árvore de diretório, em direção à raiz para informar o path. 
Exemplo: $ cd /home/Fabio 
 
 $ pwd 
/home/fabio 
 
 
LS 
Nome: ls - lista o conteúdo de um diretório 
Sinopse: ls [-a ] [-i ] [-C l -l ] [-t ] [arquivo] 
Descrição: o comando ls é usado para listar arquivos. Na ausência do parâmetro 
arquivo representando o nome de um arquivo ou diretório, o comando ls 
lista o diretório corrente. 
Opções: -a lista todas as entradas, incluindo as que iniciam com “.” (ocultos); 
-i inclui o número do i-node de cada arquivo; 
-C força saída com múltiplas colunas; 
-l listagem com formato longo; 
-t ordena por data de alteração. 
Exemplos: $ ls -l 
total 2 
-rw-r--r-- 1 fabio users 32 Jun 17 22:40 arquivo.txt 
drvvx ------ 3 fabio users 512 Jun 17 21:05 teste/ 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
8 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
$ ls -la 
total 15 
drwxr-xr-x 4 fabio users 512 Jun 05 22:40 ./ 
drwx ------ 29 fabio users 1024 Jun 05 22:40 ../ 
-rvv-r--r-- 1 fabio users 32 Jun 17 22:40 arquivo.txt 
drvvx ------ 3 fabio users 35 Jun 17 21:05 teste/ 
 
 
CD 
Nome: cd - muda o diretório corrente 
Sinopse: cd [diretório] 
Descrição: diretório toma-se o novo diretório corrente. Na execução do comando o 
sistema verifica a permissão de acesso ao diretório especificado. Sem 
argumento, o comando cd retoma ao diretório home do usuário. 
Exemplo: $ cd /home/fabio 
$ cd .. 
$ cd ./../home/Ana 
 
 
MKDIR 
Nome: mkdir - cria diretório 
Sinopse: mkdir [-p] nome_diretorio 
Descrição: cria um diretório na árvore de diretórios. 
Opções: -p permite a criação do diretório sob um diretório “pai” que não existe, que 
foi especificado no caminho para o nome_diretorio. 
Exemplos: $ mkdir ../textos 
 
 
RMDIR 
Nome: rmdir - remove diretório 
Sinopse: rmdir nome_diretorio 
Descrição: remove diretórios (somente se estes estiverem vazios). 
Exemplos: $ rmdir /usr/ana/textos 
 $ rmdir arquivo.txt 
 
 
5 TRABALHANDO COM ARQUIVOS 
 
Um arquivo é simplesmente um nome com dados associados a ele, armazenados 
num periférico qualquer (disco rígido ou flexível). O sistema UNIX não impõe restrições ao 
formato de um arquivo. Um arquivo é visto pelo sistema como uma sequência não 
formatada de bytes, onde um byte segue o outro até que o fim do arquivo seja 
encontrado. Os programas de aplicação impõem formatos a essas sequências de bytes. 
Como exemplo, um editor de textos marca o fim de cada linha de texto com um caracter 
de nova-linha; um programa de banco de dados organiza os dados em registros, sendo 
que cada registro está dividido em campos. 
Para o sistema UNIX tudo é considerado arquivo onde são incluídos: 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
9 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
• Arquivos Comuns - geralmente contêm caracteres de texto ASCII. 
• Programas - arquivos comuns que contêm instruções executáveis. Pode conter 
um código compilado (date, mkdir, ls) ou pode conter comandos shell do sistema 
UNIX ( .profile, .logout). 
• Diretório - arquivo especial contendo os nomes dos arquivos e diretórios que ele 
mantém. O diretório guarda um número de inodo para cada item, que identifica 
aonde as informações de arquivo e os endereços de armazenamento de dados 
podem ser encontrados no sistema de arquivos. 
• Dispositivo - arquivo que garante o interfaceamento entre o kernel e o hardware 
de um periférico (disco, terminal, impressora, memória). Como estes arquivos 
têm por finalidade o interfaceamento, eles nunca contêm dados verdadeiros. 
Estes arquivos são geralmente guardados no diretório /dev, e existe um arquivo 
para cada dispositivo com o qual o computador precisa se comunicar. 
 
 
5.1 CARACTERÍSTICAS 
 
Um arquivo possui muitas características que podem ser visualizadas com o 
comando ls - la , dentre as quais se destacam: 
 
 
• Tipo de Arquivo - normal ou especial 
• Permissão - definição do modo de acesso ao arquivo 
• Links - número de nomes de arquivos associados ao mesmo conjunto de dados 
• Proprietário - identificação do usuário proprietário do arquivo 
• Grupo - identificação do grupo para acesso ao arquivo 
• Tamanho - número de bytes que o arquivo contém 
• Data - data e hora da última alteração do arquivo 
• Nome - nome do arquivo 
Um ponto muito importante a saber a respeito dos nomes de arquivos no UNIX é 
que letras maiúsculas e minúsculas são interpretadas diferentemente. Geralmente os 
nomes de arquivos são formados por letras minúsculas, As regras para a criação de 
arquivos são: 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
10 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
• máximo de 14 caracteres; 
• máximo de 255 caracteres se o sistema suporta nomes longos; 
• normalmente contém caracteres alfa (a-z, A-z), numéricos (0 - 9), ponto (.), traço 
(-) e subscrito (_). 
Ponto (.) - por ser considerado um caracter normal, o ponto pode aparecer em 
qualquer lugar num nome de arquivo e várias vezes. Quando aparece no início do nome 
do arquivo ( .profile) indica que este é oculto. 
Existem caracteres especiais que não podem ser utilizados como parte de um 
nome de arquivo, pois frequentemente produzirão resultados inesperados, são eles; ?, @, 
#, [, ], *, <, >, \, $ e |. 
 
 
5.2 TIPOS DE ARQUIVOS 
 
Os tipos de arquivos no sistema UNIX são identificados através do primeiro 
caracter de saída do comando ls -1. Os arquivos geralmente são tratados de duas formas: 
• Regulares - arquivos de dados ou programas; 
• Diretórios - arquivo que contém nome de outros arquivos, juntamente com 
ponteiros para seus i-nodes_ 
Além desses dois tipos, o UNIX possui mais alguns: 
• arquivos dispositivos de caracteres - um tipo de arquivo utilizado por 
dispositivo de caracteres (ex.: modem); 
• arquivos dispositivos de blocos - um tipo de arquivo utilizado por dispositivo 
de blocos (ex.: discos); 
• FIFO - um tipo especial de arquivo utilizado para comunicação entre processos 
(também chamado named pipe); 
• Socket - um tipo de arquivo utilizado para comunicação emrede, servindo 
também para a comunicação entre processos num mesmo sistema; 
• symbolic link - um tipo de arquivo que aponta para outro arquivo. 
 
Tabela 2: Tipos de arquivos. 
Símbolo Tipo do Arquivo 
- Regular 
d diretório 
c dispositivo de caracter 
b dispositivo de bloco 
p FlFO 
s socket 
l symbolic link 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
11 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
5.3 COMANDOS DE MANIPULAÇÃO DE ARQUIVOS 
 
O sistema UNIX disponibiliza vários comandos para manipulação de arquivos. Os 
principais são destacados a seguir: 
CAT 
Nome: cat - imprime o conteúdo de arquivos 
Sinopse: cat [ -n -v] [arquivo ...] 
Descrição: o comando cat permite ler dados da entrada padrão e escrever dados na 
saída padrão, permitindo uma grande flexibilidade em sua utilização. 
Pode-se utilizá-lo associado aos símbolos de redirecionamento de fluxo 
(>,>>) para criar, listar e/ou estender o conteúdo de arquivos. 
Opções: -n enumera linhas de saída 
-v apresenta caracteres não imprimíveis usando a notação ^X. 
Exemplos: $ cat > arq.dat (cria o arquivo arq.dat) 
Linha 1 
Linha 2 
^Z 
$ cat arq.dat $ cat -n arq.dat 
Linha 1 1 Linha 1 
Linha 2 2 Linha 2 
 
MORE 
Nome: more - visualiza um arquivo no terminal 
Sinopse: more [ +n -n] [arquivo 1 
Descrição: more é o paginador de arquivos padrões para UNIX. Após cada tela cheia, 
o comando apresenta uma mensagem solicitando ao usuário para 
continuar a apresentação do arquivo. Existem várias opções para o 
comando. Abaixo tem-se as duas mais frequentemente utilizadas. 
Opções: +n apresenta a partir da linha “n”; 
-n o número “n” será usado como tamanho da janela. O default varia de 22 a 25. 
 
Exemplo: $ more arq.dat 
Linha 1 
Linha 2 
 
 
TAIL 
Nome: tail - escreve o conteúdo de um arquivo para uma saída padrão, iniciando 
em uma posição especificada 
Sinopse: tail [-f ] [-r ] [-b [+] D I -c [+]D ! -l [+] D ] [arquivo] 
onde, D=deslocamento 
Descrição: o comando tail escreve o conteúdo do arquivo especificado para a saída 
padrão, iniciando no ponto (deslocamento) definido pelo usuário. Se 
nenhum arquivo é definido, a entrada padrão é utilizada. O tipo de 
unidade (b, c, l) associado ao deslocamento, juntamente com o ponto de 
referência para o deslocamento, identificam o início da impressão. Se o 
deslocamento é precedido do sinal “-“ significa que o ponto de referência 
para o deslocamento é o final do arquivo. O sinal “+” indica como ponto de 
referência o início do arquivo. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
12 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Opções: -b o arquivo e interpretado como blocos de 512-bytes; 
-c o arquivo é interpretado como uma seqüência de bytes; 
-l o arquivo é interpretado como linhas que devem terminar com <CR>. 
Exemplo: $ tail –8c arq.dat 
Linha 2 
$ tail +4c arq.dat 
ha 1 
Linha 2 
$ tail +21 arq.dat 
Linha 2 
 
 
CP 
Nome: cp - copia arquivos 
Sinopse: cp [-ipr] arquivo(s)... diretório - copia um ou mais arquivos para diretório 
cp [-ip] arq1 arq2 - copia conteúdo de arq1 para arq2 
cp -r [-ip] dir1 dir2 - copia recursivamente o conteúdo de dir1 para dir2 
Descrição: o comando cp copia o conteúdo de um arquivo/diretório para outro No 
segundo caso, se arq2 já existe é sobrescrito, mas seu modo e dono são 
preservados. No terceiro, cp copia recursivamente o conteúdo de dir1 
(arquivos e sub-diretórios) para dir2. 
Opções: -i execução no modo interativo (pede confirmação caso o arquivo destino 
exista); 
-p duplica também as permissões juntamente com data/hora; 
-r duplica recursivamente se nomearq for um diretório. 
Exemplos: $ cp -r /usr/src /usr/src/bkp 
 $ cp /usr/src/* /tmp 
 
 
MV 
Nome: mv - move ou renomeia arquivos 
Sinopse: mv [-f ] [-i ] arquivo(s)... diretório - move um ou mais arquivos para diretório 
mv [-f ] [-i ] arq1 arq2 - altera nome de arq1 para arq2 
mv [-f ] [-i ] dir1 dir2 - altera nome de dir1 para dir2 
Descrição: o comando mv move arquivos e diretórios pelo sistema de arquivos. 
Permite também renomear um arquivo ou diretório, caso o nome destino 
seja diferente da origem. 
Opções: -f suprime todas as mensagens (force) 
-i modo interativo (confirma mudanças)_ 
Exemplos: $ mv /home/fabio* /home/fabio/bkp 
 $ mv teste.txt teste1.txt 
 
 
RM 
Nome: rm - remove arquivos ou diretórios 
Sinopse: rm [-f ] [-r ] [-R ] [-i ] arquivo 
Descrição: o comando rm é usado para remover arquivos e diretórios (inclusive 
aqueles não vazios). Para apagar um arquivo ou diretório, o usuário não 
precisa ter direitos de leitura ou escrita sobre ele, mas precisa ter direito 
de escrita no diretório onde ele se encontra. 
Opções: -i pede confirmação antes de apagar cada arquivo/diretório; 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
13 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
-f não pede confirmação para remover um arquivo protegido contra 
escrita, nem mostra mensagem quando o arquivo não existe; 
-r é a opção para apagar um diretório, removendo todos os arquivos e 
sub-diretórios que ele tenha; 
-R equivalente a opção -r. 
Exemplos: $ rm teste.txt 
$ rm -r teste 
 
 
FUSER 
Nome: fuser – mostra dados de arquivos sendo utilizados 
Sinopse: fuser [-k ] arquivo 
Descrição: o comando fuser é usado para mostrar os dados de um determinado 
processo ou arquivo sendo executado na maquina. 
 Para verificar se um arquivo esta sendo usado por alguém, é necessário 
estar dentro do diretório que o arquivo se encontra. 
Opções: -k identifica o processo em execução e finaliza. 
 
Exemplos: $ fuser cadpro.dbf 
Exemplos: $ fuser -k cadpro.dbf 
 
 
TOUCH 
Nome: touch – cria ou altera um determinado arquivo. 
Sinopse: touch [-t ] arquivo 
Descrição: o comando touch é usado para criar ou alterar alguma propriedade de um 
determinado arquivo. 
Opções: -t altera a data do arquivo. 
 
Exemplos: $ touch –t 08102010 menu.l 
O arquivo será alterado para 10/08/2010. 
 
 
FIND 
Nome: find - procura arquivos por nomes ou por outras características. 
Sinopse: find [caminho... ] [expressão] 
Descrição: o comando find procura arquivos recursivamente em cada diretório 
especificado em caminho, confrontando-os com a expressão booleana 
expressão. 
Expressões: -name arquivo verdadeiro se arquivo confronta com o nome do 
arquivo corrente; 
-perm num verdadeiro se a permissão de acesso ao arquivo 
corrente é igual a num; 
-type c verdadeiro se o tipo do arquivo corrente é c, onde 
c pode ser, por exemplo, igual a d (diretório); 
-print sempre verdadeiro, causa a impressão do path 
corrente. 
Exemplos: $find -name arq -print 
./arq 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
14 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
O UNIX permite que um arquivo tenha uma ou mais entradas de diretório 
apontando para o seu i-node na i-list. Isso é chamado de hardlink ou apenas link (ligação). 
Um link pode apontar para arquivos ou diretórios (nesse caso, o processo criador deve 
possuir direitos de superusuário). 
Arquivos ou diretórios só podem ser deletados quando todos os seus links forem 
removidos. 
Nome: ln - cria um link ou symbolic link 
Sinopse: ln [-f] [-s] arquivo nome_do_link 
Descrição: cria um link ou symbolic link para um arquivo. O comando ln sem a opção 
-s, cria hardlinks. Através do ln não é permitido criar hardlinks para 
diretórios. Se o nome_do_link for um diretório, vários nomes de arquivos 
podem ser especificados, 
Opções: -f força a sobreposição de um arquivo, caso o nome do link seja o 
mesmo do arquivo existente; 
-s cria um symbolic link. 
Exemplos: $ ln arq link $ ln -s arq symlink 
$ ls -l arq link $ ls -l arq link 
arq linkarq symlink@ 
 
 
6 PERMISSÕES E ACESSO A ARQUIVOS 
 
O UNIX permite que múltiplos usuários armazenem e tenham acesso às 
informações do disco ao mesmo tempo. Desta forma, é fundamental proteger os arquivos 
de outros usuários. Por isso, faz-se uso de mecanismos para acesso de arquivos e 
diretórios. 
Para acessar arquivos e executar programas, o sistema UNIX tem que saber as 
identificações do usuário. Para cada arquivo ou diretório, têm-se três categorias de 
comunidade: 
Tabela 3: Propriedade de Arquivos. 
Nome Categoria Descrição 
Usuário (user/owner) u Usuário que criou o arquivo 
 
grupo (group) g Membros de grupos. Grupos são usuários que concordam 
em partilhar certos arquivos e diretórios e são geralmente 
formados no decorrer de um projeto ou por 
seções/departamentos de uma empresa. 
 
outros (others) o Outros usuários do sistema (o usuário e os membros do 
grupo estão fora desse conjunto de usuários. 
 
 
 
O computador mantém identificadores numéricos para usuário (UID) e grupo (GID). 
Esta identificação é definida inicialmente ao entrar no sistema. Para consultar os 
identificadores ativos, utilize o comando id diretamente no prompt do UNIX. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
15 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Todas as identificações de usuários reconhecidas pelo computador são 
armazenadas no arquivo /etc/passwd, e todas as identificações de grupo são 
armazenadas no arquivo /etc/group. 
Usuários a serem incluídos num grupo específico são definidos pelo administrador 
do sistema, e cada usuário pode ser um membro de um ou mais grupos. Grupos são 
normalmente formados a partir dos grupos de trabalho já definidos numa organização. 
 
6.1 TIPOS DE ACESSOS 
 
O sistema de arquivos do UNIX permite que se defina para cada arquivo ou 
diretório, três tipos básicos de controle de acesso. 
Tabela 4: Tipos de Acesso para Arquivos/Diretórios. 
Tipo de acesso Aplicado em Arquivos Aplicado em Diretórios 
r permite ler o conteúdo do arquivo permite listar o conteúdo do diretório 
w permite alterar o conteúdo do arquivo permite alterar o conteúdo do diretório 
x permite executar um arquivo (programa) permite pesquisar o diretório 
 
Diferentes comandos do sistema UNIX requerem algumas permissões para 
acessar um programa ou arquivo. Por exemplo, para executar o comando cat num 
arquivo a permissão read é necessária, porque este comando deve ser capaz de ler o 
conteúdo do arquivo para mostrá-lo na tela. Da mesma forma um diretório requer a 
permissão read para listar seu conteúdo com o comando ls . 
A utilização de tipos de acesso para cada arquivo e diretório depende da política 
adotada no gerenciamento desses recursos. Permissões de acesso de escrita para 
diretórios liberam seu conteúdo para alteração, permitindo a remoção de seus arquivos e 
sub-diretórios. A cada classe de usuários, são aplicadas as três permissões de acesso: 
 
 
A combinação entre os três tipos de permissão 
(r,w,x) com cada classe de usuários e denominado 
modo do arquivo. A configuração do modo, de arquivo 
e diretórios é realizada pelo usuário através do 
comando chmod . 
 
Modo Valor Octal 
--- 
--x 
-w- 
-wx 
r— 
r-x 
rw- 
rwx 
0 
1 
2 
3 
4 
5 
6 
7 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
16 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Os valores de permissão de arquivos podem ser expressos em vários formatos. 
Outra forma é a representação como números octais. 
 
6.2 PERMISSÕES 
 
O acesso a um arquivo é definido pela identificação de usuário, identificação de 
grupo e as permissões associadas ao arquivo. As permissões para um arquivo estão 
especificadas no modo de acesso. O modo de um arquivo é um campo de 9 caracteres 
que define as permissões para o proprietário do arquivo, para o grupo ao qual pertence e 
para todos os outros usuários do sistema. 
 
- rw 
-rwx 
d rwx 
r- - 
r-x 
r-x 
r- - 
r- - 
r-x 
1 
1 
2 
ricardo 
ricardo 
ricardo 
computacao 
computaçao 
computacao 
37 
127 
1024 
Ago 
Ago 
Ago 
15 
15 
15 
12:10 
12:20 
12:34 
readme.txt 
.profile 
aula 
 
Usuário Grupo Outros proprietário grupo 
 
Tabela 5: Exemplo de permissões de acesso. 
Arquivo Categoria Permissão de Acesso 
readme.txt usuário 
grupo 
outros 
leitura e escrita 
leitura 
leitura 
.profile 
 
usuário 
grupo 
outros 
leitura, escrita e execução 
leitura e execução 
leitura 
aula usuário 
grupo 
outros 
leitura, escrita e execução 
leitura e execução 
leitura e execução 
 
 
7 COMANDOS DE MANIPULAÇÃO DE PERMISSÃO DE ACESSO 
 
Apresenta-se a seguir os principais comandos para a manipulação de permissão 
de acesso a arquivos. 
 
CHMOD 
Nome: chmod - muda o modo de permissão de arquivos. 
Sinopse: chmod [ugoa] [+-=] [rwx] arquivo ... 
Descrição: o modo pode ser descrito de uma forma absoluta ou simbólica. 
Absoluta: número octal construído de um OR dos modos abaixo: 
→ 400,040,004 - leitura para o dono, grupo e outros 
→ 200,020,002 - escrita para o dono, grupo e outros 
→ 100,010,001 - execução para o dono, grupo e outros 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
17 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Simbólica: classe de acesso + operador + tipo de acesso 
(u, g, o, a) (+, -, =) (r, w, x) 
u: dono (user) 
g: grupo 
o: outros 
a: todos (all) 
+: adiciona permissão 
-: remove permissão 
=: troca as permissões 
r: leitura (read) 
w: escrita (write) 
x: executar 
 
No modo simbólico, a maneira de trocar os tipos de acesso existentes do arquivo, 
para nenhum tipo de acesso (---) é utilizado o sinal de “=” sem nenhum valor sendo 
atribuído. 
Exemplos: $ ls -l 
total 2 
-rw-r--r-- 1 fabio users 32 Jun 17 22:40 arquivo.txt 
drwx ------ 3 fabio users 512 Jun 17 21:05 teste/ 
 
$ chmod 000 * 
$ ls -1 
total 2 
---------- 1 fabio users 32 Jun 17 22:40 arquivo.txt 
d --------- 3 fabio users 512 Jun 17 21:05 teste/ 
$ chmod u=r, g=w, o=x arquivo.txt 
$ls -l 
total 2 
-r---w---x 1 fabio users 32 Jun 17 22:40 arquivo.txt 
d --------- 3 fabio users 512 Jun 17 21:05 teste/ 
 
$ chmod 421 teste 
$ ls -l 
total 2 
-r---w---x 1 fabio users 32 Jun 17 22:40 arquivo.txt 
dr--w---x 3 fabio users 512 Jun 17 21:05 teste/ 
 
$ chmod 221 teste 
$ ls -l 
total 2 
-r---w---x 1 fabio users 32 Jun 17 22:40 arquivo.txt 
d-w-w---x 3 fabio users 512 Jun 17 21:05 teste/ 
 
$ chmod u= ,g= ,o= arquivo.txt teste 
$ls -l 
total 2 
---------- 1 fabio users 32 Jun 17 22:40 arquivo.txt 
d -------- 3 fabio users 512 Jun 17 21:05 teste/ 
 
 
UMASK 
Nome: umask - muda a máscara de modo para criação de arquivos do usuário 
Sinopse: umask [modo] 
Descrição: o comando umask muda a máscara de modo para criação de arquivos de 
usuário obedecendo o modo especificado. O modo default usual de 
permissões num arquivo recém criado é rw-rw-rw (qualquer usuário do 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
18 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
sistema pode modificar o arquivo) e num diretório recém criado é 
rwxwvxrwx (qualquer usuário pode mudar este diretório e apagar qualquer 
coisa deste diretório). 
Utilize o comando umask para proteger os arquivos que serão criados 
durante sua sessão, desabilitando as permissões default designadas em 
qualquer arquivo ou diretório a ser criado. O acesso de escrever para 
“grupo” e “outros” são as permissões mais importantes de serem 
desativadas. A máscara designada fica ativa até o fim da sessão. Para 
desabilitar a máscara e retomar ao modo default, digite o comando 
umask 000 . 
Utilizar o comando touch para criar um arquivo vazio. Se o arquivo já 
existe,somente serão atualizadas hora e dia de criação do mesmo, sem 
afetar o conteúdo do arquivo. 
Exemplos: $ touch arquivo1.txt 
$ ls -l arquivo1.txt 
-rw-rw-rw- 1 fabio users 32 Jun 17 22:40 arquivo1.txt 
$ umask 026 
$ umask 026 
026 
$ touch arquivo2.txt 
$ ls -l arquivo2.txt 
-rw-r ----- 1 fabio users 32 Jun 17 22:43 arquivo2.txt 
 
 
CHOWN 
Nome: chown - muda o dono de um arquivo 
Sinopse: chown [-f] [-R] novo_dono arquivo 
Descrição: o comando chown muda o dono de um arquivo para o novo_dono 
especificado. O novo_dono pode ser um UID válido ou um nome de login 
válido. Somente o superusuário (root) pode usar o comando chown 
Opções: -f força a mudança, não reportando os erros; 
-R aplica o comando recursivamente aos sub-diretórios, mudando seus 
donos. 
Exemplos: $ chown fabio /home 
 
 
CHGRP 
Nome: chgrp - muda 0 grupo associado com o arquivo 
Sinopse: chgrp [-f ] [-R] grupo arquivo 
Descrição: o comando chgrp muda o grupo associado a um determinado arquivo. 
Opções: -f força a mudança, não mostrando os erros; 
-R executa o comando recursivamente, aplicando a todos os sub-diretórios. 
Exemplos: $ chown -R users arquivo.txt 
 
 
NEWGRP 
Nome: newgrp - muda a identificação do grupo 
Sinopse: newgrp [group_name ] 
Descrição: o comando newgrp muda a identificação de grupo para o usuário 
chamador. O usuário permanece conectado ao sistema e o diretório 
corrente permanece o mesmo, porém as permissões de acesso aos 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
19 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
arquivos passam a ser executadas respeitando-se o novo GID 
(identificador de grupo). 
Quando o comando newgrp é usado sem parâmetro, o GID é alterado 
para o GID de login. 
Exemplos: $ ls -l arquivo1.txt 
-rw-rw-rw- 1 fabio users1 32 Jun 17 22:40 
arquivo1.txt 
$ id 
uid=303 (fabio), gid=100(users1) 
$ newgrp users2 
$ id 
uid=303 (fabio), gid=13O(users2) 
 
 
SU 
Nome: su - muda a designação de Id de usuário 
Sinopse: su [nome_usuario] 
Descrição: o comando su permite a um usuário tornar-se temporariamente outro 
usuário, ou seja, cria uma subsessão com um novo Id de usuário e 
concede acesso a todos os arquivos que pertencem ao usuário designado 
por Id. 
Por questão de segurança será solicitada a senha da conta para que a 
troca de usuário ocorra. 
Sem argumentos, o comando su assume o usuário root (administrador do 
sistema). 
Para retomar ao user inicial digite o comando exit . Este comando vai 
fechar a subsessão. 
Exemplos: $ id 
uid=303 (fabio), gid=100(users1) 
$ su marcelo 
Password: 
$ id 
uid=345 (marcelo), gid=100(users1) 
$ exit 
 
 
8 EDITOR 
 
Os editores de texto permitem a criação, edição e visualização de arquivos no 
formato texto. 
 
8.1 ALGUNS EDITORES 
 
Existem vários editores de texto para o UNIX. 
O vi é o editor de textos padrão do UNIX. Não existe um UNIX que não tenha o vi . 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
20 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
O joe é um editor de texto que foi lançado no Linux, para fazer companhia ao vi e 
oferecer um pouco das interfaces amigáveis dos editores do DOS. O joe é semelhante ao 
WordStar. Todos os comandos para manipulação de textos são idênticos aos deste editor 
para DOS. 
Outro editor de textos é o pico , um editor de texto simples, fácil de usar, com o 
layout bem parecido com o editor de mail pine . Ambos foram desenvolvidos na 
Universidade de Washington. 
 
8.2 vi 
 
O editor vi inicializa em Modo de Comando. 
A inicialização do vi é da forma: 
$ vi [-R -r [arquivo] ] [arquivo] 
 -R entra no vi em modo de leitura, não permitindo modificar o arquivo. 
 -r [arquivo] recupera a última edição salva de um arquivo antes de um crash. 
 
 
• Comandos Gerais 
 
Esc termina o modo de inserção 
N muitos comandos permitem que se digite um inteiro n antes dele, de modo 
que o comando seja executado n vezes 
:set permite definir: nu numeração 
ts= tabs 
prefixando um atributo com “no” irá desativá-lo 
 
 
• Movimento do Cursor 
 
h move o cursor uma posição a esquerda 
l move o cursor uma posição a direita 
k move o cursor uma linha acima 
j move o cursor uma linha abaixo 
w move o cursor uma palavra para frente 
b move o cursor uma palavra para trás 
) move o cursor um parágrafo para frente 
( move o cursor um parágrafo para trás 
H move o cursor para o topo da tela 
M move o cursor para o meio da tela 
L move o cursor para o final da tela 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
21 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
G move o cursor para o final do arquivo 
nG move o cursor para a linha n 
 
 
• Controle de Páginas 
 
^E rola a tela para baixo linha a linha 
^D rola a tela para baixo meia tela 
^F rola a tela para baixo uma tela inteira 
^Y rola a tela para cima por uma linha 
^U rola a tela para cima meia tela 
^B rola a tela para cima uma tela inteira 
obs.: ^ = Ctrl 
 
 
• Modificação de Texto 
 
rx substitui o caracter sobre o cursor por x 
dd apaga a linha corrente 
dw apaga a palavra sob o cursor 
X apaga o caracter sobre o cursor 
U desfaz a última modificação 
 
 
• Gravando e Saindo 
 
w: [ arquivo ] grava o arquivo editado (grava com arquivo, se especificado) 
ZZ grava o arquivo e sai 
:wq grava o arquivo e sai 
:q sai (se o arquivo foi modificado mostra mensagem de advertência) 
:q! sai sem salvar as modificações 
 
 
• Modo de Inserção 
 
A entrada no modo de inserção ocorre através dos seguintes caracteres a, A, i, I, 
o, O. 
A entra no modo de inserção e posiciona o cursor uma posição a frente da atual 
A entra no modo de inserção e posiciona o cursor no final da linha 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
22 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
I entra no modo de inserção e não altera a posição do cursor 
I entra no modo de inserção e posiciona o cursor no início da linha 
O entra no modo de inserção e adiciona uma linha em branco abaixo da linha atual 
O entra no modo de inserção e adiciona uma linha em branco acima da linha atual 
obs.: a tecla Esc sai do modo de inserção e entra no modo de comando 
 
 
9 INTRODUÇÃO AO SHELL 
 
O shell é um programa que serve como um interpretador de comandos. É separado 
do sistema operacional, que fornece ao usuário a facilidade de selecionar a interface mais 
apropriada às suas necessidades, ou seja, escolher qual shell ele gostaria de trabalhar. A 
função do shell é permitir que se digite o próprio comando para realizar várias funções e 
passar o comando interpretado para o sistema operacional. 
O shell oferece várias funcionalidades, das quais pode-se destacar: 
• suporte a interface programável interpretativa (testes de condição, desvios, loops) 
• substituição de valores em variáveis shell especificadas 
• substituição de comandos 
• suporte a redirecionamentos e pipelines 
• pesquisa a comandos com execução do programa associado 
 
 
Figura 5: Shell 
 
 
Ao inicializar uma sessão UNIX, o shell define as características para o terminal e 
envia um prompt. Dentre os shells mais conhecidos pode-se citar: 
• sh ou bash Bourne Shell – o mais tradicional. (prompt: $) 
• ksh Korn Shell – o mais usado atualmente. (prompt: $) 
• csh C Shell – considerado o mais poderoso. (prompt: %) 
• rsh Remote Shell – shell remoto. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
23 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
• Rsh Restricted Shell – versão restrita ao sh. 
• Pdksh Public domain Korn Shell – versão de domínio públicodo ksh. 
• Zsh Z Shell – compatível com o sh. 
• Tcsh versão padronizada do csh. 
 
O C shell foi escrito depois do Bourne shell e oferece um ambiente mais poderoso. 
Tem histórico, uso do alias, complementação do nome de arquivo e outras características 
úteis. Oferece ainda um conjunto mais poderoso de comandos, com mais opções e 
capacidades do que o Bourne shell. 
Um dos problemas do C shell é a incompatibilidade com programas do Bourne 
shell. Além disto, existe a dificuldade de realizar algumas tarefas, como redirecionamento 
de erro padrão. 
O Korn shell tem todas as características melhores do C shell, além do que o 
Bourne shell faz. De fato, o K shell é um superconjunto do Bourne shell. 
Tabela 6: Comparação do csh, ksh e sh. 
 Shell 
Atributo 
csh ksh sh 
Tamanho grande médio pequeno 
Velocidade lenta rápida média 
Características extras algumas todas nenhuma 
Disponibilidade muitos sistemas muitos sistemas e expandido todos os sistemas 
Compatibilidade alguns sh todos sh somente sh 
 todos csh todos ksh 
 
 
9.1 VARIÁVEIS 
 
Uma variável shell é semelhante a uma variável em álgebra. É seu nome que 
representa um valor. Todas as variáveis shell, por default, são inicializadas com NULL 
(nada). O valor da variável pode ser modificado a qualquer momento que se desejar. O 
valor da variável pode ser acessado fazendo referência ao nome da variável. 
 
9.1.1 Armazenamento 
 
O shell possui duas áreas em memória para as suas variáveis: área de dados 
local e de ambiente . A memória é alocada na área de dados local quando uma nova 
variável é definida. As variáreis nesta área são restritas ao shell corrente. Isto é, nem todo 
subprocesso terá acesso a essas variáveis. Entretanto as variáveis que são movidas 
através do ambiente podem ser acessadas por qualquer subprocessos. 
Existem variáveis especiais do shell que são definidas através do processo de 
login. Nestas variáveis são armazenadas no ambiente, e seus valores podem mudar para 
caracterizar a sessão. As principais variáveis são: 
HOME define o diretório inicial do usuário 
LOGNAME ou USER define a identificação do usuário no login 
TERM define o tipo do terminal 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
24 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
PATH define o(s) diretório(s) onde procurar os comandos para execução 
PWD define o diretório corrente 
SHELL define o shell default para a sessão no terminal 
PS1 define o prompt do shell primário 
PS2 define o prompt do shell secundário 
 
 
Os nomes das variáveis locais são geralmente definidos usando-se caracteres 
minúsculos e das variáveis ambientais são definidos com caracteres maiúsculos. Esta 
convenção é só para facilitar a identificação entre os 2 tipos de variáveis do código de um 
programa. 
A manipulação dessas variáveis depende do shell que se está utilizando. O C shell 
realiza um divisão clara entre as variáveis do shell e de ambiente. Para criar ou trocar o 
valor de uma variável local utiliza-se o comando set . Para as variáveis de ambiente , o 
comando setenv . 
set [ variável = valor ] 
setenv [ variável valor ] 
 
A remoção de variáveis do shell e do ambiente é realizada através dos comandos 
unset e unsetenv , respectivamente. 
unset variável 
unsetenv variável 
 
 
9.1.2 Atribuição de Valores 
 
A atribuição de valores às variáveis permite associar um valor ao nome da variável. 
O seu valor pode ser acessado através do nome da variável. Por exemplo, um contador 
que conta o número de interações através de um loop. A variável pode ser incrementada 
de um cada vez que se completa o loop. Ao atribuir um valor a uma nova variável, este 
será armazenado na área de dados local. 
A atribuição pode ser feita dentro de um programa shell ou digitando-se 
diretamente no prompt do shell: 
$ color=blue (variável local) 
$ count=5 (variável local) 
$ dir_name=/home/ricardo (variável local) 
$ PATH=.:/bin:/usr/bin (variável local) 
 
 
9.1.3 Substituição de Variáveis 
 
Cada variável que é definida será associada a um valor. Quando o nome da 
variável for imediatamente precedido por um sinal $, o shell troca o parâmetro pelo valor 
da variável. Este procedimento é conhecido como substituição de variável e sempre 
ocorre antes do comando se executado. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
25 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Depois do shell fazer todas as substituições na linha do comando, ele executa o 
comando. Assim, as variáveis podem também representar um comando, argumentos de 
comandos ou uma linha de comando completa. Isto fornece um mecanismo conveniente 
para usar um pseudônimo frequentemente utilizado para longos caminhos e longas 
cadeias de comandos. 
$ echo$color 
blue 
 
$ echo o valor de color é $color 
o valor de color é blue 
 
$ echo $PATH 
.:bin:/usr/bin 
 
$ file_name=$PATH/arquivo.txt 
$ more $file_name 
 
O comando echo $ name exibe o valor corrente de uma variável. 
 
 
9.1.4 Transferência de Variáveis Locais para o Ambi ente 
 
Para tornar uma variável disponível para os processos-filhos, ela deve existir no 
ambiente. No Bourne shell, para o usuário criar uma variável de ambiente, ele deve criar 
uma variável como local e exportá-la com o comando export . A criação de uma variável 
local é realizada utilizando um comando de atribuição “=”, conforme visto anteriormente. 
 
O comando export name transfere as variáveis específicas da área local para a 
área de ambiente. Sem argumento, o comando export exibe as variáveis que foram 
exportadas para este shell. 
$ variável = valor (cria uma variável de shell) 
$ export variável (cria uma variável de ambiente) 
 
Para remover o mecanismo é semelhante: 
$ unset variável 
$ export variável (remove a variável de ambiente) 
 
O comando env exibe todas as variáveis e seus valores que estão armazenados 
no ambiente. Quando um processo-filho é iniciado, ele recebe uma cópia das variáveis de 
ambiente de seu pai. Por isso, se um processo-filho modifica o valor de uma variável de 
ambiente, o valor modificado será propagado para qualquer um dos processos-filho, mas 
o valor do pai permanece inalterado. Isto significa dizer que um filho não pode alterar o 
ambiente de seu pai. 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
26 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
10 HISTÓRICO (HISTORY) 
 
Algumas atividades de um usuário em uma sessão fazem com que comandos 
sejam repetidos muitas vezes. O C shell permite que o usuário mantenha um buffer de 
histórico de comandos, capaz de manter os comandos anteriores. Para usar o mecanismo 
de histórico do C shell de forma automática (toda vez que abrir a sessão), deve-se colocar 
as 3 linhas seguintes no arquivo .cshrc localizado no seu diretório HOME: 
 
set history=20 
sest savehist=20 
set prompt=”[\!]%” 
 
Estas declarações irão: 
• Permitir que seu buffer de histórico de comandos armazene os 20 comandos 
anteriores. 
• Salvar os últimos 20 eventos de buffer do histórico de comandos, quando terminar 
a sessão e restaurá-los a próxima vez que se logar. 
• Definir o prompt do C shell para mostrar o número de cada evento (comando) que 
o usuário digitar no terminal. 
 
Para referenciar comandos armazenados na lista , pode-se usar alguns 
parâmetros: 
!! executa o último comando 
!n executa o n-ésimo comando 
!string executa o comando mais recente que comece com o “string” 
! –n executa o n-ésimo comando a contar do último 
 
 
11 PROCESSOS 
 
Um processo é um programa de execução independente que tem seu próprio 
conjunto de recursos. Para um mesmo programa (entidade estática) podem existir vários 
processos (entidades dinâmicas). 
O UNIX, como sistema operacional multitarefa, permite a existência de vários 
processos ao mesmo tempo. Emmáquinas monoprocessadas, o kernel do UNIX se 
encarrega de escalonar os recursos de execução do único processador para vários 
processos do sistema. Já em máquinas multiprocessadas, pode-se ter processos 
executando em paralelo, e não concorrentemente como nas máquinas monoprocessadas. 
Quando for digitado algum comando no ambiente do UNIX, este comando é 
executado como um processo subordinado (chamado processo filho) do processo 
corrente (chamado processo pai). Todos os processos criados pelo usuário são filhos de 
login. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
27 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Figura 6: Processo e subprocessos. 
 
 
O sistema operacional tem muitos recursos que devem ser gerenciados, incluindo 
recursos de hardware e software. Um dos recursos de software que deve ser gerenciado 
é um programa em execução. As características do processo são: 
• É um programa que pode ser executado concorrentemente 
• Pode ser criado e destruído 
• Possui recursos alocados para ele 
• Possui um ambiente associado a ele que é herdado do processo pai, consiste de 
todas as informações relativas ao processo e pode ser alterado através de 
comandos no ambiente de shell 
• Pode criar outros processos 
• Pode se comunicar com outros processos 
 
 
No UNIX cada processo possui o seu próprio ambiente onde existem todas as 
informações relativas ao processo e que afetam a sua execução: 
• Dados 
• Arquivos abertos 
• Diretório corrente 
• User ID 
• Process ID 
• Parente Process ID 
• Conjunto de variáveis 
 
 
11.1 COMANDOS DE CONTROLE DE PROCESSOS 
 
O UNIX disponibiliza alguns comandos para a manipulação de processos conforme 
apresentados a seguir: 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
28 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
PS 
Nome: ps – permite ao usuário visualizar os processos do sistema 
Sinopse: ps [-a] [-l ] [-u] [-e] [-f ] 
Opções: -a inclui informações sobre todos os processos do sistema 
-l apresenta saída em formato longo 
-u apresenta informações do usuário e hora de início dos processos 
-e apresenta uma lista completa dos processos, com exceção dos proc. 
do kernel 
-f apresenta uma lista completa dos processos 
Descrição: sem nenhum parâmetro, apresenta somente os processos do usuário na 
sessão, em formato resumido 
Exemplo: $ ps 
PID TTY STAT TIME CMD 
1058 pp0 S 21:09 -bash 
1071 pp0 R 21:09 ps 
$ ps -l. 
UID PID PPID PRI NI SIZE RSS WCHAN STAT TTY TIME CMD 
525 1118 1117 5 0 368 532 11cac5 S pp0 21:09 -bash 
525 1171 1118 24 0 57 188 0 R pp0 21:09 ps -l 
 
 
BG 
Nome: bg – permite ao usuário enviar um processo/grupo de processos para 
execução em segundo plano (background) 
Sinopse: bg [% número_do_job ] 
Descrição: sem nenhum parâmetro, o comando bg assume o job corrente. O número 
do job é apresentado no terminal no momento em que este foi suspenso 
ou pode ser listado com o comando jobs , o qual apresentará a lista de 
jobs do shell corrente. 
Exemplo: $ man ps 
^Z 
Stopped 
$ jobs 
[1] + Stopped man ps 
$ bg %1 
[1] man ps & 
$ jobs 
[1] + Stopped (tty output) man ps 
 
FG 
Nome: fg - permite ao usuário trazer um processo/grupo de processos para 
execução em primeiro plano (foreground) 
Sinopse: fg [% número_do_job ] 
Descrição: sem nenhum parâmetro, o comando fg assume o job corrente. O nome do 
job pode ser referenciado pelo número do job quando precedido pelo sinal 
de percentual (%) ou o PID. 
Exemplo: $ jobs 
[1] + Stopped(tty output) man ps 
$ fg %1 
man ps 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
29 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
KILL 
Nome: kill - objetiva enviar sinais (interrupções de software) para processos 
Sinopse: kill [-sinal] pid 
kill [-l ] 
Opções: -sinal envia o sinal especificado ao(s) processo(s) (“pid”); 
-l apresenta lista de sinais que podem ser utilizados com o 
comando kill . 
Descrição: Cada sinal tem um número e um nome de identificação. Os mais utilizados 
são o SIGKILL(9) e SIGTSTP(2O). O sinal SIGKILL, quando enviado a um 
processo, termina sua execução, desde que o usuário seja o “dono” do 
processo ou seja o superusuário. O SIGTSTP pode ser enviado a um 
processo ou grupo de processos em foreground, provocando sua 
suspensão. Esse sinal também é enviado quando se aciona as teclas 
Ctrl+Z (^Z)_ Quando o comando kill é executado sem parâmetros, o sinal 
enviado é o SIGTERM (15) ou terminate, que provoca o término do(s) 
processo(s) especificado(s). Os programas podem desabilitar a recepção 
do terminate para seus processos. O parâmetro pid pode ser obtido 
listando os processos, através do comando ps . 
Exemplo: $ kill -1 
 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 
 5) SIGTRAP 6) SIGIOT 7) SIGBUS 8) SIGFPE 
 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 
30) SIGPWR 
 
$ kill -91234 
$ kill -SIGKILL 1234 
 
 
NICE 
Nome: nice - executa um processo estabelecendo sua prioridades 
Sinopse: nice [-incremento] comando_linha 
Descrição: Comando de prefixo que permite executar um programa estabelecendo 
sua prioridade. Programas com baixa prioridade ganham menos acessos 
aos recursos do sistema. O incremento é um número inteiro com valor 
entre -20 a +20. O default do incremento é 10. Um processo com valor de 
nice maior é o que tem menor prioridade relativa no sistema. O valor nice 
não é um modificador absoluto de prioridade. 
Para ver as prioridades dos processos, utliza-se o comando ps -l. As 
prioridades são exibidas sob a coluna intitulada PRI. Jobs que têm maior 
prioridade terão o valor de prioridade mais baixo. O valor nice é exibido 
sob a coluna intitulada Nl 
Exemplo: $ nice -20 cc myprog.c -o myprog (dispara o processo 'cd com alta 
priorid. 
$ nice 5 sort * > sort.out 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
30 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
CRONTAB 
Nome: crontab - executa comandos periodicamente na data e hora programada 
Sinopse: crontab [-l ( -V ] [-r] [arquivo] 
-l exibe o conteúdo do arquivo crontab 
-r remove o arquivo crontab do diretório crontab 
-v exibe o nome do arquivo crontab e a data e a hora que foi 
submetido com o crontab 
arquivo coloca o arquivo (comandos) na fila para execução 
Descrição: O comando crontab coloca comandos na fila do daemon cron para serem 
processados. O “arquivo” que contém informações sobre os comandos a 
serem executados com as respectivas datas, serve como entrada de 
dados para o comando crontab. 
O UNIX possui um daemon chamado cron que executa comandos shell 
na data e hora especificada e de forma periódica. O daemon cron: 
- é inicializado quando o sistema operacional é inicializado até que ocorra 
uma falha no sistema ou seja executado um shutdown. 
- cria um log de atividades 
- checa o arquivo crontab no diretório /usr/spool/cron/crotabs 
periodicamente em busca de jobs. 
O formato do arquivo crontab é mostrado a seguir. Crie o arquivo com um 
editor de textos e então submeta o arquivo usando o comando crontab. 
Cada usuário pode ter apenas 1 arquivo crontab ativo num determinado 
tempo. O arquivo crontab pode conter mais que uma linha de comando. 
Cada linha no arquivo consiste de seis campos que são separados por 
espaços ou tabs. Exemplo de um arquivocrontab: 
 
 
Exemplo: $ crontab Iimpeza_semanal 
$ crontab -l 
30 13 * 1 1-15 
$ crontab -v 
crontab file: your submission time: Thu Jan 02 13:00:29 1992 
 
 
12 REDIRECIONAMENTO DE E/S, FILTROS E PIPELINES 
 
Um comando do UNIX é um programa (conjunto de instruções) que geralmente lê 
dados de um ou vários arquivos de entrada, efetua algum tipo de processamento sobre 
eles (computação) e finalmente produz os resultados em arquivo(s) de saída. Na 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
31 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
arquitetura do UN1X, note-se, dispositivos como terminal, discos e impressoras também 
são tratados como arquivos. 
Ao criar um processo, o UNIX predefine e automaticamente lhe associa três 
arquivos padrões: 
• stdin (0) - entrada padrão; 
• stdout (1) - saída padrão; 
• stderr (2) - saída padrão para erros. 
 
A entrada padrão (stdin) e um arquivo de onde os programas obtêm dados de 
entrada para o seu processamento. O sistema associa a esta entrada padrão o teclado do 
terminal, caso o usuário não especifique uma alternativa. Essa redefinição é um recurso 
oferecido pelo Shell conhecido como redirecionamento. 
A saída padrão (stdout) é o arquivo para onde usualmente são enviados os 
resultados do programa. O monitor do terminal é o arquivo de saída padrão associado ao 
processo pelo sistema. Assim como a entrada padrão, a saída padrão pode ser 
redirecionada para outros arquivos (impressora, disco, etc). 
Além da saída e entrada padrão, o UNIX reserva uma conexão de I/O para 
mensagens de erros do programa. Se um usuário redireciona a saída padrão de um 
programa, mensagens de erros emitidas por este programa serão ainda enviadas para o 
terminal, pois a saída padrão de erros também é o terminal. O Shell permite redirecionar a 
saída padrão de erros para outros arquivos no sistema. 
Como exemplo, pode-se utilizar o comando cal . 
$ cal 10 1997 
Nessa execução do comando cal , os dados de entrada para seu processamento 
são os parâmetros 10 e 1997. Nesse caso, o dispositivo de entrada foi o teclado. A saída 
do comando será realizada na tela do terminal do usuário, por default o dispositivo de 
saída padrão. O usuário poderia redirecionar essa saída para um arquivo ou algum outro 
dispositivo de saída, como uma impressora. 
Ou seja, se um comando espera uma entrada e nenhum arquivo de entrada é 
especificado, então esse comando vai buscar seus dados de uma entrada padrão, que é 
o terminal do usuário. Se um comando vai jogar a saída de seu processamento para um 
arquivo, e nenhum arquivo de saída foi especificado, o comando utilizará a saída padrão 
que também é o terminal do usuário. 
Quase todos os comandos do UNIX seguem essa filosofia de trabalho. Alguns 
comandos foram previamente implementados com a especificação de qual arquivo seria 
utilizado para saída e/ou entrada. Por exemplo, o comando ls sempre utiliza como 
entrada padrão um diretório. Já o comando lpr , utiliza como saída padrão a impressora. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
32 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
Figura 7: Entrada e Saídas Padrões. 
 
 
13 COMANDOS DE REDIRECIONAMENTO DE E/S 
 
Redirecionamento é uma facilidade que o UNIX oferece, permitindo que o usuário 
altere as saídas e a entrada padrão do programa, especificando novos arquivos. 
 
13.1 REDIRECIONANDO A SAÍDA PADRÃO ( > E >> ) 
 
No exemplo do comando cal , a saída padrão do comando foi o terminal. O usuário 
pode definir que a saída do programa (um determinado calendário) seja realizada para um 
arquivo em disco para posterior utilização. Esse redirecionamento é feito utilizando-se o 
símbolo “>” (maior que) e o nome do arquivo que armazenará a saída do programa. 
$ cal 10 1997 > calendario97.dat 
Nesse exemplo, a saída do comando cal será redirecionada para o arquivo 
calendario97.dat. O arquivo será criado, caso não exista, ou sobrescrito se já existir um 
arquivo com mesmo nome no diretório. 
Outra forma de redirecionar a saida padrão é feita utilizando o simbolo “>>”. Neste 
caso, a saída é colocada no final (append) de um arquivo existente, não destruindo os 
dados do arquivo. Caso o arquivo não exista, ele será criado para armazenar a saída do 
programa. 
$ cal 11 1997 >> calendario97.dat 
 
13.2 REDIRECIONANDO A ENTRADA PADRÃO ( < ) 
 
O redirecionamento de entrada pode ser feito em todos os comandos que lêem os 
dados de uma entrada padrão. O redirecionamento de entrada é realizado utilizando o 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
33 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
símbolo “<” (menor que), indicando ao Shell para trocar a entrada padrão (terminal) para 
um novo arquivo especificado. 
Como exemplo, pode-se ter o comando write com a entrada padrão redirecionada 
para outro arquivo. No caso, a entrada estará contida no arquivo em disco, chamado 
calendario97.dat. 
$ write Fabio < calendario97.dat 
Desse modo, o conteúdo do arquivo ca.lendario97.dat será transmitido para a tela 
do terminal do usuário fabio. 
 
13.3 REDIRECIONANDO A ENTRADA E A SAÍDA SIMULTANEAMENTE 
 
O UNIX permite a utilização em conjunto dos símbolos > / >> e < oferecendo ao 
usuário a capacidade de redirecionar a entrada e a saída padrão do programa de uma 
única vez. 
$ who > users.dat 
$ cat users.dat 
maria ttyp1 Jun 10 13:03 1997 
ana ttyp3 Jun 10 13:13 1997 
fabio ttyp5 Jun 10 14:07 1997 
marco ttyp6 Jun 10 14:23 1997 
$ sort < users.dat 
ana ttyp3 Jun 10 13:13 1997 
fabio ttyp5 Jun 10 14:07 1997 
maria ttyp1 Jun 10 13:03 1997 
marco ttyp6 Jun 10 14:23 1997 
$ sort < users.dat > users2.dat 
$ cat users2.dat 
ana ttyp3 Jun 10 13:13 1997 
fabio ttyp5 Jun 10 14:07 1997 
maria ttyp1 Jun 10 13:03 1997 
marco ttyp6 Jun 10 14:23 1997 
$ sort -r +1 < users.dat >> users2.dat 
$ cat users2 
ana ttyp3 Jun 10 13:13 1997 
fabio ttyp5 Jun 10 14:07 1997 
maria ttyp1 Jun 10 13:03 1997 
marco ttyp6 Jun 10 14:23 1997 
ana ttyp3 Jun 10 13:13 1997 
fabio ttyp5 Jun 10 14:07 1997 
maria ttyp1 Jun 10 13:03 1997 
marco ttyp6 Jun 10 14:23 1997 
 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
34 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
13.4 REDIRECIONANDO A SAÍDA DE ERROS 
 
A saída padrão de erros é muito utilizada para a depuração de programas e 
emissão de relatórios de erros aos usuários. O sistema operacional pode utilizar a saída 
padrão de erros, associada ao processo, para relatar a seu usuário algum erro que 
ocorreu na execução do processo. A saída de erros é redirecionada utilizando a notação: 
>& 
$ ls arquivo_nao_existente > saida_erro.dat 
Is: arquivo_nao_existente: No such file or directory 
$ cat saida_erro.dat 
$ ls arquivo_nao_existente >& saida_erro.dat 
 
$ cat saida_erro.dat 
ls: arquivo_nao_existente: No such file or directory 
 
Da mesma forma que a saída padrão, a saída padrão de erros pode ser 
redirecionada para o final (append) de um arquivo existente, não destruindo os dados do 
arquivo. Caso o arquivo não exista, ele será criado para armazenar a saída do programa. 
$ ls arquivo_nao_existente >& saida_erro.dat 
$ cat saida_erro.dat 
Is: arquivo_nao_existente: No such file or directory 
$ ls arquivo_nao_existente2 >>& saida_erro.dat 
$ cat saida_erro.dat 
Is: arquivo_nao_existente: No such file or directory 
ls: arquivo_nao_existente2: No such file or directory 
 
 
14 COMANDOS DE FILTROS 
 
Filtro é um programa que lê de sua entrada padrão, executa um processamento e 
escreve para sua saída padrão. Filtros são normalmente conectados linearmente em Shell 
pipelines. 
São exemplos de filtro: wc ; sort ; grep 
Programas que não são filtros: who ; ls ; cd ; mv ; pwd ; whoami ; clear 
 
 
WC 
Nome: wc - conta o númerode linhas, palavras e caracteres de arquivos. 
Sinopse: wc [ -lwc] [arquivo ...] 
Descrição: o comando wc conta o número de linhas, palavras e caracteres de um 
arquivo especificado como parâmetro. Se nenhum nome de arquivo for 
especificado, o arquivo de entrada do comando wc será a entrada 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
35 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
padrão. Caso nenhuma opção seja definida, o comando imprime o 
número de linhas, palavras e caracteres. 
Opções: • -l conta linhas; 
• -w conta palavras (words); 
• -c conta caracteres. 
Exemplos: $ wc arq.dat 
2 4 16 
$wc -c arq.dat 
16 
 
 
 
SORT 
Nome: sort - ordena linhas de arquivos especificados e escreve os resultados 
para a saída 
Sinopse: sort [opções globais] [especificação dos campos] [-o saída] [arquivo ...] 
Descrição: sort ordena arquivos de entrada e escreve na saída padrão ou no arquivo 
especificado na opção -o. O comando sort trabalha sobre o conceito de 
chave (key). Chave é a parte cada linha que o comando sort examina 
para determinar em qual ordem as linhas aparecerão. Caso nenhuma 
chave seja especificada, o padrão é toda linha. 
Para o sort . cada linha é constituída de campos, os quais estão 
separados por caracteres específicos. O caracter de espaço é o 
separador de campos default, mas outros separadores podem ser 
especificados pelo usuário. 
O comando sort , em seu processamento, utiliza mais um parâmetro 
chamado indicador de posição. Ele permite que a ordenação comece em 
um determinado campo da linha, além de possibilitar especificar uma 
posição em caracter, dentro desse campo. 
Além disso, a ordem em que será realizada a ordenação também pode 
ser determinada pelo usuário. Esta determinação é feita através de 
opções de controle de ordenação, que devem vir antes dos parâmetros 
indicadores de posição. 
Opções • -tc o caracter c é assumido como o separador de campo. Caso esta 
opção não seja especificada, caracteres de espaço em branco e 
tabulação são usados como separadores; 
• -b ignora os espaços e tabulações iniciais do campo de ordenação; 
• -n significa que para o campo específico será realizada uma ordenação 
numérica. 
Indicador de Posição: • +C.c -C.c o caracter “C” significa o campo e o caracter “c” 
significa a posição em bytes naquele campo, Os valores precedidos do 
sinal de “+” e “-“ indicam o início e fim da chave. 
Ordem de Comparações: •-r reverte o sentido das comparações. O default é do 
menor para o maior: (1,2,3), (A,B,C), etc. 
 
 
Globais: 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
36 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Exemplos: $ cat > sort.dat 
Z:1 -1Campo 
M:5 -2Campo 
P:2 -3Campo 
C:1 -4Campo 
A:4 -5Campo 
^Z 
 
$ sort -t: +1 sort.dat $ sort -t: +1 -n sort.dat 
Z:1 -1Campo Z:1 -1Campo 
C:1 -4Campo M:5 -2Campo 
P:2 -3Campo P:2 -3Campo 
A:4 -5Campo C:1 -4Campo 
M:5 -2Campo A:4 -5Campo 
 
$ sort +0.2 sort.dat $ sort +1 -2 sort.dat 
Z:1 -1Campo M:5 -2Campo 
C:1 -4Campo Z:1 -1Campo 
P:2 -3Campo P:2 -3Campo 
A:4 -5Campo C:1 -4Campo 
M:5 -2Campo A:4 -5Campo 
 
 
GREP 
Nome: grep - procura por padrões de texto em arquivos 
Sinopse : grep [- cvny] expressão [arquivos de entrada] 
Descrição: o comando grep procura por um padrão especificado em arquivos, 
escrevendo a linha do arquivo que possui o padrão equivalente. 
Opções: • -c mostra o n.° das linhas nas quais forarn encont rados padrões 
equivalentes; 
• -n mostra, com a numeração, as linhas em que foram encontrados os 
padrões; 
• -v exibe as linhas que não possuem o padrão especificado; 
• -y trata letras maiúsculas e minúsculas como um mesmo padrão. 
Expressão: expressões podem ser cadeias de caracteres ou expressões regulares, 
que, embora também sejam cadeias de caracteres, possuem símbolos 
com significados especiais chamados metacaracteres: 
• . (ponto) representa qualquer caracter na pesquisa; 
• [ - ] representa todos os caracteres compreendidos entre o 
caracter antes do “-“ e o caracter depois do “-“, inclusive. 
Exemplos: $ cat > arquivo.dat 
Ana 
Fabio 
Maria 
Marco 
^Z 
$ grep “an” arquivo.dat 
Ana 
Fabio 
$ grep -n “an” arquivo.dat 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
37 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
1 Ana 
2 Fabio 
$ grep -v -n “an” arquivo.dat 
3 Maria 
4 Marco 
$ grep “r.” arquivo.dat 
Maria 
Marco 
$ grep -n “[r-t]” arquivo.dat 
2 Fabio 
3 Maria 
4 Marco 
 
15 COMANDOS DE Pipelines 
 
Pipes são uma velha forma de comunicação entre processos no UNIX, e são fornecidos 
por todos os sistemas UNIX. Um pipe (duto) é uma conexão que conduz a saída padrão de um 
programa para a entrada padrão de outro programa. Esse conceito facilita aos programas UNIX 
trabalharem juntos, sem a necessidade de arquivos intermediários. 
 
15.1 PIPELINE ( | ) 
 
O símbolo para a criação de pipelines é a barra vertical ( | ). Quando em uma linha 
de comando, dois programas são separados por uma barra vertical ( | ), a saída do 
primeiro é transferida para a entrada do segundo. 
$ who | wc -1 
6 
A resposta da linha de comando acima é o número de usuário conectados no 
sistema naquele instante. 
Os pipes são half-duplex, isto é, os dados fluem somente em uma direção. Eles 
somente podem ser usados entre processos que possuam o mesmo ancestral comum 
(processo pai). No caso anterior, o processo “pai” comum aos dois processos era o Shell 
do usuário. 
 
15.2 CAPTURANDO A SAÍDA INTERMEDIÁRIA DE UM PIPELINE 
 
A possibilidade de se ter pipeline traz a necessidade de se capturar sua saida 
intermediária. Para isso, tem-se o comando tee. 
$ tee nome_arquivo 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
38 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Esse comando copia a saída de um dos programas pertencente ao pipeline, o qual 
está imediatamente anterior ao comando tee, para o arquivo determinado. 
 
Figura 8: Comando tee e Pipelines. 
 
$ who | tee usuários | sort 
 
 
 
CUT 
Nome: cut - corta colunas de arquivos. 
Sinopse: cut -clista [arquivo] 
cut -flista [-dx] [arquivo] 
Descrição: o comando cut é um equivalente ao comando grep com uma análise na 
vertical. O cut identifica colunas através de dois métodos totalmente 
diferentes. O mais simples é uma posição em caracter, ou seja, a coluna 
inicia-se em uma determinada posição da linha. A segunda forma é 
através de caracteres delimitadores de campo, semelhante ao comando 
sort . O separador default é o caracter de tabulação (tab). 
Opções: • -clista os caracteres mencionados na lista são extraídos. A lista são 
varias posições separadas por vírgula, ou por hífen “-“; 
• -flista especifica as colunas que serão extraídas. Essa opção 
trabalha em conjunto com a opção -d; 
• -dx define o caracter (“x”) separador de campos. 
Exemplos: $ cat > notas.dat 
fabio:8 
maria:10 
marco:7,5 
^Z 
$ cut -c3-5 notas.dat $ cut -c3-5 notas.dat 
ton tn 
ari ai 
arc ac 
 
$ cut -f2 –d: notas.dat $ cut -f3 -d: notasdat 
8 8 
10 10 
7, 7,5 
 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
39 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
PR 
Nome: pr - converte arquivo texto para uma versão colunada e paginada; com 
cabeçalho. 
Sinopse: pr [arquivo] 
Descrição: o comando pr converte um arquivo texto para um arquivo paginado, 
colunado, com cabeçalhos. 
Opções: • +nº descarta as primeiras (nº - 1) páginas, imprimindo a partir da 
página nº; 
• -nº imprime em nº colunas; 
• -a imprime colunas horizontalmente; e não verticalmente; 
• -d utiliza espaço duplo; 
• -h cab usa cab como cabeçalho ao invés do nome do arquivo; 
• -l linha configura o número de linhas (o padrão é 66).Caso o número 
seja menor que 10, os cabeçalhos e rodapés são omitidos; 
• -m imprime um arquivo por coluna; 
• -t suprime cabeçalhos, rodapés, e caracteres de preenchimento. 
 
Exemplos: $ ls /home > arquivo 
$ pr -3 arquivo 
adriana gisela oliveira 
adrianem gomes pablo 
adriano goncalve patrick 
... ... ... 
 
$ pr -a -3: arquivo 
adriana adrianem adriano 
adrianoe adrianos aide 
ana anac anap 
... ... ... 
 
 
 
TR 
Nome: tr - converte caracteres. 
Sinopse: tr [opções] [string 1 [string 2] ] 
Descrição: o comando tr converte caracteres - copia de uma entrada padrão para 
uma saída padrão, substituindo caracteres de string 1 para string 2, ou 
deletando caracteres em string 1. 
Opções: • - d deleta caracteres no string 1 
• - s suprime caracteres repetidos no string 2 
Caracteres Especiais: • \b ^H (backspace) 
• \f ^L (form feed - alimentação de formulário) 
• \n ^J (nova linha) 
• \r ^M (retomo de carro - CR) 
• \t ^I (tab) 
• \nnn caracter com valor octal nnn 
• \\ contrabarra 
• char1-char2 todos os caracteres entre char1 e char2 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
40 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
Exemplos: $ cat > arquivo 
ABCDEFG HIJKLMN OPQRST UVWXYZ 
^Z 
$ cat arquivo | tr ’A-Z’ ’a-z’ 
abcdefg hijklmn opqrst uvwxyz 
 
$ tr ‘ ‘ ’ \012‘ < arquivo 
ABCDEFG 
HUKLMN 
OPQRST 
UVWXYZ 
 
 
16 TAREFAS ADMINISTRATIVAS 
 
16.1 Iniciando o Sistema 
 
A inicialização do sistema é feita ligando-se o computador. Será carregado o 
sistema operacional e o sistema ficará em estado de funcionamento para que se possa 
abrir uma sessão e trabalhar. 
Normalmente, quando o sistema é ligado, o boot será feito com o primeiro sistema 
operacional que for encontrado: o disco rígido ou um disquete. Este método é conhecido 
como unattended boot . 
Há métodos de interrupção automática no processo de boot, permitindo um boot 
interativo do sistema. Este método, que deve ser executado na console do sistema, é 
conhecido como attended boat e normalmente é usado pelo administrador do sistema 
para dar boot a partir de uma mídia (kernel) alternativa. 
Se precisar saber o nome e a versão do sistema operacional que está carregado 
no computador, deve-se utilizar o comando uname -a . 
 
16.2 Finalizando o Sistema 
 
Muitas vezes o sistema UNIX está em um modo que permite vários usuários 
conectados ao mesmo tempo. Consequentemente existirão vários processos de usuários 
sendo executando no sistema num dado momento. 
A primeira regra é: NUNCA DESLIGUAR A ENERGIA DO COMPUTADOR. Se o 
sistema UNIX for parado indevidamente, podem-se perder informações e o sistema de 
arquivo pode ficar corrompido. 
Existem muitas razões para parar o sistema. Se um processo está ativo de modo 
estranho, a tentativa é usar o comando kill. Se este comando não resolver o problema, o 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
41 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
sistema precisa ser parado e reinicializado. Vários métodos podem ser utilizados para 
parar o sistema e o comando shutdown é o mais utilizado. Só após é que o equipamento 
deve ser desligado. 
O administrador do sistema é que tem a autorização para desligar o sistema e 
deverá estar no diretório raiz (/) para executar o comando. 
Nome: shutdown - finaliza a operação do sistema 
Sinopse: shutdown[ [-r | -h] [tempo] 
Opções: -r reboot automático após o shutdown 
-h pára o sistema após o shutdown 
tempo número de segundos opcionais de espera antes de terminar todos os 
processos 
Exemplo: $ shutdown -h 300 
 
 
17 BACKUPS 
 
Uma das principais responsabilidades do administrador é preservar dados 
armazenados no sistema. Infelizmente os dados, às vezes, são perdidos. Os fatores mais 
comuns que provocam a perda de dados são: 
• Falha de hardware; 
• Remoção de arquivos acidentalmente; 
• Sistema de arquivos (Filesystem) corrompido; 
• Crash de Sistema. 
 
O administrador é responsável pelo planejamento e implementação de backups 
para minimizar a perda de dados. Outro aspecto que deve ser levado em consideração 
são os fatores ambientais externos (fogo, inundação, etc) que podem danificar as mídias 
utilizadas para backup. Por este motivo, também é importante fazer backups em discos 
remotos ou estabelecer procedimentos administrativos para manter mídias em locais 
geograficamente distintos. 
O procedimento de backup é determinado por alguns fatores dentre eles o uso 
frequente do sistema e grande quantidade de usuários podem requerer que seja feito 
backup diariamente. Em ambientes mais simples pode ser feito backup uma vez por 
semana. Quanto maior a frequência deste procedimento maior o custo pois envolve 
pessoal e material. 
No planejamento de backups deve ser levado em consideração quando e de quais 
dados fazer backup. Existem duas alternativas: fazer backup do sistema todo ou parte 
dele. Na maioria das vezes a estratégia envolve os dois procedimentos. É possível fazer 
backup geral aos domingos e parcial de segunda a sexta. Na escolha da estratégia de 
backup devem ser considerados três fatores: 
• Quantidade de mídias necessárias; 
• Quantidade de tempo necessário; 
• Frequência do backup. 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
42 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
A quantidade de mídia e o tempo são proporcionais ao espaço ocupado pelos 
arquivos do sistema. A frequência do backup depende do custo de dados perdidos. 
 
TAR 
Nome: tar - armazena backups em uma fita ou em disco. 
Sinopse: tar {-c l -r I -t I -u l -x } [-f arquivo-disposito] [arquivo] 
Descrição: O comando tar salva e recupera arquivos de/para fita magnética. Para 
salvar arquivos em fita é necessário saber o arquivo do dispositivo da 
unidade de fita. Os nomes típicos podem ser: 
/dev/rct - fita em cartucho 
/dev/rmt - fita rolo 9 trilhas ou fita DAT 
Opções: -c cria um novo arquivo 
-r arquivos são adicionados no fim do backup 
-t imprime o conteúdo do backup 
-u arquivos são adicionados se forem novos ou modificados 
-x arquivos são extraídos do backup 
-f arquivo-dispositivo designa o arquivo onde o backup será 
escrito. O arquivo-dispositivo não precisa ser um dispositivo. Pode-se criar 
um arquivo de backup sob um diretório no disco. 
arquivo arquivo onde os dados serão lidos ou extraídos 
 
Exemplo: $ tar -c arquivo1 arquivo2 
$ tar -v -t -f saida.tar 
 
 
CPIO 
Nome: cpio - armazena backups 
Sinopse: cpio -o [-c -v -x] 
cpio -i [-c -d -m -t -u -v -x] 
Descrição: O comando cpio -o lê a lista dos nomes de arquivos de entrada padrão e 
cria um arquivo de backup com os arquivos requeridos e envia o arquivo 
backup para a saída padrão. A lista dos nomes do arquivo backup é 
criada com o comando find, e o arquivo de backup é geralmente 
redirecionado para o arquivo especial do dispositivo de fita. 
O comando cpio -i lê os arquivos de backup da entrada padrão (arquivo 
especial do dispositivo de fita) e recupera os arquivos contidos no disco. 
Os nomes dos arquivos criados dependem se o arquivo foi criado com 
caminho absoluto ou relativo. 
Para salvar arquivos em fita, é necessário saber o arquivo do dispositivo 
da unidade de fita. Os nomes típicos podem ser: 
/dev/rct - fita em cartucho 
/dev/rmt - fita rolo 9 trilhas ou fita DAT 
Opções: -c escreve o cabeçalho em formato ASCII 
(se usado com opção -o deve ser usado com -i) 
-d cria a estrutura do diretório se necessário. 
-m retém a modificação da data atual (importante para controle de versão) 
-t exibe os conteúdos do arquivo backup 
-u recupera incondicionalmente (se o arquivo já existe é sobreposto) 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
43 
 
 
Rua São João, 1759 – Zona 07– Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
-v exibe uma lista de arquivos copiados 
-x trata arquivos especiais 
Exemplo: $ find . -print | cpio -ocv > /dev/rmt 
(cria um backup de todos os arquivos sob o diretório corrente) 
 
$ cpio -ict < /dev/fmt 
(recupera todos os arquivos do backup) 
 
$ cpio -icdmv < /dev/fmt 
(recupera todos os arquivos do backup) 
 
$ cpio -icudm ‘*arquivo*’ < /dev/rmt 
(recupera um único arquivo) 
 
 
18 COMUNICAÇÃO COM OUTROS USUÁRIOS 
 
A comunicação com outros usuários no sistema UNIX é uma das características 
chave do sistema operacional que os usuários precisarão e utilizarão diariamente. O UNIX 
possibilita diferentes formas de se comunicar eletronicamente com outros usuários. 
Com os serviços de comunicação poder-se-á: 
• Obter informações sobre outros usuários do sistema; 
• Enviar e Receber mensagens eletrônicas com o utilitário mail ; 
• Comunicar com outros usuários conectados com o sistema. 
 
 
18.1 COMANDOS PARA COMUNICAÇÃO 
 
WHO 
Nome: who - exibe informaeoes sobre os usuarios conectados no sistema 
Sinopse: who [am i] 
Descrição: O comando who gera uma lista de todos os usuários que estão 
conectados no sistema no instante de sua execução Este comando 
examina o arquivo /etc/utmp para obter informações de usuários As 
informações exibidas dos usuários são o username, o terminal, a data e 
hora de login. 
Opções: am i exibe o nome de login do usuário corrente 
Exemplo: $ who 
anderson tty00 Jan 14 08:01 
johnston tty02 Jan 14 09:00 
smith ttyp0 Jan 14 12:16 
thomas ttyp3 Jan 14 15:34 
 
$ whoami 
anderson 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
44 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
 
WRITE 
Nome; write - escreve uma mensagem para o tty de um determinado usuário 
Sinopse: write usuário [tty] 
Descrição: O comando write permite a um usuário enviar uma mensagem para o tty 
de outro usuário no UNIX. Após a digitação do comando, seguido do nome 
do destinatário (ou nome do usuário e identificação do terminal no qual ele 
está conectado) e da tecla <ENTER>, cada linha escrita será enviada ao 
terminal do usuário chamado depois de pressionada a tecla <ENTER>, até 
que o usuário que iniciou a chamada pressione CTRL-D ou CTRL-Z como 
primeiro caracter da linha. Caso o usuário chamado estiver em outra 
máquina da rede, o argumento usuário deve conter uma identificação da 
forma usuário@máquina . 
Exemplo: $ write fulano <ENTER> $Message from sicrano on... 
Sicrano esta' lendo esta linha. Sicrano esta’ lendo esta linha. 
E continuará lendo outras ate' E continuara’ lendo outras ate’ 
que fulano digite: que fulano digite: 
^D 
$Message from fulano on... $write sicrano <ENTER> 
Mensagem recebida. Mensagem recebida. 
Para de perturbar! Para de pertubarl 
^D 
 
 
 
MESG 
Nome: mesg - desabilita ou habilita a recepção de mensagens através dos 
comandos write e talk . 
Sinopse: mesg [n] [y] 
Descrição: o comando mesg permite ao usuário configurar se quer ou não receber 
mensagens de outros usuários enviadas através do comando write , ou 
pedidos de conexão com o comando talk . O comando sem parâmetros 
apresenta o estado de aptidão do terminal corrente. 
Opções: • y (yes) habilita a recepção de mensagens de outros usuários. 
• n (no) desabilita a recepção de mensagens. 
Exemplo: $ mesg 
is y 
$ mesg n 
$ mesg 
is n 
 
 
 
TALK 
Nome: talk - permite a comunicação interativa entre dois usuários. 
Sinopse: talk usuário [tty] 
Descrição: o comando talk é bem mais elaborado que o comando write. Quando o 
usuário invoca o comando talk a fim de se conectar com outro usuário, o 
talk se comunica com um processo servidor (daemon) chamado talkd o 
qual se encarrega de avisar ao usuário destino que alguém esta querendo 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
45 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
estabelecer uma conexão, Mensagens e avisos sonoros são enviados ao 
terminal do usuário destino. Para estabelecer a conexão, o usuário destino 
invoca o comando talk passando como parâmetro o nome do usuário que 
esta solicitando a comunicação. Este nome é obtido na mensagem emitida 
pelo servidor talkd. Assim como o write, o talk permite uma conversação 
entre usuários em máquinas diferentes, desde que o parâmetro usuário 
contenha também a identificação da máquina. 
 
Exemplo : $ who 
ana 
fabio 
ttyp1 
ttyp3 
Jun 
Jun 
17 
17 
21:05 
20:53 
$ talk fabio@ttyp3 Message from Talk_Daemon 
talk: connection request by ana@ttyp1 
talk: respond with: talk ana@ttyp1 
$ talk ana@ttyp1 <ENTER> 
[Connection Established] 
Oi, estou com algumas 
duvidas. Podes me ajudar? 
 [Connection Established] 
Tudo bem. Vou ate” ai' Ana... 
 
Tudo bem. Vou ate’ ai' Ana... 
 
 Oi, estou com algumas dúvidas. 
Podes me ajudar? 
 
 
MAIL 
Nome: Mail - Utilitário que permite receber, selecionar, consultar, enviar e manter 
mensagens de mail. 
Sinopse: Mail [usuário] 
Descrição: o utilitário Mail ou mailx é um dos recursos mais utilizados no sistema 
UNIX para troca de mensagens entre usuários. Existem outros utilitários, 
como o mail , que é mais limitado que não será abordado. 
Este utilitário permite ENVIAR mail para outros usuários, estando eles 
conectados ou não ao sistema. Os procedimentos para utilizar este utilitário 
são: 
$ Mail usuário (onde usuário é o endereço de e-mail do destinatário) 
Subject: informe o assunto da mensagem e pressione <ENTER>. 
[sem prompt] a partir daqui escreva o corpo da sua mensagem e então 
pressione <ENTER> para mover o cursor para o início da 
próxima linha. 
Pressione CTRL D para finalizar a mensagem. 
Cc: usuários para quem se deseja enviar cópias da mensagem. 
Se for mais de um usuário, separar os nomes com espaço 
ou vírgula. 
Quando concluir pressionar <ENTER> 
$. lndica que a mensagem foi enviada com sucesso. 
 
 
Para LER os e-mails o procedimento é: 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
46 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
$ Mail 
Mail $Revision: 4.2.4.2 $ Type ? for help. 
“usr/spoll/mail/marcelo”: 3 messages 3 new 
U 1 ricardo Wed Feb 9 13:40 11/190 “Não se esqueça da Festa” 
>N 2 marcelo Wed Feb 9 17:35 11/302 “Trabalho de Unix” 
N 3 ricardo Thu Feb 13 13:40 11/234 “Comentários sobre a Festa” 
? 
Onde: 
N indica que a mensagem é nova, isto é, não foi lida antes. 
U indica que a mensagem não foi lida anteriormente, mas cabeçalho da 
mensagem no menu em consulta anterior. 
> aponta para a mensagem corrente no menu. 
 
Comandos COMUNS que podem ser usados: 
?, help lista de comandos que podem ser utilizados 
q , CTRL D finaliza o mail. 
<ENTER> exibe a mensagem corrente 
n, + exibe a próxima mensagem 
- exibe a mensagem anterior 
número exibe a mensagem associada ao número informado. 
d número(s) deleta a(s) mensagem(ns) especificada(s) 
 
Exemplo: $ Mail alexandre adriano jorge 
Subject: Conclusão do Trabalho <ENTER> 
Precisamos concluir o trabalho ainda esta semana porque a apresentação 
está marcada para o final do mês. 
<ENTER> 
^ D 
Cc: eduardo <ENTER> 
$ 
 
 
 
 
SG SISTEMAS DE AUTOMAÇÃO LTDA. 
LINUX 
47 
 
 
Rua São João, 1759 – Zona 07 – Maringá – PR 
Fone: (44) 3026-2666 – Site: www.sgsistemas.com.br 
19 PROGRAMAÇÃO DO SHELL 
 
O Shell é um interpretador de comandos. Quando desejar executar muitas vezes 
uma série de comandos, é conveniente salvar estes comandos em um programa shell e 
executar os comandos invocando o script shell. 
 
REFERÊNCIAS BIBLIOGRÁFICAS 
 
http://www.linux.org - Home page da Linux Organization, site oficial do Linux 
http://sunsite.unc.edu/mdw/linux.html - Site com projeto de documentação do Linux em 
Inglês 
http://www.conectiva.com.br/cpub/pt/principal/index.php- Site da Conectiva 
http://br.tldp.org/documentos/livros/html/gas/ - Guia do administrador de sistemas em 
português 
http://www.ciagri.usp.br/linux.html - Linux Page do projeto CIAGRI da USP 
http://www.linuxsecurity.com.br/article.php?sid=961 - Linux Security Brasil 
http://tux.cprm.net/.disk2/www.poli.org/rh/indice.html - Manual de Instalação do Red Hat 
da Poli – USP

Mais conteúdos dessa disciplina