प्रोग्रामिंग टूल का कमांड लाइन संस्करण कब सीखें? [बन्द है]


12

लगभग हर प्रोग्रामिंग टूल में कमांड लाइन संस्करण होता है; जिनमें से कई में एक gui संस्करण भी है। कमांड लाइन संस्करण के विभिन्न आदेशों और विभिन्न विकल्पों / स्विचों को सीखने में बहुत समय और याद रखने का प्रयास होता है।

इसलिए मेरे पास कुछ प्रश्न हैं (जो कि पारस्परिक रूप से अनन्य नहीं हैं):

1) जब आप एक टूल के कमांड लाइन संस्करण में कमांड को सीखने / याद करने में परेशान होंगे जो एक gui संस्करण में भी आता है?

2) मुझे कमांड लाइन संस्करण के लिए कौन से टूल सीखने चाहिए? .... संकलक? संस्करण नियंत्रण प्रणाली? आदि आदि


यदि आप जिस टूल का उपयोग कर रहे हैं, वह एक कमांड-लाइन इंटरफ़ेस प्रदान करता है, लेकिन इसके लिए सभ्य प्रलेखन नहीं है, तो मैं इस तरह के टूल का उपयोग करने के बारे में सतर्क रहूंगा। यदि ऐसा होता है, तो आरटीएफएम। यह इतना कठिन नहीं है, और अगर यह उस बिंदु तक पहुंच जाता है, तो StackOverflow.com पर एक प्रश्न पूछें यदि आपको यह पता लगाने की आवश्यकता है कि कमांड लाइन से कुछ कैसे किया जाए, तो मुझे विश्वास है कि आप कर सकते हैं। यदि आप सुनिश्चित नहीं हैं कि आपको कुछ पता लगाने की आवश्यकता है, तो आप शायद नहीं करते हैं। जीवन काम के बाहर दिलचस्प चीजों से भरा है, अगर केवल पर्याप्त समय था ...
नौकरी

जवाबों:


21

मैं दो कारणों से देख सकता हूं कि आपको प्रोग्राम की कमांड लाइन विकल्प क्यों सीखना चाहिए:

  1. जब आपको प्रोग्राम को किसी तरह से स्वचालित करने की आवश्यकता होती है - स्क्रिप्ट, बैच प्रोसेसिंग आदि का निर्माण करें।

  2. जब आपको कार्यक्रम के व्यवहार को अनुकूलित करने की आवश्यकता होती है - स्मृति पदचिह्न आदि को कम करना।

किस उपकरण के लिए आपको सीखना चाहिए - यह पूरी तरह से इस बात पर निर्भर करता है कि आप आगे क्या करना चाहते हैं।


1
आप हमेशा इसे स्वचालित बनाने के लिए सक्षम होने के लिए एक प्रोग्राम को स्क्रिप्ट करने में सक्षम होना चाहते हैं ...

1
@ Thorbjørn - क्या मैंने ऐसा नहीं कहा है? या मैं स्पष्ट नहीं था?
ChrisF

3
हाँ। मैंने अभी-अभी ऑटोमेशन वाले हिस्से पर जोर दिया है - यह न समझकर कि आगे की कार्यप्रणाली को मौजूदा तरीके से कुछ स्क्रिप्ट में बदलने की कोशिश करने पर दर्द होगा।

9

पहले से ही बहुत अच्छे जवाब। मैं एक और अतिरिक्त दृष्टिकोण जोड़ता हूं।

