editor de textos vi (vim) visual i - blog do doug | …§ão, comandos, linha de comando, visual,...

41
1 Editor de Textos Vi (Vim) "vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje. Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim (Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionaliades, que só foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado). O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas diferenças. O que você verá abaixo fala sobre o vim. O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo, possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, uso de expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras. Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda é apenas o modo gráfico mesmo. O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela. Agora, vamos à prática. Para executar o vim, utilize: $ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação. $ vi arquivo => Abre o arquivo de nome "arquivo". $ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do mesmo. $ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10. $ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência da palavra "Copag". Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela, onde fica a seguinte marcação: - - -- INSERT -- -- Suponha que você já digitou o bastante, e quer salvar, por segurança. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair: :w => Salva o arquivo que está sendo editado no momento. :q => Sai. :wq => Salva e sai. :x => salva e sai.

Upload: buianh

Post on 10-Nov-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

1

Editor de Textos Vi (Vim)

"vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje. Naquela

época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim (Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionaliades, que só foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado). O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas diferenças. O que você verá abaixo fala sobre o vim. O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo, possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, uso de expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras. Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda é apenas o modo gráfico mesmo. O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela. Agora, vamos à prática. Para executar o vim, utilize: $ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação. $ vi arquivo => Abre o arquivo de nome "arquivo". $ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do mesmo. $ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10. $ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência da palavra "Copag". Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela, onde fica a seguinte marcação: - - -- INSERT -- -- Suponha que você já digitou o bastante, e quer salvar, por segurança. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair: :w => Salva o arquivo que está sendo editado no momento. :q => Sai. :wq => Salva e sai. :x => salva e sai.

Page 2: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

2

ZZ => salva e sai. :w! => Salva forçado. :q! => Sai forçado. :wq! => Salva e sai forçado. Então, você editou uma boa quantidade de textos e quer salvar: :w Agora, quer voltar a editar o texto: i Lembre que utilizando o "i" para inserção, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de inserção de texto: A => Insere o texto no fim da linha onde se encontra o cursor o => Adiciona uma linha vazia abaixo da linha corrente O => Adiciona uma linha vazia acima da linha corrente Ctrl + h => Apaga último caracter à esquerda Voltando ao modo de comando: Veja agora subcomandos para movimentação pelo texto: Ctrl + f => Passa para a tela seguinte. Ctrl + b => Passa para a tela anterior. H => Move o cursor para a primeira linha da tela. M => Move o cursor para o meio da tela. L => Move o cursor para a última linha da tela. h => Move o cursor para caracter a esquerda. j => Move o cursor para linha abaixo. k => Move o cursor para linha acima. l => Move o cursor para caracter a direita. w => Move o cursor para o início da próxima palavra (não ignorando a pontuação). W => Move o cursor para o início da próxima palavra (ignorando a pontuação). b => Move o cursor para o início da palavra anterior (não ignorando a pontuação). B => Move o cursor para o início da palavra anterior (ignorando a pontuação). 0 (zero) => Move o cursor para o início da linha corrente. ^ => Move o cursor para o primeiro caracter não branco da linha. $ => Move o cursor para o fim da linha corrente. nG => Move o cursor para a linha de número "n" (susbstitua n pelo número da linha).. G => Move o cursor para a última linha do arquivo. Copiando e colando textos no vim (utilizando o mouse) Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode utilizar uma dessas opções: 1) Pressionando o botão direito do mouse; 2) Pressionando o botão direito + botão esquerdo juntos; 3) Pressionando o botão do meio do mouse (mouse de 3 botões); Observação: Lembre-se que o vim deve estar no modo de inserção.

Page 3: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

3

Usando o modo visual do vim Entre no modo visual: v Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado. Pressione e cole, utilizando a tecla "p" (paste). Veja agora como apagar um determinado texto: Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete. Você pode remover até o final de uma palavra, utilizando: dw Pode também remover até o final de uma frase: d$ Desfazendo uma ação É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto. É só utilizar: u Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r. Subcomandos para localização de texto /palavra => Procura pela palavra ou caracter acima ou abaixo do texto. ?palavra => Move para a ocorrência anterior da palavra (para repetir a busca use "n"). n => Repete o último comando utilizando / ou ?. N => Repete o último comando / ou ? ao contrário (baixo para cima). Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de linhas. Mais opções para remoção de caracteres x => Apaga o caracter onde o cursor estiver. dd => Apaga a linha inteira onde o cursor estive D => Apaga a linha a partir da posição do cursor até o fim. J => Une a linha corrente à próxima. :5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número). Mais para copiar e colar :yy => Copia a linha onde o cursor se encontra. :5yy => Copia as próximas 5 linhas a partir da posição atual do cursor. :p => Cola o que foi copiado na linha abaixo do cursor atual. Opções para substituição de textos rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especificado em CARACTER. RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe). cw => Remove a palavra corrente para substituição. cc => Remove a linha corrente para substituição. C => Substitui o restante da linha corrente, esperando o texto logo após o comando. J => Une a linha corrente à próxima.

Page 4: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

4

:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha corrente. :% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por "novo" em cada linha. :% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo". :% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição. :% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed. :% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha. Abreviações :ab => Mostra todas as abbr. :abc[lear] => Remove todos. :iab => Apenas para modo de inserção. :iabc[lear] => Tira todos de inserção. :cab => Apenas p/modo de comando ( : ). :cabc[lear] => Tira todos os modos de comando. :una vc => Tira ab para vc. Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres. Opções para o comando SET :set autowrite aw => Salva a cada alteração. backspace bs => Comportamento backspace (1 ou 2). errorbell eb => Campainha de erro. expandtab et => Troca tab por espacos. fileformat=dos ff => Converte o arquivo para DOS. hidden hid => Preserva o buffer. hlsearch hls => Elumina a última procura. ignorecase ic => Case insensitive na busca. incsearch is => Ilumina procura enquanto digita. laststatus=2 => Mostra linha de estado. lazyredraw lz => Não redesenha em macros. lines=N => Múmero de linhas na tela. magic => Usar mágicas na procura de padrões. number nu => Mostra núm da linha. report=N => Mostra aviso quando N linhas mudaram (0=sempre). showcmd => Mostra o comando que se está fazendo. showmatch sm => Mostra o casamento de {},[],(). smartcase scs => Assume "noic" quando tiver maiúsculas. textwidth=N => Quebra de linha do texto. undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000). vb t_vb= => Retira o "beep" de erro. Agora invertendo maiúsculas/minúsculas

Page 5: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

5

5~ => Inverte os 5 próximos caracteres. g~$ => Inverte todos os caracteres até o fim da linha. seleciona, u => Converte para minúsculas. seleciona, U => Converte para maiúsculas. seleciona, ~ => Inverte. Observação: Onde está escrito "seleciona", é para fazer utilizando o modo visual (v). Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no aprendizado do vim): :set textwidth=N Se você já estiver num arquivo pronto: :set wm=5 => O número 5 aqui são as colunas que serão "cortadas". gqG => Até o final do arquivo. Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl": É claro que é segurando Ctrl + . No modo de COMANDO: A => Incrementa um número (Add) X => Decrementa um número S => ScrollLock L => Redesenha tela V => Modo visual (Visual Vertical) G => Status do arquivo M => Início da próxima linha E => Linha abaixo sem mover cursor Y => Linha acima sem mover cursor N => Próxima linha (Next) P => Linha anterior (Previous) F => PageDown (Forward) B => PageUp (Backyard) U => PageUp / 2 (Up) D => PageDown / 2 (Down) Agora, no modo de INSERÇÃO: A => Insere o último texto inserido I => TAB S => ScrollLock H => BackSpace T => 2 tab's no início da linha (Two Tabs) V => Anula expansão do próximo caractere J => Enter - quebra de linha M => Enter - quebra de linha L => Redesenha tela R => Insere conteúdo do registrador [a-z] (Veja abaixo) K => Insere um dígrafo (Veja abaixo) N => Procura palavra no texto atual (Next) P => Procura palavra no texto atual (Previous) Y => Copia caractere que está acima (Yank) Veja os caracteres especiais: ga => Mostra o código da letra sobre o cursor. :dig => Mostra todos os dígrafos disponíveis (tabela). Exemplos: Para fazer um º, use Ctrl+K,-,o ("Ctrl"+"K"+"-"+"o"). Para fazer um ½, use Ctrl+K,1,2 ("Ctrl"+"K"+"1"+"2").

