Rediger

Moving from Mac (Unix) to Windows

This guide helps you transfer familiar macOS development workflows to Windows, Windows Subsystem for Linux (WSL), and Windows-native developer tools.

For native Windows app development, the nearest equivalent to Xcode is Visual Studio. For cross-platform source code editing and a large extension ecosystem, use Visual Studio Code. If you build Windows apps from a terminal or a cross-platform framework, the public-preview Windows App Development CLI can set up SDKs, add package identity, and create MSIX packages.

Set up Windows for development

Start with these Windows 11 features:

  1. Configure developer settings. On Windows 11, version 25H2 and later, open Settings > System > Advanced to configure file extensions, hidden files, long paths, the default terminal, PowerShell scripts, sudo, Developer Mode, and Dev Drive. On earlier releases, search Settings for For developers. Developer Mode is primarily needed to develop, deploy, and test Windows apps; it isn't required for most web or cross-platform development. For details, see Advanced Windows Settings.

  2. Install tools with WinGet. Windows Package Manager (WinGet) is the Windows equivalent of a package manager such as Homebrew. Use it to search for, install, upgrade, remove, and configure applications. For example, winget upgrade --all updates packages that WinGet manages.

  3. Make setup repeatable. WinGet Configuration uses a YAML file to declare packages and Windows settings. Store a configuration with your project or onboarding documentation, review its resources before running it, and apply it with:

    winget configure -f <path-to-configuration-file>
    
  4. Consider a Dev Drive. Dev Drive is a ReFS volume optimized for development workloads. Use it for source repositories, package caches, and build output rather than general documents. Create one from Settings > System > Storage > Advanced storage settings > Disks & volumes.

Keyboard shortcuts

Tip

Use PowerToys Keyboard Manager to remap keys and shortcuts. PowerToys Quick Accent provides fast access to accented characters.

Operation macOS Windows
Copy Command+C Ctrl+C
Cut Command+X Ctrl+X
Paste Command+V Ctrl+V
Undo Command+Z Ctrl+Z
Save Command+S Ctrl+S
Open Command+O Ctrl+O
Lock computer Command+Control+Q Windows key+L
Show desktop Command+F3 Windows key+D
Open file browser Command+N in Finder Windows key+E
Minimize all windows in the front app or across the desktop Command+Option+M (front app) Windows key+M (desktop)
Search Command+Space Windows key+S
Close a document or tab Command+W Ctrl+W
Quit the active app or close the active window Command+Q (quit app) Alt+F4 (close window)
Switch apps Command+Tab Alt+Tab
Show open windows Control+Up Windows key+Tab
Switch virtual desktops Control+Left or Control+Right Windows key+Ctrl+Left or Windows key+Ctrl+Right
Open Snap layouts N/A Windows key+Z
Save a screenshot Command+Shift+3 Windows key+PrtScn
Capture a region or window Command+Shift+4 Windows key+Shift+S
View item information or properties Command+I Alt+Enter
Select all items Command+A Ctrl+A
Select noncontiguous items Command, then select each item Ctrl, then select each item
Open emoji and symbol picker Control+Command+Space Windows key+.

In Windows Terminal, use Ctrl+Shift+C and Ctrl+Shift+V to copy and paste by default. Ctrl+C remains available to interrupt a running command.

Trackpad shortcuts

Note

These gestures require a precision touchpad. Configure three- and four-finger gestures under Settings > Bluetooth & devices > Touchpad.

Operation macOS Windows
Scroll Two-finger vertical swipe Two-finger vertical swipe
Zoom Two-finger pinch Two-finger pinch
Open a context menu Two-finger click Two-finger tap
Show open windows Four-finger upward swipe Three-finger upward swipe
Show desktop Spread four fingers Three-finger downward swipe
Switch apps N/A Three-finger left or right swipe
Switch virtual desktops Four-finger left or right swipe Four-finger left or right swipe

For the current gesture list, see Touch gestures for Windows.

Command-line shells and terminals

Windows Terminal can host PowerShell, Command Prompt, WSL distributions, SSH, Azure CLI, Git Bash, and other command-line applications.

PowerShell