जब आप मानव को समीकरण / प्रक्रिया से बाहर निकालना चाहते हैं, तो आप GUI को कमांड लाइन टूल्स से बदल देते हैं। ऐसा करने के कुछ कारण और / या लाभ:

  • आपको मानवीय त्रुटि से छुटकारा मिलता है (जब कमांड दोहराते हैं)
  • सभी प्रकार के स्वचालन के लिए उत्कृष्ट, उदाहरण के लिए, यादृच्छिक इनपुट के साथ तैनाती, निर्माण या चल रहे परीक्षण।
  • आप वास्तव में एक शक्ति उपयोगकर्ता हो। यह आपको मेटा प्रोग्रामिंग की सीढ़ी पर चढ़ने का विकल्प देता है। आपको हर क्रिया (GUI पर क्लिक) करने की आवश्यकता नहीं है, आप इसे आसानी से लिख सकते हैं!
  • आप उपकरण को एक साथ जोड़ सकते हैं (यूनिक्स पाइप सोचें)।
  • कंप्यूटर काम करो - तुम पैमाने नहीं, कंप्यूटर करते हैं!

कब करना है? जब आप खुद को दोहरा पाते हैं।

बेशक जीयूआई के लिए जगह और समय है। लेकिन अगर आप वास्तव में कंप्यूटर की शक्ति का दोहन करना चाहते हैं और मूर की विधि की लहर को सर्फ करना चाहते हैं, तो आपको अपने कार्यों की स्क्रिप्टिंग सीखने की आवश्यकता है।

संपादित करें : अतिरिक्त बोनस। आपको यह टी-शर्ट पहनना है :)


7

खान हैं:

1) अधिक उत्पादक बनने के लिए । मेरे लिए, केवल क्लिक करने की तुलना में शेल में चीजों को करना तेज है। मैं एक उपकरण का उपयोग करने के बारे में बात कर रहा हूं, एक सेवा / उपकरण / आदि की स्थापना नहीं कर रहा हूं, क्योंकि कभी-कभी यह एक विज़ार्ड के लिए तेज़ होता है और बस क्लिक करता है Next Next Next, हालांकि वे विज़ार्ड भी कमांड-लाइन संस्करणों में मौजूद हैं :)

2) अपने अनुप्रयोगों में कमांड-लाइन संस्करण का उपयोग करने के लिए। उदाहरण के लिए, मान लें कि आप पीडीएफ को टेक्स्ट फाइल में बदलना चाहते हैं । यदि आप GUI संस्करण का उपयोग करते हैं, तो यह ठीक है। लेकिन अगर यह एक कमांड-लाइन इंटरफ़ेस भी प्रदान करता है, जहाँ आप कुछ ऐसा कर सकते हैं: ./pdf2text input.pdf output.txtतो, अगर आपको एक ऐसे एप्लिकेशन को विकसित करने की आवश्यकता है जो एक पीडीएफ से पाठ को पढ़ता है, तो आप आसानी से इसका उपयोग कर सकते हैं, बिना किसी एपीआई का उपयोग किए, या कुछ ट्विक्स किए बिना। ।

3) एक आवेदन की सामान्य बातें जानने के लिए। उदाहरण के लिए, अगर आपके पास diff विंडोज पर स्थापित है, और एक सामने के अंत में यह दो फ़ाइलों की तुलना करने के लिए। यह बिल्कुल सही है। लेकिन क्या होगा अगर आपको लिनक्स पर इसका उपयोग करने की आवश्यकता है ? आप लिनक्स के लिए एक ही फ्रंट-एंड पा सकते हैं, लेकिन अगर यह मौजूद नहीं है तो क्या होगा? आपको फिर से सीखना होगा कि लिनक्स पर इसका उपयोग कैसे करें, एक नया फ्रंट-एंड इंस्टॉल करें और इसके साथ काम करने की आदत डालें। यदि आपने सीखा है कि कमांड-लाइन संस्करण का उपयोग कैसे करें, तो आपको इसकी आवश्यकता नहीं होगी;)

3 के बारे में) ... कुछ लोगों को विंडोज पर गिट के साथ काम करने में बहुत परेशानी होती है । वे कहते हैं कि विंडोज पर इसका कोई अच्छा फ्रंट-एंड नहीं है, लेकिन अगर आप सिर्फ कमांड-लाइन तरीका सीखते हैं, तो आपको समस्या नहीं होगी। यह उसी तरह काम करता है। बेशक, समस्या यह है कि कभी-कभी लोग कमांड-लाइन से डरते हैं ;)

