Em seguida, vamos dar uma olhada na edição de arquivos em um ambiente de shell de comando. Esta é uma habilidade extremamente importante do Linux, especialmente durante um teste de penetração se você tiver acesso a um sistema operacional semelhante ao Unix.
Embora existam editores de texto como o gedit e o leafpad que podem ser mais atraentes visualmente devido
à sua interface gráfica de usuário, vamos nos concentrar em editores de terminal baseados em texto, que enfatizam velocidade e versatilidade.
Todos parecem ter uma preferência quando se trata de editores de texto, mas abordaremos o uso básico para as duas opções mais comuns: nano e vi.
O nano é um dos editores de texto mais simples de usar. Para abrir um arquivo e começar a editar, basta executar o nano, passando um nome de arquivo como argumento opcional:
Uma vez que o arquivo é aberto, podemos imediatamente começar a fazer quaisquer alterações necessárias no arquivo como faríamos em um editor gráfico. Conforme mostrado abaixo , o menu de comando está localizado na parte inferior da tela. Alguns dos comandos mais usados para memorizar incluem:
- CTRL + o: para escrever alterações no arquivo
- CTRL + K: para cortar a linha atual
- CTRL + U: para desfazer o corte e colar na posição do cursor
- CTRL + W: para pesquisar
- CTRL + X: para sair.
O vi é o editor de texto padrão do Unix/Linux. O vim é a abreviação de vi improved, ou seja, “vi aprimorado” O vi é um dos poucos programas que estão presentes em todas as distribuições Linux. É derivado de editores antigos do Unix
ed -> ex -> vi -> vim
Para iniciar o vim:
vi arquivo
- Se o arquivo existir, o arquivo será aberto e o seu conteúdo exibido.
- Se o arquivo não existir, o vi cria o arquivo.
- Modo de comando : Pode-se movimentar o cursor, alterar, deletar, linkar, inserir, procurar
- Modo de inserção : Inseri novos textos. Para retornar para o modo de comando aperte o “esc”.
- Modo de linha de comando : Realiza configurações, sair, salvar, procurar e sobrescrever.
Para entrar no modo de linha de comando , deve-se pressionar a tecla ESC.
- Sair :wq :q ou :q!
- Salvar :w :e!
- Sair :wq!
- Salvar :w!
É possível marcar um trecho do texto, usando as teclas de movimentação. Entra-se nesse modo quando, no modo de comando, são pressionadas as teclas shift + v (visual line), para selecionar linhas. Pressionando as teclas ctrl +v (visual block) pode selecionar colunas de texto.
- Abrir um arquivo sem modificá-lo
vim -m nome_do_arquivo
- Abrir um arquivo sem modificá-lo, mas pode ser sobrescrito com :w!
vim -R nome_do_arquivo
- Não usa um arquivo de swap para backup
vim -n nome_do_arquivo
- Recupera dados de um arquivo de swap após um crash
vim -r nome_do_arquivo
- Encriptar um arquivo
vim -x nome_do_arquivo
h esquerda
j abaixo
k acima
l direita
w : move o cursor uma palavra para direita
B : move o cursor uma palavra para esquerda
^ : move o cursor para o inicio da linha
$ : move o cursor para o fim da linha
1G : Leva o cursor para o inicio do arquivo
G : Leva o cursor para o fim do arquivo
Use p ou P para inserir (colar) copiar dados.
p : insere os dados abaixo da linha corrente
P : insere os dados acima da linha corrente
p : insere os dados após o cursor
P: insere os dados antes do cursor
u desfaz as alterações mais recentes.
U desfaz todas as alterações na linha corrente desde que o cursor.
ctrl + r : refaz as alterações mais recentes desfeitas (restaurar).
- Numerando as linhas
:set number
Ou
: set nu
- Tirando numeração
:set nonumber
Ou
:set nonu
- Pesquisando por palavras
/^z
/smtp
- Realizando substituição
:% s/VAR/var/g
- Outra substituição
:s/a/b/g
- Inserindo texto em varias linhas ( insere um comentário das linhas 5 a 10!)
:5,10s/^/#/
- Comenta todo o arquivo
:.;$s/^/#/
- Apaga a primeira letra de cada linha
:%s/^.//
- Salvando linhas em um arquivo
:14,23 w extract
- Executar comandos dentro do vi
:!date
Nesse caso abre-se outra tela , você vê a saída do comando, e volta para editar. Agora o próximo comando, a saída é colocada dentro do próprio arquivo que está editando.
r!date
vim /etc/vim/vimrc +$
Inserir no final:
set cursorline
set cursorcolumn
set number
set hlsearch
- vimrc: Arquivo de parametrização do vim;
- cursorline: Exibe uma linha onde o cursor estiver posicionado;
- cursorcolumn: Exibe uma coluna onde o cursor estiver posicionado;
- number: Exibe o número das linhas.
- hlsearch: Deixa o texto casado iluminado.