DEV Community

Cover image for 50 Comandos GNU X 50 Comandos PowerShell
Marcos Oliveira
Marcos Oliveira

Posted on

50 Comandos GNU X 50 Comandos PowerShell

🐂 🆚 ✴️ Vários comandos do dia a dia usados no terminal do GNU e equivalentes em PowerShell.


No mundo da automação de tarefas, dominar a linha de comando é uma habilidade essencial. Seja com os tradicionais comandos GNU, ou no ecossistema Windows, com o poderoso PowerShell, conhecer as ferramentas certas pode transformar sua produtividade.

Nesta postagem, vamos confrontar 50 comandos GNU com seus equivalentes no PowerShell.


💻 01. Remover um diretório recursivamente

🐂 GNU

rm -rf /home/$USER/folder 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Remove-Item -Path "C:\folder" -Recurse -Force 
Enter fullscreen mode Exit fullscreen mode

💻 02. Obter nome de um processo que está rodando:

🐂 GNU

ps aux | grep apache2 # httpd 
Enter fullscreen mode Exit fullscreen mode

systemd: systemctl status apache2

✴️ PowerShell

Get-Service | Where-Object { $_.DisplayName -like "*Apache*" } 
Enter fullscreen mode Exit fullscreen mode

💻 03. Parar um serviço

sudo kill -9 $(pidof apache2) # httpd 
Enter fullscreen mode Exit fullscreen mode

systemd: sudo systemctl stop apache2

✴️ PowerShell

Stop-Service -Name "Apache2.4" 
Enter fullscreen mode Exit fullscreen mode

💻 04. Remover uma Variável de Ambiente

🐂 GNU

unset NOME_DA_VARIAVEL 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell C:\App\bin

# Obtenha o valor atual da variável de ambiente Path do sistema $envPath = [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) # Separe os caminhos em um array $paths = $envPath -split ';' # Filtre para remover o caminho que você não quer mais $newPaths = $paths | Where-Object { $_ -ne "C:\App\bin" } # Recrie a variável de ambiente Path (sem o caminho indesejado) $newPathString = ($newPaths -join ';').TrimEnd(';') # Atualize a variável de ambiente do sistema [Environment]::SetEnvironmentVariable("Path", $newPathString, [EnvironmentVariableTarget]::Machine) 
Enter fullscreen mode Exit fullscreen mode

💻 05. Verificar se um comando existe

🐂 GNU

which mycommand 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Command mycommand 
Enter fullscreen mode Exit fullscreen mode

💻 06. Criar uma pasta/diretório

🐂 GNU

mkdir my-project 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

New-Item -ItemType Directory "MyProject" 
Enter fullscreen mode Exit fullscreen mode

💻 07. Criar uma pasta/diretório recursivamente

🐂 GNU

mkdir -p my-project/folder/new 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

New-Item -Path "C:/MyProject/folder/new" -ItemType Directory 
Enter fullscreen mode Exit fullscreen mode

💻 08. Mover uma pasta/diretório de lugar

🐂 GNU

mv folder new/path/ 
Enter fullscreen mode Exit fullscreen mode

💻 PowerShell

Move-Item -Path "folder" -Destination "C:\new\path\" 
Enter fullscreen mode Exit fullscreen mode

💻 09. Entrar em um pasta/diretório

🐂 GNU

cd pasta/ 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Set-Location pasta 
Enter fullscreen mode Exit fullscreen mode

💻 10. Copiar arquivos e diretórios

🐂 GNU

cp file path/to/dest cp -r folder/ path/to/dest 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Copy-Item file path\to\dest Copy-Item folder\ -Recurse -Destination path\to\dest 
Enter fullscreen mode Exit fullscreen mode

💻 11. Obter a pasta pessoal e/ou nome do usuário

🐂 GNU

$HOME # echo $HOME $USER # echo $USER 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$env:USERPROFILE # Write-Host $env:USERPROFILE $env:USERNAME # Write-Host $env:USERNAME 
Enter fullscreen mode Exit fullscreen mode

💻 12. Listar arquivos e diretórios

🐂 GNU

ls -la 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem -Force 
Enter fullscreen mode Exit fullscreen mode