PowerShell is a cross-platform shell and automation language built on .NET. PowerShell 7 is open source, runs on Windows, macOS, and Linux, and installs alongside the Windows PowerShell 5.1 version included with Windows. Install the current version with WinGet:

winget install --id Microsoft.PowerShell --source winget

Launch PowerShell 7 with pwsh. Commands such as ls, mv, and cat are aliases for PowerShell cmdlets, not GNU utilities. Their parameters and object-based pipeline behavior differ from Bash. Use Get-Help and read about PowerShell aliases when translating scripts.

Command Prompt remains available for batch files and tools that depend on Cmd syntax.

Native Unix-style tools

Many familiar commands run natively on Windows without WSL:

  • Coreutils for Windows provides Microsoft-maintained builds of commands such as ls, cat, cp, mv, grep, find, head, tail, wc, sort, and uniq. Install it with winget install Microsoft.Coreutils. PowerShell aliases can take precedence, so use names such as ls.exe or cp.exe when you specifically want the Coreutils command.
  • sudo elevates a command through User Account Control on Windows 11, version 24H2 and later. Unlike Unix sudo, it doesn't run a command as another user. On Windows 11, version 25H2 and later, enable it under Settings > System > Advanced.
  • curl and tar are included for downloading files and working with archives.
  • Edit is a lightweight terminal text editor included in current Windows 11 releases. Install it on other supported systems with winget install Microsoft.Edit.

Use Linux with WSL

Windows Subsystem for Linux (WSL) runs a Linux environment directly on Windows and is often the most familiar option for developers coming from macOS. New installations use WSL 2 by default.

To install WSL with the default Ubuntu distribution, run the following command in an elevated PowerShell window, and then restart Windows:

wsl --install

To choose a different distribution, list the available distributions and install one by name instead:

wsl --list --online
wsl --install -d <DistributionName>

After installation, use the following command to update WSL:

wsl --update

For the best performance with Linux tools, store projects in the Linux file system, such as /home/<user>/project, rather than under /mnt/c. From WSL, run explorer.exe . to open the current directory in File Explorer. Windows exposes Linux files under \\wsl$, and Windows and Linux commands can call each other.

Visual Studio Code can open a project inside WSL with code ., keeping the editor UI on Windows while extensions, terminals, and tools run in Linux. See Developing in WSL with Visual Studio Code and Working across Windows and Linux file systems.

Use Windows Terminal

Windows Terminal is the recommended host for command-line work on Windows. It supports profiles, tabs, split panes, themes, Unicode, and GPU-accelerated text rendering. Windows Terminal is included with Windows 11 and is available from the Microsoft Store for Windows 10.

  • Open its command palette with Ctrl+Shift+P.
  • Split the current profile into panes with Alt+Shift+Plus or Alt+Shift+Minus.
  • Create profiles for PowerShell, WSL, Command Prompt, SSH, and other tools.

The legacy Windows Console Host remains available for compatibility with older command-line applications.

Window management and productivity

Windows 11 includes Snap layouts, Snap Assist, Snap groups, and multiple desktops. Hover over a window's maximize button or press Windows key+Z to choose a layout. Use Windows key+Tab to view Snap groups and desktops.

Microsoft PowerToys adds utilities for developers and power users. Command Palette is a Spotlight-like launcher for apps, commands, files, settings, WinGet packages, open windows, clipboard history, and terminal profiles. Open it with Windows key+Alt+Space. Other useful utilities include Keyboard Manager, Quick Accent, FancyZones, and Workspaces.

File Explorer combines local and cloud files, pinned locations, tabs, and recent items. Use View > Show to display file extensions and hidden files. The streamlined context menu keeps common commands at the top; select Show more options for legacy shell extensions.

Apps and utilities

Task macOS Windows
Settings System Settings Settings
Monitor processes Activity Monitor Task Manager
Format and partition disks Disk Utility Disk Management
Edit text TextEdit Notepad or Edit
View system events Console Event Viewer
Find files and apps Spotlight Windows Search or PowerToys Command Palette
Manage packages Homebrew WinGet
Store development files N/A Dev Drive
Run Unix command-line tools Built in Coreutils, sudo, or WSL
Arrange windows Mission Control Snap layouts and multiple desktops
Add productivity utilities N/A PowerToys