Buscar

Introdução ao Linux

Prévia do material em texto

LLiinn uu xx
 
Módulo II 
Parabéns por participar de um curso dos 
 
Cursos 24 Horas. 
Você está investindo no seu futuro! 
Esperamos que este seja o começo de 
um grande sucesso em sua carreira. 
 
Desejamos boa sorte e bom estudo! 
 
Em caso de dúvidas, contate- nos pelo 
site 
www.Cursos24Horas.com.br 
 
Atenciosamente 
Equipe Cursos 24 Horas 
 
 
SUMÁRIO 
Unidade 4 – A Linguagem Linux.................................................................................... 1 
4.1 - Logando no sistema ........................................................................................ 1 
4.2 - O interpretador de comandos .......................................................................... 2 
4.3 - O shell e o Kernel ........................................................................................... 3 
4.4 - Comandos Internos ......................................................................................... 4 
4. 5 - Comandos externos (programas).................................................................... 4 
4.6 - PATH.............................................................................................................. 5 
4.7 - Variáveis de ambiente..................................................................................... 5 
Unidade 5 – Métodos de Armazenamento de Dados....................................................... 7 
5.1 - Estrutura de diretórios e particionamento de discos ........................................ 7 
5.2 – O Comando MOUNT................................................................................... 11 
5.3 – O comando UMOUNT................................................................................. 12 
5.4 - O arquivo FSTAB......................................................................................... 12 
Unidade 6 – Manipulação de Objetos ........................................................................... 15 
6.1 – Comandos para manipulação de diretório .................................................... 15 
6.2 – Comandos para manipulação de arquivos .................................................... 18 
6.3 – Comandos Diversos ..................................................................................... 23 
6.4 – Editando arquivos ........................................................................................ 37 
6.5 – Gerenciando arquivos compactados ............................................................. 42 
Encerramento................................................................................................................ 57 
 
1
 
Unidade 4 – A Linguagem Linux
 
4.1 - Logando no sistema 
Antes de começar a usar o sistema, é necessário que o usuário se logue no Linux. 
Para tanto, ele deve fornecer o nome de usuário e a senha que foram cadastrados, para 
fins de identificação. 
Ao logar será exibida a seguinte tela. 
 
 
2
 
Fornecendo o login e a senha, o usuário estará apto a usar o sistema e os recursos 
para os quais tiver permissão de acesso. 
Para sair do sistema, ou seja, executar “logout” é necessário digitar “exit”, 
“logout” ou segurar “CRTL+D”. 
No ambiente gráfico temos uma maneira que não é a mais recomendada para 
encerrar uma sessão: pressionando CRT+ALT+BACKSPACE. Ao fazer isso, o Linux 
encerra a sessão sem salvar arquivos ou modificações. 
4 .2 - O interpretador de comandos 
Após se logar no Linux o usuário entrará para o que chamamos de “prompt” do 
sistema. No prompt você pode digitar os comandos que deseja que o computador 
execute. O prompt é a entrada de um programa que é automaticamente executado após o 
login no sistema. Esse é chamado de interpretador de comandos, ou Shell, é o que faz a 
ponte entre o usuário, os programas do sistema e o kernel. 
 
3
 
4 .3 - O shell e o Kernel 
O computador não passa de um conjunto de circuitos eletrônicos digitais. Isso 
significa que tudo no computador se resume a um mundo binário. A melhor forma de 
interagir com essas máquinas é através de sistemas operacionais, compiladores e muitos 
outros programas que facilitarão esta interação. 
O sistema operacional é composto de várias partes. Uma delas, o núcleo, é 
chamado de kernel. Fornece componentes lógicos para o hardware, estendendo a sua 
funcionalidade. 
Outra parte é a interface com o usuário. As interfaces são chamadas 
genericamente de Shell (casca) e atuam de diversas formas no sistema operacional, 
possuindo vários comandos internos que permitem ao usuário solicitar uma série de 
serviços. O Shell também pode ser usado para implementar linguagens simples de 
programação que permitem o desenvolvimento de pequenos programas, conhecidos 
como Shell Script. 
Nos sistemas UNIX existem muitos interpretadores de comandos diferentes, 
cada um com suas peculiaridades, ficando a critério do usuário decidir qual shell será 
mais adequado às aplicações que deseja fazer. 
Alguns exemplos: 
- Broune Shell(sh). 
- C shell (csh). 
- Korn Shell (ksh). 
 
 
4
 
4 .4 - Comandos Internos 
A principal função do interpretador de comandos é executar programas 
disponíveis no sistema. Porém, cada interpretador tem seus comandos internos 
(builtins), ou seja, existem alguns comandos especiais que não são programas-
comandos ativados pelo Shell, mas trata-se de pequenas rotinas internas do próprio 
interpretador de comandos. 
Ao executar um comando, o interpretador primeiro verifica se o que foi requerido 
refere-se a um Comendo Interno ou a um Comando Externo, nessa ordem. 
No caso do bash, um Shell desenvolvido para o Projeto GNU, podemos citar 
como exemplo o comando echo. Quando digitamos no prompt echo “Teste”, o bash 
executa o programa “echo” que executa sua rotina interna correspondetne ao “echo”, 
não precisando assim executar um programa externo. 
Os comandos internos têm uma importância muito grande, pois, são o que faz 
com que o shell seja programável, isto é, os comandos internos possuem rotinas internas 
que representam controles de fluxo e laços (if, while, for, etc..). Assim, podemos 
escrever scripts e executá-los a partir do Shell (shell scripts). 
Exemplo de comandos internos: cd, exit, bg, echo. Para acessar a lista completa 
dos comandos internos, pode-se recorrer ao manual do shell, com o comando “man 
bash”. 
4 . 5 - Comandos externos (programas) 
Quando não digitamos um comando interno do shell, esse executa o programa 
que estamos chamando com todos os parâmetros passados, caso existam. Os comandos 
externos do interpretador de comandos são procurados no disco, usando o comando 
“path”, e são executados assim que encontrados. 
Uma das vantagens do interpretador de comandos consiste em o usuário não 
precisar saber onde estão localizados os programas que deseja executar. No caso do 
bash, o nome do arquivo e o comando são completados quando pressionada a tecla 
TAB, o que é útil quando não se sabe ao certo o nome do comando ou do arquivo. 
 
5
 
Exemplos de comandos externos: ls, mkdir, rmdir. Para obter uma lista com 
diversos comandos externos podemos verificar o conteúdo dos diretórios digitando /bin 
e /sbin. 
4 .6 - PATH 
Path é o caminho de procura dos arquivos/comandos executáveis. O path 
(caminho) é armazenado na variável com o comando echo $PATH. 
Por exemplo, o caminho /usr/local/bin:/usr/bin:/Bin:usr/bin/X11 significa que 
se você digitar o comando ls, o interpretador de comandos iniciará a procura de 
programa ls no diretório /usr/local/Bin. Caso não encontre o arquivo no diretório 
/usr/local/Bin, ele inicia a procura em /usr/bin até que encontre o arquivo procurado. 
Caso o interpretador de comandos chegue até o último diretório do path sem 
encontrar o arquivo/comando digitado, é mostrada a seguinte mensagem: 
Bash: ls: comando no found (comando não encontrado) 
O caminho de diretórios vemconfigurado na instalação do Linux, mas, pode ser 
alterado no arquivo /etc/profile. Caso deseje alterar o caminho para todos os usuários, 
este é o melhor lugar, pois ele é lido por todos os usuários no momento do login. 
Caso um arquivo/comando não esteja localizado em nenhum dos diretórios, você 
deve executá-lo usando um “./” (ponto barra) na frente do comando. Isso diferencia o 
Linux do funcionamento do MS-DOS (Windows), no qual o comando é sempre 
procurado no diretório corrente, antes de ser procurado no path. 
Se desejar alterar o path para um único usuário, modifique o arquivo 
./bash_profile em seu diretório de usuário (home). 
4.7 - Variáveis de ambiente 
Como o SHELL “sabe” onde estão os programas a serem executados? 
 
6
 
Os processos no Unix e na maioria dos sistemas operacionais mantêm um 
conjunto de variáveis globais chamadas de variáveis de ambiente. Algumas dessas 
variáveis são copiadas pelo sistema operacional através do processo pai-filho, ou seja, 
saem do processo “pai” para o processo “filho”. Outras são iniciadas ou modificadas 
pelo sistema operacional. 
Como vimos no capítulo anterior, uma dessas variáveis é o PATH, que é usada 
pelo interpretador de comandos para saber onde estão os programas que deve executar. 
Existem muitas outras variáveis de ambiente além de variável PATH. Algumas 
das mais importantes são: 
- TERM: tem valor do tipo de terminal virtual que está sendo usado. 
- HOME: tem o caminho para o diretório home do usuário. 
- MANPATH: tem o caminho para o editor de texto padrão. 
Para verificar o valor de todas as variáveis de ambiente, basta digitar o comando 
“env”. Esse comando listará todas as variáveis existentes com seus respectivos valores. 
Caso você queira saber o valor de uma variável específica, basta digitar o 
comando, que imprimirá o conteúdo da variável PATH. 
Existem três maneiras de mudar o valor de uma variável de ambiente: 
1) Com o comando export podemos tanto alterar o valor de uma variável de 
ambiente, quanto criar novas variáveis. 
a. Exemplo: “export PATH=$PATH:/home/user/bin” 
2) Com o comando set “setamos” ou configuramos o valor de uma variável de 
ambiente existente. 
a. Exemplo: “set PATH=$PATH:/home/user/bin” 
3) Também podemos escrever apenas “PATH=$PATH:/home/user/bin” na linha de 
comando. 
 
7
 
Unidade 5 – Métodos de Armazenamento de 
Dados
 
5.1 - Estrutura de diretórios e particionamento de 
discos 
 
Nos sistemas operacionais com base na linguagem GNU/Linux, o esquema de 
particionamento de disco ocorre de maneira diferenciada, no qual se destaca três pontos 
principais: 
1) Quantidade de partições para o funcionamento. 
2) Rótulo de partições. 
3) Software de particionamento. 
Podemos estabelecer um comparativo entre plataforma Windows (geralmente 
conhecida e de fácil compreensão) e a plataforma GNU/Linux. 
 
