Dicas para o Vi

No post anterior, comentei sobre o editor de textos Vi. Neste post, vou colocar algumas ‘colinhas’ de alguns comandos que podem ser utilizados quando se está trabalhando com o Vi.

Entrando no modo de inserção

Como já falado no post anterior, nesse modo, podemos inserir os caracteres. Abaixo, algumas teclas que podemo ser utilizadas para entrar no modo de Inserção… lembrando que, para usar essas teclas… tem que estar no modo de comando.

✔ i => insere texto antes do cursor.
✔ I => insere texto no início da linha atual.
✔ a => insere texto após o cursor.
✔ A => insere texto no final da linha atual.
✔ o => insere texto no início da próxima linha, inserindo uma nova linha.
✔ O => insere texto no início da linha anterior, inserindo uma nova linha.

Apagando caracteres

✔ Del ou Delete => apaga a letra que está na frente do cursor.
✔ x => deleta a letra em que o cursor está; Nx deleta as próximas n letras.
✔ dw => deleta o restante da palavra atual; Ndw deleta as n próximas palavras.
✔ u => undelete – desfaz a última ação.
✔ ctrl+r => refaz a última ação desfeita.
✔ dd => deleta a linha atual; Ndd deleta n linhas a partir da atual.

OBS.: O “N”, é a quantidade de linhas ou caracteres que você deseja editar 😉 !

Substituindo caracteres

✔ s => substitui a letra atual e entra no modo de inserção.
✔ S => substitui a linha atual e entra no modo de inserção.
✔ r => substitui a letra atual e não entra no modo de inserção.
✔ R => entra no modo de substituição (sai com <ESC>).
✔ ~ => substitui maiúsculo/minúsculo.
✔ :1,$s/palavra1/palavra2/g => substitui a palavra1 pela palavra2

Copiar, recortar e colar? Oba, o Vi também tem esses recursos!

✔ nyy => copia N linhas posteriores.
✔ nY => copia N linhas anteriores.
✔ ncc => recorta N linhas a partir da atual.
✔ p => cola N linhas após a linha atual.
✔ P => cola N linhas antes da linha atual.

Navegando no Texto

Para não ficar perdido em um texto, podemos usar as opções abaixo para navegar pelo texto:

✔ j => uma linha para baixo.
✔ h => uma letra para a esquerda.
✔ b => volta no início da palavra.
✔ e => vai para o fim da palavra.
✔ $ => fim da linha.
✔ +n => vai N linhas para baixo.
✔ k => uma linha para cima.
✔ l => uma letra para a direita.
✔ w => vai pra a próxima palavra.
✔ 0 => início da linha.
✔ nG => vai para a linha N.

Realizando buscas com o VI

É possível realizar buscas utilizando o Vi. Esse recurso é útil quando você está editando um arquivo muito extenso e não quer ficar lendo tudo 😉 .
Para utilizar essa facilidade do Vi, no modo de comando, utilize as opções abaixo:

✔ /palavra => procura palavra a partir linha da atual.
✔ ?palavra => procura palavra voltando no início do arquivo.
✔ n => procura a próxima ocorrência na mesma direção de busca.
✔ N => procura a ocorrência anterior.
✔ :set number => coloca a numeração de linhas

Salvar e sair

Como todo bom editor de textos, também é possível salvar as alterações no arquivo que editamos.
Para isso, basta utilizar uma das opções abaixo:

✔ :w => salva o arquivo.
✔ :q => sai do arquivo.
✔ :q! => sai sem salvar as modificações do arquivo.
✔ :wq => salva e sai do arquivo editado.
✔ ZZ => em modo de comando, é o soninho do Vi… ‘Zalva’ e ‘Zai’ do arquivo editado.
✔ : x => salva e sai do arquivo editado.

É isso aí pessoas… para conhecer mais sobre o vim:

# vimtutor

Obs.: para sair do vimtutor, é como sair de um arquivo… tem que entrar no modo de linha de comando e teclar :q!

Até o próximo post!

Anúncios

Perdendo o medo do editor de textos Vi

Cedo ou tarde, todo administrador de sistema precisa escrever um texto, editar um arquivo de configuração, escrever um script, etc.

Existem vários editores de textos no modo gráfico, como por exemplo o kate, o gedit, etc.

Mas, imaginando que estamos em um servidor onde nem interface gráfica está instalada, temos que lançar mão de um editor em modo texto… existem vários editores que podem ser usados em linha de comando tais como o Vi, o nano, o pico, emacs e por ai vai.

Vou comentar nesse post algumas operações básicas do Vi (Visual editor) – criar um arquivo, editar, salvar… e a parte legal de aprender mexer no Vi, é que não ficamos presos a um editor que só funciona se existir interface gráfica configurada, e, independente da distribuição que estivermos usando, lá teremos o bom e velho Vi.

As distribuições atuais já trazem instalado por padrão o Vim, que é Vi IMproved, ou seja, uma versão melhorada do Vi original do Unix. Aqui, estou usando o Vim, mas, basicamente, o que falar no post, se aplica ao Vi também.

