İlk probleminiz bir kabuğu (PowerShell) bir terminale karşılaştırmanızdır. Linux'ta terminal, karakter tabanlı I / O gönderen ve alan ve arkasında etkileşimli bir kullanıcı olduğu varsayılan bir şeydir (başka bir deyişle, bir kabuk içermek için kullanılan GUI uygulamasıdır ). Koşmak en yaygın kabukları biri olan Ubuntu'nun Terminal olduğunu Bash , ama başkaları da var.
Çevrimdışı insanlar bana, çok fazla açıklama yapmadan, Windows PowerShell’in Unix yöneticilerinin Windows’u daha rahat hissetmelerini sağlama girişimi olduğunu söyledi.
Gerçekten, söylenecek doğru şey PowerShell’in Windows’un WMI , COM ve .NET nesne modelini etkileşimli ve komut dosyası çalıştırılabilir bir komut satırı ortamında göstermesi - ve bu komut satırı ortamının birçok boru hattını (örneğin, boru hatları gibi) ödünç almaya devam etmesidir. ve I / O yönlendirmesi - Unix kabuğundan, eski DOS gibi (2.0 ve üstü) command.com
ve cmd.exe
yaptım. Boru hatları, PowerShell'deki nesnelerle çalışır. Yeterince bildiyseniz anında HTML oluşturmak ve muhtemelen Excel elektronik tabloları gibi şeyler yapabilirsiniz . Kesinlikle Windows NT 4. 0'dancmd.exe
çok değişmemiş eski kabuğundan bir yükseltme / değiştirme .
Sözdizimiyle ilgili olarak, Unix kabukları gibi daha azdır (en sonunda cmdlet'lerin hiçbiri /
bir anahtar ya da parametre göstergesi olarak kullanmasa da), ancak klasik Unix komutlarının takma adları vardır - ls
bir PowerShell penceresine girmek gibi çalışacaktır dir
. Ancak bunlar sadece takma adlardır ("Get-Alias" bunları listeler?).
PowerShell yeteneği ile ilgili olarak, aslında her ikisi de .NET öncesi olsa da , sadece komut dosyası biçiminde, VBScript ve CScript'ten de benzer bir yeteneğiniz oldu .
Unix kullanıcılarının çoğu zaman Bash'i kullanmak zorunda olmadıkları bir şey, çoğu zaman bir programcının veya nesnesinin çok gelişmiş ve basit PowerShell görevleri için gerekli olan çok karmaşık nesne modelini yakından tanımaktır. Ancak bu mümkündür, çünkü birçok standart POSIX komutu için düz metin çıktısının açık bir kuralları vardır . Windows bu geleneğe sahip değildi - mmc
yönetim görevleri için bir konsol kullanmayı tercih etmiş gibiydi , yıllar içinde buraya ve orada eklenmiş komutlar. Ayrıca, çok iyi bilinen Unix hizmeti karmaşıktır ve kullanılmadan önce bir çalışma gerektirir - rsync
, wget
ve diğerleri. Verimlilik muhtemelen bir kişinin kullandığı aracı her şeyden daha iyi bilmesinin bir işlevidir.