8
 
Na plataforma da Microsoft, em versões mais antigas, ainda é usada a 
ferramenta de particionamento do DOS, que tem, no máximo, uma partição primária e 
uma estendida, na qual podemos ter inúmeras partições lógicas. 
Esse limite já foi praticamente extinto, uma vez que padrões internacionais 
definem o uso de 64k alocados em disco para armazenar a tabela de particionamento. 
Visto que para cada partição criada precisamos utilizar 16k para guardar informações 
sobre ela, assim, temos um limite máximo de quatro partições. 
Note que, neste caso, temos que utilizar uma dessas reservas para criar uma 
partição estendida. Isso nos dará oportunidade de criar outras partições chamadas 
“lógicas” dentro desta partição estendida. 
O esquema de particionamento do GNU/Linux é extremamente flexível. Mas 
precisamos seguir algumas regras para que nosso sistema possa ser iniciado após a 
instalação. As bases de todas essas regras são definidas em padrões mundialmente 
utilizados como o FHS (Filesystem Hierarchy Standard) que define onde os arquivos e 
diretórios do sistema serão localizados. 
Quando estamos particionando o disco para o Linux devemos levar em 
consideração que, nessa plataforma, as partições e diretórios estão muito mais ligados 
entre si do que em outros sistemas operacionais. Quando usamos esses diretórios para 
acessar ou montar partições, o chamamos de Ponto de Montagem e precisamos saber 
“quem” são, para podermos particionar o disco. 
 
9
 
Ressaltamos que os sistemas Linux podem funcionar apenas com duas partições, 
sendo uma para o sistema operacional que será montado na raiz “/” (barra) e outra para 
troca de arquivos, chamada de “swap”. Logo entenderemos esses termos. 
Todos esses pontos de montagem irão se localizar hierarquicamente abaixo de 
um único diretório-raiz, que no Linux é representado pela “/” (barra). Cada ponto de 
montagem precisa, obrigatoriamente, utilizar uma partição, mas essa não precisa ser 
exclusiva. Por exemplo, tendo quatro partições primárias é possível ter quatro pontos de 
montagem independentes. 
Note que qualquer outro ponto de montagem que não for especificado será 
montado dentro da raiz (“/”). 
Outro ponto de montagem necessário para que o Linux seja instalado e funcione 
corretamente é o da partição swap. A swap é conhecida como zona de troca e auxilia no 
armazenamento dos dados que estão em transição entre memória e disco. A zona de 
troca é essencial para instalação e funcionamento de qualquer distribuição Linux, além 
de aumentar o desempenho do sistema de maneira extraordinária. 
Outra vantagem do Linux sobre os demais sistemas operacionais é o que ele 
pode fornecer com essas características. Ainda é possível utilizar pontos de montagens 
 
10
 
separados por discos, aumentando assim o desempenho do sistema. Na verdade, 
alterando simplesmente a maneira e o local onde os dados serão armazenados. 
Se você tiver mais de um HD será possível espalhar esses pontos de montagem 
pelos HDs. Esse tipo de planejamento deve ser bem pensado e executado durante a 
instalação do sistema, mas também faz parte de um procedimento de tunning, ou seja, 
ajuste fino. 
O Linux, como os sistemas UNIX/POSIX, não trabalha com a ideia de volumes 
lógicos como em alguns outros sistemas (como MS-DOS, que representa a unidade de 
disco rígido e a unidade de disquetes como dois volumes lógicos diferentes). O Linux 
tem uma única unidade, a sua árvore de diretórios, cuja raiz é o diretório “/”. 
Todos os componentes, tais como: unidade de disquete, CDROM, impressora, 
HD, entre outros, são representados por arquivos. Esses arquivos estão localizados no 
/dev da árvore de diretórios do Linux. 
Isso quer dizer que, quando um programa precisa ler ou escrever em um desses 
componentes, ele lê informações e escreve no arquivo que representa aquele 
componente (device). 
Um exemplo prático de como isso funciona consiste em fazer o seguinte teste: 
quando logamos localmente no Linux estamos usando o primeiro terminal virtual 
(console), que também é representado por um arquivo, o /dev/tty1. Se, no tty1 
executamos o comando ls /dev/tty2 estaremos redirecionando a saída do comando ls 
para o console tty2. Para vermos se isso realmente ocorre, basta mudarmos para a tty2 
digitando Alt+F2. 
Pois bem, vimos que o Linux tem somente uma árvore de diretórios, mas seus 
arquivos ou partes dessa árvore podem estar em componentes diferentes do computador, 
como por exemplo, uma partição do HD, disquete, etc. Para unir todos esses devices em 
uma única estrutura de diretórios, existe o comando mount, que monta todos os 
dispositivos, a exemplo do acesso ao conteúdo CDROM. “Tenho que montar esse CD e 
para isso eu devo usar o comando mount.” 
 
11
 
5.2 – O Comando MOUNT 
O comando mount é utilizado para montar um dispositivo na hierarquia do 
sistema de arquivos do Linux. 
As opções mais usadas são: 
-a - Montar todos os dispositivos especificados no arquivo /etc/fstab que não têm a 
opçãonoauto selecionada. 
-r - Montar o sistema de arquivos do dispositivo como “somente leitura”. 
-w - Montar o sistema de arquivos do dispositivo como leitura e gravação. 
-o - Especificar as opções de montagem. 
-t - Especificar o tipo do sistema de arquivos do dispositivo. 
Alguns tipos: 
ext2 - Partições Linux. 
ext3 - Partições Linux. 
reiserfs - Para partições reiserfs. 
vfat - Para partições Windows Fat. 
ntfs - Para partições Windows NTFS. 
iso9660 - Para montar unidades de cdrom. 
Exemplos: 
flaviocapeletti@Tux:# mount /dev/hdb1 /mnt/windows -t vfat 
flaviocapeletti@Tux:# mount /dev/fd0 /mnt/floppy -t vfat 
flaviocapeletti@Tux:# mount /dev/cdrom /mnt/cdrom -t iso9660 
 
12
 
5 .3 – O comando UMOUNT 
O comando umount é utilizado para desmontar dispositivos montados pelo 
comando mount. O umount sincroniza o conteúdo do disco com o conteúdo dos buffers 
e libera o diretório de montagem. 
As opções mais usadas são: 
-a - Desmonta todos os dispositivos listados no arquivo /etc/mtab, que é mantido pelo 
comando mount como referência de todos os dispositivos montados. 
-t tipo - Desmonta somente os dispositivos que contenham o sistema de arquivos 
especificados no tipo. 
Exemplos: 
flaviocapeletti@Tux:# umount /dev/cdrom 
ou 
flaviocapeletti@Tux:# umount /cdrom 
5 .4 - O arquivo FSTAB 
O arquivo fstab armazena as configurações dos dispositivos que devem ser 
montados e determina o ponto de montagem de cada um na inicialização do sistema 
operacional. O Linux suporta diversos sistemas de arquivos locais e remotos. O arquivo 
fstab está localizado no diretório /etc. 
O arquivo fstab tem a seguinte aparência: 
Dispositivo P.Montagem
 
Tipo S. Arquivos
 
Op. Montagem Backup Ch. Disc. 
 
13
 
/dev/hda1 /boot ext3 defaults 0 2 
/dev/hda2 / reiserfs defaults 0 1 
/dev/hda3 none swap sw 0 0 
/dev/hda4 /home reiserfs defaults 0 2 
Onde: 
- Dispositivo: Especifica o dispositivo a ser montado. 
- P. Montagem (Ponto de montagem): Especifica o diretório em que o 
dispositivo será montado. 
- Tipo S.Arquivos (Tipo sistema de arquivos): Especifica o tipo de sistema de 
arquivos a ser montado. 
- Op. Montagem (Opções de montagem): Especifica as opções de montagem 
dependendo do tipo de sistema de arquivos. 
- Backup (Frequência de Backup): O programa dump consulta o arquivo para 
saber a frequência de backup. É um campo numérico, onde 1 é para sistemas ext2 e 0 
para outros. 
- Ch. Disc (Checagem de disco): Determina se o dispositivo deve ou não ser 
checado na inicialização do sistema pelo fsck. É um campo numérico, onde 0 é para não 
ser checado, 1 é para ser checado primeiro (raiz) e 2 para checar depois do raiz. 
Opções de montagem: 
Opção Descrição 
auto Habilita que o dispositivo seja montado na inicialização. 
 
14
 
Noauto Desabilita que o dispositivo seja montado na inicialização. 
ro Monta o sistema de arquivos somente como leitura. 
rw Monta o sistema de arquivos para leitura e gravação. 
Exec Habilita a execução de arquivos no sistema de arquivos especificados. 
Noexec Desabilita a execução de arquivos. 
User 
Possibilita que qualquer usuário monte o dispositivo, mas proíbe outros 
usuários de desmontá-lo. 
Users Possibilita que qualquer usuário monte e desmonte o dispositivo. 
Nouser Somente o superusuário (root) pode montar e desmontar. 
Sync Habilita a transferência de dados síncrona no dispositivo. 
Async Habilita a transferência de dados assíncrona no dispositivo. 
Dev Dispositivo especial de caracteres. 
Suid Habilita que os executáveis tenham bits do suid e sgid. 
Nosuid Desabilita que os executáveis tenham bits do suid e sgid. 
defaults 
Configura as opções de montagem como rw,suid, exec, auto, nouser e 
async. 
Exemplo: 
flaviocapeletti@Tux:# cat /etc/fstab 
 
15
 
Unidade 6 – Manipulação de Objetos
 
6 .1 – Comandos para manipulação de diretório 
Comando cd 
O comando cd é usado para navegar por diretórios. É, sem dúvida, um dos 
comandos mais usados no Linux. Se durante o comando não houver direcionamento 
para algum diretório, levará o usuário de volta ao diretório raiz. 
Exemplos: 
flaviocapeletti@Tux:$ cd /home 
Nesse exemplo estamos acessando o diretório /home 
flaviocapeletti@Tux:$ cd /usr/local 
Nesse exemplo estamos acessando o diretório /usr/local 
flaviocapeletti@Tux:/usr/local$ cd .. 
Nesse exemplo estamos deixando o diretório ‘filho’ de nome local e voltando ao 
diretório ‘pai’ de nome usr. 
O resultado é: flaviocapeletti@Tux:/usr$ 
Leia o ‘man’ do comando para se divertir e aprender mais. 
Comando ls 
O comando ls lista os arquivos de diretórios e exibe informações sobre as suas 
características. Para usar o comando ls não é preciso nenhuma opção ou argumento para 
ser executado. 
 
16
 
Exemplo: 
flaviocapeletti@Tux:$ ls -l 
drwxr-xr-x 77 root root 5776 2006-10-19 08:15 etc 
drwxr-xr-x 59 root root 1600 2006-10-09 14:05 home 
Depois tente isso: 
flaviocapeletti@Tux:$ ls -l -s 
E, por fim: 
flaviocapeletti@Tux:$ ls -ls 
Você verá que, usando parâmetros, o ls retorna listas extensas com os resultados da sua 
consulta, tornando, assim, a consulta muito mais eficaz. 
Comando pwd 
Esse comando mostra o nome e o caminho do diretório atual. Você pode usá-lo 
para verificar em qual diretório você se encontra (caso seu aviso de comandos não 
mostre isso). 
Exemplo: 
# pwd 
/usr/local 
Comando mkdir 
O comando mkdir é usado para criar diretórios. Quando o usuário cria um 
diretório novo com o comando mkdir, esse diretório recebe, automaticamente, dois 
elementos ocultos. Esses são o . (ponto) e o .. (dois pontos). Esses elementos 
representam ligações entre o novo diretório e o diretório pai. 
 
17
 
As opções mais usadas são: 
-p - Cria um diretório mesmo que o diretório pai não exista. Nesse caso cria também o 
diretório pai. 
-m - Configura a permissão do diretório criado. 
Exemplos: 
flaviocapeletti@Tux:$ mkdir documentos 
Cria o diretório documentos. 
flaviocapeletti@Tux:$ mkdir -p meusdocumentos/cartas 
Cria o diretório cartas como filho do diretório meusdocumentos. 
flaviocapeletti@Tux:$ mkdir -m 777 meusdocumentos/modelos 
Cria o diretório modelos abaixo do diretório meusdocumentos com permissão total. 
Comando rmdir 
O comando rmdir é usado para remover somente diretórios vazios de forma 
relativamente segura. Esse comando não se restringe à remoção de um diretório por vez. 
Se estiverem vazios, mais de um pode ser removido. 
Exemplo: 
flaviocapeletti@Tux:$ rmdir meudiretorio 
Remove o diretório meudiretório, que se encontra vazio. 
 
18
 
6 .2 – Comandos para manipulação de arquivos 
Comando cat 
O comando cat concatena e exibe o conteúdo dos arquivos. Com o comando cat 
você também pode criar arquivos simples. 
Alguns parâmetros: 
- - Obtém dados do arquivo de entrada padrão. 
-n - Numera as linhas. 
-v - Exibe caracteres não imprimíveis. 
Exemplo: 
flaviocapeletti@Tux:~$ cat > flaviocapeletti.txt 
Flaviocapeletti Paiva 
flaviocapeletti@Tux:~$ cat flaviocapeletti.txt 
Flaviocapeletti Paiva 
Vejamos o que foi feito. Em primeiro lugar, foi criado o arquivo chamado 
flaviocapeletti.txt com o comando cat associado com o redirecionador ">", em seguida 
pedimos para o Linux exibir o conteúdo do arquivo criado novamente com o comando 
cat. 
Não se preocupe, neste momento, com redirecionadores. Isso erá explicado no 
decorrer do curso. 
Leia o man do comando para se divertir e aprender mais. 
 
19
 
Comando tac 
O comando tac é o oposto do comando cat. O comando tac exibe o conteúdo de 
um arquivo de trás para frente. 
Exemplo: 
flaviocapeletti@Tux:$ tac arquivo.txt 
Leia o ‘man’ do comando, divirta-se e aprenda mais com isso. 
Comando rm 
O comando rm é usado para remover arquivose/ou diretórios do sistema. 
Muito cuidado com esse comando, pois, se usado de maneira errada pode ser totalmente 
desastroso. 
As opções mais usadas são: 
-f - Força a remoção, não pergunta antes de remover. 
-R - Remove diretório e todo seu conteúdo. 
Exemplos: 
flaviocapeletti@Tux:$ rm arquivo1 
Remove arquivo1. 
flaviocapeletti@Tux:$ rm -Rf /home/usercomum 
Remove todo o diretório usercomum. 
flaviocapeletti@Tux:/tmp$ rm * 
Remove todo o conteúdo do diretório /tmp. 
 
20
 
Comando cp 
O comando cp é usado para copiar diretórios ou arquivos. 
As opções mais usadas são: 
-d - Mantém os links ao copiar. 
-p - Copia todas as informações dos atributos dos arquivos e diretórios, bem como 
dono, permissão, grupo, etc. 
-R - Copia os arquivos recursivamente. Útil para copiar os arquivos e diretórios 
abaixo do diretório especificado. 
-a - Faz o mesmo que as opções "-dpR" combinadas. 
-f - Força a cópia, gravando por cima do destino. 
-i - Pergunta ao usuário antes de copiar. 
-v - Mostra o nome de cada arquivo que está sendo copiado. 
Exemplos: 
flaviocapeletti@Tux:$ cp arquivo1 arquivo2 
Nesse exemplo estamos copiando o arquivo1 para arquivo2 no mesmo diretório. 
flaviocapeletti@Tux:$ cp arquivo1 /tmp 
Nesse exemplo estamos copiando o arquivo1 para o diretório /tmp. 
flaviocapeletti@Tux:$ cp -Rfv /home /tmp 
Nesse exemplo podemos copiar todo o diretório /home e todos os seus subdiretórios 
para o diretório /tmp. 
Comando mv 
O comando mv é usado para mover ou renomear arquivos e diretórios. Use esse 
comando com cuidado. 
As opções mais utilizadas são: 
 
21
 
-i - Modo interativo, pede confirmação. 
-f - Usa modo forçado, substitui arquivos protegidos. 
Exemplo: 
flaviocapeletti@Tux:$ mv arquivo1 arquivo2.txt 
Nesse exemplo estamos renomeando o arquivo1 para arquivo2.txt. 
flaviocapeletti@Tux:$ mv /home/flaviocapeletti/documentos /tmp 
Nesse exemplo estamos movendo o diretório documentos para o diretório /tmp. 
Coringas 
Os coringas são usados quando estamos trabalhando com arquivos de diretórios 
do Shell. É muito comum precisarmos trabalhar com diversos arquivos de uma vez. 
Para tornar essa tarefa simples, o Linux oferece o recurso de coringa para os 
nomes dos arquivos e diretórios: 
Símbolo Descrição 
* 
Usado para "qualquer coisa" ele pode substituir um ou mais 
caracteres de um nome. 
? Usado para substituir um caractere somente de um nome. 
{texto1, texto2, 
texto3...} 
Usado para substituir as partes dentro da chave{}, pelo texto1, 
depois texto2, depois texto3, etc. 
Exemplos: 
flaviocapeletti@Tux:$ ls *.txt 
Lista todos os arquivos que possuem a extensão .txt. 
flaviocapeletti@Tux:$ ls fern???o 
 
22
 
Redirecionadores 
Um esquema interessante no Linux são os redirecionadores. Como o Linux 
inicialmente foi criado para programadores e por programadores, era essencial que os 
comandos e processos tratassem as entradas e saídas com grande facilidade. 
Antes de começar com os exemplos é preciso definir o que são Entrada Padrão, 
Saída Padrão e Saída de Erro. 
- A Entrada Padrão (stdin) é a entrada de fluxo de dados. Pode ser representado 
por 0. 
- A Saída Padrão (stdout) é a saída de fluxo de dados em condições normais. 
Pode ser representado por 1. 
- A Saída de Erro (stderr) é a saída de um fluxo de dados em condições de erro. 
Pode ser representado por 2. 
Podemos redirecionar a Entrada Padrão de uma saída para uma outra saída, utilizando o 
sinal de maior (>) e, para direcionar, uma entrada para outra entrada usamos o sinal de 
menor (<). 
Ainda podemos redirecionar uma saída para uma entrada usando uma barra vertical 
especial. O sinal é "pipe"(|) ou condutor. 
Exemplos: 
flaviocapeletti@Tux:$ ls > saida.txt 
No exemplo acima usamos o comando ls como já vimos antes, porém, aqui ele pega 
todo o resultado de retorno e grava no arquivo saida.txt. Logo após realizar o exemplo 
acima verifique o conteúdo do arquivo "saida.txt" com o comando cat. 
flaviocapeletti@Tux:$ mail "meuemail@domain.com" < email.txt 
 
23
 
Já nesse exemplo, o programa mail está recebendo como argumento o endereço de e-
mail e, ao invés de utilizar o teclado como entrada padrão, o arquivo texto email.txt é 
redirecionado como entrada. 
flaviocapeletti@Tux:$ ./meuprograma > arquivo.txt 
Nesse exemplo, o arquivo.txt recebe toda a saída do programa meuprograma. 
flaviocapeletti@Tux:$ ./meuprograma 2 > error.log 
Nesse exemplo, o arquivo error.log receberá toda a saída de erros do programa 
meuprograma. 
flaviocapeletti@Tux:$ ./meuprograma > arquivo1 2>&1 error.log 
Nesse exemplo, toda a saída padrão e de erros de meuprograma será gravada em 
error.log. 
flaviocapeletti@Tux:$ ls -l | more 
Nesse exemplo, os resultados do ls são repassados ao comando more, paginando assim 
os resultados. 
6 .3 – Comandos Diversos 
Comando clear 
O comando clear é usado para limpar a tela. Você ainda pode usar as teclas de 
atalho Ctrl+l para esse serviço. 
Exemplo: 
flaviocapeletti@Tux:$ clear 
 
24
 