A primeira coisa que vamos aprender sobre o Vi, é que ele possui 3 modos de trabalho:

Comandos: Uma sessão de edição sempre começa nesse modo de operação. Quando estamos no modo comandos, podemos caminhar pela tela de edição e utilizar os comandos para manipular o texto.

Inserção: Somente nesse modo podemos alterar um texto na tela..

Linha de comando: Alguns comandos de edição devem ser digitados na última linha da tela. Para indicar ao Vi que vamos trabalhar em linha de comando, utilizamos o caracter “:” (dois pontos) sem as aspas.

Para aprender sobre o Vi, nada melhor do prática… então, vamos criar um arquivo com o Vi! No terminal, digite:

# vi
~
~

Quando digitamos Vi, sem nenhum argumento, surge aquela tela assustadora sem ícones, ou botão de fechar 😛 . Mas não precisamos ter medo dessa tela… pois o Vi abre no modo de Comandos, e, está apenas esperando que você dê uma ordem para que ele possa executar!

Fazendo uma comparação, seria como se abrisse o bloco de notas para criar um novo arquivo.

Então, vamos dar uma ordem para o Vi… vamos escrever na tela que surgiu! Para isso, vamos teclar “i“. Quando teclamos i, o Vi entra no modo de inserção, e, irá mostrar no canto inferior esquerdo da tela, a palavra — INSERT —  .

Esse INSERT é uma melhoria que Vim traz;  o Vi original não é tão didático… você tecla “i”, mas ele não te mostra se entrou em modo de inserção.

Continuando… quando estamos no modo de inserção, podemos começar a digitar:

Estou pronto para usar o Vi.

Após digitar a linha acima, vamos teclar ESC para salvar o arquivo.

Uma coisa importante para se falar é que, enquanto estiver com o modo de inserção ativado, podemos continuar digitando… e quando terminar, basta voltar ao modo de comandos… para isso, basta teclar ESC.

Quando teclamos ESC, não vamos conseguir digitar mais nada… e fica aqui uma dica! Se você não lembrar em que modo do Vi esta (edição, comando, linha de comando), basta teclar ESC, que ele volta ao padrão, que é o modo de comandos.

Para salvar o que digitamos no Vi, basta teclar ESC e ir para o modo de linha de comando, que também é conhecido como modo de comando de última linha, e é representado por : (dois pontos).

Então, no modo de linha de comando, vamos fazer assim:

:w texto.txt

Com o comando acima, estamos salvando o arquivo (w=write) com o nome de texto.txt, mas ainda continuamos nele, o que significa que podemos voltar a escrever ou sair dele!

Para sair do Vi, basta entrar novamente no modo de linha de comando e fazer:

:q

Onde o q acima, é quit, ou seja, saída!

É importante entender que, o arquivo que criamos acima como exemplo, será salvo no diretório em que estamos no momento. Portanto, caso crie um arquivo novo, e queira salvar em outro local, teria que especificar para o Vi onde o arquivo seria salvo.

Por exemplo:

: wq /tmp/texto.txt

Nesse exemplo, estou mostrando que o Vi aceita combinações no modo de linha de comando, e acima, estou pedindo para o vi salvar (w) e sair (q). E o arquivo, será salvo dentro do /tmp com o nome de texto.txt.

O exemplo que vimos, foi para criar um arquivo novo e designar um nome para ele depois! Mas poderíamos ter feito assim:

# vi post.txt

Onde, se o arquivo post.txt não existir, será criado na hora, e, se o arquivo já existir, poderemos editá-lo!

É importante falar que o Vi tem mil maneiras de fazer a mesma coisa, e vários comandos que ajudam a trabalhar com ele… daí, você escolhe a maneira que mais se adapta. E não precisa ficar desesperado porque descobriu que odeia o Vi e prefere outro editor de textos, porque no máximo o que vai acontecer é você aprender uma maneira nova de trabalhar com arquivos em modo texto 😉 !

Até o próximo post!

Variáveis de ambiente

Como já falamos em um post anteriormente, o shell é a interface entre o usuário e o kernel do sistema operacional.

O shell padrão do Linux é o bash; ele é executado em um ambiente controlado pelas variáveis de ambiente, que nada mais são do que definições e valores que, tanto o shell como outros programas utilizam para configuração do ambiente do usuário no momento em que é realizado o login.

Existem dois tipos de variáveis:

✔ Variáveis de Usuários – variáveis criadas pelo próprio usuário.
✔ Variáveis de Sistema – variáveis criadas pelo próprio sistema.

Variáveis de Ambiente

Como dito anteriormente, variáveis são nomes que contém algum valor e tem a forma Nome=Valor. Lembram, quando estavam na escola e tinha que fazer as continhas para descobrir o valor da variável x? Por exemplo, x=10. Traduzindo para a forma Nome=Valor, aqui o x, seria o Nome, e Valor, o conteúdo da variável.

As variáveis de ambiente são individuais para cada usuário do sistema ou consoles virtuais e permanecem residentes na memória RAM até que o usuário saia do sistema (logoff) ou até que o sistema seja desligado.

