Komut İstemi ve PowerShell Arasındaki Fark

Komut İstemi ve PowerShell Arasındaki Fark

Bir Windows kullanıcısı olarak, günlük aktiviteler için komut satırı arayüzü ile uğraşmanıza gerek yok. Bununla birlikte, herhangi bir gelişmiş görev için komut satırı, görev üzerinde daha fazla esneklik ve kontrol sağlar. Aslında, Windows’un hem Komut İstemi’ne hem de PowerShell’e sahip olmasının tek nedeni budur. Her ikisi de komut satırı arabirimleri olduğundan, PowerShell ve Komut İstemi ilk bakışta benzer görünebilir. Ama ikisi arasında önemli farklar var. PowerShell ve Komut İstemi’nin gerçekte ne anlama geldiğini ve PowerShell’in Komut İsteminden nasıl farklı olduğunu öğrenelim.

Komut İstemi, Windows NT’den başlayarak Microsoft tarafından sağlanan varsayılan komut satırı arabirimidir (Windows NT 3.x ve üstü). Windows işletim sistemindeki herhangi bir win32 nesnesiyle etkileşim kurabilen ve konuşabilen basit bir win32 uygulamasıdır. Kullanıcı dostu bir komut yapısına sahiptir ve toplu iş dosyalarını yürütmek, Windows sorunlarını gidermek, gelişmiş eylemler gerçekleştirmek, bilgi almak vb. için yaygın olarak kullanılır. Kullanıcı arayüzü ve komut satırı yapısı nedeniyle çoğu kişi buna “DOS istemi” der. MS-DOS ile ilgisi yok.

powershell-cmd--diff-basit-komut

.NET çerçevesine dayanan PowerShell’in ilk sürümü, 2006’da piyasaya sürüldü ve Komut İsteminden çok daha gelişmiş. PowerShell, komut borulama, görev otomasyonu, uzaktan yürütme vb. gibi birçok farklı gelişmiş özelliğe sahiptir.

powershell-cmd--diff-cmdlet'i

Öte yandan, PowerShell, etkileşimli komut satırı arabirimi ve komut dosyası dili sağlarken Windows işletim sistemiyle derinden bütünleşir. Komut dosyası dili için derin entegrasyon ve destek göz önüne alındığında, genellikle sistem yöneticileri ve BT uzmanları tarafından görev otomasyonu ve yapılandırma yönetimi gerçekleştirmek için kullanılır.

PowerShell, eski Komut İstemi ile karşılaştırıldığında özellikler, yetenekler ve dahili işler açısından çok daha gelişmiştir. Aslında, Windows’un hemen hemen her gizli modülü PowerShell tarafından açığa çıkarılabilir, bu da onu BT uzmanları, sistem yöneticileri ve uzman kullanıcılar için yararlı bir araç haline getirir.

PowerShell dediğimde, çoğunuz standart komut satırı arabirimini düşünebilirsiniz, ancak Windows ayrıca her türlü çalışma için özel ve karmaşık PowerShell komut dosyaları oluşturmanıza yardımcı olan PowerShell ISE (Entegre Komut Dosyası Ortamı) ile birlikte gelir.

powershell-cmd--diff-ise

Ayrıca, PowerShell cmdlet’ler olarak bilinenleri kullanır. Bu cmdlet’ler, çalışma zamanı ortamında veya otomasyon komut dosyalarında çağrılabilir. Komut İstemi’nden ve hatta *nix kabuğundan farklı olarak, bir cmdlet’ten üretilen çıktı yalnızca bir metin akışı (dizeler) değil, bir nesneler topluluğudur.

PowerShell bunları nesneler olarak değerlendirdiğinden, çıktı, işlem hattı aracılığıyla diğer cmdlet’lere girdi olarak iletilebilir. Bu, karmaşık Reg ifadelerinin yardımını aramadan verileri istediğiniz kadar değiştirmenize olanak tanır. Bu sadece Komut İsteminde mümkün değildir.

Tüm bunları eski Komut İstemi ile karşılaştırdığınızda, hem işlevsellik hem de onunla ne kadar yapabileceğiniz açısından PowerShell’den acı bir şekilde daha düşük olduğunu göreceksiniz.

Ancak PowerShell’in tüm bu gücünün bir bedeli vardır; bu öğrenme eğrisidir. Dik öğrenme eğrisine aldırmıyorsanız, PowerShell’i deneyin. Tabii ki, sistem yönetimi alanına giriyorsanız, hayatınızı kolaylaştırmak için kesinlikle PowerShell’i öğrenmeniz gerekir.

Komut İstemi’ni neredeyse hiç kullanmayan ortalama bir Windows kullanıcısıysanız, PowerShell’den pek bir şey alamayabilirsiniz.

Ne kullanmayı tercih edersiniz, Komut İstemi veya PowerShell? Hem PowerShell’i hem de Komut İstemi’ni kullanma hakkındaki düşüncelerinizi ve deneyimlerinizi paylaşarak aşağıya yorum yapın.

En son eğitimlerimizle ilgili güncellemeleri alın.

Vamsi, nasıl yapılır kılavuzları yazmaktan ve genel olarak bilgisayarı ve yazılımıyla uğraşmaktan hoşlanan bir teknoloji ve WordPress meraklısıdır. MTE için yazmadığı zamanlarda kendi blogu Stugon’da ipuçlarını, püf noktalarını ve yaşam tüyolarını paylaştığı için yazıyor.

Windows’ta bir CLI’ye gerçekten ihtiyacım yok. Neyse ki, GUI merkezli bir işletim sistemidir ve hala eski uygulamalar ve sistemlerle çalışmadığınız sürece CLI’yi kullanmaya neredeyse hiç gerek yoktur (şirket ağlarına erişmek için hala Win98 ve komut istemi kullanan bir banka gördüm). Linux’ta terminali başlatmam gerekmeyebileceği günü bekliyorum.

Komut İstemi ve PowerShell’e gelince, ilkini seçmeliyim. DOS kullandığım günlerden, özellikle toplu iş dosyalarıyla bazı gelişmiş komut dosyası yazmayı öğrendiğim 5 ve 6. PowerShell’i denedim ama öğrenmeyi sinir bozucu buluyorum.

Sanırım her şey yapmanız gereken işin türüne bağlı.

Ancak sistemleri korumak, ağları yapılandırmak, Apache Tomcat veya WebLogic gibi sunucuları WLST aracılığıyla kurmak için Perl, Bash, Python, Groovy vb.’de çok sayıda komut dosyası yazarsanız veya yalnızca vi veya gibi güçlü ve hızlı bir düzenleyici kullanarak kodlamayı tercih ederseniz. emacs, GUI dünyası sizi yavaşlatır ve yolunuza çıkar.

Hızlı bir satırda herhangi bir sunucuya ssh gönderebilirim veya Filezilla gibi bir şey açabilir, yüklenmesini bekleyebilir, widget’ları bağlantı kuracak şekilde ayarlayabilir, hem ev hem de hedef makinelerimin dosya yapısını boyamasını bekleyebilir ve Sonra sürükleyip bırakın. Güvenli sistemlerimizde, dosyaları yalnızca kök dışındaki bir geçici dizine kopyalayabilirim. O zaman HALA bir komut satırı kabuğuna girmem ve o dosyayı olmasını istediğim yere taşımak için bir süper kullanıcı hesabı kullanmam gerekiyor. Bu sadece iyi bir güvenlik.

Hangi seçerdiniz?

%100 değil. Windows sunucusunun daha yeni sürümleri, yalnızca PowerShell yüklenerek yalnızca CLI arabirimine geri dönüyor. Yani Windows, ailesinin %50’sinde “GUI merkezli” bir işletim sistemi değildir.

Hiç örnek yok

@sarkis

Windows 10’un yeni etkinleştirme özellikleriyle ilgili olarak, anakartımı değiştirdiğimde temiz bir Windows 10 yüklemesi yapmak zorunda kaldım ve bu bana yeni bir anahtar verdi. Yedeği baştan yüklememe izin vermeyeceğinden, yedeğimdeki her şeyi yeniden yüklemek zorunda kaldım. önemli değil diye düşündüm ama tekrar koyacak çok fazla programınız varsa bu bir acı olabilir.

Bir GUI yerine bir komut satırı arayüzünden çalışmayı tercih ederim ve Windows komut satırının herhangi bir Linux veya Unix kabuğuna kıyasla nasıl neredeyse işe yaramaz olduğuna üzülüyorum. İş günümün çoğunu terminal pencereleri aracılığıyla düzinelerce Red Hat ve Solaris sunucusunda oturum açarak geçiriyorum. Bir GUI kullanarak işimi halletmeye çalışmayı hayal edemiyorum. Çoğu GUI ile en basit borulama bile mümkün değildir ve sayısız pencereyi açmak ve sözde “kullanıcı dostu” ekranları tıklatmak için fareyi kullanabileceğimden çok daha hızlı yazabilirim.

Benim için iyi bir komut satırı arayüzü, gitmenin tek yolu. (Çalıştırılabilir kelime “iyi”.)

Windows’un “Power Shell”i sunduğuna sevindim ve bunu deneyeceğim.

Var olduğunu bana bildirdiğin için teşekkürler!

Örnekler güzel olurdu ama yine de powershell’e bakmayı planlıyorum.

PowerShell harika bir araçtır, onu sunucu yönetimi için çok kullandık ve siz yazarken görev otomasyonu için aktif dizini, değişimi, sanal makineleri, vm yedeklemelerini, ofis 365’i… ve daha pek çok şeyi yönetiyoruz.

Öncelikle Windows ortamında (bazı Linux sunucularıyla birlikte) bir BT uzmanı olarak PowerShell, yöneticilerin en iyi arkadaşıdır. GUI’den yapabileceğinizden daha fazlasını kabuktan daha verimli bir şekilde yapabilirsiniz.

Basit bir örnek vereyim: Bizim için 200’den fazla Windows sunucusunu barındıran bir veri merkezi sağlayıcısıyla çalışıyoruz. Belirli bağımlılıklar nedeniyle, sunucu yeniden başlatmaları belirli bir sırada gerçekleşmelidir. Sunucuları barındıran satıcının aylık yama döngüleri sırasında buna bağlı kalmasını sağlamak için, yama haftasını çalıştıran planlanmış bir PowerShell betiğim var:

Bu komut dosyası, yeniden başlatmaların uygun sırada gerçekleştiğinden emin olabilmemiz için tüm sunucuları ve yeniden başlatma sürelerini listeleyen bir excel elektronik tablo raporu oluşturur. Bu otomatik olduğundan, yamayı takip eden gün her zaman bizi bekleyen rapora sahibiz. Başka bir zamanda istersek, komut dosyasını herhangi bir zamanda çalışması için manuel olarak tetikleyebiliriz ve 15 dakikadan daha kısa bir sürede (her seferinde benzersiz bir adla) bir rapor oluşturur.

Pek çok sunucu için bu tür bilgileri 15 dakika içinde uygun şekilde biçimlendirilmiş olarak almak için GUI’yi kullanmayı deneyin.

Bu harika örnek için teşekkürler. Ben sadece bir kullanıcıyım ve bazen yeniden doğmak ve bir BT alayı olmak istiyorum. Tüm bunları bilmek isterdim… ;-D

O düzeltici…

Belki konu dışı, ama powershell’i oldukça opak ve içine girmesi zor buldum (birkaç on yıllık bir geliştirici olarak). Tek ihtiyacım olan bazı C programlarını ve gawk/bash betiklerinin eşdeğerini çalıştırmaktı. Sonunda vazgeçtim ve müvekkilimi uygulamayı Cygwin’de oluşturmamıza izin vermeye ikna ettim.

Cygwin denemeye değer – tüm unix/linux favorilerinizi (gawk, vim, sed, mv, cp, vb.) bir windows makinesinde bash çalıştırabilirsiniz. www.cygwin.com

Leave a Reply

Your email address will not be published. Required fields are marked *

*