क्या Windows PowerShell Unix / Linux के टर्मिनल जितना शक्तिशाली है? [बन्द है]


45

क्या Windows PowerShell लिनक्स के समान शक्तिशाली और कुशल है terminal?

ऑफ़लाइन लोग मुझे बताते हैं, बहुत कुछ समझाए बिना, कि विंडोज पॉवरशेल यूनिक्स प्रशासकों को विंडोज का उपयोग करने में अधिक सहज महसूस कराने का एक प्रयास है। लेकिन मुझे लगता है, वे केवल तभी सहज होंगे जब इसमें (या लगभग) एक ही दक्षता हो।


3
इसका जवाब देना मुश्किल है, क्योंकि इसमें THAT Linux शेल नहीं है। आमतौर पर लिनक्स (या आमतौर पर * निक्स सिस्टम) पर उपयोग किए जाने वाले कई गोले हैं। सबसे अधिक इस्तेमाल किया जाने वाला बैश है, इसलिए आप इसके बारे में पूछना चाहते हैं। <br> "शक्तिशाली" बहुत ही राय आधारित है।
क्रिट्ज़फ़िट्ज़

8
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.उन लोगों ने न तो यूनिक्स या पॉवर्सशेल का इस्तेमाल किया है।
सर्फस

मैं कहूंगा कि पावरशेल Microsoft के कुछ क्षेत्रों से एक पावती है कि उन्होंने एक शक्तिशाली शेल उपलब्ध नहीं होने से गड़बड़ कर दी। हालांकि यह यूनिक्स की शैली की नकल नहीं करता है। PS को जानने के लिए, आप वास्तव में अच्छी तरह से समझते हैं कि विंडोज कैसे काम करता है और .NET कैसे काम करता है।
जूलियन नाइट

BTW, Microsoft के पास एक BASH शेल उपलब्ध था जो लोगों को UNIX से विंडोज सर्वर पर जाने में मदद करने के लिए एक माइग्रेशन टूलकिट का हिस्सा था।
जूलियन नाइट

1
मैं एक लंबे समय तक यूनिक्स का प्रशंसक हूं, जो ज्यादातर मामलों में विंडोज में यूनिक्स को पसंद करता है; हालाँकि, पॉवरशेल हाथों को काटता है क्योंकि एक पाइप में कुंजी / मान जोड़े होते हैं और शुद्ध पाठ नहीं होते हैं। यह इसे डिज़ाइन करने के लिए jQuery की तुलना में बैश करने के समान है।
मारियो

जवाबों:


56

ठीक है, आपकी पहली समस्या यह है कि आप एक शेल (पॉवरशेल) की तुलना एक टर्मिनल से कर रहे हैं। लिनक्स में, एक टर्मिनल कुछ ऐसा है जो चरित्र-आधारित I / O को भेजता है और प्राप्त करता है और माना जाता है कि इसके पीछे एक इंटरैक्टिव उपयोगकर्ता है (दूसरे शब्दों में, यह एक जीयूआई अनुप्रयोग है जिसमें शेल शामिल है)। उबंटू के टर्मिनल के भीतर चलने वाले सबसे आम गोले में से एक बैश है , लेकिन अन्य हैं।

ऑफ़लाइन लोग मुझे बताते हैं, बहुत कुछ समझाए बिना, कि विंडोज पॉवरशेल यूनिक्स प्रशासकों को विंडोज का उपयोग करने में अधिक सहज महसूस कराने का एक प्रयास है।

वास्तव में, कहने के लिए सही बात यह है कि PowerShell एक WMI , COM और .NET ऑब्जेक्ट मॉडल का एक इंटरैक्टिव और स्क्रिप्ट योग्य कमांड लाइन वातावरण में बहुत कुछ उजागर कर रहा है - और यह कमांड लाइन वातावरण कई अवधारणाओं को उधार लेना जारी रखता है - जैसे पाइपलाइन और I / O पुनर्निर्देशन - यूनिक्स गोले से, पुराने DOS (2.0 और ऊपर) की तरह command.comऔर cmd.exeकिया। पाइपलाइन PowerShell में ऑब्जेक्ट के साथ काम करती हैं। यदि आप पर्याप्त जानते हैं तो आप HTML और संभवतः एक्सेल स्प्रेडशीट जैसी चीजें कर सकते हैं । यह निश्चित रूप से पुराने cmd.exeशेल से अपग्रेड / रिप्लेसमेंट है जो विंडोज एनटी 4.0 से बहुत ज्यादा नहीं बदला है ।

वाक्यविन्यास के बारे में, यह यूनिक्स के गोले की तरह कम है (हालांकि अंत में कोई भी cmdlets /स्विच या पैरामीटर संकेतक के रूप में उपयोग नहीं करता है), लेकिन क्लासिक यूनिक्स कमांड के लिए कई उपनाम हैं - जैसे कि lsPowerShell विंडो में प्रवेश करना पसंद करेंगे dir। लेकिन ये सिर्फ उपनाम हैं ("गेट-एलियास" इन सूचियों?)।

PowerShell की क्षमता के बारे में, आपके पास वास्तव में समान क्षमता थी, स्क्रिप्टेड-ओनली फैशन में, VBScript और CScript से - हालांकि ये दोनों पूर्ववर्ती .NET हैं।

एक बात यूनिक्स लोगों को बश का उपयोग करने के लिए नहीं करना पड़ता है, ज्यादातर समय एक प्रोग्रामर या ऑब्जेक्ट के संभवतः बहुत विस्तृत ऑब्जेक्ट मॉडल से परिचित होना है, जो कई उन्नत और सरल पावरस्ले कार्यों के लिए आवश्यक है। लेकिन यह केवल इसलिए संभव है क्योंकि कई मानक POSIX कमांड के लिए सीधे पाठ आउटपुट का एक स्पष्ट सम्मेलन है । विंडोज में यह परंपरा नहीं रही है - ऐसा लगता है कि आप mmcवर्षों से यहां और वहां जोड़े गए कमांड के साथ, व्यवस्थापक कार्यों के लिए कंसोल का उपयोग करना पसंद करते हैं । इसके अलावा, कई प्रसिद्ध यूनिक्स उपयोगिताओं जटिल होते हैं और इससे पहले कि उपयोग कुछ अध्ययन की आवश्यकता होती है - rsync, wget, और कई अन्य। दक्षता शायद इस बात का एक फ़ंक्शन है कि कोई भी उस टूल को अच्छी तरह जानता है जिसका वे किसी और चीज़ से अधिक उपयोग कर रहे हैं।


8
+1 यह उल्लेख करने के लिए कि PowerShell .NET को सांत्वना और स्क्रिप्टिंग होस्ट के रूप में उजागर करता है। यह स्क्रिप्टिंग में उपयोग की जाने वाली कई प्रमुख विंडोज लाइब्रेरी की शक्ति को उजागर करता है। दोनों के बीच उपयोग के मामले समान हो सकते हैं, शैली बिल्कुल अलग है।
जूलियन नाइट

3
+1 उल्लेख करने के लिए कि एक टर्मिनल में एक शेल होता है। मैंने एक लंबे समय के लिए विंडोज और लिनक्स का उपयोग किया है, लेकिन कभी किसी ने अंतर को स्पष्ट रूप से नहीं बताया।
टायलर कोलियर

26

विंडोज पावरशेल और यूनिक्स शेल दोनों में फायदे के साथ दो अलग-अलग चीजें हैं।

यूनिक्स (शेल) में एक दर्शन है कि सब कुछ एक फाइल है। Unix कमांड के इनपुट और आउटपुट को फाइल की तरह एक्सेस किया जा सकता है। यह चैनिंग कमांड को वास्तव में सरल बनाता है और एक कमांड के आउटपुट को दूसरे द्वारा पुनः उपयोग करना यूनिक्स शेल की शक्ति है।

विंडोज पॉवरशेल के साथ, जहां तक ​​मुझे पता है, सब कुछ एक वस्तु है। आप एक वस्तु के रूप में दूसरे के लिए एक आदेश का परिणाम पारित कर सकते हैं। यह वास्तव में शक्तिशाली हो सकता है, लेकिन इसमें यूनिक्स की सरल अवधारणा नहीं है।

मुझे विश्वास नहीं होता कि पावरशेल एक यूनिक्स शेल की तरह ही कुशल है, लेकिन दूसरों का मानना ​​है कि यह है।

लेकिन तुलना मूट है, क्योंकि विंडोज एक * nix सिस्टम नहीं है, इस प्रकार * nix कॉन्सेप्ट लागू नहीं होता है। MS-DOS की तुलना में , PowerShell एक महान सुधार है।


4
सब कुछ एक फाइल है जिसका शेल से कोई लेना देना नहीं है, यह एक कर्नेल चीज़ है।
टेराडो

3
यह सच है, लेकिन यह इस बात पर प्रभाव डालता है कि यूनिक्स शैल को किस प्रकार डिजाइन किया गया है।
बायोपिन

@terdon: यह सही है, लेकिन शेल इस के साथ अच्छी तरह से काम करता है। क्योंकि यह अभी भी खोल है जो प्रतीकों को पहचानता है |, <या >
क्रिटेज़फ़िट्ज़

1
लोग इन वस्तुओं के बारे में शक्तियों से बात करते रहते हैं। केवल cmd.exe और bash (या अन्य गोले) के लिए उपयोग किए जाने के कारण, क्या आप एक सरल उदाहरण के साथ, शायद विस्तृत कर सकते हैं?
ल्यूक

5
आपको इस पृष्ठ से दूर भेजे बिना - जब आप पाइप के दाईं ओर * nix सिस्टम में चीजों को पाइपलाइन करते हैं, तो आप सरल पाठ की अपेक्षा करते हैं, इसके लिए --- इतिहास | grep cp --- केवल उन पंक्तियों को लौटाएगा जिनमें cp सम्‍मिलित है। दूसरी तरफ जब पीएस में दाहिनी ओर से पाइपिंग करने वाली चीजें मिलती हैं, तो आपको इस तरह के गुणों के साथ एक वस्तु मिलती है --- गेट-हिस्ट्री | More-Object {$ _। CommandLine -eq "cp"} --- $ _ प्रत्येक ऑब्जेक्ट है, CommandLine संपत्ति है, -eq बराबर है और अंत में string cp है।
अज्ञात
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.