DEV Community

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

Posted on

50 GNU Commands X 50 PowerShell Commands

πŸ‚ πŸ†š ✴️ Everyday terminal commands used in GNU and their PowerShell equivalents.


In the world of task automation, mastering the command line is an essential skill. Whether using traditional GNU commands or navigating the Windows ecosystem with the powerful PowerShell, knowing the right tools can transform your productivity.

In this post, we’ll compare 50 GNU commands with their PowerShell equivalents.


πŸ’» 01. Delete a Directory Recursively

πŸ‚ 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. Get the Name of a Running Process

πŸ‚ 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. Stop a Service

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. Remove an Environment Variable

πŸ‚ GNU

unset VARIABLE_NAME  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell C:\App\bin

# Get the current value of the system Path environment variable  
$envPath = [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine)  

# Split paths into an array  
$paths = $envPath -split ';'  

# Filter to remove the unwanted path  
$newPaths = $paths | Where-Object { $_ -ne "C:\App\bin" }  

# Rebuild the Path environment variable (without the unwanted path)  
$newPathString = ($newPaths -join ';').TrimEnd(';')  

# Update the system environment variable  
[Environment]::SetEnvironmentVariable("Path", $newPathString, [EnvironmentVariableTarget]::Machine)  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 05. Check if a Command Exists

πŸ‚ GNU

which mycommand  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Command mycommand  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 06. Create a Folder/Directory

πŸ‚ GNU

mkdir my-project  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 07. Create a Folder/Directory Recursively

πŸ‚ 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. Move a Folder/Directory

πŸ‚ 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. Enter a Folder/Directory

πŸ‚ GNU

cd folder/  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Set-Location folder  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 10. Copy Files and Directories

πŸ‚ 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. Get the Home Directory and/or Username

πŸ‚ 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. List Files and Directories

πŸ‚ GNU

ls -la  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem -Force  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 13. Display Text File Content

πŸ‚ GNU

cat file.txt  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 14. Search for Text Inside Files

πŸ‚ GNU

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

✴️ PowerShell

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

πŸ’» 15. Show Disk Usage

πŸ‚ GNU

df -h  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 16. Check Memory Usage

πŸ‚ 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. Display Environment Variables

πŸ‚ GNU

printenv  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem Env:  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 18. Rename File/Directory

πŸ‚ GNU

mv oldname newname  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 19. Run Command as Administrator/Root

πŸ‚ GNU

sudo command  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell (run shell as admin)

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

πŸ’» 20. Check Network/Interfaces

πŸ‚ GNU

ip addr show  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-NetIPAddress  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 21. Create an Environment Variable

Example for Terlang: C:\Program Files\Terlang\bin (Windows) and ${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. Display Last Lines of a File (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. Monitor Processes in Real-Time (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

(not real-time, but shows a snapshot of top CPU-consuming processes)


πŸ’» 24. Find and Kill a Process by Name

πŸ‚ GNU

pkill -f process  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 25. Monitor File Changes (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. Compress Files (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. Extract Zip File

πŸ‚ GNU

unzip archive.zip  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 28. View Specific Environment Variables

πŸ‚ GNU

echo $VARIABLE  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$env:VARIABLE  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 29. Set Environment Variable for Current Session

πŸ‚ GNU

export VARIABLE=value  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$env:VARIABLE="value"  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 30. Display System Information (kernel, OS)

πŸ‚ 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. Check Current Date and Time

πŸ‚ GNU

date  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Date  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 32. Show Logged-In Users

πŸ‚ GNU

who  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

query user  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 33. Check Open TCP Ports and Associated Processes

πŸ‚ 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. Search for Files by Name

πŸ‚ GNU

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

✴️ PowerShell

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

πŸ’» 35. Schedule a Task (cron / Task Scheduler)

πŸ‚ GNU

crontab -e  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

# Simple example to create a scheduled task via PowerShell  
$action = New-ScheduledTaskAction -Execute "notepad.exe"  
$trigger = New-ScheduledTaskTrigger -At 9am -Daily  
Register-ScheduledTask -TaskName "OpenNotepad" -Action $action -Trigger $trigger  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 36. Clear Screen

πŸ‚ GNU

clear  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Clear-Host  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 37. Show System Variables (with name and value)

πŸ‚ GNU

env  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-ChildItem Env:  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 38. Compare Files Line by Line

πŸ‚ 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. Run Local Script (bash / PowerShell)

πŸ‚ GNU

./script.sh  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

.\script.ps1  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 40. Stop Command Execution (Ctrl + C)

πŸ‚ GNU

Ctrl + C  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Ctrl + C  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 41. Get Command History for Current Session

πŸ‚ GNU

history  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-History  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 42. Get File with Command History

πŸ‚ GNU

cat ~/.bash_history  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 43. Search Text in Command History

πŸ‚ GNU

history | grep term  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 44. Display Variables Defined in Current Session

πŸ‚ GNU

set  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

Get-Variable  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 45. Define Local Variable (shell/session)

πŸ‚ GNU

VARIABLE=value  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

$VARIABLE = "value"  
Enter fullscreen mode Exit fullscreen mode

πŸ’» 46. Limit Command Output (pager)

πŸ‚ GNU

command | less  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 47. Define Alias (command shortcut)

πŸ‚ GNU

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

✴️ PowerShell

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

πŸ’» 48. Remove Alias

πŸ‚ GNU

unalias ll  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

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

πŸ’» 49. Show CPU Information

πŸ‚ 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. Open Text Editor in Terminal

πŸ‚ GNU

vim file.txt  
Enter fullscreen mode Exit fullscreen mode

✴️ PowerShell

notepad file.txt  
Enter fullscreen mode Exit fullscreen mode

πŸ– Bonus:

Download a File:

  • GNU:
wget https://url.com/file.zip  
# Or: wget https://url.com/file.zip -O newname.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

πŸ‘“ See Also:

πŸ”— 7 PowerShell Usage Examples

πŸ”— Discover 7 GNU Tools That Power the Command Line

πŸ”— 10 Tips for GNU GCC Flags and Parameters

πŸ”— Customize Your PowerShell Like a Pro

Top comments (0)