💻 13. Mostrar conteúdo de um arquivo texto

🐂 GNU

cat file.txt 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Content file.txt 
Enter fullscreen mode Exit fullscreen mode

💻 14. Buscar texto dentro de arquivos

🐂 GNU

grep "termo" file.txt 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Select-String -Pattern "termo" -Path file.txt 
Enter fullscreen mode Exit fullscreen mode

💻 15. Exibir uso de disco

🐂 GNU

df -h 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-PSDrive -PSProvider FileSystem 
Enter fullscreen mode Exit fullscreen mode

💻 16. Ver uso de memória

🐂 GNU

free -h 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize,FreePhysicalMemory 
Enter fullscreen mode Exit fullscreen mode

💻 17. Exibir variáveis de ambiente

🐂 GNU

printenv 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem Env: 
Enter fullscreen mode Exit fullscreen mode

💻 18. Renomear arquivo/diretório

🐂 GNU

mv oldname newname 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Rename-Item -Path oldname -NewName newname 
Enter fullscreen mode Exit fullscreen mode

💻 19. Executar comando como administrador/root

🐂 GNU

sudo comando 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell (executar shell como administrador)

Start-Process powershell -Verb runAs 
Enter fullscreen mode Exit fullscreen mode

💻 20. Ver rede/interfaces

🐂 GNU

ip addr show 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-NetIPAddress 
Enter fullscreen mode Exit fullscreen mode

💻 21. Cria uma variável de Ambiente

Exemplo para Terlang: C:\Program Files\Terlang\bin(Windows) e ${HOME}/.local/terlang/bin/(GNU)

🐂 GNU

export PATH="${PATH}:${HOME}/.local/terlang/bin/" 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Terlang\bin", [System.EnvironmentVariableTarget]::Machine) 
Enter fullscreen mode Exit fullscreen mode

💻 22. Exibir últimas linhas de um arquivo (tail)

🐂 GNU

tail -n 20 file.log 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Content file.log -Tail 20 
Enter fullscreen mode Exit fullscreen mode

💻 23. Exibir processos em tempo real (top)

🐂 GNU

top 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 
Enter fullscreen mode Exit fullscreen mode

(não é em tempo real, mas dá um snapshot dos processos com maior uso de CPU)


💻 24. Buscar e matar processo por nome

🐂 GNU

pkill -f processo 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Process -Name processo | Stop-Process -Force 
Enter fullscreen mode Exit fullscreen mode

💻 25. Monitorar alterações em arquivo (tail -f)

🐂 GNU

tail -f file.log 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Content file.log -Wait 
Enter fullscreen mode Exit fullscreen mode

💻 26. Compactar arquivos (tar gzip)

🐂 GNU

tar -czvf archive.tar.gz folder/ 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Compress-Archive -Path folder\* -DestinationPath archive.zip 
Enter fullscreen mode Exit fullscreen mode

💻 27. Descompactar arquivo zip

🐂 GNU

unzip archive.zip 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Expand-Archive -Path archive.zip -DestinationPath destino\ 
Enter fullscreen mode Exit fullscreen mode

💻 28. Visualizar variáveis de ambiente específicas

🐂 GNU

echo $VARIAVEL 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$env:VARIAVEL 
Enter fullscreen mode Exit fullscreen mode

💻 29. Definir variável de ambiente para a sessão atual

🐂 GNU

export VARIAVEL=valor 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$env:VARIAVEL="valor" 
Enter fullscreen mode Exit fullscreen mode

💻 30. Exibir informações do sistema (kernel, SO)

🐂 GNU

uname -a 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture 
Enter fullscreen mode Exit fullscreen mode

💻 31. Ver horário e data atual

🐂 GNU

date 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Date 
Enter fullscreen mode Exit fullscreen mode

💻 32. Exibir quem está logado no sistema

🐂 GNU

who 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

query user 
Enter fullscreen mode Exit fullscreen mode

💻 33. Ver portas TCP abertas e processos associados

🐂 GNU

sudo netstat -tulpn 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-NetTCPConnection | Select-Object LocalAddress,LocalPort,OwningProcess 
Enter fullscreen mode Exit fullscreen mode

