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)