Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

Bash (Ubuntu)

badge badge badge badge

Roadmap

Básico antes dos comandos

Atalhos globais do Bash

Atalho Ação
Ctrl + Shift + C Copiar.
Ctrl + Shift + V Colar.
Ctrl + C Cancela o comando atual em funcionamento.
Ctrl + Z Pausa o comando atual, retorna com "fg" em primeiro plano Linux ou "bg" em segundo plano.
Ctrl + D Faz o logout da sessão atual (similar ao comando "exit").
Ctrl + W Apaga uma palavra na linha atual.
Ctrl + U Apaga a linha inteira.
Ctrl + R Tecle para Exiber um comando recente.
Ctrl + L Limpa a tela.

Diretórios

Duretório Ação
/ É o diretório raiz, todos os demais diretórios estão abaixo dele.
/bin/ Binários principais dos usuários.
/boot/ Arquivos do sistema de Boot.
/dev/ Arquivos de dispositivos.
/etc/ Arquivos de configuração do sistema.
/home/ Diretório dos usuários comuns do sistema.
/lib/ Bibliotecas essenciais do sistema e os módulos do kernel.
/media/ Diretório de montagem e dispositivos.
/mnt/ Diretório de montagem de dispositivos - mesmo que "media".
/opt/ Instalação de programas não oficiais da distribuição ou por conta do usuário.
/sbin/ Armazena arquivos executáveis que representam comandos administrativos. Exemplo: shutdown
/srv/ Diretório para dados de serviços fornecidos pelo sistema.
/tmp/ Diretório para arquivos temporários.
/usr/ Segunda hierarquia do sistema, onde ficam os usuários comuns do sistema e programas.
/var/ Diretório com arquivos variáveis gerados pelos programas do sistema. Exemplo: logs, spool de impressoras, e-mail e cache.
/root/ Diretório do usuário root - O usuário root tem o total poder sobre o sistema. Podendo instalar, desinstalar e configurar.
/proc/ Diretório virtual controlado pelo Kernel com configuração total do sistema.

Ajuda no terminal

Você pode consultar a documentação e o manual de uso dos comandos das seguintes maneiras:

  • [comando] --help: Documentação do comando.
  • man [comando]: Manual do comando.
  • info [comando]: Semelhante ao man, mas geralmente fornece informações mais detalhadas.

Histórico de comandos

  • !!: Repete o último comando.
  • history: Lista o histórico de 2000 comandos digitados.
  • Seta para cima e seta para baixo: Últimos comandos digitados.

Manipulando arquivos

Listagem de arquivos

ls [opções]: Podemos listar o conteúdo de um diretório utilizando o comando ls.

  • -a: Lista todos os arquivos e diretórios ocultos.
  • -l: Formato longo, mostra permissões, número de links, propietário, grupo, tamanho, data de modificação e nome do arquivo.
  • -h: Lista arquivos e diretórios com informações formatadas (Tem que ser usado com o -l).
  • -R: Lista os arquivos e pastas recursivamente.
  • -p: Mostra uma barra (/) na frente de nomes de diretórios.

Ver exemplo

Entrando e saíndo de diretórios

cd: Podemos entrar e sair de um diretório utilizando o comando cd.

  • cd [destino]: Parte do local corrente até o diretório passado como referência.
  • cd /[destino]: Partindo da raiz até o último diretório passado como referência.
  • cd ..: Volta um diretório.
  • cd /: Vai direto para o diretório raiz.
  • cd ~: Vai direto para o diretório home.
  • cd -: Nos retorna para o último diretório acessado.

Ver exemplo

Exibindo o diretório atual

pwd: Exibe o caminho de diretório atual.

Ver exemplo

Exibindo o tamanho de um diretório

du [diretório]: Exibe o tamanho de um diretório e todos os seus subdiretórios.

Ver exemplo

Criando diretórios

mkdir [nome-do-diretorio]: Podemos criar diretórios utilizando o comando mkdir.

  • mkdir pasta1 pasta2 pasta3: Cria três pastas, pasta1, pasta2 e pasta3.
  • mkdir -p A/B/C: Cria a pasta A, dentro da pasta A cria a pasta B e dentro da pasta B cria a pasta C.

Ver exemplo