Comando df 
O comando df é usado para exibir o número de blocos livres no HD e inodes. 
Para aqueles que não conhecem, o Inodes é uma estrutura responsável por conter 
informações sobre arquivos e pastas. É a identidade de um arquivo, com informações 
sobre permissões de acesso, identificação dos donos dos arquivos, data e hora do último 
acesso e alterações, tamanho e, o mais importante, os famosos ponteiros para o arquivo 
em si. 
Como o número de inodes está diretamente ligado ao número de arquivos que 
um dispositivo pode armazenar, é possível que ele acabe e ainda tenha espaço 
disponível em disco. Isso é raro, mas pode acontecer quando se tem muitos arquivos. O 
número de inodes é definido na formatação do disco. 
As opções mais usadas são: 
-h - Mostra as informações de forma amigável. 
-i - Mostra o número de inodes restantes. 
Exemplo: 
flaviocapeletti@Tux:# df -h 
Sist. Arq. Tam Usad Disp Uso% Montado em 
/dev/hda2 19G 3,9G 15G 21% / 
tmpfs 126M 0 126M 0% /dev/shm 
/dev/hda1 89M 11M 74M 13% /boot 
/dev/hda4 13G 8,8G 3,6G 72% /home 
O comando df também pode receber como parâmetro um diretório. Neste caso 
ele irá mostrar a capacidade utilizada e restante deste diretório. 
 
25
 
Exemplo: 
flaviocapeletti@Tux:# df /home/flaviocapeletti 
Sist. Arq. 1K-blocos Usad Dispon. Uso% Montado em 
/dev/hda4 12891760 9220040 3671720 72% /home 
Comando ln 
O comando ln cria ligações (links), ou imagens para determinados programas, 
arquivos ou diretórios. 
O comando ln associa um nome a um determinado programa, transferindo todas 
as funções daquele programa para o nome em que se cria o vínculo. Os links criados 
podem ser visto com a opção -l do comando ls. 
As opções mais usadas são: 
-s - Cria um link simbólico. O padrão do comando ln são links físicos. 
-f - Força a criação de um link, mesmo que esse já exista. 
-i - Exibe número de identificação. 
Exemplos: 
flaviocapeletti@Tux:# ln -s /usr/src/linux-2.6.20 /usr/src/linux 
Nesse exemplo criamos um link simbólico Linux, que aponta para o diretório 
/usr/src/linux-2.6.20. Usando o comando ls -l temos o seguinte retorno: 
flaviocapeletti@Tux:/usr/src:# ls –ls 
total 0 
0 lrwxrwxrwx 1 root src 22 2000-01-01 08:32 linux -> /usr/src/linux-2.4.20/ 
Criando um link físico: 
flaviocapeletti@Tux:/usr/src:# ln /var/log/messages /var/adm/log/kernel.log 
 
26
 
Cria o link físico kernel.log do arquivo messages. 
Comando du 
O comando du é usado para obter informaçõesdo espaço utilizado por um 
diretório ou arquivo. 
As opções mais usadas são: 
-a - Mostra todos os arquivos e não somente os diretórios. 
-c - Mostra um total no final da listagem. 
-h - Mostra as informações de maneira mais amigável. 
-s - Mostra um sumário do diretório especificado e não o total de cada subdiretório. 
-S - Exclui os subdiretórios da contagem. 
Exemplo: 
flaviocapeletti@Tux:# du -h meuarquivo.tgz 
8,2M meuarquivo.tgz 
Leia o man do comando para se divertir e aprender mais. 
Comando find 
O comando find é usado para localizar uma expressão a partir de um caminho 
ou diretório. Busca diretamente no sistema de arquivos. 
Exemplos: 
flaviocapeletti@Tux:# find / -name meuprograma.txt 
Nesse exemplo estamos procurando pelo arquivo meuprograma.txt. 
flaviocapeletti@Tux:# find / -iname MeuPrograma.txt 
Nesse exemplo estamos procurando pelo arquivo MeuPrograma.txt. Perceba que, no 
primeiro exemplo, usamos -name e agora usamos -iname. Isso acontece porque o -
 
27
 
iname não diferencia maiúsculas de minúscula. Como não temos certeza do nome do 
arquivo usamos –iname. 
flaviocapeletti@Tux:# find /home/flaviocapeletti -iname documento.stx 
Nesse exemplo, procuramos o documento.stx no /home/flaviocapeletti. 
Esses são alguns exemplos simples do uso do comando find. 
Leia o man do comando para se divertir e aprender mais. 
Comando tee 
O comando tee é usado como um filtro em conexões de vários comandos. Esse 
comando recebe dados de uma entrada padrão, grava o que recebeu em um arquivo e 
ainda envia para sua saída padrão. 
Exemplo: 
flaviocapeletti@Tux:$ ./programa | tee programa.txt | imprime | tee boleto.txt | lpr 
2> errors.log 
Comando head 
O comando head, exibe as 10 primeiras linhas de um arquivo. 
A opção mais usada é: 
-n (número) - Configura o número de linhas que o head irá mostrar. 
Exemplo: 
flaviocapeletti@Tux:$ head -n 50 arquivo.txt 
ou 
flaviocapeletti@Tux:$ head arquivo.txt 
 
28
 
Comando nl 
O comando nl, é utilizado para numerar as linhas de um arquivo. Este comando 
considera condições especiais para o cabeçalho e o rodapé do arquivo. 
Símbolo
 
Descrição 
\:\:\: Esse símbolo é utilizado para iniciar o cabeçalho do texto.
 
\:\: Esse símbolo é utilizado para iniciar o corpo do texto. 
\: Esse símbolo é utilizado para iniciar o rodapé do texto. 
As opções mais usadas são: 
-h (subopção) - Utilizada para formatar o cabeçalho do texto. O padrão é não numerar o 
cabeçalho. 
-b (subopção) - Utilizada para formatar o corpo do texto. O padrão é numerar somente 
as linhas não vazias. 
-f (subopção) - Utilizada para formatar o rodapé do texto. O padrão é não numerar o 
rodapé. 
As subopções são: 
A - Numerar todas as linhas. 
t - Numerar somente as preenchidas. 
n - Não numerar as linhas. 
Exemplo: 
Suponha que um arquivo.txt tenha o seguinte conteúdo: 
\:\:\: 
Meu relatório 
--------------------------------------- 
 
29
 
Nome Estado 
--------------------------------------- 
\:\: 
Flavio Capeletti RS 
\: 
--------------------------------------- 
flaviocapeletti@Tux:$ nl arquivo.txt 
Comando tail 
O comando tail é oposto ao comando head que já vimos. Este comando exibe 
as 10 últimas linhas de um arquivo, diferente do comando head, que exibe as 10 
primeiras. 
As opções mais usadas são: 
-n (número) - Específica o número de linhas finais que o tail deverá exibir. 
-f - Mostra as últimas linhas finais de um arquivo continuamente, enquanto 
outro processo grava mais linhas. 
Exemplo: 
flaviocapeletti@Tux:$ tail -n 50 arquivo.txt 
ou 
flaviocapeletti@Tux:$ tail -f /var/log/messages 
Comando touch 
O comando touch é usado para criar arquivos. Além disso, ele pode mudar a 
data e a hora de acesso e ou modificação de arquivos. 
As opções mais usadas são: 
-a - Muda somente a data e a hora de acesso para a atual. 
 
30
 
-m - Muda somente a data e a hora de modificação para a atual. 
-t datahora - Muda a hora e a data para o datahora definidos. 
Exemplos: 
flaviocapeletti@Tux:$ touch arquivo1 
Criamos um arquivo de nome arquivo1. 
Comando echo 
O comando echo repete ou ecoa tudo aquilo que for digitado à sua frente, 
separado por espaço em branco. É muito usado para marcar linhas de scripts, verificar 
conteúdos de variáveis de ambiente entre outros. 
Exemplo: 
flaviocapeletti@Tux:~$echo $PATH 
Nesse exemplo, pedimos para o comando echo exibir o conteúdo da variável $PATH 
flaviocapeletti@Tux:~$echo "seu nome" 
Comando wc 
O comando wc faz a contagem em unidade do conteúdo de um arquivo, linhas, 
caracteres e palavras. Digitando o comando wc sem opção, o usuário terá como 
resultado o número de caracteres, palavras e linhas. 
As opções mais usadas são: 
-l - Exibe o número de linhas. 
-w - Exibe o número de palavras. 
-c - Conta o número de caracteres de um ou mais arquivos. 
-t - Exibe estimativa de tempo para o resultado. 
 
31
 
Exemplo: 
flaviocapeletti@Tux:$ wc arquivo.txt 
Comando cut 
O comando cut (cortar) lê o conteúdo de um ou mais arquivos e tem como saída 
uma coluna vertical. 
As opções mais usadas são: 
-b número - Imprime uma lista vertical com o byte número (da esquerda para a 
direita). 
-c número - Imprime uma lista vertical com o caractere número (da esquerda para 
a direita). 
-d delimitador - Configura o delimitador que separa uma coluna da outra. O padrão é o 
Tab. 
-f número - Imprime a coluna número. 
Exemplo: 
flaviocapeletti@Tux:$ cut -d : -f 1 /etc/passwd 
Leia o man do comando para se divertir e aprender mais. 
Comando expand 
O comando expand troca o Tab (tabulação) dentro dos textos pelo número de 
espaços correspondentes. É útil para tornar um texto que faz uso das tabulações mais 
atrativo para determinados dispositivos, como impressora, arquivos e outros. 
As opções mais usadas são: 
-t (número) - Específica o número de espaços que o tab contém. O padrão é 8. 
-i - Converte somente o início das linhas. 
 
32
 
Exemplo: 
flaviocapeletti@Tux:$ expand arquivo.txt 
Comando alias 
Este comando atribui um apelido para o comando. Seu papel é abreviar linhas de 
comando, além de certas operações. 
Exemplo: 
flaviocapeletti@Tux:$ alias flaviocapeletti= "ls -ls" 
No exemplo foi criado um alias com o nome de flaviocapeletti que recebe o comando ls 
-ls. Com isso, basta apenas digitar flaviocapeletti para listar o conteúdo de um diretório. 
Resultado do exemplo: 
flaviocapeletti@Tux:$ flaviocapeletti 
0 drwxr-xr-x 5 root root 120 2000-01-01 00:54 mnt 
0 drwxr-xr-x 5 root root 136 2000-01-01 01:25 opt 
Comando split 
O comando split é usado para dividir grandes arquivos em n-arquivos menores. 
Os arquivos de saída são gerados de acordo com tamanho do arquivo de entrada. 
As opção mais usadas são: 
-n - Onde n é o número de linhas que irão dividir o arquivo de entrada. 
Exemplo: 
flaviocapeletti@Tux:$ split -20 arquivo_entrada.txt arquivo_saida.txt 
Leia o man do comando e se divirta e aprenda mais com isso. 
 
