Pesquisa de site

LFCS #2: Como instalar e usar Vi/Vim no Linux


Há alguns meses, a Linux Foundation lançou a certificação LFCS (Linux Foundation Certified Sysadmin) para ajudar indivíduos de todo o mundo a verificar se são capazes de realizar tarefas básicas a intermediárias de administração de sistemas em sistemas Linux.

As tarefas de administração do Linux envolvem solução de problemas e manutenção em primeira mão, além de tomadas de decisão inteligentes para saber quando é hora de levantar problemas às equipes de suporte superiores.

A série será intitulada Preparação para o LFCS (Linux Foundation Certified Sysadmin) Partes 1 a 33 e cobrirá os seguintes tópicos:

Part 1

Como usar o comando ‘Sed’ para manipular arquivos no Linux

Part 2

Como instalar e usar o Vi/Vim no Linux

Part 3

Como compactar arquivos e diretórios e localizar arquivos no Linux

Part 4

Particionando dispositivos de armazenamento, formatando sistemas de arquivos e configurando partição swap

Part 5

Montar/desmontar sistemas de arquivos locais e de rede (Samba e NFS) no Linux

Part 6

Montando Partições como Dispositivos RAID – Criando e Gerenciando Backups do Sistema

Part 7

Gerenciando processos e serviços de inicialização do sistema (SysVinit, Systemd e Upstart

Part 8

Como gerenciar usuários e grupos, permissões de arquivo e acesso Sudo

Part 9

Gerenciamento de pacotes Linux com Yum, RPM, Apt, Dpkg, Aptitude e Zypper

Part 10

Aprendendo scripts básicos de shell e solução de problemas de sistema de arquivos

Part 11

Como gerenciar e criar LVM usando os comandos vgcreate, lvcreate e lvextend

Part 12

Como explorar o Linux com documentações e ferramentas de ajuda instaladas

Part 13

Como configurar e solucionar problemas do Grand Unified Bootloader (GRUB)

Part 14

Monitore o uso de recursos dos processos do Linux e defina limites de processos por usuário

Part 15

Como definir ou modificar parâmetros de tempo de execução do kernel em sistemas Linux

Part 16

Implementando controle de acesso obrigatório com SELinux ou AppArmor no Linux

Part 17

Como definir listas de controle de acesso (ACLs) e cotas de disco para usuários e grupos

Part 18

Instalando serviços de rede e configurando inicialização automática na inicialização

Part 19

Um guia definitivo para configurar um servidor FTP para permitir logins anônimos

Part 20

Configure um servidor DNS de cache recursivo básico e configure zonas para domínio

Part 21

Como instalar, proteger e ajustar o desempenho do servidor de banco de dados MariaDB

Part 22

Como instalar e configurar o servidor NFS para compartilhamento do sistema de arquivos

Part 23

Como configurar o Apache com hospedagem virtual baseada em nome com certificado SSL

Part 24

Como configurar um firewall Iptables para permitir acesso remoto a serviços no Linux

Part 25

Como transformar um Linux em um roteador para lidar com o tráfego de forma estática e dinâmica

Part 26

Como configurar sistemas de arquivos criptografados e trocar usando a ferramenta Cryptsetup

Part 27

Como monitorar o uso do sistema, interrupções e solucionar problemas de servidores Linux

Part 28

Como configurar um repositório de rede para instalar ou atualizar pacotes

Part 29

Como auditar o desempenho, a segurança e a solução de problemas da rede

Part 30

Como instalar e gerenciar máquinas virtuais e contêineres

Part 31

Aprenda os fundamentos do Git para gerenciar projetos com eficiência

Part 32

Guia para iniciantes na configuração de endereços IPv4 e IPv6 no Linux

Part 33

Um guia para iniciantes para criar ligações e pontes de rede no Ubuntu

Este post é a Parte 2 de uma série de 33 tutoriais. Aqui nesta parte abordaremos as operações básicas de edição de arquivos e modos de compreensão no editor Vi/Vim, que são necessários para o exame de certificação LFCS.

Execute operações básicas de edição de arquivos no Vi Editor

Vi foi o primeiro editor de texto em tela cheia escrito para Unix. Embora tenha sido planejado para ser pequeno e simples, pode ser um pouco desafiador para pessoas acostumadas exclusivamente com editores de texto GUI, como o NotePad++ ou o gedit, para citar alguns. exemplos.

Para usar o Vi, devemos primeiro entender os 3 modos em que este poderoso programa opera, para depois começarmos a aprender sobre seus poderosos procedimentos de edição de texto.

Observe que a maioria das distribuições Linux modernas vem com uma variante do vi conhecida como vim (“Vi melhorado”), que suporta mais recursos do que o o vi original faz. Por esse motivo, ao longo deste tutorial usaremos vi e vim de forma intercambiável.

Se sua distribuição não tiver o Vim instalado, você poderá instalá-lo da seguinte maneira.

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

Por que devo querer aprender Vi?

Existem pelo menos 2 boas razões para aprender o editor vi.

  1. vi está sempre disponível (não importa qual distribuição você esteja usando), pois é exigido pelo POSIX.
  2. vi não consome uma quantidade considerável de recursos do sistema e nos permite realizar qualquer tarefa imaginável sem tirar os dedos do teclado.

Além disso, vi possui um manual interno muito extenso, que pode ser iniciado usando o comando :help logo após o programa ser iniciado. Este manual integrado contém mais informações do que a página de manual do vi/m.

Iniciando o Editor Vi

Para iniciar o vi, digite vi no prompt de comando.

vi

Em seguida, pressione i para entrar no modo Inserir e você poderá começar a digitar.

Outra maneira de iniciar o vi/m é.

vi filename

Isso abrirá um novo buffer (mais sobre buffers posteriormente) chamado filename, que você poderá salvar posteriormente em disco.

Compreendendo os modos Vi

O editor Vi possui vários modos, cada um servindo a um propósito distinto e permitindo que os usuários executem ações específicas.

Aqui estão os principais modos que você deve conhecer:

Modo de linha de comando Vi

No modo de comando, o vi permite ao usuário navegar pelo arquivo e inserir comandos vi, que são combinações breves e que diferenciam maiúsculas de minúsculas de um ou mais cartas. Quase todos eles podem ser prefixados com um número para repetir o comando esse número de vezes.

Por exemplo, yy (ou Y) copia toda a linha atual, enquanto 3yy (ou 3Y) copia a linha atual. toda a linha atual junto com as duas próximas linhas (3 linhas no total).

Sempre podemos entrar no modo de comando (independentemente do modo em que estamos trabalhando) pressionando a tecla Esc. O fato de no modo de comando as teclas do teclado serem interpretadas como comandos em vez de texto tende a confundir os iniciantes.

Modo ViEx

No modo ex, podemos manipular arquivos (incluindo salvar um arquivo atual e executar programas externos). Para entrar neste modo, devemos digitar dois pontos (:) no modo de comando, seguido diretamente pelo nome do comando ex-mode que precisa ser usado. Depois disso, o vi retorna automaticamente ao modo de comando.

Modo de inserção Vi

No modo inserir (a letra i é comumente usada para entrar neste modo), simplesmente inserimos texto. A maioria das teclas digitadas resulta no aparecimento de texto na tela (uma exceção importante é a tecla Esc, que sai do modo de inserção e retorna ao modo de comando).

Uso de comandos Vi

A tabela a seguir mostra uma lista de comandos vi comumente usados. Os comandos de edição de arquivo podem ser aplicados anexando o sinal de exclamação ao comando (por exemplo, :q! impõe o encerramento sem salvar).

 Key Command

 Descrição

 h or left arrow

Vá um personagem para a esquerda

 j or down arrow

Desça uma linha

 k or up arrow

Suba uma linha

 l (lowercase L) or right arrow

Vá um personagem para a direita

 H

Vá para o topo da tela

 L

Vá para a parte inferior da tela

 G

Vá para o final do arquivo

 w

Mova uma palavra para a direita

 b

Mova uma palavra para a esquerda

 0 (zero)

Vá para o início da linha atual

 ^

Vá para o primeiro caractere não vazio na linha atual

 $

Ir para o final da linha atual

 Ctrl-B

Voltar uma tela

 Ctrl-F

Avançar uma tela

 i

Inserir na posição atual do cursor

 I (uppercase i)

Inserir no início da linha atual

 J (uppercase j)

Junte-se à linha atual com a próxima (mover a próxima escalação)

 a

Anexar após a posição atual do cursor

 o (lowercase O)

Cria uma linha em branco após a linha atual

 O (uppercase o)

Cria uma linha em branco antes da linha atual

 r

Substitua o caractere na posição atual do cursor

 R

Substituir na posição atual do cursor

 x

Exclua o caractere na posição atual do cursor

 X

Exclua o caractere imediatamente antes (à esquerda) da posição atual do cursor

 dd

Cortar (para colar posteriormente) toda a linha atual

 D

Corta da posição atual do cursor até o final da linha (este comando é equivalente a d$)

 yX

Dê um comando de movimento X, copie (arranque) o número apropriado de caracteres, palavras ou linhas da posição atual do cursor

 yy or Y

Arranque (copie) toda a linha atual

 p

Colar após (próxima linha) a posição atual do cursor

 P

Colar antes (linha anterior) da posição atual do cursor

 . (period)

Repita o último comando

 u

Desfaça o último comando

 U

Desfaça o último comando na última linha. Isso funcionará enquanto o cursor ainda estiver na linha.

 n

Encontre a próxima correspondência em uma pesquisa

 N

Encontre a correspondência anterior em uma pesquisa

 :n

Próximo arquivo; quando vários arquivos são especificados para edição, este comando carrega o próximo arquivo.

 :e file

Carregue o arquivo no lugar do arquivo atual.

 :r file

Insira o conteúdo do arquivo após (próxima linha) a posição atual do cursor

 :q

Saia sem salvar as alterações.

 :w file

Grave o buffer atual em um arquivo. Para anexar a um arquivo existente, use :w >> file.

 :wq

Escreva o conteúdo do arquivo atual e saia. Equivalente a x! e ZZ

 :r! command

Execute o comando e insira a saída após (próxima linha) a posição atual do cursor.

Opções Vi

As opções a seguir podem ser úteis durante a execução do vim (precisamos adicioná-las em nosso arquivo ~/.vimrc).

echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc

  • set number mostra os números das linhas quando o vi abre um arquivo novo ou existente.
  • sintaxe ativa o realce de sintaxe (para múltiplas extensões de arquivo) para tornar o código e os arquivos de configuração mais legíveis.
  • set tabstop=4 define o tamanho da tabulação para 4 espaços (o valor padrão é 8).
  • set autoindent transporta o recuo anterior para a próxima linha.

Pesquise e substitua texto no Vi

vi tem a capacidade de mover o cursor para um determinado local (em uma única linha ou sobre um arquivo inteiro) com base nas pesquisas. Também pode realizar substituições de texto com ou sem confirmação do usuário.

Pesquisando dentro de uma linha

O comando f pesquisa uma linha e move o cursor para a próxima ocorrência de um caracter especificado na linha atual.

Por exemplo, o comando fh moveria o cursor para a próxima instância da letra h dentro da linha atual. Observe que nem a letra f nem o caractere que você está procurando aparecerão em qualquer lugar da tela, mas o caractere será destacado depois que você pressionar Enter.

Por exemplo, é isso que recebo depois de pressionar f4 no modo de comando.

Pesquisando um arquivo inteiro

Use o comando /, seguido da palavra ou frase a ser pesquisada. Uma pesquisa pode ser repetida usando a string de pesquisa anterior com o comando n, ou a próxima (usando o comando N). Este é o resultado da digitação de /Jane no modo de comando.

Pesquisar e substituir texto

Vi usa um comando (semelhante ao sed) para realizar operações de substituição em um intervalo de linhas ou em um arquivo inteiro.

Para alterar a palavra “old” para “young” em todo o arquivo, devemos inserir o seguinte comando.

 :%s/old/young/g 

Aviso: Os dois pontos no início do comando.

Os dois pontos (:) iniciam o comando ex, s neste caso (para substituição), % é um atalho que significa da primeira à última linha (o intervalo também pode ser especificado como n,m que significa “da linha n à linha m ”), old é o padrão de pesquisa, enquanto young é o texto de substituição e g indica que a substituição deve ser realizada em cada ocorrência da string de pesquisa no arquivo.

Alternativamente, um c pode ser adicionado ao final do comando para solicitar confirmação antes de realizar qualquer substituição.

:%s/old/young/gc

Antes de substituir o texto original pelo novo, o vi/m nos apresentará a seguinte mensagem.

  • y: realiza a substituição (sim)
  • n: pule esta ocorrência e vá para a próxima (não)
  • a: realiza a substituição nesta e em todas as instâncias subsequentes do padrão.
  • q ou Esc: pare de substituir.
  • l (L minúsculo): faça esta substituição e saia (por último).
  • Ctrl-e, Ctrl-y: Role para baixo e para cima, respectivamente, para visualizar o contexto da substituição proposta.

Editando vários arquivos no Vi

Vamos digitar vim arquivo1 arquivo2 arquivo3 em nosso prompt de comando.

vim file1 file2 file3

Primeiro, o vim abrirá o arquivo1. Para mudar para o próximo arquivo (file2), precisamos usar o comando :n. Quando quisermos retornar ao arquivo anterior, :N fará o trabalho.

Para mudar de arquivo1 para arquivo3.

a). O comando :buffers mostrará uma lista do arquivo que está sendo editado no momento.