Algumas variáveis do GNU/Linux afetam o comportamento de todo o Sistema Operacional, como por exemplo, o idioma utilizado e o path.

A declaração de variáveis é feita da seguinte forma:

NOME_DA_VARIAVEL=valor_inicial

Onde:

NOME_DA_VARIAVEL – Nada mais é que o nome que queremos dar a nossa variável.

valor_inicial – É o primeiro valor que daremos a nossa variável. Este valor se faz necessário para determinar ao sistema que “tipo” de informação iremos ter na variável.

Exemplo:

Criar uma variável chamada LINUX com o valor Debian:

# LINUX=Debian

Para visualizarmos o conteúdo de uma variável, utilizamos o comando echo, que, além de exibir mensagens na tela, também tem o poder de exibir o conteúdo de uma variável.

Visualizando o conteúdo da variável criada:

# echo $LINUX
Debian

No exemplo acima, estamos visualizando o valor da variável LINUX, que é Debian.

Para que o shell saiba que o comando echo deve exibir o conteúdo de uma variável e não mostrar uma mensagem na tela, devemos adicionar no início do nome da variável o caractere $.

Comandos para manipular variáveis de ambiente

set
O comando set lista todas as variáveis de ambiente do usuário tais como o nome da máquina, arquitetura da máquina, usuário logado, etc…

Exemplo:

# set
HOSTNAME=switch
HOSTTYPE=i486
USER=root
MACHTYPE=i486-pc-linux-gnu
OSTYPE=linux-gnu

Se quisermos visualizar a variável que criamos, podemos filtrar a saída do comando set:

# set | grep LINUX
LINUX=Debian

export
O comando export faz com que a variável criada seja visualizada em todos shells. No exemplo em que criamos a variável LINUX, esta ficou disponível somente no shell em que foi criada… para que seja visualizada em um novo shell, é necessário exportar; e aí, utilizamos o comando export.

Exemplo:

# export LINUX

Para visualizar a variável que foi exportada, utilizamos o comando env, que é o responsável por visualizar as variáveis definidas globalmente:

# env

Visualizar somente a variável LINUX que foi exportada:

# env | grep -i linux
LINUX=Debian

Arquivos de configuração do ambiente do usuário

Além dos comandos que vimos acima, existem arquivos que são utilizados para configurar e carregar o ambiente do usuário. Isso quer dizer que, em um shell que exige login, ou seja, pede um nome de usuário e senha, o sistema irá verificar a existência dos arquivos listados abaixo e executará os comandos que estiverem dentro dos mesmos:

1) /etc/profile
2) ~/.bash_profile
3) ~/.bash_login
4) ~/.profile

/etc/profile
Este arquivo contém comandos que são executados para todos os usuários do sistema no momento do login; somente o usuário root tem permissão para modificar este arquivo.

Ele é lido antes do arquivo de configuração pessoal de cada usuário (.profile caso seja root e .bash_profile caso seja um usuário comum).
.bash_profile
Este arquivo reside no diretório pessoal de cada usuário. É executado em ambientes que usam autenticação (nome e senha). O .bash_profile contém comandos que são executados para o usuário no momento do login no sistema.

Lembrando que se trata de um arquivo oculto pois tem um “.” no início do nome. Aqui, podemos configurar por exemplo, os alias que vimos no post anterior.

Por exemplo:

# echo “alias rm=’rm i'” >> ~/.bash_profile

O comando acima, irá acrescentar a linha alias dentro do arquivo .bash_profile. Fique atento ao operador de redirecionamento, que é o >>, isto é, está acrescentando a linha no arquivo!

Variável PS1
Essa é a variável que contém o formato do prompt do Linux. Ela pode ser modificada através do arquivo .bash_profile (para usuários comuns) ou no .profile (para usuário root).

Por padrão, ela vem configurada da seguinte forma:

PS1=”[\u@\h \W]\$”

Cada uma dessas letras, exibe uma informação no prompt:
\u => Exibe o usuário no momento;
\h => Exibe o nome da máquina;
\W => Exibe o caminho completo do diretório que você está no momento
\$ => Indica o tipo de usuário logado. Se você for usuário comum, será apresentado o símbolo $, em caso do superusuário (root), será #.

Assim como praticamente tudo no Linux, seu prompt pode ser personalizado também. Por exemplo, alguém pode sentir saudade do ‘cebiquim’, isto é, do famoso C:\>.

Não é elegante como o prompt do Linux, mas… se quiser matar a saudade, faça assim:

PS1=”C:\> “

Configurando a variável PS1 conforme mostrado acima, seu terminal trará o C:\>.

Depois que altera o arquivo, é necessário atualizá-lo para que as configurações sejam aplicadas. Você pode deslogar e logar novamente, ou então, utilizar o comando source:

# source ~/.bashrc

O comando acima, irá reler o arquivo .bashrc e efetuar as alterações no prompt.

É isso aí, pessoas… até o próximo post 😉 !