Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
103.8 Lição 1
Tópico 101: Arquitetura de Sistema
101.1 Identificar e editar configurações de hardware
  • 101.1 Lição 1
101.2 Início (boot) do sistema
  • 101.2 Lição 1
101.3 Alternar runlevels/boot targets, desligar e reiniciar o sistema
  • 101.3 Lição 1
Tópico 102: Instalação do Linux e administração de Pacotes
102.1 Dimensionar partições de disco
  • 102.1 Lição 1
102.2 Instalar o gerenciador de inicialização
  • 102.2 Lição 1
102.3 Controle de bibliotecas compartilhadas
  • 102.3 Lição 1
102.4 Utilização do sistema de pacotes Debian
  • 102.4 Lição 1
102.5 Utilização do sistema de pacotes RPM e YUM
  • 102.5 Lição 1
102.6 Linux virtualizado
  • 102.6 Lição 1
Tópico 103: Comandos GNU e Unix
103.1 Trabalhar na linha de comando
  • 103.1 Lição 1
  • 103.1 Lição 2
103.2 Processar fluxos de texto usando filtros
  • 103.2 Lição 1
103.3 Gerenciamento básico de arquivos
  • 103.3 Lição 1
  • 103.3 Lição 2
103.4 Fluxos, pipes (canalização) e redirecionamentos de saída
  • 103.4 Lição 1
  • 103.4 Lição 2
103.5 Criar, monitorar e finalizar processos
  • 103.5 Lição 1
  • 103.5 Lição 2
103.6 Modificar a prioridade de execução de um processo
  • 103.6 Lição 1
103.7 Procurar em arquivos de texto usando expressões regulares
  • 103.7 Lição 1
  • 103.7 Lição 2
103.8 Edição básica de arquivos com o vi
  • 103.8 Lição 1
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
104.1 Criar partições e sistemas de arquivos
  • 104.1 Lição 1
104.2 Manutenção da integridade de sistemas de arquivos
  • 104.2 Lição 1
104.3 Controle da montagem e desmontagem dos sistemas de arquivos
  • 104.3 Lição 1
104.5 Controlar permissões e propriedades de arquivos
  • 104.5 Lição 1
104.6 Criar e alterar links simbólicos e hardlinks
  • 104.6 Lição 1
104.7 Encontrar arquivos de sistema e conhecer sua localização correta
  • 104.7 Lição 1
How to get certified
  1. Tópico 103: Comandos GNU e Unix
  2. 103.8 Edição básica de arquivos com o vi
  3. 103.8 Lição 1

103.8 Lição 1

Certificação:

LPIC-1

Versão:

5.0

Tópico:

103 Comandos GNU e Unix

Objetivo:

103.8 Edição básica de arquivos

Lição:

1 de 1

Introdução

Na maioria das distribuições Linux, o vi — abreviatura de “visual” — já vem pré-instalado e é o editor padrão do ambiente shell. O vi é um editor de texto interativo, que mostra o conteúdo do arquivo na tela à medida que ele é editado. Como tal, permite ao usuário mover-se e fazer modificações em qualquer parte do documento. No entanto, ao contrário dos editores visuais de uma área de trabalho gráfica, o editor vi é um aplicativo do shell com atalhos de teclado para todas as tarefas de edição.

Uma alternativa ao vi, chamada vim (vi improved), é algumas vezes usada como um substituto moderno do vi. Dentre outras melhorias, o vim oferece suporte para realce de sintaxe, desfazer/refazer multinível e edição de documentos múltiplos. Embora tenha mais recursos, o vim é totalmente compatível com as versões anteriores do vi, sendo ambos indistinguíveis para a maioria das tarefas.

A maneira padrão de iniciar o vi é fornecer a ele um caminho para um arquivo como parâmetro. Para pular diretamente para uma linha específica, o número dela deve ser informado com um sinal de mais, como em vi +9 /etc/fstab para abrir /etc/fstab/ e posicionar o cursor na 9ª linha. Sem um número, o sinal de mais sozinho coloca o cursor na última linha.

A interface do vi é muito simples: todo o espaço disponível na janela do terminal é ocupado para apresentar um arquivo, normalmente informado como um argumento de comando, ao usuário. As únicas dicas visuais são uma linha de rodapé mostrando a posição atual do cursor e um til ~ indicando onde o arquivo termina. Existem diferentes modos de execução para o vi nos quais o comportamento do programa muda. Os mais comuns são: modo de inserção e modo normal.

Modo de inserção