Page 6: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

6

Trabalhando com arquivos e janelas múltiplas Você pode abrir múltiplos arquivos, por exemplo: $ vim arquivo1 arquivo2 E pode alternar entre as janelas. Veja: :wn => Grava o atual e vai ao próximo. :wN => Grava o atual e vai ao anterior. :args => Mostra todos os arquivos atuais. :qa => Sai de todas as janelas de uma vez. :all => Abre todos os arquivos em janelas individuais. Tecla chave das janelas = Crtl+W j, seta abaixo => Move para janela abaixo. k, seta acima => Move para janela acima. o => Apenas esta janela, fecha todas as outras (Only). +, - => Muda o tamanho da janela. = => Deixa todas as janelas com tamanhos iguais. Os registradores "[a-z] => Use o registrador [a-z] para o próximo delete, cópia ou cola. :reg => Mostra o conteúdo de todos os registradores. :reg [a-z] => Mostra o conteúdo do registradores [a-z]. Observação: O [a-z] pode ser: 0-9a-z%#:.-=" Marcas: m[a-z] => Marca em [a-z] a posição corrente do cursor. `[a-z] => Vai até a marca [a-z]. `` => Vai até a posição anterior ao último pulo (alterna). :marks => Mostra as marcas ativas. Fazendo gravação de seqüência de comandos q[a-z] => Inicia a gravação de uma seqüência no registrador [a-z]. q[A-Z] => Inicia a gravação, adicionando no registrador [a-z]. q => Pára a gravação. @[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a) Dica: Pode-se colocar o @[a-z] dentro da própria gravação do q[a-z]! Assim ele é executado recursivamente. Muito útil quando há uma procura de padrões na gravação. faz para todas as ocorrências. Mapeamentos :map :r!date => Mapeamento em modo de comando. :imap :r!date => Mapeamento em modo de inserção. :cmap r!date => Mapeamento em modo linha de comando. :vmap :r!date => Mapeamento em modo visual. Exemplos: "html: negrito no trecho selecionado :vmap d`pa # html: negrito no trecho selecionado

Page 7: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

7

"liga/desliga autoIndent :map ,si :set ai!:echo "autoIndent="&ai "mostrar os espaços em branco no fim das linhas :map / *$^M Através dos mapeamentos é possível "encurtar" comandos, ou seja, abreviá-los. Conheça as sintaxes: Comment => Ciano Constant => Roxo Identifier => Ciano PreProc => Azul escuro Special => Vermelho Statement => Amarelo String => Roxo Type => Verde Todo => Preto, fundo marrom Error => Branco, fundo vermelho Ignore => Preto, fundo preto! – esconde Utilizando o recurso de expandtab Mas, o que isso faz? Transforma todos os TABs em espaços. Podemos ativar dentro do próprio vim, utilizando o comando: :set expandtab Para desabilitar: :set noexpandtab Podemos colocar também no arquivo ~/.vimrc a seguinte linha: set expandtab O arquivo ~/.vimrc pode ser usado para muitas configurações, e essa é uma delas. Existe ainda o arquivo ~/.exrc, mas não entraremos em detalhes. Podemos incluir a saída de um comando no vim, utilizando: :r!comando Por exemplo: :r!rpm -q kernel Incluiria o seguinte resultado, dentro do seu texto (isso na minha máquina): kernel-2.4.18-3 Dicas diversas do vim: :xit => Igual :wq, mas só grava se tiver sido alterado algo no arquivo. :map N_ARQ ^R=expand("%:t:r")^M Imprime no arquivo o próprio nome do arquivo editado quando N_ARQ é digitado. Agora, veja como alinhar o texto: :left :right :center E para fazer uma busca de 2 palavras ao mesmo tempo: /palavra1\|palavra2 O vim é um editor de textos com centenas de opções, comandos, strings... Enão dá para abordar tudo aqui. Por isso, a melhor maneira de conhecê-lo a fundo é usando-o.

Page 8: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

8

GERENCIADOR DE TAREFAS

O “cron” é um programa de “agendamento de tarefas”. Com ele você pode programar para ser executado qualquer coisa numa certa periodicidade ou até mesmo em um exato dia, numa exata hora. Um uso

bem comum do cron é o agendamento de tarefas administrativas de manutenção do seu sistema, como por exemplo, procura por links simbólicos quebrados, análise de segurança do sistema, backup, entre outros. Estas tarefas são programadas para todo dia, toda semana ou todo mês, serem automaticamente executadas através do crontab e um script shell comum. A configuração do cron geralmente é chamada de crontab. Os sistemas Linux possuem o cron sempre presente. Pelo menos eu nunca vi nenhuma distribuição que não incluísse o tão útil cron. A configuração tem duas partes: Uma global, e uma por usuário. Na global, que é o root quem controla, o crontab pode ser configurado para executar qualquer tarefa de qualquer lugar, como qualquer usuário. Já na parte por usuário, cada usuário tem seu próprio crontab, sendo restringido àpenas ao que o usuário pode fazer (e não tudo, como é o caso do root). Para configurar um crontab por usuário, utiliza-se o comando “crontab”, junto com um parâmetro, dependendo do que você quiser fazer. Abaixo uma relação: $ crontab -e (Edita o crontab atual do usuário) $ crontab -l (Exibe o atual conteúdo do crontab do usuário) $ crontab -r (Remove o crontab do usuário) Se você quiser verificar os arquivos crontab dos usuários, você precisará ser root. O comando crontab coloca os arquivos dos usuários no diretório “/var/spool/cron/usuario” onde “usuario” corresponde ao usuário dono do arquivo crontab. Agora se você quiser editar o crontab global, este fica no arquivo “/etc/crontab”, e só pode ser manipulado pelo root. E agora que já sabemos onde ficam os arquivos de configuração, vamos estudar o formato da linha do crontab, que é quem vai dizer o que executar e quando. Vamos ver um exemplo: 0 4 * * * Who Então como se pode ver, a linha é dividida em 6 campos separados por tabs ou espaços. O que essa configuração significa? Vejamos abaixo:

• 1º campo – Minuto • 2º campo – Hora • 3º campo – Dia do Mês • 4º campo – Mês • 5º campo – Dia da Semana • 6º campo – Programa ou comando para execução

Todos estes campos, sem contar com o 6o., são especificados por números. Veja a abaixo os valores destes campos:

• Campo Minuto – 0-59 • Campo Hora – 0-23 • Campo Dia do mês – 1-31 • Campo Mês – 1-12

Page 9: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

9

• Campo Dia da semana – 0-6 (o “0″ é domingo, “1″ segunda, etc)

Então o que nosso primeiro exemplo estava dizendo? A linha está dizendo: “Execute o comando ‘who’ todo dia de todo mês sendo o dia qualquer dia da semana, às 4 horas e 0 minutos.”. Vamos pegar mais exemplos para analisar: 1,21,41 * * * * echo “Meu crontab rodou mesmo!” O exemplo acima está dizendo: “Executar o comando do sexto campo toda hora, todo dia, nos minutos 1, 21 e 41″. 30 4 * * 1 rm -rf /tmp/* O exemplo acima está dizendo: “Apagar todo conteúdo do diretório /tmp toda segunda-feira, as 4:30 da manhã.”. 45 19 1,15 * * /usr/local/bin/backup O exemplo acima está dizendo: “Executar o comando ‘backup’ todo dia 1 e 15 às 19:45.”. E assim você pode ir montando inúmeros jeitos de agendamento possível. No arquivo do crontab global, o sexto campo pode ser substituído pelo nome do usuário, e um sétimo campo adicionado com o programa para a execução, como mostro no exemplo a seguir: 0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg O exemplo acima está dizendo: “Executar o mrtg (ferramenta de monitoração de rede) como usuário root, durante 5 e 5 minutos dos minutos 0-59. Ou seja, executar de 5 em 5 minutos o mrtg sempre.”. Em alguma distribuições, os agendamentos mais comuns estão programados para serem executados. Veja as linhas abaixo: 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly O programa “run-parts” executa todos os scripts executáveis dentro de um certo diretório. Então com essas linhas, temos diretórios programados para executar programas de hora em hora, diariamente, semanalmente ou mensalmente. Veja abaixo:

• Diretório “/etc/cron.hourly” de hora em hora • Diretório “/etc/cron.daily” diariamente • Diretório “/etc/cron.weekly” semanalmente • Diretório “/etc/cron.monthly” mensalmente

Então todos os arquivos executáveis dentro de cada diretório serão executados no seu correspondente período. Ou seja, posso colocar um certo conteúdo no arquivo “/etc/cron.daily/teste”, depois torná-lo executável através do comando “chmod +x /etc/cron.daily/teste”, e então ele será executado todo dia as 4:02 da manhã.

Page 10: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

10

Muitas vezes você precisará editar um texto qualquer no Linux via terminal e o Nano poderá ser a solução adequada caso não queira abrir o OpenOffice Writer para isso. Ele é o "irmão gêmeo" do Pico, editor embutido no cliente de email Pine. A vantagem é que você não precisa instalar um software que não vai usar só para ter a funcionalidade de um editor de textos amigável. Com muitos Kb a menos, o Nano tem as mesmas funções. Veja aaixo a imagem:

No rodapé do editor há os comandos necessários e para aprender a usá-lo. Uns 15 minutos de dedicação serão suficientes!

Onde:

• ^C: Ctrl + C • ^X: Ctrl + X • Etc.

Page 11: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

11

APT-GET O apt-get é um recurso desenvolvido originalmente para a distribuição Debian que permite a instalação e a atualização de pacotes (programas, bibliotecas de funções, etc) no Linux de maneira fácil e precisa.

Vale frisar que o apt-get deve ser utilizado através de um usuário com privilégios de administrador (root). O que é apt-get Em qualquer sistema operacional há a necessidade de se instalar programas para que o uso do computador faça sentido. O problema é que, muitas vezes, o processo de instalação é trabalhoso, forçando o usuário a procurar arquivos indispensáveis ao software (dependências) ou a editar scripts, por exemplo. Para poder lidar com esse e com problemas oriundos, desenvolvedores da distribuição Debian Linux criaram o APT (Advanced Packaging Tool), uma ferramenta para instalar e atualizar pacotes (e suas dependências) de maneira rápida e prática. Não demorou para que o APT fosse utilizado em outras distribuições, sendo padrão no Debian e no Ubuntu (já que este é baseado no Debian). Como utilizar o apt-get Atualizando a lista de pacotes Quando o apt-get é utilizado no Linux, o comando consulta um arquivo denominado sources.list, geralmente disponível no diretório /etc/apt/. Esse arquivo informa onde estão os locais (repositórios) nos quais ele obterá os pacotes requisitados pelo usuário. Pelo arquivo /etc/apt/sources.list o APT sabe onde procurar os pacotes solicitados. O problema é que ele precisa conhecer o que está instalado no sistema operacional para saber exatamente o que procurar. Se não tiver essas informações, o APT não saberá que um determinado pacote essencial a um programa não está instalado e não providenciará sua instalação, por exemplo. Para lidar com essa situação, o APT utiliza um banco de dados próprio e o compara aos repositórios registrados no sources.list para saber quando um pacote está atualizado ou quando há uma nova versão de um determinado aplicativo. Para fazer o APT executar essa tarefa, basta digitar em um terminal o seguinte comando: apt-get update Instalando pacotes Antes de instalar um programa, é necessário executar o comando mostrado no tópico anterior para o APT saber o que está e o que não está instalado no computador. É por isso que esse comando foi explicado primeiro. Depois de ter executado o apt-get update, basta digitar o seguinte comando para instalar os pacotes desejados: apt-get install nomedoprograma

Page 12: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

12

Por exemplo, suponha que você queira instalar o cliente de e-mail Mozilla Thunderbird. Para isso, basta dar o comando: apt-get install mozilla-thunderbird Quando esse comando é executado, o APT procura nos repositórios os pacotes correspondentes e os instala imediatamente após baixá-los. Caso o programa necessite de um outro pacote, o APT o procurará e perguntará se você deseja instalá-lo, no que você deverá responder com Y (sim) ou N (não), como mostra a situação abaixo: 0 packages upgraded, 6 newly installed, 0 to remove and 2 not upgraded. Need to get 6329kB of archives. After unpacking 14.1MB will be used. Do you want to continue? [Y/n] Removendo pacotes com o apt-get Se você não quer mais utilizar um determinado programa, pode desinstalá-lo através do comando apt-get. Para isso, basta digitar: apt-get remove nomedoprograma Por exemplo, suponha que você queira desinstalar o Mozilla Thunderbird. O comando ficará então da seguinte forma: apt-get remove mozilla-thunderbird É importante destacar que o comando acima remove o programa, mas mantém os arquivos de configuração, caso estes existam. Para uma desinstalação total do programa, incluindo arquivos extras, deve-se usar o comando: apt-get --purge remove nomedoprograma

Atualizando pacotes com o apt-get Versões novas de programas são lançadas periodicamente por conterem correções de segurança, disponibilizarem novos recursos ou por executarem de forma melhor. Com o comando apt-get é possível obter e instalar versões mais novas de pacotes. Para isso basta digitar o comando: apt-get -u upgrade O parâmetro -u serve para o apt-get mostrar os pacotes que estão sendo atualizados, portanto, seu uso é opcional. Um detalhe importante: na atualização de pacotes, também é importante executar antes o comando apt-get update. Descobrindo nomes de pacotes

Page 13: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

13

Você viu que é necessário conhecer o nome de um pacote para poder instalá-lo. Em muitos casos, o nome segue a mesma denominação do aplicativo. Por exemplo, se você quer instalar o programa para bate-papo XChat, basta digitar: apt-get install xchat Entretanto, nem sempre o nome do pacote é trivial e muitas vezes não sabemos sequer o nome do programa, apenas estamos à procura de um software que atenda a uma determinada necessidade. O que fazer então? No APT pode-se usar o seguinte comando: apt-cache search termo Por exemplo, suponha que você queira procurar jogos para o Linux. O comando a ser usado é: apt-cache search games Ao fazer essa pesquisa, o APT mostrará uma lista dos pacotes encontrados exibindo seus respectivos nomes seguidos de uma descrição, como mostra o exemplo abaixo:

Se você quer ter uma descrição mais detalhada de um dos pacotes listados, basta digitar o seguinte comando: apt-cache show nomedopacote A imagem a seguir mostra um exemplo, onde o comando apt-cache show znes foi usado para obtermos detalhes do pacotes znes:

Page 14: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

14

É importante frisar que existem outras formas para descobrir nomes de pacotes, porém essa é uma das mais conhecidas. Uma alternativa interessante para quando você não sabe ao certo a denominação do software, é digitar as primeiras letras do nome deste e pressionar a tecla Tab duas vezes no teclado para ele auto-completar até a denominação desejada aparecer. Arquivo sources.list Você viu no início deste artigo que o arquivo sources.list indica os locais ou repositórios onde o APT deve buscar pacotes. É possível indicar vários servidores, por isso é importante entender como esse arquivo funciona para acrescentar, ou se necessário, retirar repositórios. Ao abrir o arquivo sources.list (no editor de textos de sua preferência, como o emacs, nano ou vi que vocês aprenderam a mexer acima), você encontrará algo mais ou menos semelhante a: deb http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse O sources.list contém uma lista de repositórios, sendo cada um adicionado linha por linha. O primeiro termo - deb - indica o tipo de pacote disponível naquele repositório. O termo "deb" é indicado porque esse é o tipo de arquivo usado como pacote. A alternativa é a extensão deb-src, que indica que o repositório oferece pacotes com código-fonte dos programas (útil a programadores e desenvolvedores). O termo seguinte é o endereço do servidor do repositório. Ele pode ser HTTP, FTP, file (arquivos locais), entre outros. No final da linha vem os atributos, que indicam, por exemplo, a que versão da distribuição o repositório se refere. Note que você também encontrará várias linhas com o símbolo # em seu início. Neste caso, a linha será ignorada pelo APT, tal como se não existisse, permitindo desativar temporariamente repositórios ou a inclusão de comentários com orientações.

Page 15: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

15

Você poderá obter em fóruns, em sites oficiais de distribuições que usam APT ou em listas de discussão quais são os repositórios que valem a pena serem adicionados no sources.list de seu Linux. Usuários do Debian, por exemplo, contam com o endereço www.debian.org/distrib/packages para isso. É importante não esquecer de executar o comando apt-get update após alterar esse arquivo, do contrário, o sistema irá executar a versão antiga até ser encerrado e ligado novamente. Usuários acostumados com outros sistemas operacionais costumam dizer que instalar programas no Linux é uma tarefa difícil, o que não é verdade. O APT mostra-se muito intuitivo nessa tarefa e aprender a usá-lo requer pouco esforço, mesmo porque, com ele, não é preciso visitar um determinado site, baixar os pacotes e depois instalá-los; o APT conta com milhares de programas e, por isso, resume bastante o trabalho de instalação (dependendo do caso, ela baixará o software e uma janela com botões Next/Avançar aparecerá para você prosseguir com a instalação). Caso queira obter mais informações sobre o APT, visite os seguintes sites: - www.apt-get.org; * - www.debian.org/doc/manuals/apt-howto; * - ccrma.stanford.edu/planetccrma/man/man8/apt-get.8.html. *

Page 16: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

16

FSTAB - Sua função e parâmetros

Dentre os vários arquivos de configuração do GNU/Linux, temos o FSTAB, que é um dos mais importantes para o nosso sistema funcionar.

FSTAB (File System Table) localiza-se dentro do /etc. É sem dúvida um dos arquivos de configuração mais importantes do GNU/Linux. O arquivo é lido na inicialização do sistema e é quem diz ao sistema o que montar, onde montar e os parâmetros de montagem. Outras utilizações do FSTAB é a de definir quem pode montar drives (fd0, cdrom) e facilitar a montagem de drives mapeados ou de outras partições no disco. De uma maneira geral, rapidamente concluímos que a coluna 1 é "o que montar", a coluna 2 "onde montar" e a coluna 3 o sistema de arquivos, mas e as outras colunas?

Entendendo o fstab

Entendendo o arquivo de configuração de “sistemas de arquivos” fstab.

fstab é um arquivo que indica ao nosso sistema, que partições/sistema de arquivos montar, indicando também alguma opção para o uso destas.

Este importante arquivo se encontra em:

/etc/fstab

É composto por linhas que contém a informação do sistema de arquivos para montagem, da seguinte forma:

[dispositivo] [ponto de montagem] [tipo] [opões de montagem] [dump]

[fsck]

onde:

Dispositivo: Indica o dispositivo para montar. Existem varias formas de identificar o dispositivo a ser montado.

* Pelo endereço do dispositivo:

Exemplo : /dev/cdrom ou /dev/hda1

O problema desta forma de identificação, surge com os dispositivos removíveis, o que faz que estas rotas mudem continuamente. Para solucionar isto se utilizam os seguintes mecanismos de identificação, que substituem a este.

* Pelo rótulo (label) do dispositivo: Utiliza o nome do sistemas de arquivos. O problema com esta forma é que pode haver nomes repetidos produzindo um conflito de nomes de dispositivos. Uso LABEL=etiqueta

Para obter o nome utilizamos:

ls -lF /dev/disk/by-label

Page 17: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

17

Exemplo : LABEL=Dados

# UUID Identificador Único Universal(Universally Unique Identifier): Mecanismo para dar a cada sistema de arquivos um identificador único. É feito para dificultar os conflitos nessa indentificação. Todos os sistemas de arquivos de Gnu/Linux (incluindo swap) suportan UUID. Os sistemas de arquivos FAT e NTFS não suportan UUID, mas se encontram listados em “by-uuid” com um único identificador. É o mais recomendado de todos. Se utiliza da seguinte forma: UUID=identificação.

Para obter o UUID utilizamos:

ls -lF /dev/disk/by-uuid/

Exemplo : UUID=11f5a43a-5904-47bf-845d-8d95ac8730d4

# ID de hardware: Utiliza um nome único a partir do ID do Hardware. ID=Identificação. Para obter o ID utilizamos:

ls -lF /dev/disk/by-id/

Exemplo : ID=scsi-SATA_ST340823A_6EF0VBZA

Ponto de montagem: Diretório onde se deseja encontrar o conteúdo do sistema de arquivos montado. Exemplo : /media/cdrom ou /mnt/Dados

Tipo:Indica o tipo ou classe de sistemas de arquivos: vfat (fat32 ou fat16 partições típicas de windows 98), iso9660 (cdrom). Existe uma opção que substitui o tipo, chama-se auto, e indica que o sistema deve detectar o tipo de forma automática. Isto é útil, para montar diskettes, que podem estar no formato vfat, ext2, etc. Os tipos suportados são muitos, citamos alguns:

* EXT2 : Sistema de arquivos extendido, sem registro diário (Journaling)

* EXT3 : Terceiro Sistema de arquivos estendido, com registro diário

* EXT4 : Quarto Sistema de arquivos estendido, com registro diário

* vFAT : sistema de arquivos fat32 e fat16 ; utilizados por windows

* ntfs : sistema de arquivos ntfs, utilizado por windows. Para poder escrever neste sistemas de arquivos, devemos utilizar ntfs-3g. Para isso é necessário instalar o pacote:

urpmi ntfs-3g

* NFS : Sistema de arquivos remoto (Network File System)

* ISO9660 : Sistema padrão para CD-ROM

* JFS : Sistema de arquivos com registro de IBM

* REISERFS : Sistema de arquivos com registro para Linux

Page 18: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

18

* SWAP : Espaço de intercambio para Linux

* XFS : Sistema de arquivos com registro de Silicon Graphics

* UFS : Sistema de arquivos dos Unix BSD

Para ver mais acerca dos formatos suportados, veja o man do mount.

Dump: Usa valores 0 ou 1, sendo que 1 indica que esta opção está habilitada. Esta opção habilitada, indica que deve ser feito um backup do sistema de arquivos no momento da montagem, prevenindo algum erro durante sua utilização. Em quase todos os casos esta opção não é habilitada, já que dificilmente surgem erros.

Fsck:Se utiliza para checagem dos sistemas de arquivos. Utiliza valores inteiros, os quais indicam em que ordem se realizarão estas checagens. Se colocar o valor 0, não haverá checagem do estado da partição. Quando os sistemas de arquivos se encontram num mesmo dispositivo, como num disco rígido, se deve indicar a checagem em forma sequencial (isto é um seguido do outro); em troca, quando se encontram em dispositivos separados é possível fazer a checagem de forma paralela, ou seja, dois ou mais sistemas de arquivos de uma só vez.

Opções de montagem

indica opções que se atribuirão ao dispositivo e são escritas separadas por uma vírgula. Exemplo:

rw,noauto,user

Algumas das opções mais comuns, para maiores informações veja o man de mount ;) :

auto :

Indica que se deve montar automaticamente, ou seja, no inicio do

sistema. Opção padrão.

noauto :

Ao contrario do anterior, se utiliza para indicar que o dispositivo

se montará manualmente.

user :

Permite que qualquer usuário monte o dispositivo. Isto implica dizer

que se aplica automaticamente noexec, nosuid, nodev a menos que se

indique o contrário (colocando a opção oposta). Além disso só o

usuário que montou pode desmontar.

nouser :

Como o próprio nome indica, apenas o usuário como root pode montar.

Opção padrão

users :

Idêntico ao user, a diferença é que qualquer pessoa pode desmontar,

sem importar quem o montou.

exec :

Permite a execução de arquivos binários. Opção padrão.

noexec :

Não permite a execução de binários.

ro :

Monta o sistema de arquivos apenas como leitura (rEAD-oNLY)

rw :

Monta o sistema de arquivos como leitura e escrita (rEAD-wRITE).

Page 19: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

19

sync :

A escrita/leitura se realiza de forma sincronizada, ou seja, que

estas ações se realizam de forma imediata. Não se recomenda para

memórias flash, pois podem se deteriorar ao se utilizar de forma

sincronizada.

async :

A escrita/leitura se realiza de forma não-sincronizada, ou seja, que

estas ações se realizam algum tempo depois no dispositivo. Isto pode

dar problemas no caso de um dispositivo removível quando o retiramos

de forma espontânea, pois podemos não ter dado tempo suficiente para

gravação. Opção padrão

owner:

indica que o primeiro usuário distinto de root conectado ao sistema

localmente, tem direito de montar e desmontar o dispositivo.

defaults:

Simplesmente indica que as opções mais comuns. Estas são rw, suid,

dev, exec, auto, nouser, e async.

Opções para o sistema de arquivos do tipo fat:

uid=ID_usuario :

marca o usuário indicado como dono de todos os arquivos .

gid=ID_grupo :

marca o grupo indicado como dono de todos os arquivos .

umask=Valor_Octal:

Estabelece a umask (máscara de bits de permissões não presentes)

Exemplo: umask=0 dá permissões a todos os usuários.

dmask=Valor_Octal :

Idêntico a umask, aplicado apenas a diretórios.

fmask=Valor_Octal :

Idêntico a umask, aplicado apenas aos arquivos.

uid=Id_usuario:

Com esta opção indicamos que apenas o usuário que possui o valor

especificado tenha o controle sobre os arquivos do dispositivo.

gid=Id_grupo:

Com esta opção indicamos que apenas o grupo que possui o valor

especificado tenha o controle sobre os arquivos do dispositivo.

iocharset=Valor :

Conjunto de caracteres utilizados (para a conversão entre caracteres

de 8 bits e caracteres Unicode de 16 bit). Por default se utiliza o

iso8859-1, para nós é conveniente utilizar utf8.

check=Valor_especificado :

Checagem de nomes. Existem 3 valores admitidos, cada um mais

restritivo que o outro:

r : Letras maiúsculas e minúsculas são aceitas e tratadas como

equivalentes (case-insensitive). Nomes e extensões grandes são

truncados. Os nomes terão um máximo de 8 caracteres seguido de um

ponto, e 3 caracteres para sua "extensão". Exemplo :

NomegrandedeArquivo.Nome se converte em NomeGr.Nom.

n (ormal) :

Idêntico a r, mas muitos dos caracteres especiais (*, ?, <, espaço,

etc.) não são aceitos. Opção padrão.

s (tricto) :

Igual a n, mas também não aceita caracter não suportado por ms-dos

(+, =, spaces, etc.)

Exemplos de arquivo fstab

# Entry for /dev/sda9 :

UUID=3598283c-a91d-11dd-ad61-1d82df62ce44 / ext3 relatime 1 1

Page 20: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

20

# Entry for /dev/sda7 :

UUID=17cdc5e4-6e7d-451e-b3ff-99dd44331005 /home ext3 relatime 1 2

/dev/cdrom /media/cdrom auto

umask=0,users,iocharset=utf8,noauto,ro,exec 0 0

/dev/fd0 /media/floppy auto

umask=0,users,iocharset=utf8,noauto,exec,flush 0 0

# Entry for /dev/sda5 :

UUID=48ED-EBCD /mnt/Datos vfat user,umask=0,iocharset=utf8 0 0

# Entry for /dev/sda6 :

UUID=288d88df-c9fc-45de-b77c-a150c64b4ea8 /mnt/Mp3 ext3

defaults,noatime 1 3

# Entry for /dev/sda1 :

UUID=80307DAB307DA8B4 /mnt/WinXP ntfs-3g defaults 0 0

# Entry for /dev/sda8 :

UUID=f50d9280-9610-11dd-a21a-cb2eb93c3aed swap swap defaults 0 0

# Entry for /dev/sdb2 :

LABEL=MDV09_0 / ext3 relatime 1 1

# Entry for /dev/sda7 :

LABEL=HOME /home xfs relatime 1 2

/dev/cdrom /media/cdrom auto

umask=0,users,iocharset=utf8,noauto,ro,exec 0 0

# Entry for /dev/sdc1 :

UUID=443F-9817 /mnt/win_c vfat umask=0,iocharset=utf8 0 0

# Entry for /dev/sda1 :

UUID=1437-98EE /mnt/win_d vfat umask=0,iocharset=utf8 0 0

# Entry for /dev/sda6 :

LABEL=OPT /opt xfs relatime 1 2

# Entry for /dev/sdc6 :

LABEL=V-BOX /opt/vbox jfs auto,users 1 2

none /proc proc defaults 0 0

# Entry for /dev/sda5 :

LABEL=USR_LOCAL /usr/local xfs relatime 1 2

# Entry for /dev/sda3 :

UUID=b9d1afdf-d6e4-4f69-992f-8a926a9ef2c2 swap swap defaults 0 0

Como se vê, podemos colocar linhas de comentários, colocando o caracter # antes do texto.

Page 21: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

21

Montando e Desmontando Dispositivos

Uma das questões que mais interessam aos usuários iniciantes de Linux é a utilização de periféricos, estudaremos os comandos mount e umount, que são os responsáveis pela montagem dos dispositivos. Mas, antes de

montar qualquer dispositivo, precisamos saber quais dispositivos estão ligados a que. Primeiramente, os arquivos que mapeiam dispositivos estão no diretório /dev da estrutura de diretórios de seu Linux. Mostraremos a seguir os dispositivos que são mais freqüentemente utilizados para montagem. Temos na Tabela a baixo os dispositivos mais usados no cotidiano, com seus respectivos periféricos.

Arquivo Mapeia qual periférico

Hda ou Sda Primeiro disco rígido instalado na máquina (master).

hdaX A partição X do primeiro disco rígido instalado. hda1 mapeia a primeira partição do disco.

hdb O segundo disco rígido/CD-ROM/Pen-drive instalado na máquina (slave).

hdbX A partição X do primeiro disco rígido instalado. hdb1 mapeia a primeira partição do disco.

fd0 O primeiro drive de disquete.

fd1 O segundo drive de disquete.

cdrom O drive de CD-ROM instalado na máquina (caso exista).

Vale aqui uma lembrança: em hd?X X pode variar de acordo com o número de partições existentes no disco rígido e ? pode variar de acordo com o número de discos rígidos instalados na máquina. Vejamos agora a sintaxe do comando mount que permite a utilização do periférico:

# mount [ -t tipo ] dispositivo diretório

No exemplo a seguir, iremos demonstrar o processo para a montagem de um disquete formatado para Windows:

# mount -t vfat /dev/fd0 /mnt/floppy Este comando instrui o kernel para que ele inclua o sistema de arquivos encontrado em /dev/fd0, o qual é do tipo vfat, disponibilizando-o no diretório /mnt/floppy. Caso haja algum arquivo no diretório onde foi montado o disquete (ou outro sistema de arquivos), esse conteúdo ficará indisponível enquanto o sistema de arquivos estiver montado. O diretório /mnt/floppy referenciará o diretório raiz ("/") do sistema de arquivos montado. Existem vários tipos de dispositivos que podem ser montados. Na Tabela abaixo constam os tipos mais utilizados.

Page 22: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

22

Tipo Descrição

vfat Disquete formatado para Windows®.

ext2 HD formatado para Linux.

ext3 HD formatado para Linux.

iso9660 CD-ROM.

Nota: É importante não remover um dispositivo (físico), como um disquete, cd ou pen-drive de seu drive, enquanto ele permanecer montado. Existem operações que são efetuadas quando um dispositivo é desmontado. Uma delas é a gravação de dados que possam estar no buffer de armazenamento esperando ser gravados. Depois de montarmos um sistema de arquivos podemos utilizá-lo normalmente. Ao final da utilização do sistema de arquivos, devemos desmontá-lo para que possamos, por exemplo, remover o CD do drive. Para isso utilizamos o comando umount, que desmonta o sistema de arquivos. A sintaxe do comando umount é: # umount dispositivo

ou então:

# umount diretório

Normalmente, apenas o superusuário (root) poderá montar e desmontar um sistema de arquivos.

Page 23: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

23

Backup com o DD

O DD é uma ferramenta para cópia de dados. Um comentário até singelo, para uma ferramenta que oferece tantas possibilidades. De qualquer forma, somente uma definição simples, poderia abranger as possibilidades de uso

desta aplicação. Com DD é possível extrair o conteúdo de um disco todo, ou de toda uma partição, ou de parte de uma partição, ou disco. É possível fazer a cópia da tabela de Particionamento, fazer cópia da MBR, entre outras coisas. Mas quais sistemas de arquivos, e/ou sistemas operacionais o DD suporta? Bom. Nesse caso a resposta é simples. qualquer um . O DD não reconhece sistemas de arquivos, tampouco reconhece arquivos. A cópia é feita Bit por Bit. É lenta, porém extremamente confiável. Através de um sistema operacional com DD, é possível criar uma imagem, ou clonar discos, fazer backups de qualquer outro sistema operacional, independente de seu sistema de arquivos, o que o torna uma ferramenta excepcional, e praticamente indispensável para quem visa segurança de seus dados. Porém, uma clonagem bit a bit, tem seus empecilhos. Um deles, é o tamanho das imagens. Como DD faz uma cópia bit a bit dos dados, nem os clusters em branco do disco são perdoados. Logo, se você tem uma partição com 20Gb, e deseja fazer um backup dela, se prepare para gastar 20Gb de outro disco ou outra fonte de armazenamento, mesmo que em sua partição, você tenha utilizado 500MB, pois a imagem terá o tamanho idêntico de sua origem. O problema, é quando se pega um disco extremamente grande (o que hoje em dia, não é mais novidade, nem exclusividade para ninguém). Discos de 200GB ou maiores já são comuns. DD não oferece suporte a compactação, e nem deveria, pois sua função é apenas copiar dados. Como compactar uma imagem nesse caso? Uma saída poderia ser gerar uma imagem do disco com DD, depois compactá-la. O que não ajudaria muito nesse caso, pois de qualquer forma, você precisaria de espaço temporário suficiente para alocar a imagem bruta, e mais espaço para ir alocando a compactada, até então, poder liberar espaço no disco. Para solucionar esse problema, basta utilizarmos alguns "pipes". Os setores em branco no disco, normalmente são bits repetitivos, sendo assim, a compactação é EXTREMA. Aliás, na maioria das vezes, o espaço consumido por esses setores sem uso, é descartado, e ainda se ganha bytes sobre as áreas em uso. Suponhamos um disco de 6GB, com 2GB em uso, e 4 livres. Sua imagem ficaria com mais ou menos 1.7GB. Veremos agora, a sintaxe do DD para uma cópia entre discos. Suponhamos que a origem, seja o hda, e o destino, o hdb dd if=/dev/hda of=/dev/hdb Este comando, realiza a cópia de todo conteúdo do disco hda para o hdb. O disco de destino precisa ser igual, ou maior que o de origem, obviamente.É possível copiar partições de um disco para outro também: dd if=/dev/hda1 of=/dev/hdb1 ( ou hdb2, ou qualquer partição de destino já presente no disco). Podemos também extrair para um arquivo, e criar uma imagem do disco. dd if=/dev/hda of=/backups/backup_17-04-2006.img É este o caso, onde é interessante comprimirmos a imagem.

Page 24: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

24

Caso não seja passado nenhum parâmetro de entrada ou de saída dos dados para o DD, ele assume stdin e stdout respectivamente. ( Entrada e saída padrão ). Neste caso, podemos manipular para onde serão destinados os dados. Podemos assim, criar facilmente uma imagem compactada no tempo de sua criação. dd if=/dev/hda | gzip > /backups/backup_17-04-2006.img.gz dd if=/dev/hda - origem dos dados

| - Desviando a saída diretamente para uma aplicação no caso o gzip, que compactará os dados > - Desviando a saída do Gzip para um arquivo local, que será a imagem compactada. Para restaurar a imagem faremos o processo inverso. gzip -dc /backups/backup_17-04-2006.img.gz | dd of=/dev/hda gzip -dc - descompacta a imagem e joga a saída em stdout | direciona a saída para o DD dd of=/dev/hda - A saída dos dados, sera o disco hda. Utilizando dos pipes, abrimos varias outras possibilidades. Poderemos até dividir as imagens, em arquivos de tamanho de nossa escolha, evitando assim, problemas com o sistema de arquivos onde serão armazenados. Para isso utilizamos o aplicativo Split. dd if=/dev/hda | gzip -c | split -b 2000m - /backup/backup_17-04-2006.part. gzip -c para ir compactando e jogando a saída na stdout. Com pipe, redirecionamos para o split, que fará arquivos de 2000Mbytes. O sinal de " - " antes do arquivo de destino, serve para que o split colha os dados da stdin, se não, tentaria obtê-los do arquivo de destino ( que nem existiria ainda ). Para extrair a imagem, basta o invertermos o processo, porém, vamos usar o cat para ler os arquivos e direcionarmos a saída para o gzip descompactar, e enviar ao DD, que restaurará no disco. cat /backup/backup_17-04-2006.part.* | gzip -dc | dd of=/dev/hda

Os arquivos serão abertos em sequência, enviados ao gzip que enviará ao DD, e assim, será restaurada a imagem. Assim teremos mais maleabilidade no trabalho com imagens no DD. Um sistema excelente, combinado com outras ferramentas, para ficar ainda melhor. Só uma palhinha: Para fazer uma imagem da MBR do sistema com DD: dd if=/dev/hda of=/backups/hda.boot.mbr bs=512 count=1

para restaurar dd if=/backups/hda.boot.mbr of=/dev/hda bs=512 count=1

Page 25: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

25

Compactadores em Linux

Os Compactadores são programas que diminuem o tamanho de um arquivo (ou arquivos) através da substituição de caracteres repetidos. Para entender melhor como eles funcionam, veja o próximo exemplo:

compactadores compactam e deixam arquivos compactados.

-- após a compactação da frase --

%dores %m e deixam arquivos %dos

O que aconteceu realmente foi que a palavra compacta se encontrava 3 vezes na frase acima, e foi substituída por um sinal de %. Para descompactar o processo seria o contrário: Ele substituiria % por compacta e nós temos a frase novamente restaurada. Você deve ter notado que o tamanho da frase compactada caiu quase pela metade. A quantidade de compactação de um arquivo é chamada de taxa de compactação. Assim se o tamanho do arquivo for diminuído a metade após a compactação, dizemos que conseguiu uma taxa de compactação de 2:1 (lê-se dois para um), se o arquivo diminuiu 4 vezes, dizemos que conseguiu uma compactação de 4:1 (quatro para um) e assim por diante. Para controle dos caracteres que são usados nas substituições, os programas de compactação mantém cabeçalhos com todas as substituições usadas durante a compactação. O tamanho do cabeçalho pode ser fixo ou definido pelo usuário, depende do programa usado na compactação. Este é um exemplo bem simples para entender o que acontece durante a compactação, os programas de compactação executam instruções muito avançadas e códigos complexos para atingir um alta taxa de compactação. Observações:

• Não é possível trabalhar diretamente com arquivos compactados! É necessário descompactar o arquivo para usa-lo. Note que alguns programas atualmente suportam a abertura de arquivos compactados, mas na realidade eles apenas simplificam a tarefa descompactando o arquivo, abrindo e o recompactando assim que o trabalho estiver concluído.

• Arquivos de texto tem uma taxa de compactação muito melhor que arquivos binários, porque possuem mais caracteres repetidos. É normal atingir taxas de compactação de 10 para 1 ou mais quando se compacta um arquivo texto. Arquivos binários, como programas, possuem uma taxa de compactação média de 2:1.

• Note que também existem programas compactadores especialmente desenvolvidos para compactação de músicas, arquivos binários, imagens, textos.

Tipos de compactação

Existem basicamente dois tipos de compactação, a compactação sem perdas e a compactação com perdas. Os exemplos a seguir tentam explicar de forma simples os conceitos envolvidos.

Page 26: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

26

A compactação sem perdas, como o próprio nome diz não causa nenhuma perda nas informações contidas no arquivo. Quando você compacta e descompacta um arquivo, o conteúdo é o mesmo do original. A compactação com perdas é um tipo específico de compactação desenvolvido para atingir altas taxas, porém com perdas parciais dos dados. É aplicada a tipos de arquivos especiais, como músicas e imagens ou arquivos que envolvam a percepção humana. Sabe-se que o ouvido humano não é tão sensível a determinados sons e freqüências, então a compactação de um arquivo de música poderia deixar de gravar os sons que seriam pouco percebidos, resultando em um arquivo menor. Uma compactação do tipo ogg ou mp3 utiliza-se destes recursos. O arquivo resultante é muito menor que o original, porém alguns dados sonoros são perdidos. Você só notaria se estivesse reproduzindo a música em um equipamento de alta qualidade e se tivesse um ouvido bem aguçado. Para efeitos práticos, você está ouvindo a mesma música e economizando muito espaço em disco. Outro exemplo de compactação com perdas são as imagens jpg. Imagine que você tem uma imagem com 60000 tons de cor diferentes, mas alguns tons são muito próximos de outros, então o compactador resume para 20000 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. Exemplos de extensões utilizadas em imagens compactadas são jpg, png, gif. Apesar das vantagens da grande taxa de compactação conseguida nos processos com perdas, nem sempre podemos utilizá-lo. Quando compactamos um texto ou um programa, não podemos ter perdas, senão o nosso texto sofre alterações ou o programa não executa. Nem mesmo podemos tem perdas quando compactamos imagens ou musicas que serão utilizadas em processos posteriores de masterização, mixagem ou impressão em alta qualidade.

Extensões de arquivos compactados

As extensões identificam o tipo de um arquivo e assim o programa o programa necessário para trabalhar com aquele tipo de arquivo. Existem dezenas de extensões que identificam arquivos compactados. Quando um arquivo (ou arquivos) é compactado, uma extensão correspondente ao programa usado é adicionada ao nome do arquivo (caso o arquivo seja compactado pelo gzip receberá a extensão .gz, por exemplo). Ao descompactar acontece o contrário: a extensão é retirada do arquivo. Abaixo segue uma listagem de extensões mais usadas e os programas correspondentes:

• .gz - Arquivo compactado pelo gzip. Use o programa gzip para descompacta-lo. .bz2 - Arquivo compactado pelo bzip2. Use o programa bzip2 para descompacta-lo.

• .Z - Arquivo compactado pelo programa compress. Use o programa uncompress para descompacta-lo.

• .zip - Arquivo compactado pelo programa zip. Use o programa unzip para descompacta-lo.

• .rar - Arquivo compactado pelo programa rar. Use o programa rar para descompacta-lo.

Page 27: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

27

• .tar.gz - Arquivo compactado pelo programa gzip no utilitário de arquivamento tar. Para descompacta-lo, você pode usar o gzip e depois o tar ou somente o programa tar usando a opção -z..tgz - Abreviação de .tar.gz.

• .tar.bz2 - Arquivo compactado pelo programa bzip2 no utilitário de arquivamento tar. Para descompacta-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 descompacta-lo, você pode usar o uncompress e depois o tar ou somente o programa tar usando a opção -Z.

gzip

É praticamente o compactador padrão do GNU/Linux, possui uma ótima taxa de compactação e velocidade. A extensão dos arquivos compactados pelo gzip é a .gz, na versão para DOS, Windows NT é usada a extensão .z.

gzip [opções] [arquivos]

Onde:

arquivos

Especifica quais arquivos serão compactados pelo gzip. Caso seja usado um -, será assumido a entrada padrão. Curingas podem ser usados para especificar vários arquivos de uma só vez (veja Curingas, Seção 2.3).

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 gzip.

-r

Compacta diretórios e sub-diretórios.

-c [arquivo]

Descompacta o arquivo para a saída padrão.

Page 28: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

28

-t [arquivo]

Testa o arquivo compactado pelo gzip.

-[num], --fast, --best

Ajustam a taxa de compactação/velocidade da compactação. Quanto melhor a taxa menor é a velocidade de compactação 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.

O uso da opção -[número] permite especificar uma compactação individualmente usando números entre 1 (menor compactação) e 9 (melhor compactação). É útil para buscar um bom equilibro entre taxa de compactação/velocidade (especialmente em computadores muito lentos).

Quando um arquivo é compactado pelo gzip, é automaticamente acrescentada a extensão .gz ao seu nome.

O gzip também reconhece arquivos compactados pelos programas zip, compress, compress -H e pack. As permissões de acesso dos arquivos são também armazenadas no arquivo compactado.

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.

zip

Utilitário de compactação compatível com pkzip (do DOS) e trabalha com arquivos de extensão .zip. Possui uma ótima taxa de compactação e velocidade no processamento dos arquivos compactados (comparando-se ao gzip).

zip [opções] [arquivo-destino] [arquivos-origem]

Onde:

arquivo-destino

Nome do arquivo compactado que será gerado.

arquivos-origem

Page 29: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

29

Arquivos/Diretórios que serão compactados. Podem ser usados curingas para especificar mais de um arquivo de uma só vez (veja Curingas, Seção 2.3).

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

Somente substitui um arquivo compactado existente dentro do arquivo .zip somente se a versão é 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 danificado.

-[NUM]

Ajusta a qualidade/velocidade da compactação. Pode ser especificado um número de 1 a 9. O 1 permite mínima compactação e máxima velocidade, 9 permite 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

Page 30: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

30

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]. Ele é armazenado sem compactação no arquivo .zip, muito útil para uso com arquivos já compactados.

Caso sejam especificados diversas extensões de arquivos, elas devem ser separadas por : - Por exemplo, zip -n .zip:.tgz arquivo.zip *.txt.

-q

Não mostra mensagens durante a compactação do arquivo.

-u

Atualiza/adiciona arquivos ao arquivo .zip

-X

Não armazena detalhes de permissões, UID, GID e datas 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:

Page 31: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

31

• 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.

unzip

Descompacta arquivos .zip criados com o programa zip. Este programa também é compatível com arquivos compactados pelo pkzip do DOS.

unzip [opções] [arquivo.zip] [arquivos-extrair] [-d

diretório]

Onde:

arquivo.zip

Nome do arquivo que deseja descompactar. Podem ser usados curingas para especificar mais de um arquivo para ser descompactado.

arquivos-extrair

Nome dos arquivos (separados por espaço) que serão descompactados do arquivo .zip. Caso não seja especificado, é assumido * (todos os arquivos serão descompactados).

Se for usado -x arquivos, os arquivos especificados não serão descompactados. O uso de curingas é permitido.

-d diretório

Diretório onde os arquivos serão descompactados. Caso não for especificado, os arquivos serão descompactados no diretório atual.

opções -c

Descompacta os arquivos para stdout (saída padrão) ao invés de criar arquivos. Os nomes dos arquivos também são mostrados (veja a opção -p).

-f

Page 32: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

32

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]. CUIDADO! qualquer usuário conectado em seu sistema pode ver a senha digitada na linha de comando digitada.

-p

Descompacta os arquivos para stdout (saída padrão) ao invés de criar arquivos. Os nomes dos arquivos não são mostrados (veja a opção -c).

-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.

Page 33: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

33

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.

tar

Na verdade o tar não é um compactador e sim um "arquivador" (ele junta vários arquivos em um só), mas pode ser usado em conjunto com um compactar (como o gzip ou zip) para armazena-los compactados. O tar também é muito 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 tar junto com um programa de compactação (gzip (.gz), bzip2 (.bz2) e compress (.Z).

tar [opções] [arquivo-destino] [arquivos-origem]

Onde:

arquivo-destino

É o nome do arquivo de destino. Normalmente especificado com a extensão .tar caso seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactação (usando a opção -z).

arquivos-origem

Especifica quais arquivos/diretórios serão compactados.

opções

-c, --create

Cria um novo arquivo .tar

-t, --list

Lista o conteúdo de um arquivo .tar

-u, --update

Page 34: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

34

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.

-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.

Page 35: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

35

-W, --verify

Tenta verificar o arquivo gerado pelo tar após grava-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.

A extensão precisa ser especificada no arquivo de destino para a identificação correta:

• Arquivos gerados pelo tar precisam ter a extensão .tar • Caso seja usada a opção -j para compactação, a extensão deverá ser .tar.bz2 • Caso seja usada a opção -z para compactação, a extensão deverá ser .tar.gz

ou .tgz • Caso seja usada a opção -Z para a compactação, a extensão deverá ser .tar.Z

ou .tgZ

É importante saber qual qual o tipo de compactador usado durante a geração do arquivo .tar pois será necessário especificar a opção apropriada para descompacta-lo Exemplos:

• tar -cf index.txt.tar index.txt - Cria um arquivo chamado index.txt.tar que armazenará o arquivo index.txt. Você 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.

Page 36: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

36

• 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 chama-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.

bzip2

É um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactação em arquivos texto se comparado aos já existentes (em conseqüência sua velocidade de compactação também é menor; quase duas vezes mais lento que o gzip). Suas opções são praticamente as mesmas usadas no gzip e você também pode usa-lo da mesma forma. A extensão dos arquivos compactados pelo bzip2 é a .bz2

bzip2 [opções] [arquivos]

Onde:

arquivos

Especifica quais arquivos serão compactados pelo bzip2. Caso seja usado um -, 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

Page 37: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

37

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

Ajustam a taxa de compactação/velocidade da compactação. Quanto melhor a taxa menor é a velocidade de compactação 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.

O uso da opção -[número] permite especificar uma compactação individualmente usando números entre 1 (menor compactação) e 9 (melhor compactação). É útil para buscar um bom equilibro entre taxa de compactação/velocidade (especialmente em computadores muito lentos).

Quando um arquivo é compactado pelo bzip2, é automaticamente acrescentada a extensão .bz2 ao seu nome. As permissões de acesso dos arquivos são também armazenadas no arquivo compactado.

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.

rar

Page 38: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

38

rar é um compactador desenvolvido por Eugene Roshal e possui versões para GNU/Linux, DOS, Windows, OS/2 e Macintosh. Trabalha com arquivos de extensão .rar e permite armazenar arquivos compactados em vários disquetes (múltiplos volumes). Se trata de um produto comercial, mas decidi coloca-lo aqui porque possui boas versões Shareware e pode ser muito útil em algumas situações.

rar [ações] [opções] [arquivo-destino.rar] [arquivos-

origem]

Onde:

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

Page 39: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

39

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 localiza-lo em seu sistema.

opções o+

Substitui arquivos já existentes sem perguntar

o-

Não substitui arquivos existentes

sfx

Cria arquivos auto-extrácteis. 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. Note que este processo requer que o arquivo default.sfx esteja presente no diretório home do usuário. Use o comando find para localiza-lo em seu sistema.

y

Assume sim para todas as perguntas

r

Page 40: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

40

Inclui sub-diretórios no arquivo compactado

x [ARQUIVO]

Processa tudo menos o [ARQUIVO]. Pode ser usados 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. CUIDADO, pessoas conectadas em seu sistema podem capturar a linha de comando facilmente e descobrir sua senha.

m [0-5]

Ajusta a taxa de compactação/velocidade de compactação. 0 não faz compactação alguma (mais rápido) somente armazena os arquivos, 5 é o nível que usa mais compactação (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]

Page 41: Editor de Textos Vi (Vim) Visual I - Blog do Doug | …§ão, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais: Modo de inserção e de comandos

41

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.

Os arquivos gerados pelo rar do GNU/Linux podem ser usados em outros sistemas operacionais, basta ter o rar instalado. Quando é usada a opção -v para a criação de múltiplos volumes, a numeração dos arquivos é feita na forma: arquivo.rar, arquivo.r00, arquivo.r01, etc, durante a descompactação os arquivos serão pedidos em ordem. Se você receber a mensagem cannot modify volume durante a criação de um arquivo .rar, provavelmente o arquivo já existe. Apague o arquivo existente e tente novamente.

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 • 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 grava-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 precisar-mos 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.