Criando arquivos

touch [opções] [arquivo]: Podemos criar arquivos utilizando o comando touch.

  • -a: Altera a hora de acesso do arquivo.
  • -m: Altera a hora de modificação do arquivo.
  • -am: Altera a hora de acesso e modificação do arquivo.
  • -c: Altera a hora de acesso sem criar um novo arquivo.

Observação: podemos gerar nomes automáticos usando as chaves {}, desta maneira: touch exemplo{1..3}.txt, este comando irá criar 3 arquivos chamados exemplo1.txt, exemplo2.txt e exemplo3.txt.

Ver exemplo

Excluíndo diretórios e arquivos

rm [opções] [arquivo]: Podemos excluir arquivos utilizando o comando rm.

  • -f: Exclui arquivos forçadamente.
  • -r: Exclui o diretório e os arquivos na direção recursiva.
  • -d: Remove somente diretórios vazios.
  • -i: Pergunta se queremos remover o arquivo/diretório antes de excluir.

Ver exemplo

Copiando diretórios e arquivos

cp [opções] [arquivo] [destino]: Podemos copiar arquivos utilizando o comando cp.

  • -r: Copia diretórios de forma recursiva.
  • -p: Preserva as permissões originais do arquivo (proprietário, grupo, etc.).
  • -i: Pergunta se desejamos sobrescrever um arquivo destino já existente.
  • -n: Não sobrescreve um arquivo já existente.

Ver exemplo

Movendo e renomeando arquivos e pastas

mv [opções] [arquivo] [destino]: Podemos mover arquivos com o comando mv.

  • -b: Cria um backup de cada arquivo destino existente.
  • -f: Apaga destinos existente sem perguntar ao usuário.
  • -i: Pergunta se desejamos sobrescrever o arquivo destino já existente.
  • -n: Não sobrescrever um arquivo destino já existente.

O comando mv também é usado para renomear arquivos.

  • mv [nome_atual.extenção] [novo_nome.extenção]

Ver exemplo

Visualização de arquivos

more [arquivo]: Mostra o conteúdo de um arquivo em partes.

less [arquivo]: Exibi o conteúdo de um arquivo páginado.

tac [arquivo]: Exibi o conteúdo de um arquivo de trás pra frente (da última linha pra primeira).

cat [opções] [arquivo]: Abre o arquivo em modo de visualização.

  • -n: Mostra a quantidade de linas do arquivo.
  • -v: Exibe caracteres não exibíveis.
  • -T: Exibe tabulação mostradas como ^I.
  • -s: Remove linhas repetidas em branco.
  • -b: Numera as linhas que possuem algum conteúdo.

Busca e manilupalção de conteúdo:

  • cat [arquivo] | grep [busca]: Busca no arquivo (case sensitive).
  • cat [arquivo] | grep [busca] -i: Busca no arquivo (case insensitive).
  • cat [arquivo] > [arquivo]: Copia o conteúdo do arquivo para outro.
  • cat [arquivo] >> [arquivo]: Adiciona o conteúdo do arquivo para outro.

Ver exemplo

Compressão de arquivos

Tar:

  • tar cf pacote.tar [arquivos]: Cria um pacote TAR (nomeado pacote.tar) com os arquivos especificados.
  • tar xf pacote.tar: Extrai os arquivos de "pacote.tar" (substituir a variável pacote.tar pelo nome do arquivo).

GZip:

  • tar czf pacote.tar.gz [arquivos]: Cria um pacote TAR (nomeado pacote.tar.gz) com compressão GZip.
  • tar xzf pacote.tar.gz: Extrai um pacote TAR (nomeado pacote.tar.gz) com compressão GZip.

bz2:

  • tar cjf pacote.tar.bz2 [arquivos]: Cria um pacote TAR (nomeado pacote.tar.bz2) com compressão BZip2.
  • tar xjf pacote.tar.bz2: Extrai um pacote TAR (nomeado pacote.tar.gz) com compressão BZip2.

Gz:

  • gzip arq: Compacta um arquivo e o renomeia para arq.gz (substituir a variável arq pelo nome do arquivo).
  • gzip -d arq.gz: Descompacta arq.gz para um arquivo (substituir a variável arq.gz pelo nome do arquivo).