मेरा सुझाव है कि आप कमांड लाइन संस्करण सीख रहे हैं:

  • संकलक जैसे gcc
  • डीबगर्स जैसे जी.डी.बी.
  • Git ;)
  • और GNU / Linux में बहुत सारे उपकरण जो आप विंडोज पर काम कर सकते हैं जैसे कि egrep , awk , find , ...

Gh के लिए yahhh +1: D हालांकि एक उदाहरण है जिसके लिए मैं वास्तविक कमांड का उपयोग नहीं करूंगा; मैं vimdiff पसंद करता हूं (हालांकि मुझे लगता है कि तकनीकी रूप से thats टर्मिनल भी बहुत जो भी हो)
वैकल्पिक

@mathepic तुम सही हो, लेकिन vimdiffयह भी एक कमांड लाइन उपकरण है, है ना?
ऑस्कर मेडेरोस

उसी समय इसकी ncurses (मुझे लगता है, निश्चित नहीं) इसलिए मैं एक छोटा सा अंतर करता हूं।
वैकल्पिक

हाँ, लेकिन मैं कमांड-लाइन टूल्स के रूप में उन्हें भी ले रहा हूँ :)
ऑस्कर मेडेरोस

@mathepic: आपकी चिंता का जवाब:gvimdiff
रेयान

3

आपको मेमोरी में पैरामीटर सिंटैक्स करने की आवश्यकता क्यों है? यही कारण manहै कि मौजूद है और --help( /?यदि आप winblowz भूमि में हैं)।

मुझे लगता है कि मैं एक मिनट से कम समय में किसी भी चीज़ के विकल्प देख सकता हूं। उद्देश्य यह याद रखना है कि कमांड क्या करते हैं , इसलिए आप जानते हैं कि क्या देखना है!


1

व्यावहारिक रूप से, यह नीचे आता है कि क्या गिनी उपकरण एक सुविधा को याद कर रहा है या नहीं, या यदि यह कमांड लाइन से तेज है।

हालांकि, कमांड लाइन का उपयोग करने का साइड-बेनिफिट यह है कि आपको प्रलेखन पढ़ने और यह पता लगाने की अधिक संभावना होगी कि वास्तव में क्या चल रहा है। विशेष रूप से आपके संस्करण नियंत्रण के उदाहरण के साथ, कमांड लाइन से ऐसा करना आपको काफी कुछ सिखाएगा।


1
  • कंपाइलर: स्वचालित बिल्ड के लिए आवश्यक होगा
  • बनाओ या अपनी निर्माण प्रणाली: स्वचालित बनाता त्रुटियों को पकड़ता है
  • संस्करण नियंत्रण: मुझे ऐसा लगता है, लेकिन यह तीनों में से सबसे कम महत्वपूर्ण है। लेकिन फिर मैं अन्य कमांड लाइन संचालन कर सकता हूं, उदाहरण के लिए परिवर्तन संदेशों के माध्यम से grep।

लेकिन आपको संकलक या बनाने के लिए विकल्पों को याद करने की आवश्यकता नहीं है; एक बार उन प्रोजेक्ट के लिए सेट हो जाने के बाद आपको उन्हें बार-बार बदलना नहीं पड़ता।


1

कमांड लाइन टूल सीखने के फायदे, मुझे लगता है, GUI के उपयोग के लाभों को दूर करना। कई बार ऐसा होता है कि GUI की विशेषताएं खो जाती हैं, हालांकि, यह कहना उचित नहीं होगा कि यह हमेशा होता है (यानी विंडोज पर cmake देखें - सामान्य परिस्थितियों के बाहर कमांड लाइन का उपयोग करने का कोई कारण नहीं है)।

