Bash (Ubuntu)
Roadmap
-
- Listagem de arquivos
- Entrando e saíndo de diretórios
- Exibindo o diretório atual
- Exibindo o tamanho de um diretório
- Criando diretórios
- Criando arquivos
- Excluíndo diretórios e arquivos
- Copiando diretórios e arquivos
- Movendo e renomeando arquivos e pastas
- Visualização de arquivos
- Compressão de arquivos
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.
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.
Exibindo o diretório atual
pwd
: Exibe o caminho de diretório atual.
Exibindo o tamanho de um diretório
du [diretório]
: Exibe o tamanho de um diretório e todos os seus subdiretórios.
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.
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.
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.
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.
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]
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.
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).
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.
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.
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.
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.
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'.
Git
Configurando o git
- Instalção: https://git-scm.com/downloads
- 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 dogit 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 ogit add
, use antes dogit 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: