Guia de comandos do VI

O editor VI é uma mão na roda para quem trabalha com Unix/Linux.
Abaixo alguns comandos muito úteis:

Executando o vi:
$ vi arquivo

Uma vez carregado, poderão ser executados os seguintes comandos dentro do vi.

Comandos básicos:
* :wq – Salva o arquivo e sai do editor
* :w nome_do_arquivo – Salva o arquivo corrente com o nome especificado
* :w! nome_do_arquivo – Salva o arquivo corrente no arquivo especificado
* :q – Sai do editor
* :q! – Sai do editor sem salvar as alterações realizadas

Comandos de inserção:
* i – Insere texto antes do cursor
* a – Insere texto depois do cursor
* r – Insere texto no início da linha onde se encontra o cursor
* A – Insere texto no final da linha onde se encontra o cursor
* o – Adiciona linha abaixo da linha atual
* O – Adiciona linha acima da linha atual

Comandos de movimentação:
* Ctrl+f – Move o cursor para a próxima tela
* Ctrl+b – Move o cursor 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 um caractere a esquerda
* j – Move o cursor para a próxima linha
* k – Move o cursor para linha anterior
* l – Move o cursor um caractere a direita
* w – Move o cursor para o início da próxima palavra (Ignora a pontuação)
* W – Move o cursor para o início da próxima palavra (Não ignora a pontuação)
* b – Move o cursor para o início da palavra anterior (Ignora a pontuação)
* B – Move o cursor para o início da palavra anterior (Não ignora a pontuação)
* 0 – Move o cursor para o início da linha atual
* ^ – Move o cursor para o primeiro caractere não branco da linha atual
* $ – Move o cursor para o final da linha atual
* nG – Move o cursor para a linha n
* G – Move o cursor para a última linha do arquivo

Comandos de busca:
* /palavra – Busca pela palavra ou caractere em todo o texto
* ?palavra – Move o cursor para a ocorrência anterior da palavra
* n – Repete o último comando / ou ?
* N – Repete o último comando / ou ? , na direção reversa
* Ctrl+g – Mostra o nome do arquivo, o número da linha corrente e o total de linhas

Comandos de substituição e deleção:
* x – Deleta o caractere que esta sob o cursor
* dw – Deleta a palavra, da posição atual do cursor ate o final
* dd – Deleta a linha atual
* D – Deleta a linha a partir da posição atual do cursor ate o final
* rx – Substitui o caractere sob o cursor pelo especificado em x(é opcional indicar o caractere)
* Rx – Substitui a palavra sob o cursor pela palavra indicada em x
* u – Desfaz a última modificação
* U – Desfaz todas as modificações feitas na linha atual
* J – Une a linha corrente a próxima
* s:/Linux/Unix – Substitui a primeira ocorrência de “Linux” por “Unix”
* s:/Linux/Unix/g – Substitui a ocorrência de “Linux” por “Unix” em todo arquivo

==========
Fonte:Viva o Linux

Anúncios

Exemplos de uso de Tcpdump

Aqui veremos alguns comando a serem usados para sniffar sua rede:

Neste comando estamos sniffando a eth0 para um determinado host:

tcpdump -i eth0 -qtNnn host 0.0.0.0

Neste comando estamos sniffando a eth0 para uma determinada porta:

tcpdump -i eth0 -qtNnn port 110

Neste comando estamos sniffando a eth0 para recebimento de ping:

tcpdump -i eth0 -qtNnn icmp

Neste comando estamos sniffando a eth0 para um destino especificado:

tcpdump -i eth0 -qtNnn dst 0.0.0.0

Neste comando estamos sniffando a eth0 para uma origem especificada:

tcpdump -i eth0 -qtNnn src 0.0.0.0

O comando tcpdump possui vários complementos os quais veremos agora.

Neste comando repare que acrescentamos “Xxx”, esses parâmetros permitem que você abra o pacote que está sendo transmitido pelo host determinado:

tcpdump -i eth0 -qtNnnXxx host 0.0.0.0

Neste comando estamos sniffando um determinado host falando na porta 3389 (Terminal Service):

tcpdump -i eth0 -qtNnn host 0.0.0.0 and port 3389