💻 34. Buscar arquivos pelo nome

🐂 GNU

find /path -name "arquivo.txt" 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem -Path C:\path -Recurse -Filter "arquivo.txt" 
Enter fullscreen mode Exit fullscreen mode

💻 35. Agendar tarefa (cron / agendador)

🐂 GNU

crontab -e 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

# Exemplo simples para criar tarefa agendada via PowerShell $action = New-ScheduledTaskAction -Execute "notepad.exe" $trigger = New-ScheduledTaskTrigger -At 9am -Daily Register-ScheduledTask -TaskName "AbrirNotepad" -Action $action -Trigger $trigger 
Enter fullscreen mode Exit fullscreen mode

💻 36. Limpar tela

🐂 GNU

clear 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Clear-Host 
Enter fullscreen mode Exit fullscreen mode

💻 37. Mostrar variáveis do sistema (com nome e valor)

🐂 GNU

env 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem Env: 
Enter fullscreen mode Exit fullscreen mode

💻 38. Comparar arquivos linha a linha

🐂 GNU

diff file1 file2 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Compare-Object (Get-Content file1) (Get-Content file2) 
Enter fullscreen mode Exit fullscreen mode

💻 39. Executar script local (bash / powershell)

🐂 GNU

./script.sh 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

.\script.ps1 
Enter fullscreen mode Exit fullscreen mode

💻 40. Parar execução do comando (Ctrl + C)

🐂 GNU

Ctrl + C 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Ctrl + C 
Enter fullscreen mode Exit fullscreen mode

💻 41. Obter histórico de comandos na sessão atual

🐂 GNU

history 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-History 
Enter fullscreen mode Exit fullscreen mode

💻 42. Obter arquivo com histórico de comandos

🐂 GNU

cat ~/.bash_history 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Content (Get-PSReadlineOption).HistorySavePath 
Enter fullscreen mode Exit fullscreen mode

💻 43. Buscar texto no histórico de comandos

🐂 GNU

history | grep termo 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-History | Where-Object CommandLine -Match "termo" 
Enter fullscreen mode Exit fullscreen mode

💻 44. Exibir variáveis definidas na sessão atual

🐂 GNU

set 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Variable 
Enter fullscreen mode Exit fullscreen mode

💻 45. Definir variável local (shell/session)

🐂 GNU

VARIAVEL=valor 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$VARIAVEL = "valor" 
Enter fullscreen mode Exit fullscreen mode

💻 46. Limitar saída de comando (paginador)

🐂 GNU

command | less 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

command | Out-Host -Paging 
Enter fullscreen mode Exit fullscreen mode

💻 47. Definir alias (apelido para comando)

🐂 GNU

alias ll='ls -la' 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Set-Alias ll Get-ChildItem 
Enter fullscreen mode Exit fullscreen mode

💻 48. Remover alias

🐂 GNU

unalias ll 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Remove-Item Alias:ll 
Enter fullscreen mode Exit fullscreen mode

💻 49. Mostrar informações da CPU

🐂 GNU

lscpu 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-CimInstance Win32_Processor | Select-Object Name,NumberOfCores,NumberOfLogicalProcessors 
Enter fullscreen mode Exit fullscreen mode

💻 50. Abrir editor de texto no terminal

🐂 GNU

vim arquivo.txt 
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

notepad arquivo.txt 
Enter fullscreen mode Exit fullscreen mode

🍖 Bônus:

Fazer download de arquivo:

  • GNU:
wget https://url.com/file.zip # Ou: wget https://url.com/file.zip -O outronome.zip 
Enter fullscreen mode Exit fullscreen mode
  • PowerShell:
Invoke-WebRequest -Uri "https://url.com/file.zip" -OutFile "file.zip" 
Enter fullscreen mode Exit fullscreen mode

👓 Veja também:

🔗 7 Exemplos de Uso do PowerShell

🔗 Conheça 7 ferramentas do GNU que são o poder da linha de comando

🔗 10 Dicas de Flags e Parâmetros para GNU GCC

🔗 Personalize seu PowerShell Like a Pro

Top comments (0)