33
 
Comando which 
O comando which recebe como argumento o nome de um comando e traz como 
resultado a localização no disco deste comando. 
Exemplo: 
flaviocapeletti@Tux:# which mcedit 
/usr/bin/mcedit 
Leia o man do comando para se divertir e aprender mais. 
Comando whereis 
O comando whereis localiza e exibe o PATH (caminho) de arquivos. Ele é 
muito menos complexo e muito menos eficaz que o comando find, porém, para casos 
simples e imediatos, cumpre muito bem seu papel. 
Exemplo: 
flaviocapeletti@Tux:# whereis mcedit 
mcedit: /usr/bin/mcedit /usr/share/man/man1/mcedit.1.gz 
Leia o man do comando para se divertir e aprender mais. 
Comando locate 
O comando locate busca a localização de arquivos e diretórios em um banco dedados criado com o comando updatedb. Sua busca é mais rápida que a do find, mas ele 
necessita de que o banco de dados esteja atualizado. 
Exemplo: 
flaviocapeletti@Tux:# locate passwd 
/etc/passwd 
 
34
 
Comando whatis 
O comando whatis faz uma consulta no banco de dados por uma palavra exata. 
Exemplo: 
flaviocapeletti@Tux:# whatis free 
free (1) - Display amount of free and used memory in the system 
Obs: O comando free exibe informações de memória do sistema. 
Comando chmod 
O comando chmod é utilizado para modificar as permissões de arquivos. Este 
comando aceita a representação das permissões através de letras ou octetos. 
Para a representação das permissões através de letras, você poderá utilizar as 
letras u, g, o e a para representar as classes, símbolos de adição, subtração e igualdade 
para as operações e as letras r, w, x, X, s e t que você já conhece como permissões. 
Classes de Permissões: 
Letra
 
Descrição 
u Dono 
g Grupo 
o Outros 
a Todos 
 
35
 
Operações: 
Simbolo Descrição 
+ Adiciona uma permissão, sem alterar as demais
 
- Subtrai uma permissão, sem alterar as demais 
= Configura as permissões com exatidão 
Permissões: 
Permissão Descrição 
r Leitura (Read) 
w Gravação (Write) 
x Execução (eXecute) 
X 
Configura o bit de execução para outras classes para arquivos que já 
possuem o bit (X) 
s SUID ou SGID 
t Sticky 
Ainda podemos usar combinações de números. Vejamos: 
r = 4 
w = 2 
x = 1 
O valor dessa combinação, equivale a 7, que seria permissão total. 
Exemplos de uso do comando chmod: 
flaviocapeletti@Tux:# chmod 777 arquivo.txt 
Neste exemplo estou dando permissão total ao dono, grupo e outros sobre o arquivo.txt. 
Isto acontece pois os valores r w x também podem ser representados por números. 
flaviocapeletti@Tux:# chmod 0400 arquivo.txt 
 
36
 
Neste exemplo estou definindo o SUID do arquivo como 0. 
flaviocapeletti@Tux:# chmod -R 0400 /home/diretorio 
Neste exemplo estou dando permissão 0400 para todo o diretório /home/diretorio. 
Vejamos as opções mais usadas. 
-v - Reporta as permissões dos arquivos, inclusive as mudanças de permissões. 
-c - Reporta somente a mudança de permissão. 
-R - Muda as permissões de todos os arquivos e diretórios recursivamente dentro da 
mesmo hierarquia. 
Leia o man do comando para se divertir e aprender mais. 
Comando chown 
O comando chown altera o dono do arquivo ou diretório e pode também alterar 
o grupo a que este pertence. 
As opções mais usadas são: 
-v - Reporta o dono dos arquivos, inclusive as mudanças de dono. 
-c - Reporta somente a mudança de dono. 
-R - Muda o dono de todos os arquivos e diretórios recursivamente dentro da mesma 
hierarquia. 
Exemplos: 
flaviocapeletti@Tux:# chown flaviocapeletti arquivo.txt 
Altera o dono do arquivo "arquivo.txt" para usuário flaviocapeletti e o grupo do 
arquivo para o grupo do mesmo usuário. 
flaviocapeletti@Tux:# chown flaviocapeletti.users arquivo.txt 
 
37
 
Altera o dono do arquivo "arquivo.txt" para o usuário flaviocapeletti e o grupo para 
users. 
flaviocapeletti@Tux:# chown .users arquivo.txt 
Altera o grupo do arquivo para o grupo users e deixa inalterado o dono do arquivo. 
flaviocapeletti@Tux:# chown -R flaviocapeletti /home/diretorio 
Altera o dono de todos os arquivos do diretório /home/diretório para o usuário 
flaviocapeletti. 
Leia o man do comando para se divertir e aprender mais. 
6.4 – Editando arquivos 
Apesar do GNU/Linux contar com uma gama enorme de editores de texto, 
daremos destaque para o editor Vi (Visual Interface), pelas razões que veremos a seguir: 
O Vi é um editor de texto criado por Bill Joy, um estudante da Universidade de 
Stanford que veio a se tornar presidente da Sun Microsystems. Seu desenvolvimento foi 
realizado a partir do editor de textos “ed”, um editor escrito por Ken Thompson e que 
contém uma das primeiras execuções de expressões regulares. 
A importância do Vi para o Linux, não se resume apenas ao fato de ser um editor 
de texto, mas ser o editor mais usado por programadores de todo o mundo e também, 
ser comum a todas as distribuições do sistema GNU/Linux. 
O Vi também proporciona grande vantagem em relação a outros sistemas 
operacionais que armazenam suas configurações em arquivos binários. Por ser 
desenvolvido em formato, pode ser modificado facilmente para corrigir eventuais erros 
e claro, são mais difíceis de serem corrompidos. 
Outra vantagem que vale ser ressaltada é a sua disponibilidade em casos de 
emergências. Apesar de não possuir a complexidade de outros editores como o Jed ou o 
XEmacs, nada se compara ao Vi em termos de denominadores comuns. 
Diante de todas essas características, torna-se indispensável conhecer o Vi de 
forma mais contundente. Assim, apresentaremos, os comandos básicos e ao longo do 
capítulo, alguns comandos avançados. 
 
38
 
A história da tecnologia nos ensina que a melhor maneira de aprender a usar 
aplicativos é praticando. Desta forma, passamos a listar os principais comandos desse 
editor de texto. 
Existem dois modos no Vi: 
- Modo de Edição 
- Modo de Comando 
Modo de Edição 
No modo de edição, é possível digitar livremente como se estivesse em um 
editor de textos comum. Esse modo é iniciado no editor - a partir do shell digitando-se 
“vi” - através de um dos seguintes comandos: 
i - insere texto a partir do cursor atual. 
a - insere texto depois do cursor atual. 
I - insere texto no início da linha. 
A - insere texto no final da linha. 
s - substitui texto no cursor atual. 
S - substitui texto depois do cursor atual. 
o - abre uma linha abaixo do cursor atual. 
Modo de Comando 
O modo de comando se inicia com a tecla ESC. Alguns desses comandos são: 
substituição, inserção e procura de texto, gravação e abertura de arquivos entre outros, 
além de recorte, cópia e colagem de texto. 
Os comandos mais usados são: 
/(Expressão) - Procura Expressão (que pode ser qualquer palavra) no texto. 
 
39
 
n - Procura próxima ocorrência de Expressão no texto. 
N - Procura ocorrência anterior de Expressão no texto. 
yy - Copia linha atual do texto para memória. 
p - Cola conteúdo da memória no texto. 
dd - Apaga linha atual (e coloca na memória). 
n comando - Um número “n” (1, 2, ...) seguido de qualquer comando executa o 
comando “n” vezes. 
u - Desfaz última ação executada. 
. - Refaz última ação executada. 
:n - Pula para linha de número n. 
:w - Salva o arquivo atual. 
:wq - Salva o arquivo atual e sai do Vi. 
:x - Salva o arquivo atual e sai do Vi (equivalente) a :wq. 
:q - Sai do Vi. 
:q! - Sai do Vi, independente de salvar o conteúdo atual. 
:w arquivo - Salva o arquivo atual com o nome arquivo. 
Guia rápido do Vi 
Funções de procura 
/<expressão> - começa a procura pelo início do arquivo do termo "expressão". 
?<expressão> - começa a procura pelo final do arquivo do termo "expressão". 
n - procura a próxima palavra. 
N - inverte o sentido da procura. 
Movimentação e inserção de texto 
:3,9d - apaga as linhas de 3 a 9. 
:4,7m 11 - move as linhas de 4 a 7 para a linha 11. 
:2,6t 11 - copia as linhas de 2 a 6 para a linha 11. 
:2,7w <file> - escreve as linhas de 2 a 7 para o arquivo "file". 
:r <file> - lê o arquivo 'file' e insere seu conteúdo no documento atual. 
 
40
 
Adicionar/apendar texto 
a - apendar texto depois do cursor. 
A - apendar texto no final da linha. 
i - inserir texto antes do cursor. 
I - inserir texto no começo da linha. 
Mudar texto 
cw - muda uma palavra. 
3cw - muda 3 palavras. 
C - muda uma linha.r - sobrescreve um caractere. 
R - sobrescreve a linha inteira. 
:%s/<old>/<new>/g - muda todas as ocorrências da expressão "old" para a expressão 
"new". 
Cancelar uma função 
u - desfazer a última operação. 
. - repete a última operação. 
Salvar arquivos e sair 
:w - salvar da memória (buffer) para o disco (arquivo). 
:q - sair do editor. 
:wq - salvar e sair do editor. 
:x - salvar e sair do editor. 
:e! - reeditar, desprezando as mudanças. 
ZZ - salvar e sair do editor. 
Movimentação de tela/linha 
0 - vai direto para o começo da linha. 
) ou $ - vai direto para o final da linha. 
g (Linux) - vai para a primeira linha do arquivo. 
 
41
 