O modo de inserção é bem direto: o texto vai aparecendo na tela conforme é digitado no teclado. É o tipo de interação que a maioria dos usuários espera de um editor de texto, mas não é assim que o vi apresenta um documento logo de cara. Para entrar no modo de inserção, o usuário precisa executar um comando de inserção no modo normal. A tecla Esc conclui o modo de inserção e retorna ao modo normal, o modo padrão do vi.

Note

Se quiser saber mais sobre os outros modos de execução, abra o vi e digite:

:help vim-modes-intro

Modo normal

O modo normal — também conhecido como modo de comando — é como o vi inicia por padrão. Neste modo, as teclas do teclado são associadas a comandos de navegação e a tarefas de manipulação de texto. A maioria dos comandos neste modo são teclas únicas. Eis algumas das teclas e suas funções no modo normal:

0, $

Ir para o início e o fim da linha.

1G, G

Ir para o início e o fim do documento.

(, )

Ir para o início e o fim da frase.

{, }

Ir para o início e o fim do parágrafo.

w, W

Pular palavra e pular palavra incluindo a pontuação.

h, j, k, l

Pra esquerda, pra baixo, pra cima, pra direita.

e or E

Ir para o fim da palavra atual.

/, ?

Pesquisa para a frente e para trás.

i, I

Entrar no modo de inserção antes da posição atual do cursor e no início da linha atual.

a, A

Entrar no modo de inserção após a posição atual do cursor e no final da linha atual.

o, O

Adicionar uma nova linha e entrar no modo de inserção na próxima linha ou na linha anterior.

s, S

Apagar o caractere sob o cursor ou a linha inteira e entrar no modo de inserção.

c

Alterar o(s) caractere(s) sob o cursor.

r

Substituir o caractere sob o cursor.

x

Excluir os caracteres selecionados ou o caractere sob o cursor.

v, V

Iniciar uma nova seleção com o caractere atual ou a linha inteira.

y, yy

Copia (arranca) o(s) caracter(es) ou a linha inteira.

p, P

Colar o conteúdo copiado, antes ou depois da posição atual.

u

Desfazer a última ação.

Ctrl-R

Refazer a última ação.

ZZ

Fechar e salvar.

ZQ

Fechar e não salvar.

Se precedido por um número, o comando será executado o mesmo número de vezes. Por exemplo, pressione 3yy para copiar a linha atual mais as duas seguintes, pressione d5w para deletar a palavra atual e as 4 palavras seguintes, e assim por diante.

A maioria das tarefas de edição são combinações de vários comandos. Por exemplo, a sequência de teclas vey é usada para copiar uma seleção começando na posição atual até o final da palavra atual. A repetição de comandos também pode ser usada em combinações, então v3ey copiaria uma seleção começando na posição atual até o final da terceira palavra a partir de lá.

O vi pode organizar o texto copiado em registros, permitindo manter conteúdos distintos ao mesmo tempo. Um registro é especificado por um caractere precedido por " e, uma vez criado, é mantido até o final da sessão atual. A seqüência de teclas "ly cria um registro contendo a seleção atual, que estará acessível através da tecla l . Então, o registro l pode ser colado com "lp.

Também existe uma maneira de definir marcas personalizadas em posições arbitrárias ao longo do texto, sendo assim mais fácil alternar rapidamente entre elas. As marcas são criadas pressionando a tecla m e, em seguida, uma tecla para endereçar a posição atual. Feito isso, o cursor voltará para a posição marcada quando ' seguido pela tecla escolhida for pressionada.

Qualquer sequência de teclas pode ser gravada como uma macro para execução futura. Podemos gravar uma macro, por exemplo, para colocar um texto selecionado entre aspas duplas. Primeiro, uma string de texto é selecionada e a tecla q é pressionada, seguida por uma tecla de registro que será associada à macro, como d. A linha recording @d aparecerá na linha de rodapé, indicando que a gravação está ativada. Presume-se que já haja algum texto selecionado, então o primeiro comando é x para remover (e copiar automaticamente) o texto selecionado. A tecla i é pressionada para inserir duas aspas duplas na posição atual, e depois Esc para retornar ao modo normal. O último comando é P, para inserir novamente a seleção excluída antes da última aspa dupla. Pressionar q novamente encerrará a gravação. Agora, uma macro que consiste na sequência de teclas x, i, "", Esc e P será executada toda vez que as teclas @d forem pressionadas no modo normal, sendo d a tecla de registro associada à macro.

No entanto, a macro estará disponível apenas durante a sessão atual. Para tornar as macros persistentes, elas devem ser armazenadas no arquivo de configuração. Como a maioria das distribuições modernas usa o vim como editor compatível com vi, o arquivo de configuração do usuário é ~/.vimrc. Dentro de ~/.vimrc, a linha let @d = 'xi"" P' define o registro d para a sequência de teclas entre aspas simples. O mesmo registro atribuído anteriormente a uma macro pode ser usado para colar sua sequência de teclas.