Ver exemplo

Buscas

Buscando por arquivos

Podemos buscar por arquivos específicos em todo nosso sistema com o comando find.

  • find .: Lista todos os arquivos contidos em um diretório e subdiretórios.
  • find . -name [arquivo]: Busca um arquivo com um nome especifico.
  • find [diretório] -iname [arquivo]: Procura ignorando case sensitive.

Ver exemplo

Referência global

Referências globais são recursos para especificar um ou mais arquivos ou diretórios de uma vez. Vamos usar o comando 'ls' para os exemplos, mas pode ser usado qualquer outro comando.

  • ls /etc/*.conf: Lista todos os arquivos que tem a extenção '.conf'.
  • ls /etc/*x*: Lista todos os aquivos que em algum lugar do nome tem a lera 'x'.
  • ls /etc/f*: Lista todos os aquivos que começa com a letra 'f'.
  • ls /etc/?as*: Lista todos os arquivos que começa com uma letra qualquer, tem segundo caractere 'a', o terceiro 's' e qualquer caractere depois.
  • ls /etc/???a*: Lista todos os arquivos que tem o quarto caractere 'a'.
  • ls /etc/f[a-t]*: Lista todos os aqruivos que começa com a letra 'f', depois a segunda letra varia do 'a' ao 't' e depois qualquer caractere.
  • ls /etc/f[u,o]*: Lista todos os aqruivos que começa com a letra 'f', depois a segunda letra é 'u' ou 'o' e depois qualquer caractere.
  • ls /etc/?[a,e,i,o,u]*: Lista todos os aqruivos que começa com uma letra qualquer, depois a segunda letra é uma vogal e depois qualquer caractere.
  • ls /etc/?[a,e,i,o,u]???: Lista todos os aqruivos que começa com uma letra qualquer, depois a segunda letra é uma vogal e depois tem mais 3 caracteres qualquer.
  • ls /etc/?{am,ul}*: Lista todos os aqruivos que começa com uma letra qualquer, depois a segunda e a terceira letra é 'am' ou 'ul' e depois qualquer caractere.
  • ls /etc/*{ev,ux}: Lista todos os aqruivos que termina com 'ev' ou 'ux'.
  • ls /etc/*.{conf,db}: Lista todos os aqruivos que tem a extenção '.conf' ou '.db'.

Sistema

Processos

  • top: Exibe os processos usando a maioria dos recursos do sistema, a qualquer momento. "Q" pode ser usado para sair.

  • htop: O comando HTOP é uma evolução do comando TOP. As informações são semelhantes às produzidas pelo comando TOP, mas apresentadas num interface mais intuitivo e colorido.

  • kill pid: Mata o processo com o id de processo pid.

  • killall Discord: Mata todos os processo com o nome discord.

  • pkill fire: Mata todos os processo que tenha "fire" em seu nome.

ps [opções]: O comando ps exibe informações sobre os processos que estão executando na máquina.

  • -a: Mostra os processos de todos os usuários.
  • -A ou -e: Mostra todos os processos.
  • -f: Mostra a árvore de execução de comandos.
  • -g [grupo]: Mostra os processos de um determinado grupo.
  • -x: Mostra os processos que não foram iniciados no console.
  • -u: Fornece o nome do usuário e a hora de início do processo.
  • -aux: exibe todos os processos do sistema independente de terminal.

Ver exemplo

Informações do sistema

  • whereis [programa]: Exibe possíveis localizações de um determinado programa.
  • date: Exibe a data e hora atual.
  • whoami: Imprime o nome de usuário usado no momento em que foi digitado.
  • sudo su: Entra no modo usuário root.
  • exit: Sai do usuário logado no momento que o comando é executado.

uname [opções]: Mostra informações sobre o sistema operacional.

  • -a: imprime todas as informações, omitindo uname -p e uname -i se as informações forem desconhecidas.
  • -s: Imprime o nome do kernel.
  • -n: Imprime o nome do host do nó da rede.
  • -r: Imprime a versão do kernel.
  • -v: Imprime a versão do kernel.
  • -m: Imprime o nome do hardware da máquina.
  • -p: Imprime o tipo de processador ou " desconhecido ".
  • -i: Imprime a plataforma de hardware, ou " desconhecido ".
  • -o: Imprime o sistema operacional.
  • --version: Exibe informações da versão.

Ver exemplo

Memória

  • free: Este comando exibe a quantidade de espaço livre disponível no sistema.

df [opções]: Exibe informações sobre o uso do espaço em disco de todos os sistemas de arquivos montados.

  • -a: Inclui sistema de arquivos com 0 (zero) blocos.
  • -h: Mostra o espaço livre/ocupado em MB, KB, GB em vez de bloco.
  • -k: Lista em Kbyts.
  • -l: Somente lista sistema de arquivos locais.
  • -m: Lista em Mbytes.
  • -T: Lista o tipo de sistema de arquivos de cada partição.

Ver exemplo

Programas e atualizações

  • sudo apt-get update: Baixa os pacotes disponíveis.
  • sudo apt-get upgrade: Atualiza os pacotes do sistema.
  • sudo apt-get clean: Remove cache de programas.
  • sudo apt-get cache [busca]: Busca um programa.
  • sudo apt-get install [programa]: Instala um programa.
  • sudo apt-get remove [pacote] --purge: Remove programas e configs.

Observação: Se você estiver logado como usuário root, não é necessário o uso do 'sudo' na frente dos comandos.

Usuários

Trocando senha de usuários

passwd [opções] [usuário]: O passwd é um comando utilizado para configurar ou trocar a senha das contas dos usuários do sistema. É necessário possuir privilégios administrativos para executá-lo, mas um usuário comum consegue alterar sua própria senha.

  • -l: Trava a senha do usuário, ficando impedido de se logar e não pode trocar a senha (não é desabilitado).
  • -u: Destrava a senha do usuário.
  • -d: Exclui a senha do usuário.
  • -e: Expira a senha do usuário, forçando-o a fornecer uma nova ao logar-se novamente.
  • -x dias: Expira a senha do usuário quando atingir o número de dias especificados.
  • -n dias: Define a quantidade mínima de dias que o usuário deverá esperar para trocar a senha.
  • -w dias: define a quantidade mínima de dias que o usuário receberá o aviso que a senha precisa ser alterada.
  • -i: Deixa o usuário inativo, caso a senha tenha expirado.
  • -S: Exibe o status da conta.
  • -a: Usada em conjunto com a opção -S mostra o status das contas de todos os usuários.

Adicionar usuários

Criar um usuário novo no Linux é bem simples, apenas é necessário o comando useradd e indicar o nome do novo usuário.

useradd [opções] [nomeusuario]: Cria um novo usuário.

  • -d: Define o nome do diretório home do usuário (mas não o cria).
  • -s: Define o shell padrão do usuário.
  • -h: Exibe as opções do comando.

Alterar usuários

Para alterarmos uma conta de usuário basta apenas utilizarmos o comando usermod.

usermod [opções] [nomeusuário]: Altera um usário.

  • -d diretório [-m]: Cria uma nova home para o usuário. A opção -m move os arquivos da home atual do usuário para a nova.
  • -e yyyy-mm-dd: Altera a data de expiração da conta do usuário.
  • -g grupo: Altera o GID do grupo do usuário para o especificado.
  • -G grupo[, grupo2, ...]: Define o GID dos outros grupos que o usuário pertence.
  • -l nome: Altera o nome do usuário (ele não pode estar logado).
  • -s shell: Altera o shell do usuário.
  • -u uid: Altera o número de UID do usuário.

Remover usuários

Para removermos um usuário utilizamos o comando userdel.

userdel [opções] [nomeusuario]: Remove um usuário.

  • userdel -h [nomeusuario]: Exibe as opções do comando.
  • userdel -r [nomeusuario]: Deleta a home e todos os seus arquivos.

Calculadora

  • bc: Abre uma calculadora do Bash

Observação: Para sair bastas digitar 'quit' e apertar enter ou 'Ctrl+d'.

Ver exemplo

Git

Configurando o git

  1. Instalção: https://git-scm.com/downloads
  2. Documentação: https://git-scm.com/docs

Antes de começar a usar o Git é importante que você tenha ele configurado corretamente em sua máquina:

  • git config --global user.name "Fulano de Tal": Nome, coloque o mesmo nome do github;
  • git config --global user.email fulanodetal@exemplo.br: Email, coloque o mesmo email do github;
  • git config --global core.editor vim: Editor, aqui você pode escolher o editor padrão do git;
  • git config --list: Use para ver o resultado das suas confirugarções.

Comandos

Básico

  • git init: Cria um repositório git vazio.

  • git status: Informa o estado das alterações do nosso projeto.

  • git add [arquivo]: Adiciona novos arquivos ou atualiza mudanças para irem para o nosso repositório.

    • git add .: Você pode adicionar todos os arquivo usando o "." (ponto).
  • git commit -m "message": Registra alterações no repositório.

    • git commit --amend -m "New message": Troca a mensagem feita no último commit.
  • git log: Mostra os pontos na "linha do tempo" do repositório (commits).

    • git log --oneline: Mostra os pontos da "linha do tempo" de forma resumida.
    • git log --abbrev-commit: Mostra o hash dos commits com 7 caracteres.
    • git log --graph: Desenha uma representação gráfica dos commits no lado esquerdo da saída do terminal.
    • git log --grep="palavra": Busca por commits que tenha uma palavra ou parte de uma especificada.
  • git diff: Mostra o que foi alterado em um arquivo, de vermelho o que foi excluído, de verde o que foi adicionando. Use-o antes do git add.

  • git show: Apresenta o último ponto na "história" do nosso projeto.

    • git show [hash]: Apresenta determinado ponto na "história" do nosso projeto.
  • git remote: Verifica se existe um repositório remoto.

  • git push: Envia alterações locais para o repositório remoto.

  • git clone [link-do-repositório]: Clona um repositório (Github por exemplo).

  • git pull: Puxa as alterações feitas no repositório remoto (Github por exemplo).

Avançado

  • git reset [arquivo]: Remove um arquivo adicionado com o git add, use antes do git commit.

    • git reset --hard [hash]: Reverte um commit. Vai para um determinado ponto da "história" do projeto.
  • git branch: Lista ramificações do nosso repositório.

    • git branch -d [ramificação]: Exclui uma ramificação do nosso repositório.
  • git checkout [hash]: Restaura arquivos da árvore de trabalho.

    • git checkout -b [minha-ramificação]: Cria uma nova ramificação no nosso projeto.
    • git checkout [minha-ramificação]: Vai para a ramificação criada pelo desenvolvedor.
  • git merge [branch]: Faz a fusão de uma branch X com uma branch Y.

  • git mv [arquivo] [diretório]: Move um arquivo para um diretório especificado.

  • git mv [nome-original] [novo-nome]: Renomea um arquivo.

  • git rm -f [file]: Exclúi um arquivo do nosso repositório forçadamente.

  • git clean -f: Remove arquivos não rastreados forçadamente.

Criando boas mensagens de commits

Cada mensagem tem um formato pré-definido, que inclui um tipo e um título:

git commit -m "[type]: [message]"

Evite escrever mensagens do commit com mais de 100 caracteres, assim fica mais fácil para ler no GitHub, Gitlab e outras ferramentas.

Tipos:

  • build: Alterações que afetam o sistema de build ou dependências externas.
  • static: Alterações no conteúdo de arquivos estáticos (dados .json, imagens, etc).
  • ci: Alterações em nossos arquivos e scripts de configuração de CI.
  • cd: Alterações em nossos arquivos e scripts de configuração para CD.
  • docs: Somente alterações na documentação.
  • feat: Um novo recurso.
  • fix: Uma correção de bug da aplicação.
  • perf: Uma alteração de código que melhora o desempenho.
  • refactor: Uma alteração de código que não corrige um bug nem adiciona um recurso.
  • improve: Alguma alteração de código que melhore o comportamento de um recurso.
  • style: Alterações que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula, etc).
  • test: Adicionando testes ausentes ou corrigindo testes existentes.
  • revert: Reverter para um commit anterior.

Título:

O título contém uma descrição sucinta da mudança:

  • Use o imperativo, tempo presente: "mudança" não "mudou" nem "muda".
  • Não capitalize a primeira letra.
  • Sem ponto (.) no final.
git commit -m "fix: fix typo in introduction to user guide"

Alias

Você pode criar alias para os comandos do git, basta ir no arquivo ".gitconfig" e definir seus alias. No Linux o arquivo ".gitconfig" fica localizado em: /home/seuusuário/.gitconfig

[alias]
  cl = clone
  it = init
  ad = add
  bn = branch
  ci = commit -m
  co = checkout
  cm = checkout master
  cb = checkout -b
  st = status -sb
  sf = show --name-only
  pom = push origin master -u
  ps = push
  lg = log --pretty=format:'%Cred%h%Creset %C(bold)%cr%Creset %Cgreen<%an>%Creset %s' --max-count=30
  incoming = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' ..@{u})
  outgoing = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' @{u}..)
  unstage = reset HEAD --
  undo = checkout --
  rollback = reset --soft HEAD~1

Vim

Eu escolhi usar o editor vim, mas você pode usar outros editores além do vim como o nano por exemplo.

O vim (VI Improvement) é uma melhoria do antigo editor de texto vi. Este por sua vez é uma melhoria do editor de texto orientado a linha chamado ed. Existe também uma versão do vim para ambiente X chamada gvim.

O vim possui três formas de trabalho: modo de linha, modo de edição e modo de comandos. A mudança de um modo para outro modo é feita através do uso da tecla Esc.

Após o arquivo ser aberto pelo vim, o modo de comando é ativado. No modo de comando, as teclas digitadas pelo usuário são interpretadas pelo vim como ações a serem executadas dentro do arquivo aberto. No modo de edição, as teclas digitadas pelo usuário são ecoadas na tela. Para entrar neste modo, pode-se digitar, por exemplo, "a" (adicionar), "i" (incluir), etc. No modo de linha, o usuário define ações a serem executadas no arquivo como um todo (por exemplo, salvar, substituir caracteres, sair do aplicativo, etc). Para entrar neste modo, deve-se digitar Esc.

  • vim [opções] [arquivo]

São alguns dos comandos do vim no modo de comandos:

  • 0: Mover o cursor para o início da linha em que o cursor está posicionado.
  • a: Inserir texto após a posição atual do cursor.
  • A: Inserir texto no final da linha atual.
  • -b: Permite editar arquivo binário.
  • dd: Deletar linha atual.
  • [n]+dd: Deletar n linhas a partir da linha atual.
  • G: Ir para o fim do arquivo.
  • [n]+G: Ir para a n-ésima linha do arquivo.
  • h: Voltar um caractere.
  • H: Ir para a primeira linha exibida na tela atual.
  • i: Inserir texto a partir da posição atual do cursor.
  • I: Inserir texto no início da linha atual.
  • j: Descer uma linha.
  • J: Juntar a linha atual com a linha seguinte.
  • [n]+J: Juntar n linhas consecutivas a partir da linha atual.
  • k: Subir uma linha.
  • l: Avançar um caractere.
  • L: Ir para a última linha exibida na tela atual.
  • n: Procurar, a partir da posição atual do cursor, a próxima ocorrência do texto definido no último comando /.
  • N: Procurar, a partir da posição atual do cursor e indo em direção ao início do arquivo, a próxima ocorrência do texto definido no último comando /.
  • o: Inserir uma linha em branco após a linha atual.
  • O: Inserir uma linha em branco acima da linha atual.
  • p: Inserir linhas copiadas após a linha atual.
  • P: Inserir linhas copiadas antes da linha atual.
  • r: Substituir o caractere atual.
  • R: Substituir um conjunto de caracteres.
  • s: Deletar o caractere atual e inserir texto.
  • S: Apagar linha e inserir novo texto na linha.
  • u: Desfazer a última alteração feita no texto e ainda não desfeita.
  • U: Desfazer a última alteração feita no texto.
  • x: Apagar caractere onde o cursor está posicionado.
  • $: Mover o cursor para o fim da linha em que o cursor está posicionado.
  • [n]+y: Copiar n linhas a partir da linha atual.
  • yy: Copiar a linha atual.
  • [n]+Y: Copiar n linhas a partir da linha atual.
  • YY: Copiar a linha atual.
  • CTRL+B: Voltar uma página.
  • CTRL+F: Avançar uma página.
  • F1: Exibir tela de ajuda.
  • [n]+ENTER: Ir para n linhas abaixo da linha atual.
  • [n]+.: Repetir o último comando que alterou o texto n vezes a partir da posição atual do cursor.
  • [n]+~+ENTER: Inverter a caixa (case) dos n caracteres seguintes ao cursor.
  • /texto: Procurar pela primeira ocorrência do texto especificado a partir da posição atual do cursor.

São alguns dos comandos do vim no modo de linha:

  • :r arquivo: Incluir arquivo a partir da linha atual do cursor.
  • :q+ENTER: Sair da tela de ajuda.
  • :q!: Sair do vim sem salvar as alterações.
  • :w arquivo: Salvar arquivo com o nome especificado.
  • :wq!: Sair do vim salvando as alterações.
  • :X: Criptografa o arquivo.
  • :n: Ir para a linha "n". Exemplo: Para ir para linha 10 do arquivo, :10

Busca:

  • /palavra: Procura por "palavra" do início para o fim.
  • ?palavra: Procura por "palavra" do fim para o início.
  • /Mari[oa]: Procura por "Mario" ou "Maria".
  • /\< pal: Procura por expressões que começem com "pala" como, "palavra" ou "palíndromo".
  • /ismo\>: Procura por expressões que terminem com "ismo" como, "autismo".
  • /\< para\>: Procura pela palavra "para".
  • /\<...\>: Procura por todas as palavras com 3 letras.
  • /maria\|joao: Procura por maria ou joao.
  • /\<\d\d\d\d\>: Procura exatamente por 4 dígitos numéricos.
  • /^\n\{3}: Procura por três linhas em branco.
  • :bufdo /palavra/: Procura "palavra" em todos os arquivos abertos.

Substituição:

  • :%s/antigo/novo/g: Substitui todas as ocorrências de "antigo" por "novo" no arquivo.
  • :%s/antigo/novo/gw: Substitui todas as ocorrências com confirmação.
  • :2,35s/antigo/novo/g: Substitui todas as ocorrências entre as linhas 2 e 35.
  • :5,$s/antigo/novo/g: Substitui todas as ocorrências da linha 5 até EOF (fim da linha).
  • :%s/^/legal/g: Substitui o começo de cada linha com "legal".
  • :%s/$/Oh/g: Substitui o fim de cada linha por "Oh".
  • :%s/antigo/novo/gi: Substitui "antigo" por "novo" desconsiderando maíusculas e/ou minúsculas.
  • :%s/ *$//g: Apaga todos os espaços em branco.
  • :g/palavra/d: Apaga todas as linhas contendo "palavra".
  • :v/palavra/d: Apaga todas as linhas que não contém "palavra".
  • :s/maria/joao/: Substitui a primeira ocorrência de "maria" por "joao" na linha corrente.
  • :s/maria/joao/g: Substitui todas as ocorrências de "maria" por "joao" na linha corrente.
  • :%s/maria/joao/g: Substitui "maria" por "joao" em todo o arquivo.
  • :%s/\r//g: Apaga retornos de carro do windows (\n).
  • :%s/\r/\r/g: Transforma os retornos de carro do windows (\n) em retornos do Linux (\r).
  • :%s#<[^>]\+>##g: Apaga tags HTML mas mantêm o texto.
  • :%s/^\(.*\)\n\1$/\1/: Apaga linhas repetidas.
  • Ctrl+a: Incrementa o número sob o cursor.
  • Ctrl+x: Decrementa o número sob o cursor.
  • ggVGg?: Muda o texto usando Rot13.

Minúsculo / Maiúsculo:

  • Vu: Torna todos os caracteres da linha minúsculos.
  • VU: Torna todos os caracteres da linha maiúsculos.
  • g~~: Inverte os caracteres do texto inteiro.
  • vEU: Coloca as letras da palavra em maiúsculas.
  • vE~~: Inverte os caracteres da palavra selecionada.
  • ggguG: Coloca todo o texto em minúsculas.
  • :set ignorecase: Ignora minúsculos/maiúsculos nas buscas.
  • :set smartcase: Ignora minúsculos/maiúsculos em buscas exceto quando uma letra msiúscula é usada.
  • :%s/\<./\u&/g: Coloca a primeira letra de cada palavra em maiúscula.
  • :%s/\<./\l&/g: Coloca a primeira letra de cada palavra em minúscula.
  • :%s/.*/\u&: Coloca a primeira letra de cada linha em maiúscula.
  • :%s/.*/\l&: Coloca a primeira letra de cada linha em minúscula.