No firewall ele nos permite realizarmos vários tipos de filtros e parâmetros, a seguir veremos um tcpdump com host, porta e exclusão de porta:

tcpdump -i eth0 -qtNnn host 0.0.0.0 and port 25 and not port 3389

Bom, também podemos realizar tcpdump em determinadas portas e excluindo alguns hosts. Ex:

tcpdump -i eth0 -qtNnn port 3389 and port 25 and port 110 and not port 443 and not port 3128 and not host 0.0.0.0 and not host 0.0.0.0

=========
Fonte: vivaolinux

Removendo linhas com comentários usando egrep

Caso você tenha a necessidade de analisar um dos vários arquivos de configuração que todo sysadmin tem que ler todos os dias, sabe como é complicado (e poluído) ler com os comentários que vem neles.
Para limpar esses comentários, temporariamente, basta executar:

# egrep -v “^#|^$” arquivoORIGINAL.txt > arquivoSEMCOMENTARIOS.txt

Com isso, você criará um novo arquivo sem as linhas com # e poderá ver somente as configurações.

Consertando o ^M em shell script

Uma boa dica para remover caracteres inválidos que aparecem no arquivo que foi lido/salvo em DOS/Windows e agora está sendo lido em Linux/Unix:

Antes, um pouco de história:
Para quem é dos tempos da máquina de escrever, para mudar de linha precisávamos trocar de linha (line feed) e posicionar o rolo da máquina na primeira posição (carriage return).
Em sistemas Unix, não existe o CR (carriage return), apenas a mudança de linha (LF ou Line Feed). Por esta razão, um arquivo do Unix lido em uma máquina DOS/Windows, é algo do tipo:

abcde
abcde
abcde
abcde

Ou seja, o carro não vai para a primeira posição da linha.
Da mesma forma, um arquivo gerado no windows e lido em alguma máquina *nix, fica como:

abcde^M
abcde^M
abcde^M
abcde^M

Fica um caractere estranho no final (o tal do CR e LF).

Para instalar um conversor de formatos “unix to dos” e vice-versa:
$ apt-get install tofrodos

Teremos os binários todos, unix2dos e dos2unix.

Utilizando os binários:

Unix para DOS
unix2dos arquivo.txt

DOS para Unix
dos2unix arquivo.txt

O comando todos converte para o formato de sistemas DOS/Windows.

==========
Fonte: Dicas-l

Migrando para o Ext4, o novo file system Linux

Todo mundo já ouviu falar do novo sistema de arquivos Ext4, o sucessor do velho e bom ext3. O ext4 ainda se encontra em fase de desenvolvimento e por isso ainda é chamando de ext4dev, mas a partir da versão do kernel 2.6.27 o filesystem atingiu uma boa maturidade, o que permite migrarmos aos poucos, mas sempre mantendo a cautela. =)

Algumas das melhorias do Ext4 em relação ao Ext3 são as seguintes:
* Melhorias na pré-alocação: Um programa usará um espaço do disco, mas não na hora da execução, então ele reserva o espaço que utilizará, fazendo uma pré-alocação, ou seja, ele guarda aquele espaço para o programa e ninguém mais poderá utilizar;
* Tempo de alocação estendido: O ext4 conseguirá segurar a alocação do espaço em disco até o último momento, isso aumentará a performance;
* Maior número de subdiretórios: No ext3 o limite de subdiretórios era de 32000, no Ext4 não há limites;
* Checksum do Journaling: É gerado um checksum do Journaling, garantindo uma restauração mais rápida e a prova de falhas.
* Desfragmentação On-Line: O ext3 deixava um pouquinho de fragmentação no disco, no ext4 não existe mais fragmentação, pois o ext4 vai desfragmentando enquanto os arquivos vão sendo alocados.
* Undelete: É uma ferramenta disponível no ext4 que impede que um arquivo seja apagado. Lembra dos atributos estendidos do ext3? É bem parecido.
* Checagem rápida do filesystem: A estrutura de organização de blocos permite que partes não usadas do disco sejam puladas, o que economiza muito tempo na checagem do filesystem.

Maiores detalhes e instalação: http://www.vivaolinux.com.br/dica/Migrando-para-o-Ext4-o-novo-file-system-Linux