G - vai para a última linha do arquivo. 
5G - vai para a linha 5. 
Copiar e inserir textos 
yy - copia um linha. 
5yy - copia 5 linhas. 
p - cola abaixo do cursor. 
P - cola acima do cursor. 
Adicionar novas linhas 
o - abre uma nova linha para edição abaixo do cursor. 
O - abre uma nova linha para edição acima do cursor. 
Apagar texto 
x - apaga um caractere. 
dw - apaga uma palavra. 
dd - apaga uma linha. 
5dd - apaga 5 linhas. 
dG - apaga do cursor até o final do arquivo. 
Configurações da sessão 
:set nu - mostra o número de linhas. 
:set nonu - desliga o comando acima. 
:set all - mostra todas as configurações. 
:set list - mostra os caracteres ocultos. 
Rolagem do texto 
CTRL+f - rola uma tela para baixo. 
CTRL+b - rola uma tela atrás. 
CTRL+d - rola meia-tela (1/2) para baixo. 
CTRL+u - rola meia-tela (1/2) atrás. 
 
42
 
Como vimos, o Vi foi desenvolvido a partir do “Ed”, editor muito básico de 
linhas. O Vi original é muito simples e não possui alguns recursos que suas variantes 
mais modernas já possuem. Desta forma, vale a pena destacarmos a variante mais 
importante do Vi, que já se consagra como sua sucessora. Trata-se do Vim que veremos 
a seguir: 
Em 1992, surgiu um concorrente a altura para o Vi, que o imitava fielmente. 
Tanto que ficou conhecido como Vim (Vi IMitator ou Imitação do Vi). No entanto, com 
suas funcionalidades e estrutura mais apuradas, tornou-se muito popular passando de 
imitador para “Vi IMproved”, ou seja, Vi Melhorado. 
Hoje o Vim vem se tornando o editor de textos padrão em sistemas GNU/Linux, 
com interface gráfica podendo rodar em um terminal dentro do X Window ou no 
console. Possui também múltiplos undos e redo, diferente do Vi original. Além disso, 
possui modo visual (apertando-se a tecla v no modo de comando), onde é possível 
marcar o texto desejado para copiar ou deletar. O Vim também é altamente configurável. 
6 .5 – Gerenciando arquivos compactados 
Neste capítulo, você vai aprender a gerenciar arquivos compactados. Conhecerá 
as características de cada um, de identificar um arquivo compactado e como 
descompactar um arquivo compactado usando um programa correspondente. 
Utilizar arquivos compactados é uma maneira excelente de reduzir o consumo de 
espaço em disco, propiciando uma melhor velocidade na transferência de arquivos via 
rede ou mesmo em dispositivos móveis. 
Qual o papel de programas compactadores/descompactadores?
 
Os programas compactadores e descompactadores tem a função de diminuir e 
restaurar, respectivamente, o tamanho de um arquivo, ou vários arquivos, através da 
substituição de caracteres repetidos. 
Para que possa ficar mais claro, sugerimos um exemplo que está ligado 
diretamente a esse assunto e presente em todos os livros sobre Compactação no Linux. 
Observe a frase: 
 
43
 
“Compactadores compactam e deixam arquivos compactados.” 
Quando realizamos a compactação deste arquivo, a frase passa a ter a seguinte 
configuração: 
“%dores %m e deixam arquivos %dos.” 
Por este exemplo, é possível perceber que o verbo “compactar”, que se 
encontrava em três palavras derivadas na frase acima “compactadores”, “compactam” e 
“compactados”, foi substituído por um sinal de “%”. 
O processo para descompactar este arquivo, segue o procedimento contrário à 
compactação. Ele substituiria o símbolo “%” pela palavra “compacta” e aí, você teria o 
arquivo restaurado. 
Se observar novamente a frase na íntegra e depois compactada, verá que seu 
tamanho caiu quase pela metade. Este volume de compactação de um arquivo é 
chamado de taxa de compactação. 
Assim, em termos técnicos, se o tamanho do arquivo for reduzido pela metade 
após a sua compactação, pode-se afirmar que atingiu uma taxa de compactação de 2:1 
(lê-se dois para um). Da mesma forma, se o arquivo for reduzido em quatro vezes, 
afirma-se que atingiu uma taxa de compactação de 4:1 (quatro para um) e assim por 
diante. 
Para que não se perca informações e nem se corrompa o arquivo, os programas 
de compactação mantém um cabeçalho com todas as substituições usadas durante o 
processo de compactação. Isso ocorre para garantir o controle dos caracteres que são 
usados nas substituições. O tamanho desse cabeçalho pode ser fixo ou definido pelo 
usuário, dependendo do programa usado na compactação. 
Observações: 
É preciso estar muito atento quando estiver trabalhando com arquivos 
compactados, uma vez que não é possível, trabalhar diretamente com eles, na condição 
de compactados. Para poder usar o arquivo corretamente, é preciso descompactá-lo. 
 
44
 
Há programas que aceitam os arquivos compactados mas, se prestar atenção, vai 
notar que eles apenas simplificam a tarefa descompactando o arquivo, abrindo e o 
recompactando assim que o trabalho estiver concluído, tudo de forma automática. 
Os arquivos de texto, por terem muito mais caracteres repetidos que os arquivos 
binários, atingem uma taxa de compactação muito maior que estes outros. Geralmente, 
esta taxa pode chegar a 10:1. Já os arquivos binários, costumam trabalhar com uma taxa 
de compactação de 2:1. 
Tipos de compactação
 
Esses programas de compactação podem ser divididos basicamente em dois 
tipos: 
1) Compactação sem perdas de dados. 
2) Compactação com perdas de dados. 
No caso da compactação sem perdas, o arquivo é compactado sem nenhum risco 
de perder dados importantes. Da mesma forma, é descompactado mantendo seu 
conteúdo original. 
Já a compactação com perdas, no qual pode ocorrer a perda parcial de dados, é 
realizado para atingir altas taxas de compactação. É um tipo específico de compactação 
direcionado para tipos de arquivos especiais, como músicas e imagens ou arquivos que 
envolvam a percepção humana. 
Esta ideia está baseada no fato de o ouvido humano não ser tão sensível a 
determinados sons e frequências, possibilitando a perda de alguns sons pouco 
perceptíveis ao compactar uma música, por exemplo. Uma compactação do tipo “ogg” 
ou “mp3” utiliza-se destes recursos. Esta diferença no som só seria notada se a música 
fosse reproduzida em um equipamento de alta qualidade. Portanto, para o dia a dia, você 
estará ouvindo a mesma música e economizando muito espaço em disco. 
Da mesma forma, podemos exemplificar a compactação com perdas, quando 
falamos de imagens do tipo “jpg”. Imagine que você tem uma imagem com 60.000 tons 
 
45
 
de cor diferentes, mas alguns tons são muito próximos de outros, então o compactador 
resume para 20.000 tons de cor e a imagem terá 1/3 do tamanho original e o nosso olho 
conseguirá entender a imagem sem problemas e quase não perceberá a diferença. 
Apesar das vantagens na taxa de compactação com perdas, este processo deve 
ser evitado em casos de compactação de textos ou programas que em caso de alteração, 
pode se tornar ilegível ou, no caso de programas, pode não rodar no sistema. Da mesma 
forma não podemos ter perdas quando compactamos imagens ou músicas que serão 
utilizadas em processos posteriores de masterização, mixagem ou impressão em alta 
definição. 
Extensões de arquivos compactados
 
Os arquivos compactados possuem extensões que identificam o tipo de arquivo e, 
consequentemente, qual oprograma necessário para trabalhar com aquele tipo de 
arquivo. 
São dezenas de extensões que podem ser adicionadas ao nome do arquivo no 
momento da compactação. Por exemplo, se um arquivo é compactado pelo programa 
GZIP, seu nome receberá a extensão “.gz”. O mesmo processo acontece, só que de 
forma contraria, quando ocorre a descompactação. Neste caso, a extensão é retirada do 
arquivo. 
Abaixo segue uma listagem de extensões mais usadas e os programas 
correspondentes: 
.gz - Arquivo compactado pelo programa gzip. Use o mesmo programa gzip para 
descompactar o arquivo. 
.bz2 - Arquivo compactado pelo programa bzip2. Da mesma forma, use o programa 
bzip2 para descompactá-lo. 
.Z – Extensão do arquivo compactado pelo programa compress. Use o programa 
uncompress para descompactar o arquivo. 
 
46
 
.zip – Extensão do arquivo compactado pelo programa zip. Use o programa unzip para 
descompactá-lo. 
.rar - Arquivo compactado pelo programa rar. Use o mesmo programa rar para 
descompactá-lo. 
.tar.gz - Arquivo compactado pelo programa gzip no utilitário de arquivamento tar. 
Pode ser abreviada pelo termo “.tgz”. Para realizar a descompactação, poderá usar o 
gzip e depois o tar ou somente o programa tar usando a opção -z. 
.tar.bz2 - Arquivo compactado pelo programa bzip2 no utilitário de arquivamento tar. 
Para descompactá-lo, você pode usar o bzip2 e depois o tar ou somente o programa tar 
usando a opção -j. 
.tar.Z - Arquivo compactado pelo programa compress no utilitário de arquivamento tar. 
Para descompactá-lo, poderá usar o uncompress e depois o tar ou somente o programa 
tar usando a opção -Z. 
Extensão GZIP 
Por ser utilizada pela maioria dos programadores, acabou por se tornar um 
compactador padrão do GNU/Linux. Essa extensão possui ótima taxa de compactação e 
velocidade. 
Deve ser digitado da seguinte forma: gzip (arquivo) (opções) 
(arquivo) - Define quais arquivos serão compactados pelo gzip. Caso seja usado o sinal 
“-“, será assumido a entrada padrão. Você poderá compactar vários arquivos de uma 
vez, utilizando a ferramenta Curingas, como vimos anteriormente. 
(opções) 
-d, --decompress [arquivo] - Descompacta um arquivo. 
 
47
 
