PowerShell
- Okunuşu
- pavır şel
Kısaca
PowerShell, Microsoft'un yönetimi otomatikleştirmeye yönelik komut satırı kabuğu ve betik dilidir; komutlar arasında düz metin yerine nesneler aktarır.
PowerShell nedir?
Windows PowerShell 1.0, eski Windows komut isteminin modern bir alternatifi olarak 2006'da yayımlandı. Microsoft 2016'da onu açık kaynaklı ve platformlar arası yaptı; bugünkü çizgi olan PowerShell 7 Windows, macOS ve Linux'ta çalışır ve pwsh komutuyla başlatılır.
Cmdlet adı verilen komutları, tahmin etmeyi kolaylaştıran bir Fiil-İsim (Verb-Noun) kalıbını izler: Get-Process, Stop-Service, New-Item. Unix kabuklarından büyük farkı nesne pipeline'ıdır. Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU bir komuttan diğerine özellikleri olan .NET nesneleri aktarır; bu yüzden metni awk gibi araçlarla ayrıştırmaya gerek kalmaz.
PowerShell, Windows sunucularını, Active Directory'yi, Microsoft 365'i, Exchange'i ve Azure'u otomatikleştirmenin standart yoludur ve birçok sistem yöneticisi onu her gün kullanır. Betikler .ps1 dosyaları olarak kaydedilir, modüller PowerShell Gallery üzerinden paylaşılır ve herhangi bir .NET kütüphanesini doğrudan çağırabilir.
Sık yapılan bir yanlış, PowerShell'in yalnızca Windows için olduğunu düşünmektir. PowerShell 7 Linux ve macOS'ta da çalışır, ama Windows'a özel bazı modüller çalışmaz. Windows'taki varsayılan yürütme ilkesi (execution policy) imzasız betikleri engelleyebilir; bu yeni başlayanları şaşırtır, ama bu bir güvenlik ayarıdır, betiklerin bozuk olduğunu göstermez.
Önemli noktalar
- PowerShell, ilk olarak 2006'da yayımlanan Microsoft'un kabuğu ve betik dilidir.
- PowerShell 7 açık kaynaktır ve Windows, macOS ve Linux'ta çalışır.
- Cmdlet'ler Get-Process gibi Fiil-İsim adları kullanır.
- Pipeline, komutlar arasında metin değil .NET nesneleri aktarır.
- Windows, Microsoft 365 ve Azure'u otomatikleştirmenin standart aracıdır.
Örnek
# The five processes using the most memory, as objects with properties
Get-Process |
Sort-Object WorkingSet64 -Descending |
Select-Object -First 5 Name, Id, @{ Name = 'MemoryMB'; Expression = { [math]::Round($_.WorkingSet64 / 1MB) } }
# Find large log files and export the list to CSV
Get-ChildItem -Path C:\Logs -Filter *.log -Recurse |
Where-Object Length -gt 50MB |
Export-Csv -Path big-logs.csv -NoTypeInformationSık sorulan sorular
PowerShell ile Bash arasındaki fark nedir?
Bash komutlar arasında düz metin aktarır, PowerShell ise yapılandırılmış nesneler. Bash Linux ve macOS'ta standarttır; PowerShell Windows'ta standarttır ve başka sistemlerde de çalışır.
Windows PowerShell ile PowerShell 7 arasındaki fark nedir?
Windows PowerShell 5.1 Windows ile gelir ve .NET Framework üzerine kuruludur. PowerShell 7 ise modern .NET üzerine kurulu, daha yeni, açık kaynaklı ve platformlar arası sürümdür; yeni özellikler ona eklenir.
Cmdlet nedir?
Get-ChildItem ya da Set-Location gibi Fiil-İsim biçiminde adlandırılmış yerleşik bir PowerShell komutudur. Cmdlet'ler parametre alır ve bir sonraki komutun kullanabileceği nesneler üretir.
İlgili sayfalar
- Shellİşletim Sistemleri, s. 28Shell, kullanıcının yazdığı ya da bir betikte yazılı komutları okuyup işletim sisteminden çalıştırmasını isteyen, genellikle metin arayüzlü bir programdır.
- BashProgramlama Dilleri, s. 2Bash, çoğu Linux sisteminde varsayılan Unix kabuğu ve betik dilidir; komutları etkileşimli yazmak ve görevleri betiklerle otomatikleştirmek için kullanılır.
- .NETBackend ve API'ler, s. 1.NET, Microsoft'un başta C# ile web, masaüstü, mobil, bulut ve oyun uygulamaları geliştirmeye yarayan ücretsiz ve açık kaynaklı platformudur.
- AzureDevOps ve Bulut, s. 3Microsoft Azure, sanal makineler, veritabanları ve yapay zekâ modelleri gibi yüzlerce isteğe bağlı servis sunan, Microsoft'un küresel bulut platformudur.
- C#Programlama Dilleri, s. 4C#, çöp toplamalı .NET çalışma ortamında çalışan, statik tipli, nesne yönelimli bir dildir; web arka uçları, masaüstü uygulamalar ve oyunlar için kullanılır.
- Yapılandırma YönetimiDevOps ve Bulut, s. 53Yapılandırma yönetimi, sunucuların ve yazılımın istenen durumunu kodla tanımlama ve araçlarla bunu otomatik olarak uygulayıp koruma pratiğidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin