Windows कमांड-लाइन टूल

हम उन डेवलपर के तौर पर काम करते थे जो ज़्यादातर समय प्रयोग के तौर पर MySQL और Linux पर कोडिंग करने में बिताते हैं. इसलिए, हमें जानना था कि Windows पर मॉडर्न कमांड लाइन सेटअप कैसा दिखेगा.

StackOverflow डेवलपर सर्वे ने हमें याद दिलाया कि किसी भी दूसरे ओएस के मुकाबले Windows का इस्तेमाल करने वाले ज़्यादा डेवलपर हैं. इसलिए, हमें जानना था कि क्या टूल उन सुविधाओं के बराबर है जो *nix भूमि में इस्तेमाल किए जाते थे.

Windows CLI टूलिंग के लैंडस्केप का मूल्यांकन करने के बाद कुछ समय निकालकर, हमने ऐसे टूल पर काम किया है जो हमारे हिसाब से इस काम में 95% मदद करते हैं.

आखिर में, हमें यहां से मिली इन चीज़ों के बारे में पता चला:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • चॉकलेटी
  • बाबन (ज़रूरी नहीं)

इन अलग-अलग मशीनों से आपको क्या फ़ायदे मिलते हैं, इस बारे में जानने के लिए नीचे देखें.

PowerShell (शेल)

  • cmd.exe के मुकाबले असल 'शेल' के काफ़ी करीब है, जिससे हमें टास्क ऑटोमेशन के लिए एक बेहतर स्क्रिप्टिंग एनवायरमेंट मिलता है. इसकी तुलना बैश या zsh से करना सही है.
  • डायरेक्ट्री और फ़ाइलों के नाम को ऑटोकंप्लीट करता है
  • ऐप्लिकेशन के नाम अपने-आप पूरे हो जाते हैं
  • इसमें इंटिग्रेट किए गए उपनाम और निर्देश हैं.इन्हें cmdlets कहा जाता है - उदाहरण के लिए, Select-String grep की तरह है, Invoke-Elevated sudo के जैसा है, Sort-Object sort के जैसा है, Get-Process सभी चालू प्रोसेस की सूची बनाता है. किसी दूसरे शेल से PS में जाने पर, Set-Alias आपको उन उपनामों को मैप करने देता है जिनका इस्तेमाल आप Windows के साथ काम करते हैं. उदाहरण के लिए: server उपनाम का इस्तेमाल करने पर Set-Alias server python -m http.server 8000, Python सर्वर लॉन्च करता है.
  • उपनामों को PowerShell प्रोफ़ाइल में बनाए रखा जा सकता है
  • Unix की तरह, पाइपिंग की सुविधा देता है. Unix के उलट, यह टेक्स्ट स्ट्रीम की जगह ऑब्जेक्ट को पाइप करता है. इसके लिए आपको आदत पड़ जाती है, लेकिन जब आप किसी प्रॉपर्टी को हटाना चाहते हैं, तो बार-बार इसका इस्तेमाल करने से बचा जा सकता है.
  • मॉड्यूल का इस्तेमाल किया जा सकता है. PSGet, PowerShell के लिए एक पैकेज मैनेजर है. इसकी मदद से, अपने ऐप्लिकेशन के वर्शन को आसानी से बढ़ाया जा सकता है.
  • आपके पास Posh-Git पर विचार करने का भी विकल्प है. यह git के लिए एक PowerShell स्क्रिप्ट है. इस स्क्रिप्ट का इस्तेमाल करके, काम के टैब पूरे किए जा सकते हैं.

अगर आपकी दिलचस्पी सामान्य विषयों में है, तो यहां जवाब दिया गया है कि MS ने मुख्य आर्किटेक्ट से PowerShell क्यों बनाया.

PSReadLine (कंसोल में बदलाव करने में मदद करने वाले टूल)

  • कंसोल में बदलाव करने के अनुभव को काफ़ी बेहतर बनाता है
  • जब भी कमांड टाइप करना शुरू किया जाता है, तो सिंटैक्स को हाइलाइट करना. लाल ">" वर्ण के साथ, सिंटैक्स की गड़बड़ियों को साफ़ तौर पर दिखाता है.
  • ज़्यादा पसंद के मुताबिक बनाई जा सकने वाली कुंजी बाइंडिंग
  • बैश-स्टाइल अपने आप पूरा होना
  • बैश/zsh इंटरैक्टिव इतिहास खोज (Ctrl + R). शक्तिशाली कमांड इतिहास ट्रैवर्सल भी. कमांड की आखिरी लाइन के बजाय, ऐरो बटन का इस्तेमाल करके, एक से ज़्यादा लाइन वाले पिछले कमांड आसानी से देखें.
  • कॉपी करने/चिपकाने/कट करने के लिए सही सहायता (Ctrl+C/X/V से काफ़ी मदद मिलेगी)
  • पहले जैसा करने/फिर से करने के लिए अच्छी सहायता
  • इतिहास सेव करने की सुविधा अपने-आप चालू है