जहाँ तक संस्मरण जाता है, यह याद रखने की कोई विशेष आवश्यकता नहीं है कि कार्यक्रम का आदेश पहली बार आपके द्वारा उपयोग किए जाने पर सेट किया गया है। बस मैनुअल को बुकमार्क करें (यदि आप ऑनलाइन मैनुअल का उपयोग करते हैं अन्यथा "निक्स" पर "मैन" का उपयोग करें) और यदि आपको किसी विशेष कार्यक्षमता (जिसे आपने याद नहीं किया है) की आवश्यकता है, तो बस मैनुअल को देखें। इन चीजों पर संस्मरण स्वाभाविक रूप से उपयोग द्वारा आना चाहिए। उदाहरण के लिए, मैं कमांड लाइन से बहुत बार "टार" और "गज़िप" चलाता हूं, लेकिन मुझे उन कार्यों को पूरा करने के लिए मैनुअल का संदर्भ देना होगा जो मैं आमतौर पर नहीं करता हूं।

इन सबसे ऊपर, यदि आप किसी उत्पाद को शिपिंग कर रहे हैं या किसी प्रकार का सोर्स कोड भेज रहे हैं या अन्यथा किसी साथी डेवलपर को भेज रहे हैं, तो कमांडों का एक कंकाल शामिल करना बहुत आसान है, जितना कि जीयूआई का उपयोग करने पर विस्तृत निर्देश लिखना है। यदि डेवलपर आपके द्वारा उपयोग की जाने वाली कमांड लाइन विकल्पों को नहीं समझता है, तो वह बस उन्हें देख सकती है। किसी को एक जीयूआई समझाने के लिए हमेशा सबसे पोर्टेबल समाधान नहीं होता है।

सादर,
डेनिस एम।


0

सब कुछ, ताकि आप विकास के लिए X11 / Windows पर निर्भर न हों। यह एक टर्मिनल से पूरी तरह से विकसित करने में सक्षम होने के लिए अच्छा है।


मैं आपसे सहमत हूं;)
ऑस्कर मेडेरोस

0

संक्षिप्त उत्तर: बदलने का सबसे अच्छा समय (यानी, कमांडलाइन का उपयोग करें) अब है । असली मर्द कीबोर्ड का इस्तेमाल करते हैं। असली पुरुष क्लिक नहीं करते। अवधि।

लंबे समय तक उत्तर: लंबे समय के परिप्रेक्ष्य में, अधिक उत्पादक होने के अलावा और अधिक मूल्यवान (इसलिए कम रखी जाने की संभावना), कमांडलाइन का उपयोग कर सकते हैं / कर सकते हैं / चाहिए / आपको अधिक अभ्यास (यादगार अभ्यास / याद रखने के कारण) और स्वस्थ बनाना चाहिए (क्योंकि माउस के साथ एक के बजाय कमांडलाइन इंटरफ़ेस में एक साथ दोनों हाथों का उपयोग करना एर्गोनॉमिक्स के लिए अधिक उपयुक्त है)।

यहाँ http://www.over-yonder.net/~fullermd/ants/winstupid/1 पर अत्यधिक अनुशंसित लेख / निबंध, " Why Windows Causes Stupidity " दिया गया है


3
मजाक कर रहा है या नहीं, कि असली आदमी बकवास किसी भी पुरस्कार जीतने के लिए नहीं जा रहा है, भले ही मैं 100% सहमत हूं कि सीएलआई का उपयोग करना बहुत अधिक उत्पादक है, मचो शोर सिर्फ गूंगा है।
ओसोडो

0

मुझे यकीन नहीं है कि आपको कभी भी कमांड-लाइन टूल पर स्विच को याद करने की कोशिश करनी चाहिए । यदि आप एक शेल स्क्रिप्ट बना रहे हैं या जो कुछ कार्य को स्वचालित करने के लिए है, तो आप बेहतर है कि सामान को देख लेंगे-- अब तीस सेकंड खर्च करते हैं, जो कि बाद में गलत हो गए दर्द का पता लगाने से बचने के लिए। यदि आप एक ही कमांड-लाइन टूल को बार-बार उपयोग कर रहे हैं, तो शायद आपको एक शेल स्क्रिप्ट बनाना चाहिए ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.