Lendo/Gravando arquivos:

  • :1,10 w arquivo: Salva as linhas de 1 a 10 em "arquivo".
  • :1,10 w >> arquivo: Adiciona as linhas de 1 a 10 em "Arquivo".
  • :r arquivo: Insere o conteúdo de "arquivo" no atual.
  • :23r arquivo: Insere o conteúdo de "arquivo" a partir da linha 23.

Explorando arquivos:

  • :e .: Abre o gerenciador de arquivos integrado do Vim.
  • :Sex: Divide a janela e abre o gerenciador de arquivos integrado.
  • :browse e: Abre o gerenciador de arquivos integrado na janela corrente.
  • :ls: Lista os buffers carregados.
  • :cd ..: Move para a pasta superior.
  • :args: Lista os arquivos.
  • :args *.php: Abre lista de arquivos.
  • :grep expressao *.php: retorna uma lista de arquivos .php que contenham a expressão informada.
  • gf: Abre o arquivo sob o cursor.

Interação com o Linux:

  • :!pwd: Executa o comando "pwd" e retorna para o Vim.
  • !!pwd: Executa o comando "pwd" e insere a saída no buffer.
  • :sh: Retorna temporariamente para o shell.
  • exit: Retorna para o Vim.

Alinhamento:

  • :%!fmt: Alinha todas as linhas.
  • !}fmt: Alinha todas as linhas a partir da posição corrente.
  • 5!!fmt: Alinha as próximas 5 linhas.

