git filter-repo --invert-paths --path <file> reescreve os commits, mas rotacione a chave vazada primeiro — filter-branch está obsoleto e reescrever sozinho não desfaz a exposição.
Blog
Blog do CliAI
Notícias, análises e tutoriais sobre o ecossistema CliAI.
-
2026-06-01
Remover uma senha do histórico do git
-
2026-05-29
Como manter um comando rodando após sair do SSH
nohup cobre quem planeja com antecedência; disown resgata o que você já iniciou; tmux, setsid e systemd-run cobrem o resto conforme a situação.
-
2026-05-27
kill -9 não funciona? Por que o processo não morre
kill -9 não funciona contra zumbis, processos em D-state ou o que um supervisor reinicia. Como distinguir os casos e o que realmente mata o processo.
-
2026-05-25
Filtrar JSON na linha de comando com jq
jq '.field' extrai um valor do JSON; -r remove as aspas, select() filtra por condição e @csv transforma uma resposta de API em linhas de tabela.
-
2026-05-22
Qual pasta está comendo o disco? du, ordenado por tamanho
du -h --max-depth=1 | sort -rh, depois desça um nível de cada vez. Mais a flag -x que impede o du de contar outros sistemas de arquivos na resposta.
-
2026-05-20
df diz que o disco está cheio e o du diz que não
Os dois. O espaço é de arquivos apagados que um processo mantém abertos, ou acabaram os inodes e não os bytes. Como distinguir em quatro comandos.
-
2026-05-18
Linguagem natural para comando de shell: como funciona
Você descreve a tarefa, recebe o comando exato, lê e executa. O que essas ferramentas fazem, onde falham e como se diferenciam de um agente de IA para código.
-
2026-05-15
sed -i não funciona no Mac? Diferenças BSD e GNU
O erro «invalid command code» significa que o macOS traz ferramentas BSD, não GNU. Seis diferenças de flags que quebram scripts Linux no Mac, com a correção de cada uma.
-
2026-05-13
Docker comeu seu disco: como recuperar o espaço
Primeiro docker system df, depois prune. O que cada prune realmente apaga, por que os volumes sobrevivem por padrão e como não remover a imagem que você ainda precisa.
-
2026-05-10
Desfazer o último commit do git mantendo as alterações
git reset --soft HEAD~1 se você ainda não fez push, git revert se já fez. A diferença entre soft, mixed e hard, e como o reflog te resgata se você escolher errado.
-
2026-05-08
Encontre o processo cuja memória não para de crescer
Um vazamento não é memória alta, é memória que nunca volta a cair. Meça o RSS ao longo do tempo com pidstat, confirme com pmap e diferencie vazamento de cache.
-
2026-05-06
Imprimir uma coluna de um CSV com awk (e quando não usar)
awk -F, '{print $2}' funciona até um campo conter uma vírgula entre aspas — aí todas as colunas seguintes se deslocam e seus totais ficam silenciosamente errados.