Comandos de dois pontos

O modo normal também suporta outro conjunto de comandos vi: os comandos de dois pontos. Os comandos de dois pontos, como o nome indica, são executados após pressionar a tecla de dois pontos : no modo normal. Os comandos de dois pontos permitem ao usuário realizar pesquisas, salvar, sair, executar comandos do shell, alterar as configurações do vi, etc. Para voltar ao modo normal, executamos o comando :visual ou pressionamos a tecla Enter sem qualquer comando. Indicamos a seguir alguns dos comandos de dois pontos mais comuns (a inicial não faz parte do comando):

:s/REGEX/TEXT/g

Substituir todas as ocorrências da expressão regular REGEX por TEXT na linha atual. Ele aceita a mesma sintaxe do comando sed, incluindo endereços.

:!

Rodar um comando do shell a seguir.

:quit or :q

Sair do programa.

:quit! or :q!

Sair do programa sem salvar.

:wq

Salvar e sair.

:exit or :x or :e

Salvar e sair, se necessário.

:visual

Voltar ao modo de navegação.

O programa vi padrão é capaz de realizar a maioria das tarefas de edição de texto, mas qualquer outro editor não-gráfico pode ser usado para editar arquivos de texto no ambiente shell.

Tip

Os usuários novatos podem ter dificuldade para memorizar todas as teclas de comando do vi de uma vez. As distribuições que adotam o vim também possuem o comando vimtutor, que usa o próprio vim para abrir um guia passo a passo das principais atividades. O arquivo é uma cópia editável que pode ser usada para praticar os comandos e se acostumar progressivamente com eles.

Editores alternativos

Os usuários não familiarizados com o vi podem ter dificuldade de adaptação a ele, pois seu funcionamento não é intuitivo. Uma alternativa mais simples é o nano do GNU, um pequeno editor de texto que oferece todos os recursos básicos de edição de texto como desfazer/refazer, realce de sintaxe, busca e substituição interativa, recuo automático, números de linha, completar palavras, bloqueio de arquivos, arquivos de backup e suporte à internacionalização. Ao contrário do vi, todas as teclas pressionadas são simplesmente inseridas no documento que está sendo editado. Os comandos no nano são dados usando a tecla Ctrl ou a tecla Meta (dependendo do sistema, Meta é Alt ou ⌘).

Ctrl-6 or Meta-A

Iniciar uma nova seleção. Também é possível criar uma seleção pressionando Shift e movendo o cursor.

Meta-6

Copiar a seleção atual.

Ctrl-K

Cortar a seleção atual.

Ctrl-U

Colar o conteúdo copiado.

Meta-U

Desfazer.

Meta-E

Refazer.

Ctrl-\

Substituir o texto na seleção.

Ctrl-T

Iniciar uma sessão de verificação ortográfica para o documento ou seleção atual.

O Emacs é outro editor de texto muito popular para o ambiente de shell. Ao passo que o texto é inserido com a digitação simples, como no nano, a navegação é auxiliada por comandos do teclado, como no vi. O Emacs inclui muitos recursos que o tornam mais do que apenas um editor de texto. Também é um IDE (ambiente de desenvolvimento integrado) capaz de compilar, executar e testar programas. O Emacs pode ser configurado como cliente de email, notícias ou RSS, tornando-o um verdadeiro pacote de produtividade.

O próprio shell executa um editor de texto padrão, normalmente o vi, sempre que necessário. É o que acontece, por exemplo, quando crontab -e é executado para editar cronjobs. O Bash usa as variáveis de sessão VISUAL ou EDITOR para encontrar o editor de texto padrão para o ambiente shell. Por exemplo, o comando export EDITOR=nano define o nano como editor de texto padrão na sessão do shell atual. Para tornar essa mudança persistente entre as sessões, o comando deve ser incluído em ~/.bash_profile.

Exercícios Guiados

  1. O vi é usado principalmente como editor de arquivos de configuração e código-fonte, onde a indentação ajuda a identificar seções de texto. Uma seleção pode ser recuada para a esquerda pressionando < e para a direita pressionando >. Quais teclas devem ser pressionadas no modo normal para recuar a seleção atual três passos para a esquerda?

  2. Uma linha inteira pode ser selecionada pressionando V no modo normal do vi. No entanto, o caractere de término da nova linha também será incluído. Quais teclas devem ser pressionadas no modo normal para selecionar a partir do caractere inicial até o caractere de nova linha, sem incluí-lo?

  3. Como o vi deve ser executado na linha de comando para abrir ~/.bash_profile e pular direto para a última linha?

  4. Quais teclas devem ser pressionadas no modo normal do vi para excluir caracteres desde a posição atual do cursor até o caractere de ponto final seguinte?