:buffers

b). O comando :buffer 3 (sem os s no final) abrirá o arquivo3 para edição.

Na imagem acima, um sinal de cerquilha (#) indica que o arquivo está aberto, mas em segundo plano, enquanto %a marca o arquivo que está sendo editado no momento.

Por outro lado, um espaço em branco após o número do arquivo (3 no exemplo acima) indica que o arquivo ainda não foi aberto.

Buffers Vi temporários

Para copiar algumas linhas consecutivas (digamos 4, por exemplo) em um buffer temporário chamado a (não associado a um arquivo) e colocar essas linhas em outra parte do arquivo posteriormente no vi atual seção, precisamos ...

  • Pressione a tecla ESC para ter certeza de que estamos no modo vi Command.
  • Coloque o cursor na primeira linha do texto que deseja copiar.
  • Digite “a4yy” para copiar a linha atual, junto com as 3 linhas subsequentes, em um buffer chamado a. Podemos continuar editando nosso arquivo – não precisamos inserir as linhas copiadas imediatamente.
  • Quando chegarmos ao local das linhas copiadas, use “a antes dos comandos p ou P para inserir as linhas copiadas no buffer chamado < b>a:

    1. Digite “ap para inserir as linhas copiadas no buffer após a linha atual na qual o cursor está posicionado.
    2. Digite “aP para inserir as linhas copiadas no buffer a antes da linha atual.

Se desejarmos, podemos repetir os passos acima para inserir o conteúdo do buffer em vários locais do nosso arquivo. Um buffer temporário, como o desta seção, é descartado quando a janela atual é fechada.

Resumo

Como vimos, vi/m é um editor de texto poderoso e versátil para CLI. Sinta-se à vontade para compartilhar seus próprios truques e comentários abaixo.

Atualização: Se você deseja ampliar suas habilidades de editor de VI, sugiro que leia os dois guias a seguir que o guiarão para alguns truques e dicas úteis do editor VI.

O e-book LFCS já está disponível para compra. Solicite sua cópia hoje e comece sua jornada para se tornar um administrador de sistema Linux certificado!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Por último, mas não menos importante, considere comprar seu voucher de exame usando os links a seguir para ganhar uma pequena comissão, que nos ajudará a manter este livro atualizado.