Passei um tempo usando o Windows 10 depois de anos em Linux e macOS. Logo percebi dificuldades específicas com shell, instalação de programas, etc. Mas também percebi que é possível deixar o Windows muito próximo, no quesito de usabilidade, de um Linux com shell completo ou macOS. Neste artigo vou mostrar as ferramentas e configurações que mais me ajudaram. Boa leitura! ?
Gerenciador de pacotes
Vou começar falando dele por um motivo muito simples: outros programas podem ser instalados com ele. Pois é, parece que a Microsoft aprendeu com as distros Linux e projetos como o Chocolatey, já que finalmente anunciou seu gerenciador de pacotes, o winget. Para instalar, baixe o arquivo com extensão .appxbundle na área de releases do repositório do projeto no Github. Após isso você pode abrir qualquer terminal (Command Prompt / cmd.exe ou Powershell) e digitar winget pra ver seu novo gerenciador de pacotes:
Vamos buscar por exemplo os programas que que tenham a palavra "security" em seu nome ou descrição, para testar:
Qualquer um desses programas pode ser instalado com um simples "winget install". Faça o teste com o Notepad++ por exemplo:
winget install notepad++
Os comandos list (listar os programas instalados) e upgrade (atualizar os programas instalados) ainda são experimentais, mas você pode habilitá-los da seguinte maneira:
- Digite winget settings no terminal.
- Um arquivo settings.json se abrirá. Nele, adicione:
"experimentalFeatures": { "list" : true, "upgrade" : true },
O meu aqui tá assim:
A lista de programas disponíveis está aumentando cada vez mais, já que o winget é de código aberto. ?
Terminal decente
Mas na real, a primeira coisa de que senti falta foi um terminal decente. Graças a Deus encontrei o Windows Terminal. Para instalar com o winget (não se assuste - dá pra usar a tecla Tab para autocompletar):
winget install Microsoft.WindowsTerminalPreview
Aí olha só quem chega na festa:
Este terminal concentra tudo em um: Prompt de Comando, Powershell e Linux (rodando via WSL), e é multi-abas. Claro que tá longe de um Terminator ou iTerm2, mas também tá longe de um cmd.exe né? Deus me livre e guarde! kkkk
O novo Windows Terminal também tem uma configuração baseada em JSON e uns recursos interessantes como a divisão automática da janela do terminal. Ao apertar Alt+Shitft+D, olha o que acontece:
A divisão da janela (split) funciona para janelas com qualquer shell.
Hashes
Eu sempre curti um software pra Windows chamado TotalHash, que adiciona os hashes de arquivos em suas propriedades, mas este infelizmente tem dois problemas: não é livre nem suporta plugins (logo, não consigo extender para suportar os hashes que preciso), é pago e não é scriptável. Resolvi isso com o cmdlet Get-FieHash do Powershell. Por padrão ele exibe o SHA-256 de um arquivo, mas há várias opções, como se pode observar na imagem:
Sniffer
Por essa nem o futuro esperava! O Windows 10 agora tem um sniffer nativo: o pktmon. Se liga:
E sim, ele suporta filtros. Por exemplo, para logar somente pacotes IPv4 na porta 80/tcp:
pktmon filter add HttpPuro -d ipv4 -t tcp -p 80
Você pode adicionar mais de um filtro se quiser e com qualquer nome (aqui chamei o meu de HttpPuro). Depois, é só iniciar a captura pedindo para logar os eventos:
pktmon start --etw
Para parar a captura, o comando é o stop:
pktmon stop
Por padrão o pktmon cria um arquivo chamado PktMon.etl num formato próprio. Este pode ser convertido para texto:
pktmon format PktMon.etl -o log.txt
Ou para o formato PCAP-NG, suportado pelo Wireshark e outros analisadores de pacotes:
pktmon pcapng PktMon.etl -o capture.pcap
Há várias outras opções que valem serem exploradas. É de fato um sniffer completo.
Em breve vou falar mais sobre as seguintes ferramentas:
- PowerToys
- Sysinternals
- O novo diskusage.exe.
- WSL 2.0.
Por hora é isso. Conforme eu encontre coisas novas, vou adicionando aqui. Se souber de alguma novidade ou algo que ache que precise ser citado aqui, por favor comente aí embaixo!
Espero que seja útil para quem precisa usar o Windows por algum tempo, por qualquer motivo. ?