Exercícios Exploratórios

  1. O vim permite selecionar blocos de texto com largura arbitrária, não apenas seções com linhas inteiras. Ao pressionar Ctrl+V no modo normal, uma seleção é feita movendo o cursor para cima, para baixo, para a esquerda e para a direita. Usando esse método, como excluir um bloco começando no primeiro caractere da linha atual, contendo as próximas oito colunas e cinco linhas de texto?

  2. Uma sessão do vi foi interrompida por uma falha de energia inesperada. Ao reabrir o arquivo, o vi pergunta ao usuário se deseja recuperar o arquivo de troca (uma cópia automática feita pelo vi). O que o usuário deve fazer para descartar o arquivo de troca?

  3. Em uma sessão do vim, uma linha foi previamente copiada para o registro l. Qual combinação de teclas gravaria uma macro no registro a para colar a linha do registro l imediatamente antes da linha atual?

Resumo

Esta lição trata do editor de texto padrão para o ambiente shell do Linux: o editor vi. Embora intimidante para o usuário novato, o vi possui recursos que o tornam uma boa escolha para a edição técnica e não técnica de texto. A lição segue as seguintes etapas:

  • Uso básico e recursos úteis do vi.

  • O que é o vim — o vi aprimorado — e outros editores alternativos.

  • Como definir o editor de texto padrão para o ambiente do shell.

Os comandos e procedimentos abordados foram:

  • O editor vi e sua versão aprimorada vim.

  • Edição de texto básica no vi.

  • Os editores alternativos emacs e nano.

Respostas aos Exercícios Guiados

  1. O vi é usado principalmente como editor de arquivos de configuração e código-fonte, onde a indentação ajuda a identificar seções de texto. Uma seleção pode ser recuada para a esquerda pressionando < e para a direita pressionando >. Quais teclas devem ser pressionadas no modo normal para recuar a seleção atual três passos para a esquerda?

    As teclas 3<, que indicam três passos para a esquerda.

  2. Uma linha inteira pode ser selecionada pressionando V no modo normal do vi. No entanto, o caractere de término da nova linha também será incluído. Quais teclas devem ser pressionadas no modo normal para selecionar a partir do caractere inicial até o caractere de nova linha, sem incluí-lo?

    As teclas 0v$h, que significam 0 (“pular para o início de uma linha”), v (“iniciar a seleção de caracteres”), $ (“ir ao final da linha”) e h (“voltar uma posição”).

  3. Como o vi deve ser executado na linha de comando para abrir ~/.bash_profile e pular direto para a última linha?

    O comando vi + ~/.bash_profile abre o arquivo e posiciona o cursor na última linha.

  4. Quais teclas devem ser pressionadas no modo normal do vi para excluir caracteres desde a posição atual do cursor até o caractere de ponto final seguinte?

    As teclas dt., que significam d (“iniciar a exclusão”), t (“pular para o próximo caractere”) and . (caractere de ponto final).

Respostas aos Exercícios Exploratórios

  1. O vim permite selecionar blocos de texto com largura arbitrária, não apenas seções com linhas inteiras. Ao pressionar Ctrl+V no modo normal, uma seleção é feita movendo o cursor para cima, para baixo, para a esquerda e para a direita. Usando esse método, como excluir um bloco começando no primeiro caractere da linha atual, contendo as próximas oito colunas e cinco linhas de texto?

    A combinação 0, Ctrl-V e 8l5jd seleciona e remove o bloco correspondente.

  2. Uma sessão do vi foi interrompida por uma falha de energia inesperada. Ao reabrir o arquivo, o vi pergunta ao usuário se deseja recuperar o arquivo de troca (uma cópia automática feita pelo vi). O que o usuário deve fazer para descartar o arquivo de troca?

    Pressionar d quando solicitado pelo vi.

  3. Em uma sessão do vim, uma linha foi previamente copiada para o registro l. Qual combinação de teclas gravaria uma macro no registro a para colar a linha do registro l imediatamente antes da linha atual?

    A combinação qa"lPq, que significa q (“iniciar a gravação da macro”), a (“atribuir o registro a à macro”), "l (“selecionar o texto no registro l”), P (“colar antes da linha atual”) e q (“encerrar a gravação da macro”).

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

104.1 Criar partições e sistemas de arquivos (104.1 Lição 1)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.