इसके अलावा, Clink का इस्तेमाल किया जा सकता है, जिसमें मिलती-जुलती सुविधाएं हैं. हालांकि, इसे PowerShell के लिए नहीं लिखा गया है.

ConEmu (कंसोल होस्ट)

  • एक बेहतर कंसोल एम्युलेटर, जहां पर अपनी पसंद का ऐप्लिकेशन इस्तेमाल किया जा सकता है.
  • अलग-अलग टैब में एक से ज़्यादा टर्मिनल खोलने की सुविधा काम करती है. टर्मिनल को अलग-अलग उपयोगकर्ताओं के तौर पर लॉन्च करना आसान बनाता है.
  • पूरी तरह पसंद के मुताबिक बनाया जा सकता है - शॉर्टकट से लेकर टेक्स्ट चुनने और स्टेटस बार के रंग तक, कुछ भी बदला जा सकता है.
  • स्प्लिट स्क्रीन व्यू के साथ काम करता है
  • आसान जीयूआई ऐप्लिकेशन, टैब में चलाए जा सकते हैं
  • Windows 7+ जम्प सूचियों के लिए सहायता
  • इस सुविधा की मदद से विंडो का आकार आसानी से बदला जा सकता है
  • Windows फ़ॉन्ट एंटी-एलियासिंग
  • किसी खास डायरेक्ट्री से शुरू करने के लिए, शुरुआती टैब पूरी तरह से पसंद के मुताबिक बनाए जा सकते हैं
  • स्मार्ट कॉपी/पेस्ट

कुछ लोगों को अब भी Console2 का इस्तेमाल करना अच्छा लगता है और स्कॉट हैंसेलमैन ने इस बारे में एक ब्लॉग पोस्ट लिखा है.

मैनेजर

पासिंग नोट के तौर पर Cmder - एक कंसोल इम्युलेशन पैकेज है, जो ConEmu, Clink, और msysgit को जोड़ता है और आपको Git हेल्पर देता है. Cmder, मूल रूप से अपनी Monokai कलर स्कीम के ज़रिए, ConEmu को डिफ़ॉल्ट रूप से बेहतर अनुभव देता है.

Cmder में कुछ अन्य छोटे फ़ायदे भी शामिल होते हैं, जैसे Sublime Text जैसे GUI ऐप्लिकेशन के साथ इंटिग्रेशन.

चॉकलेट (पैकेज मैनेजर)

  • बुनियादी तौर पर, Windows के लिए Homeब्रू बनाने की सुविधा, जिससे आप Windows के अपने पसंदीदा ऐप्लिकेशन आसानी से इस्तेमाल कर सकते हैं. फ़िलहाल, ऐसे ~3K पैकेज उपलब्ध हैं जिन्हें सीधे Chocolatey का इस्तेमाल करके अपडेट किया जा सकता है.
  • Nuget से अलग है. NuGet, डेवलपमेंट लाइब्रेरी के लिए है. Chocolatey एक बाइनरी मशीन पैकेज मैनेजर है. इसे NuGet इन्फ़्रास्ट्रक्चर पर बनाया गया है.
  • असरदार तरीके से साइलेंट बिल्ड उपलब्ध कराता है

आपकी दिलचस्पी Microsoft के Package Manager..manager, OneGet के बारे में जानने में भी हो सकती है, जिसे Windows 10 के तहत Chocolatey के साथ काम करना चाहिए.

Babun (Cygwin पहले से कॉन्फ़िगर किया गया)

  • साइगविन (Windows के लिए Linux जैसा एनवायरनमेंट) में इतिहास से जुड़ी कुछ ऐसी विचित्र क्वेरी हैं जो पहले से मालूम हैं. Babun इंस्टॉलर का इस्तेमाल करके, इसका सेटअप काफ़ी आसान है. अगर आपके पास Unix का अनुभव है और आपको PowerShell सीखना नहीं चाहिए, तो cygwin/Babun के बारे में जानना फ़ायदेमंद होगा.
  • इसमें apt-get से मिलता-जुलता pact (brew से कुछ मिलता-जुलता) नाम का एक पैकेज मैनेजर शामिल है. यह एक बड़ी बात है, क्योंकि पैकेज जोड़ने के बजाय सिर्फ़ समझौते का इस्तेमाल करते समय, आपको Cygwin इंस्टॉलर को फिर से चलाना होगा.
  • Vim पहले से इंस्टॉल और पहले से कॉन्फ़िगर किया गया
  • oh-my-zsh के लिए इंटिग्रेट किया गया सहायता
  • अपने-आप अपडेट होने की सुविधा

इसके बारे में और पढ़ें