-f - Força a compactação, compactando até mesmo links. 
-l [arquivo] - Lista o conteúdo de um arquivo compactado pelo gzip. 
-r - Compacta diretórios e sub-diretórios. 
-c [arquivo] - Descompacta o arquivo para a saída padrão. 
-t [arquivo] - Testa o arquivo compactado pelo gzip. 
-[num], --fast, --best - Ajustam a taxa de compactação/velocidade da compactação. 
Quanto melhor for a taxa de compactação, menor será a velocidade e vice versa. 
A opção --fast permite uma compactação rápida e tamanho do arquivo maior. 
A opção --best permite uma melhor compactação e uma velocidade menor. 
Já o uso da opção -[número] permite especificar a forma de compactação, 
através dos números 1 (menor compactação) a 9 (melhor compactação). 
Muito bom para equilibrar taxa de compactação e velocidade, principalmente em 
computadores menos potentes. 
Exemplos: 
gzip -9 texto.txt - Compacta o arquivo texto.txt usando a compactação máxima 
(compare o tamanho do arquivo compactado usando o comando ls -la). 
gzip -d texto.txt.gz - Descompacta o arquivo texto.txt. 
gzip -c texto.txt.gz - Descompacta o arquivo texto.txt para a tela. 
gzip -9 *.txt - Compacta todos os arquivos que terminam com .txt. 
gzip -t texto.txt.gz - Verifica o arquivo texto.txt.gz. 
A extensão gzip é o preferido dos programadores porque também reconhece 
arquivos compactados por outros programas, como zip, compress, compress -H e pack. 
Extensão ZIP 
Essa extensão é compatível com o pkzip (do DOS) e trabalha com arquivos de 
extensão .zip. Ao comparar com o gzip, verá que essa extensão apresenta uma ótima 
taxa de compactação e velocidade no processamento dos arquivos compactados. 
Deve ser digitado da seguinte forma: zip [opções] [arquivo-destino] [arquivos-origem] 
 
48
 
(arquivo-destino) - Nome do arquivo compactado que será gerado. 
(arquivos-origem) – Arquivos ou Diretórios que serão compactados. 
(opções) 
-r - Compacta arquivos e sub-diretórios. 
-e - Permite encriptar o conteúdo de um arquivo .zip através de senha. A senha será 
pedida no momento da compactação. 
-f - Substitui um arquivo compactado existente dentro do arquivo .zip somente se a 
versão for mais nova que a atual. Não acrescenta arquivos ao arquivo compactado. Deve 
ser executado no mesmo diretório onde o programa .zip foi executado anteriormente. 
-F - Repara um arquivo .zip que foi danificado. 
-[NUM] - Ajusta a qualidade/velocidade da compactação. Da mesma forma que o gzip, 
pode ser especificado um número de 1 a 9, onde o número 1 representa mínima 
compactação e máxima velocidade e o número 9 representa uma melhor compactação e 
menor velocidade. 
-i [arquivos] - Compacta somente os [arquivos] especificados. 
-j - Se especificado, não armazena caminhos de diretórios. 
-m - Apaga os arquivos originais após a compactação. 
-T [arquivo] - Procura por erros em um arquivo .zip. Caso sejam detectados problemas, 
utilize a opção -F para corrigi-los. 
-y - Armazena links simbólicos no arquivo .zip. Por padrão, os links simbólicos são 
ignorados durante a compactação. 
-k [arquivo] - Modifica o [arquivo] para ter compatibilidade total com o pkzip do DOS. 
-l - Converte saltos de linha UNIX (LF) para o formato CR+LF (usados pelo DOS). Use 
esta opção com arquivos Texto. 
-ll - Converte saltos de linha DOS (CR+LF) para o formato UNIX (LF). Use esta opção 
com arquivos texto. 
-n [extensão] - Não compacta arquivos identificados por [extensão]. É armazenado sem 
compactação no arquivo .zip. Muito útil para uso com arquivos já compactados. Caso 
sejam especificadas diversas extensões de arquivos, elas devem ser separadas por : “-“. 
Por exemplo, zip -n .zip:.tgz arquivo.zip *.txt. 
 
49
 