Abas:

  • :tabnew: Cria uma nova aba.
  • gt: Mostra a próxima aba.
  • :tabfirst: Mostra a primeira aba.
  • :tablast: Mostra a última aba.
  • :tabm n(posicao): Reorganiza as abas.
  • :tabdo %s/foo/bar/g: Executa um comando em todas as abas.
  • :tab ball: Coloca todos os arquivos abertos em abas.

Divisão da janela do Vim:

  • :e arquivo: Edita "arquivo" na janela corrente.
  • :split arquivo: Divide a janela e abre "arquivo".
  • ctrl-w "seta para cima": Coloca o cursor na janela do topo.
  • ctrl-w ctrl-w: Coloca o cursor na próxima janela.
  • ctrl-w_: Maximiza a janela corrente.
  • ctrl-w=: Coloca todas as janelas com o mesmo tamanho.
  • 10 ctrl-w+: Adiciona 10 linhas de tamanho na janela corrente.
  • :vsplit arquivo: Divide a janela verticalmente.
  • :sview arquivo: O mesmo que split, mas em modo somente-leitura.
  • :hide: Fecha a janela corrente.
  • :only: Fecha todas as janelas, exceto a janela atual.
  • :b 2: Abre #2 na janela corrente.

Auto-completion do texto:

  • Ctrl+n Ctrl+p (em modo de inserção): Completa palavra.
  • Ctrl+x Ctrl+l: Completa linha.
  • :set dictionary=dict: Define dict como o dicionário atual.
  • Ctrl+x Ctrl+k: Completa usando o dicionário.

Marcações:

  • mk: Marca a posição corrente como k.
  • ‘k: Move o cursor para a marca k.
  • d’k: Apaga tudo até a marca k.

Abreviações:

  • :ab email me@me.com: Define email como abreviação de me@me.com.

Identação de Texto:

  • :set autoindent: Liga a identação automática.
  • :set smartindent: Liga a identação inteligente.
  • :set shiftwidth=4: Define o tamanho da identação em 4 espaços.
  • ctrl-t, ctrl-d: Identa/Deidenta no modo de inserção.
  • >>: Identa.
  • <<: Deidenta.

Marcação de sintaxe:

  • :syntax on: Liga a marcação de sintaxe.
  • :syntax off: Desliga a marcação de sintaxe.
  • :set syntax=perl: Força a usar a marcação de sintaxe do perl.

Referências

confira os link's abaixos para saber mais:

Releases

No releases published

Packages

No packages published