Ce face PowerShell pe macOS și Linux
Din PowerShell 6.0, PowerShell rulează și pe macOS și Linux; comanda se numește pwsh. Microsoft recomandă pe macOS pachetul .pkg de pe pagina de release-uri GitHub (din versiunile lansate în mai 2026, pachetul este semnat de Microsoft). Homebrew (brew install powershell, actualizare cu brew upgrade powershell) este o metodă alternativă, întreținută de comunitatea Homebrew. Pe Ubuntu, metoda preferată este depozitul Microsoft: instalezi pachetul packages-microsoft-prod.deb pentru versiunea ta de Ubuntu, apoi sudo apt-get update și sudo apt-get install -y powershell. Pe distribuțiile cu Snap există și sudo snap install powershell --classic (pachet întreținut de Canonical).
Pe macOS și Linux lipsesc aliasurile care s-ar bate cap în cap cu programele sistemului: ls, cat, rm, cp, mv, ps, man, sort, kill și altele. Când scrii ls, rulează /usr/bin/ls, care întoarce text, nu Get-ChildItem. În scripturi scrie numele cmdlet-urilor. Lipsesc și comenzile specifice Windows (Get-Service, registrul), iar politica de execuție nu se aplică.
Sistemul de fișiere este sensibil la majuscule: Note.txt și note.txt sunt fișiere diferite, iar un modul cu numele scris greșit nu se încarcă. Cmdlet-urile acceptă ca separator atât /, cât și \, dar / este forma firească; ca să nu depinzi de platformă, construiește căile cu Join-Path și verifică sistemul cu $IsWindows, $IsLinux, $IsMacOS. Profilul este în ~/.config/powershell/, modulele utilizatorului în ~/.local/share/powershell/Modules.
Parametri
| Parametru | Descriere |
|---|---|
pwsh |
Pornește PowerShell 7 din Terminal (bash, zsh). |
pwsh -NoProfile |
Pornește fără profil. |
pwsh -File |
Rulează un script și iese, de exemplu din cron. |
pwsh -Command |
Rulează o comandă PowerShell din alt shell: pwsh -Command 'Get-Date -Format yyyy-MM-dd'. |
$IsLinux / $IsMacOS / $IsWindows |
Variabile automate True/False pentru sistemul curent. |
Exemple
Exemplul 1: Verifici versiunea instalată
Din Terminal (zsh sau bash), după instalare.
pwsh --version
Ieșire în terminal
PowerShell 7.6.6
Exemplul 2: ls este programul sistemului, nu un alias
Pe Linux, Get-Command ls găsește executabilul. Pentru obiecte folosește Get-ChildItem.
Get-Command ls
Ieșire în terminal
CommandType Name Version Source
----------- ---- ------- ------
Application ls 0.0.0.0 /usr/bin/ls
Exemplul 3: Căi portabile și majuscule
Join-Path pune separatorul potrivit platformei. Al doilea apel eșuează pentru că fișierul real se numește note.txt.
$IsLinux
Join-Path $HOME 'Proiecte' 'facturi'
Get-Content ~/Note.txt
Ieșire în terminal
True
/home/ana/Proiecte/facturi
Get-Content: Cannot find path '/home/ana/Note.txt' because it does not exist.
Greșeli frecvente
- Să scrii
ls | Where-Object Length -gt 1MBpe Linux:lse programul sistemului și trimite text, deci filtrul nu găsește nimic. FoloseșteGet-ChildItem. - Să scrii căi cu
C:\sau cu majuscule greșite în scripturi care trebuie să ruleze și pe Linux; folosește$HOME,Join-Pathși numele exacte. - Să încerci
sudo Get-ChildItem:sudonu știe de cmdlet-uri. Ruleazăsudo pwsh -Command '...'. - Să instalezi pachetul Ubuntu dintr-un depozit pentru altă versiune de Ubuntu: scriptul oficial folosește
$VERSION_IDdin/etc/os-releaseca să aleagă depozitul corect.
Comenzi înrudite
Comenzi CMD și echivalentul PowerShell: Ce folosești în PowerShell în locul comenzilor CMD obișnuite (dir, cd, copy, del, ipconfig, ping, tasklist, taskkill, set).$PROFILE: Variabila $PROFILE conține calea scriptului care rulează la fiecare pornire a PowerShell, unde îți pui aliasurile și funcțiile.Set-ExecutionPolicy: Stabilește pe Windows dacă PowerShell are voie să ruleze scripturi .ps1; Unblock-File deblochează un script descărcat de pe internet.Get-ChildItem: Listează fișierele și folderele dintr-o locație, opțional recursiv, filtrate după nume sau tip (echivalentul lui dir și ls).