-q - Não mostra mensagens durante a compactação do arquivo. 
-u – Atualiza ou adiciona arquivos ao arquivo .zip. 
-X - Não armazena detalhes de permissões, UID, GID e datas dos arquivos. 
-z - Permite incluir um comentário no arquivo .zip. Caso o nome de arquivo de destino 
não termine com .zip, esta extensão será automaticamente adicionada. Para a 
descompactação de arquivos .zip no GNU/Linux, é necessário o uso do utilitário unzip. 
Exemplos: 
zip textos.zip *.txt - Compacta todos os arquivos com a extensão .txt para o arquivo 
textos.zip (compare o tamanho do arquivo compactado digitando ls -la). 
zip -r textos.zip /usr/*.txt - Compacta todos os arquivos com a extensão .txt do diretório 
/usr e sub-diretórios para o arquivo textos.zip. 
zip -9 textos.zip * - Compacta todos os arquivos do diretório atual usando a 
compactação máxima para o arquivo textos.zip. 
zip -T textos.zip - Verifica se o arquivo textos.zip contém erros. 
Extensão UNZIP 
Essa extensão é utilizada para descompactar arquivos compactados pela 
extensão .zip. Da mesma forma que a extensão .zip, este programa também é compatível 
com arquivos compactados pelo pkzip do DOS. 
Deve ser digitado da seguinte forma: unzip [opções] [arquivo.zip] [arquivos-extrair] [-
d diretório] 
(arquivo.zip) – É o arquivo que deseja descompactar. Podem ser usados curingas para 
especificar mais de um arquivo para ser descompactado de uma vez. 
(arquivos-extrair) - Nome dos arquivos, sempre separados por espaço, que serão 
descompactados do arquivo .zip. Caso não haja especificação desses arquivos, o 
programa vai assumir o símbolo *, no qual vai realizar a descompactação de todos os 
arquivos. 
(-d diretório) - Diretório escolhido para que os arquivos sejam descompactados. Caso 
não for especificado, os arquivos serão descompactados no diretório atual. 
 
50
 
(opções) 
-c - Descompacta os arquivos para stdout (saída padrão) ao invés de criar arquivos. Os 
nomes dos arquivostambém são mostrados. 
-p – Neste caso, descompacta os arquivos para stdout (saída padrão) ao invés de criar 
arquivos. Porém, os nomes dos arquivos não são mostrados. 
-f - Descompacta somente arquivos que existam no disco e, mais novos que os atuais. 
-l - Lista os arquivos existentes dentro do arquivo .zip. 
-M - Efetua uma pausa a cada tela de dados durante o processamento (a mesma função 
do comando more). 
-n - Nunca substitui arquivos já existentes. Se um arquivo existe ele é pulado. 
-o - Substitui arquivos existentes sem perguntar. Tem a função contrária a opção -n. 
-P [SENHA] - Permite descompactar arquivos .zip usando a [SENHA]. 
Atenção: Quando se usa a opção de senha, você permite que qualquer usuário 
conectado em seu sistema possa ver a senha digitada na linha de comando. 
-q - Não mostra mensagens. 
-t - Verifica o arquivo .zip em busca de erros. 
-u - Idêntico a opção -f só que também cria arquivos que não existem no diretório. 
-v - Mostra mais detalhes sobre o processamento do unzip. 
-z - Mostra somente o comentário existente no arquivo. 
Por padrão o unzip também descompacta sub-diretórios caso o arquivo .zip tenha sido 
gerado com zip -r. 
Exemplos: 
unzip texto.zip - Descompacta o conteúdo do arquivo texto.zip no diretório atual. 
unzip texto.zip carta.txt - Descompacta somente o arquivo carta.txt do arquivo 
texto.zip. 
unzip texto.zip -d /tmp/texto - Descompacta o conteúdo do arquivo texto.zip para o 
diretório /tmp/texto. 
unzip -l texto.zip - Lista o conteúdo do arquivo texto.zip. 
unzip -t texto.zip - Verifica o arquivo texto.zip. 
 
51
 
Extensão TAR 
A extensão tar, foge dos padrões de compactação por se tratar de um programa 
de arquivamento, ou seja, ele não é um compactador, e sim um arquivador. Na 
verdade, esse programa junta vários arquivos em um só. No entanto, nada impede que 
ele seja usado em conjunto com um compactar (como o gzip ou zip) para arquivar os 
arquivos já compactados. 
O tar também pode ser usado para cópias de arquivos especiais ou dispositivos 
do sistema. É comum encontrar arquivos com a extensão .tar, .tar.gz, .tgz, .tar.bz2, 
.tar.Z, .tgZ, o primeiro é um arquivo normal gerado pelo tar e todos os outros são 
arquivos gerados através do tar junto com um programa de compactação gzip (.gz), 
bzip2 (.bz2) e compress (.Z). 
Deve ser digitado da seguinte forma: tar [opções] [arquivo-destino] [arquivos-origem] 
(arquivo-destino) - É o nome do arquivo de destino. Normalmente especificado com a 
extensão .tar em casos em que ocorra apenas o arquivamento. Se houver compactação 
também, a extenção muda para .tar.gz/.tgz ou outras. 
(arquivos-origem) - Especifica quais arquivos/diretórios serão arquivados/compactados. 
(opções) 
-c, --create - Cria um novo arquivo .tar. 
-t, --list - Lista o conteúdo de um arquivo .tar. 
-u, --update - Atualiza arquivos compactados no arquivo .tar. 
-f, --file [HOST:]F - Usa o arquivo especificado para gravação ou o dispositivo 
/dev/rmt0. 
-j, --bzip2 - Usa o programa bzip2 para processar os arquivos do tar. 
-l, --one-file-system - Não processa arquivos em um sistema de arquivos diferentes de 
onde o tar foi executado. 
-M, --multi-volume - Cria/lista/descompacta arquivos em múltiplos volumes. O uso de 
arquivos em múltiplos volumes permite que uma grande cópia de arquivos que não cabe 
em um disquete, por exemplo, seja feita em mais de um disquete. 
-o - Grava o arquivo no formato VT7 ao invés do ANSI. 
 
52
 
-O, --to-stdout - Descompacta arquivos para a saída padrão ao invés de gravar em um 
arquivo. 
--remove-files - Apaga os arquivos de origem após serem processados pelo tar. 
-R, --record-number - Mostra o número de registros dentro de um arquivo tar em cada 
mensagem. 
--totals - Mostra o total de bytes gravados com a opção --create. 
-v - Mostra os nomes dos arquivos enquanto são processados. 
-V [NOME] - Inclui um [NOME] no arquivo tar. 
-W, --verify - Tenta verificar o arquivo gerado pelo tar após gravá-lo. 
X - Extrai arquivos gerados pelo tar. 
-X [ARQUIVO] - Tenta apagar o [ARQUIVO] dentro de um arquivo compactado .tar. 
-Z - Usa o programa compress durante o processamento dos arquivos. 
-z - Usa o programa gzip durante o processamento dos arquivos. 
--use-compress-program [PROGRAMA] - Usa o [PROGRAMA] durante o 
processamento dos arquivos. Ele deve aceitar a opção -d. 
-[0-7][lmh] - Especifica a unidade e sua densidade. 
Observação importante: 
A extensão precisa ser especificada no arquivo de destino para a identificação 
correta: 
Caso seja usada a opção -j para compactação, a extensão deverá ser .tar.bz2. 
Caso seja usada a opção -z para compactação, a extensão deverá ser .tar.gz ou .tgz. 
Caso seja usada a opção -Z para a compactação, a extensão deverá ser .tar.Z ou .tgZ. 
Esta observação é relevante, uma vez que saber qual compactador auxiliou o tar 
na compactação, será necessário no momento de descompactar este arquivo. 
 
53
 
Exemplos: 
tar -cf index.txt.tar index.txt - Cria um arquivo chamado index.txt.tar que armazenará o 
arquivo index.txt. Você pode notar digitando ls -la que o arquivo index.txt foi somente 
arquivado (sem compactação), isto é útil para juntar diversos arquivos em um só. 
tar -xf index.txt.tar - Desarquiva o arquivo index.txt criado pelo comando acima. 
tar -czf index.txt.tar.gz index.txt - O mesmo que o exemplo de arquivamento anterior, 
só que agora é usado a opção -z (compactação através do programa gzip). Você agora 
pode notar digitando ls -la que o arquivo index.txt foi compactado e depois arquivado 
no arquivo index.txt.tar.gz (você também pode chamá-lo de index.txt.tgz que também 
identifica um arquivo .tar compactado pelo gzip). 
tar -xzf index.txt.tar.gz - Descompacta e desarquiva o arquivo index.txt.tar.gz criado 
com o comando acima. 
gzip -dc index.tar.gz | tar -xf - - Faz o mesmo que o comando acima só que de uma 
forma diferente: Primeiro descompacta o arquivo index.txt.tar.gz e envia a saída do 
arquivo descompactado para o tar que desarquivará o arquivo index.txt. 
tar -cjf index.txt.tar.bz2 index.txt - Arquiva o arquivo index.txt em index.txt.tar.bz2 
compactando através do bzip2 (opção -j). 
tar -xjf index.txt.tar.bz2 - Descompacta e desarquiva o arquivo index.txt.tar.bz2 criado 
com o comando acima. 
bzip2 -dc index.txt.tar.bz2 | tar -xf - - Faz o mesmo que o comando acima só que de 
uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.bz2 e envia a saída 
do arquivo descompactado para o tar que desarquivará o arquivo index.txt. 
tar -t index.txt.tar - Lista o conteúdo de um arquivo .tar. 
tar -tz index.txt.tar.gz - Lista o conteúdo de um arquivo .tar.gz. 
Extensão BZIP2 
A extensão bzip2, surgiu a pouco tempo e vem sendo usada cada vez mais por 
conseguir atingir uma taxa de compactação em arquivos texto muito melhor que os 
demais compactadores disponíveis no mercado. Por outro lado, sua velocidade de 
compactação também é menor; quase duas vezes mais lento que o gzip. A extensão dos 
arquivos compactados pelo bzip2 é a .bz2. 
 
54
 
Deve ser digitado da seguinte forma: bzip2 [opções] [arquivos] 
(arquivos) - Especifica quais arquivos serão compactados pelo bzip2. Caso seja usado 
um sinal de “-“, será assumido a entrada padrão. Curingas podem ser usados para 
especificar vários arquivos de uma só vez. 
(Opções) 
-d, --decompress [arquivo] - Descompacta um arquivo. 
-f - Força a compactação, compactando até mesmo links. 
-l [arquivo] - Lista o conteúdo de um arquivo compactado pelo bzip2. 
-r - Compacta diretórios e sub-diretórios. 
-c [arquivo] - Descompacta o arquivo para a saída padrão. 
-t [arquivo] - Testa o arquivo compactado pelo bzip2. 
-[num], --fast, --best – Da mesma forma que o gzip, ajustam a taxa de 
compactação/velocidade da compactação. Quanto melhor for a taxa de compactação, 
menor será avelocidade e vice versa. 
A opção --fast permite uma compactação rápida e tamanho do arquivo maior. 
A opção --best permite uma melhor compactação e uma velocidade menor. 
Já o uso da opção -[número] permite especificar a forma de compactação, 
através dos números 1 (menor compactação) a 9 (melhor compactação). 
Muito bom para equilibrar taxa de compactação e velocidade, principalmente em 
computadores menos potentes. 
Exemplos: 
bzip2 -9 texto.txt - Compacta o arquivo texto.txt usando a compactação máxima 
(compare o tamanho do arquivo compactado usando o comando ls -la). 
bzip2 -d texto.txt.bz2 - Descompacta o arquivo texto.txt. 
bzip2 -c texto.txt.bz2 - Descompacta o arquivo texto.txt para a saída padrão (tela). 
bzip2 -9 *.txt - Compacta todos os arquivos que terminam com .txt. 
bzip2 -t texto.txt.bz2 - Verifica o arquivo texto.txt.bz2. 
 
55
 
Extensão RAR 
O rar é um compactador que possui versões tanto para GNU/Linux, quanto para 
DOS, Windows, OS/2 e Macintosh. Apesar de ser vendido comercialmente, é possível 
encontrar versões Shareware (uso limitado), podendo ser muito útil em algumas 
situações. 
Deve ser digitado da seguinte forma: rar [ações] [opções] [arquivo-destino.rar] 
[arquivos-origem] 
(arquivo-destino.rar) - É o nome do arquivo de destino. 
(arquivos-origem) - Arquivos que serão compactados. Podem ser usados curingas para 
especificar mais de um arquivo. 
(ações) 
a - Compacta arquivos. 
x - Descompacta arquivos. 
d - Apaga arquivos especificados. 
t - Verifica o arquivo compactado em busca de erros. 
c - Inclui comentário no arquivo compactado. 
r - Repara um arquivo .rar danificado. 
l - Lista arquivos armazenados no arquivo compactado. 
u - Atualiza arquivos existentes no arquivo compactado. 
m - Compacta e apaga os arquivos de origem (move). 
e - Descompacta arquivos para o diretório atual. 
p - Mostra o conteúdo do arquivo na saída padrão. 
rr - Adiciona um registro de verificação no arquivo. 
s - Converte um arquivo .rar normal em arquivo auto-extráctil. Arquivos auto-extrácteis 
são úteis para enviar arquivos a pessoas que não tem o programa rar. Basta executar o 
arquivo e ele será automaticamente descompactado (usando o sistema operacional que 
foi criado). Note que esta opção requer que o arquivo default.sfx esteja presente no 
diretório home do usuário. Use o comando find para localizá-lo em seu sistema. 
 
56
 
(opções) 
o+ - Substitui arquivos já existentes sem perguntar. 
o- - Não substitui arquivos existentes. 
sfx - Cria arquivos auto-extrácteis. 
y - Assume sim para todas as perguntas. 
r - Inclui sub-diretórios no arquivo compactado. 
x [ARQUIVO] - Processa tudo menos o [ARQUIVO]. Pode ser usado curingas. 
v [TAMANHO] - Cria arquivos com um limite de tamanho. Por padrão, o tamanho é 
especificado em bytes, mas o número pode ser seguido de k (kilobytes) ou m 
(megabytes). Exemplo: rar a -v1440k ... ou rar a -v10m. 
p [SENHA] - Inclui senha no arquivo. 
m [0-5] - Ajusta a taxa de compactação/velocidade de compactação. O valor “0” não faz 
compactação alguma, tornando o processo mais rápido. Neste caso, somente armazena 
os arquivos. Já o valor “5” é o nível que usa mais compactação e torna o processo mais 
lento. 
ed - Não inclui diretórios vazios no arquivo. 
isnd - Ativa emissão de sons de alerta pelo programa. 
ierr - Envia mensagens de erro para stderr. 
inul - Desativa todas as mensagens. 
ow - Salva o dono e grupo dos arquivos. 
ol - Salva links simbólicos no arquivo ao invés do arquivo físico que o link faz 
referência. 
mm[f] - Usa um método especial de compactação para arquivos multimídia (sons, 
vídeos, etc). Caso for usado mmf, força o uso do método multimídia mesmo que o 
arquivo compactado não seja deste tipo. 
Exemplos: 
rar a texto.rar texto.txt - Compacta o arquivo texto.txt em um arquivo com o nome 
texto.rar. 
rar x texto.rar - Descompacta o arquivo texto.rar. 
 
57
 
rar a -m5 -v1400k textos.rar * - Compacta todos os arquivos do diretório atual, 
usando a compactação máxima no arquivo textos.rar. Note que o tamanho máximo de 
cada arquivo é 1440 para ser possível gravá-lo em partes, para disquetes. 
rar x -v -y textos.rar - Restaura os arquivos em múltiplos volumes criados com o 
processo anterior. Todos os arquivos devem ter sido copiados dos disquetes para o 
diretório atual antes de prosseguir. A opção -y é útil para não precisarmos responder yes 
a toda pergunta que o rar fizer. 
rar t textos.rar - Verifica se o arquivo textos.rar possui erros. 
rar r textos.rar - Repara um arquivo .rar danificado. 
Encerramento
 
Caro amigo, 
Chegamos ao fim de nosso curso com a certeza de que conseguimos transmitir 
uma boa noção sobre os conceitos e técnicas para se trabalhar com Linux. 
Nossa torcida é para que este curso lhe ajude a desenvolver trabalhos usando 
esta ferramenta que vem crescendo e se desenvolvendo a cada dia e, quem sabe, seja o 
início de uma grande carreira de programador. 
Boa Sorte e Sucesso!

Continue navegando