शेल स्क्रिप्टिंग की कौन सी विशेषताएं PHP / पायथन विकास के लिए प्रासंगिक हैं? [बन्द है]


28

मैं जावा और C # (। NET) सीखने वाला एक PHP / पायथन प्रोग्रामर हूं।
मेरा मुख्य विकास ओएस विंडोज 7 है, लेकिन मैंने लिनक्स का उपयोग किया है और मैं वर्तमान में उबंटू के साथ दोहरे बूट करता हूं। मेरा लिनक्स ज्ञान हालांकि, बहुत सीमित है। मैं साधारण कार्यों पर कमांड लाइन के साथ काम कर सकता हूं लेकिन यह बहुत ज्यादा है। मैं कोई शेल स्क्रिप्टिंग नहीं करता और मुझे कई महत्वपूर्ण आदेशों की जानकारी नहीं है।

मेरी रुचि वेब विकास, मोबाइल एप्लिकेशन और भविष्य में शायद कुछ एम्बेडेड सामान हैं। क्या शेल स्क्रिप्टिंग कौशल इन हितों के लिए उपयोगी होगा और यदि हां, तो कैसे?


9
जिसने भी मुझे 5 साल पहले बताया था कि "असली पुरुष सी ++ में धाराप्रवाह हैं, असली पुरुष कमांड लाइन का उपयोग करते हैं और एक फ्लॉपी छवि से अपने लिनक्स को बूट करते हैं" - आपको फेवर करते हैं! मैं उन्हें "असली आदमी" बताना चाहता हूं कि वे अपने सिर का उपयोग करें और सबसे अच्छा उपकरण चुनें जो वे नौकरी के लिए पा सकते हैं। वे यह भी जानते हैं कि काम के बाहर जीवन में कैसे मजा करना है। देवियों, मानव-केंद्रित उत्तर के लिए खेद है। "पुरुषों" से मेरा मतलब प्रोग्रामर से है, लेकिन यह नहीं है कि यह उस समय कैसे शब्द था।
नौकरी '

3
जो कोई भी "रियल मेन" के साथ एक तर्क शुरू करता है वह या तो मजाक कर रहा है, या श * टी से भरा है। हालांकि, इस तरह के बेवकूफों को उन चीजों को समझने के लिए नहीं होना चाहिए, जो शुरुआत में, मुश्किल लगती हैं, शेल प्रोग्रामिंग बनाम जीयूआई चीजों को घसीटते हुए अक्सर बहुत अधिक कुशल का एक नरक है। और अगर कुछ सी ++ सेंट्रिक कारक पूरी तरह से आवश्यक हैं, तो सी ++ जाने का रास्ता है। (यानी। उच्च प्रदर्शन, या अधिक अनिवार्य रूप से, सी या सी ++ लाइब्रेरी / मौजूदा कोडबेस ... आदि का उपयोग) - मूल रूप से, यदि आप व्यावहारिक नहीं हैं, तो काम की इस रेखा को भूल जाएं।
ओसोडो

6
@Slomojo: असली पुरुष अपनी पत्नी और बच्चों से प्यार करते हैं और उनके साथ अच्छा व्यवहार करते हैं। ;)
मेसन व्हीलर

@ मेसन, आप एक राजकुमार हैं सर।
21

1
PHP / Python को अक्सर Linux बक्से पर तैनात किया जाता है क्योंकि वे Windows बक्से से सस्ते होते हैं। इसलिए, यदि आपको उन नर्सों की आवश्यकता है, तो आप यह जानकर बेहतर होंगे कि चीजें कैसे काम करती हैं और आप क्या करते हैं।

जवाबों:


35

अगर मैं विंडोज़ ऐप (या मैक ऐप) को कोड कर रहा हूं तो मुझे लिनक्स को जानने की आवश्यकता क्यों होनी चाहिए? क्या फोर्ड मैकेनिक को जॉन डीयर ट्रैक्टर को जानना चाहिए? यह सब इस बात पर निर्भर करता है कि आप क्या कर रहे हैं, पेशेवर रूप से या अपने स्वयं के "शौक" समय पर।

अब, इसे जानकर दुख नहीं हुआ। वास्तव में, मैं "आप जितना अधिक जानते हैं, आप उतने बेहतर हैं"


मेरे द्वारा पूछे जाने का कारण यह था क्योंकि लिनक्स को इन दिनों सभी प्रकार के प्रोग्रामर के लिए 'सीखना चाहिए' माना जाता है। मैं हालांकि गलत हो सकता हूं।
मैक्सटर

@ मोम: यह केवल आपको स्मार्ट बना देगा यदि आप जानते हैं कि इसका उपयोग कैसे करना है और यह जानना है कि लिनक्स कैसे और क्यों करता है। लिनक्स स्रोत कोड में विशाल ज्ञान सम्‍मिलित है लेकिन जैसा कि मुद ने कहा, यह जरूरी नहीं है।
गीक

1
यदि उन्हें कभी भी अपने कार्यक्रमों को एक उत्पादन वातावरण पर तैनात करने की उम्मीद है, तो उन्हें लिनक्स सीखने की आवश्यकता होगी, जो कि अधिकांश समय लिनक्स हो सकता है।
ड्यूकफैगिंग

@dukeofgaming, आप IIS और PHP चला सकते हैं कोई समस्या नहीं। लिनक्स सीखने के लिए अच्छा होगा, लेकिन आवश्यक? ज़रुरी नहीं।
मुअदिब

@dukeofgaming मैं एक linux सर्वर पर अपने ASP.NET एप्लिकेशन को तैनात करने की जरूरत नहीं है, और मुझे संदेह है कि मैं कभी भी करूंगा!
कर्क ब्रॉडहर्स्ट

29

यदि आप एक PHP प्रोग्रामर हैं, तो आपको निश्चित रूप से लिनक्स जानना चाहिए। PHP लिनक्स पर बनाया गया था, और PHP LAMP स्टैक का एक महत्वपूर्ण हिस्सा है: Linux + Apache + MySQL + PHP। यहां तक ​​कि अगर आपके पास अब विंडोज सर्वर के लिए विकसित करने का अवसर है, तो आपकी अगली नौकरी शायद आपके पास लिनक्स सर्वर के लिए विकसित होगी, और आपको लिनक्स पर्यावरण से परिचित होना होगा ताकि आप विंडो विशिष्ट 'इम्स' से दूर न चलें। PHP के।

मोबाइल ऐप स्पेस में, लिनक्स के बारे में जानना (दुख की बात) आपके द्वारा विकसित किए जा रहे वातावरण की थोड़ी प्रासंगिकता है। iPhone OS का Linux से कोई लेना-देना नहीं है, और Android ने आपको इतनी आसानी से वर्चुअल मशीन में फंसा दिया है, आपको कभी पता नहीं चलेगा कि आपके नीचे लिनक्स है। आप Meego या Maemo पर लिनक्स के लिए कार्यक्रम कर सकते हैं, लेकिन वे iPhone और Android की लोकप्रियता के पास कहीं नहीं हैं।

एम्बेडेड अंतरिक्ष में, आप है लिनक्स को पता है। एंबेडेड विंडोज दुर्लभ है, लेकिन एम्बेडेड लिनक्स काफी आम है। (बेशक, नंगे-धातु एम्बेडेड प्रोग्रामिंग भी काफी आम है, इसलिए यह निर्भर करता है कि आप कहाँ जाना चाहते हैं।)

यदि आप कई वर्षों से लिनक्स में गहराई से सीखते हैं, तो आपको कर्नेल से बूटअप प्रक्रिया, कमांड-लाइन और GUI तक, सिस्टम के प्रत्येक भाग की समझ का कुछ स्तर होगा।


3
मैं मानता हूं कि 32-बिट उपकरणों के लिए एम्बेडेड लिनक्स काफी सामान्य है। हालाँकि बहुसंख्यक एम्बेडेड माइक्रोस अभी भी 8 और 16-बिट के हैं, जो लिनक्स नहीं चला सकते हैं। (आपने अपनी "नंगे-धातु" टिप्पणी में यह कहा, मैं अभी थोड़ा स्पष्ट कर रहा हूं।) 32-बिट डिवाइस हालांकि सबसे तेजी से बढ़ते खंड हैं।
tcrosley

LAMP स्टैक और एम्बेडेड स्पेस के लिए +1। शुरुआत यूनिक्स / लिनक्स प्रोग्रामर के लिए इस विषय पर अपनी पुस्तक सिफारिशें पसंद करेंगे।
एंथोनी

17

80/20 की एक निश्चित डिग्री है जिसे आप यहां लागू कर सकते हैं। यह वास्तव में बहुत लंबे समय तक नहीं लेता है कि लिनक्स कैसे काम करता है और मूल आदेशों की मूल बातें जानने के लिए आपको शेल से जानने की आवश्यकता है। इसी तरह बेसिक अपाचे कॉन्फ़िगरेशन बहुत सुविधाजनक है अगर आपको इसकी आवश्यकता है। आपको अपने जीवन के वर्षों को इसके लिए समर्पित करने की आवश्यकता नहीं है, लेकिन यह निश्चित रूप से पर्याप्त मूल बातें सीखने लायक है जो आपको अपना सर्वर चलाकर मिल सकता है।

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


12
+1 - यदि आप विंडोज का उपयोग करना जारी रखना चाहते हैं तो लिनक्स न सीखें।
मोंगस पोंग

6
+1 - [हाथ से भेड़-बकरियां उठाता है] उम। मेरा नाम इनामाथी ... और उह, मैं एक पूर्व विंडोज उपयोगकर्ता हूं।
इनामाथी

6

आपको इसे सीखने की ज़रूरत नहीं है लेकिन यह आपको एक बेहतर प्रोग्रामर बना देगा। आप सीखेंगे कि विंडोज तरीके से चीजों को अलग तरीके से कैसे किया जाए। किसी भी * शेल्स का उपयोग करने से अंततः स्क्रिप्टिंग और नियमित अभिव्यक्ति का उपयोग करने, इंस्टॉलेशन को स्वचालित करने, बड़ी फ़ाइलों को पार्स करने आदि का उपयोग किया जाएगा।

मैं इसे नहीं जानने के लिए मज़ाक करने के बारे में परवाह नहीं करता हूं, जितना मैं इस बात की परवाह करता हूं कि हर बार जब मैं सीखता हूं कि लिनक्स में कुछ और कैसे करना है। यह बस प्रत्येक नए बिट के साथ बेहतर और बेहतर होता रहता है।

पॉवरशेल में बहुत कुछ है जो निक्स दुनिया से आता है, उन्होंने आखिरकार महसूस किया कि स्वचालन के लिए आपको एक अच्छा कंसोल (उस के लिए एमएस से कुडो) की आवश्यकता है। पर्ल और पाइथन दोनों ही सी, बैश, सेड, ऑक के मिश्रण के रूप में प्रतीत होते हैं, सभी अपने तरीके से एक अच्छी चीज बन जाते हैं।

बहुत कम से कम आपके पास अपने फिर से शुरू करने के लिए कुछ और होगा लेकिन यह वास्तव में सबसे अच्छी चीज नहीं है जो आप इससे बाहर निकलेंगे।

मुझे यकीन है कि आप अपनी खुद की चीजों पर पाएंगे जो आपको जाना देगा: "वाह, यह बहुत अच्छा है!" मेरा पहला प्रयोग एक नई विन्यास फाइल को पुनः लोड करने और लॉग को पुनः आरंभ करने के लिए, कभी भी सेवा को रोके बिना और कनेक्शन प्राप्त करने के लिए जारी रखने के लिए USR1 सिग्नल का उपयोग करके अपाचे को "मार" करने में सक्षम था। इसके अलावा ssh और rsync, अच्छा दुःख यह है कि एमएस पोर्ट उन्हें क्यों नहीं मेरे से परे है।


+1 शेल तरीके की ओर एमएस चाल दिखाने और पूरी तरह से ऐसा करने की कमी के लिए!
०b

4

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

एक प्रोग्रामर के रूप में, आप POSIX से परिचित होने पर विचार करके बेहतर कर सकते हैं, न कि केवल एक UNIX जैसा संस्करण। हालांकि इसमें कुछ विचित्रताएँ हैं, यह बहुत सारे प्रयासों का प्रतिनिधित्व करता है जो एक मानक इंटरफ़ेस को स्थापित करने के लिए एक अविश्वसनीय प्रयास में चले गए, जो कि (UNIX) सभी पर्यावरणों की तरह पोर्टेबल है। ध्यान दें, कई यूनिक्स जैसे सिस्टम 100% "सकारात्मक रूप से सही" नहीं हैं, लेकिन यह एक अच्छा प्रारंभिक बिंदु है।

एक आकस्मिक उपयोगकर्ता के रूप में, मैं केवल सुझाव दे सकता हूं कि कुछ नया करने और नई चीजें सीखने में मजा आता है। मुझे लगता है कि हर एक ऑपरेटिंग सिस्टम के साथ एक 'गुरु' होना संभव है, लेकिन मैं यह नहीं सोच सकता कि प्रोग्रामर के लिए यह सबसे उपयोगी प्रयास है। फिर भी, आपके द्वारा सामना किए जा सकने वाले सामान का एक अच्छा ज्ञान अच्छा है .. और आपके प्रश्न से, आपको भविष्य में लिनक्स का सामना करने की संभावना है।


+1 लिनक्स के बारे में मेरा ज्ञान (मैंने सालों से लिनक्स वेब सर्वर को प्रशासित किया है) ने मेरे "माइक्रोसॉफ्ट" घटनाक्रम में बहुत मदद की। वास्तव में, प्रत्येक समाधान यह समस्या है।

लिनक्स डिस्ट्रो से परिचित होना (जो कि एक वास्तविक सॉफ्टवेयर सिस्टम है जिसे आप खेल सकते हैं) और पोसिक्स (एक अमूर्त विनिर्देश) दो बहुत अलग चीजें हैं। यदि आप एक यूनिक्स या यूनिक्स जैसे ओएस (मैक ओएसएक्स को काफी हद तक छोड़कर) से परिचित हैं, तो आपको अपने ज्ञान को दूसरे में स्थानांतरित करने में कोई कठिनाई नहीं होगी।
डेविड थॉर्नले

3

हां, लेकिन आप इसे ध्वनि नहीं देते हैं जैसे आपको इसे सक्रिय रूप से अध्ययन करने की आवश्यकता है।

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

यह कहा जा रहा है कि निश्चित रूप से कुछ आदेश हैं जिन्हें आप मूल रूप से समझ नहीं पाने के लिए लिनक्स की दुनिया से दूर हो जाएंगे।


3

पिछले पांच में से चार नौकरियों में मैं, डेवलपर्स और क्यूए (कम से कम शुरू) विंडोज पर काम किया है, लेकिन परीक्षण और उत्पादन सर्वर लिनक्स / यूनिक्स थे। उनमें से सभी को कम से कम यूनिक्स की कम से कम राशि जानने के लिए परीक्षण सर्वर पर जाने और लॉग को देखने या 'वास्तविक' वातावरण में चल रहे प्रोग्राम को डिबग करने की आवश्यकता है। बहुत कम विकास वास्तव में उन कंपनियों में विंडोज के लिए किस्मत में है जो पिछले 20 वर्षों में थे।

यहां दूसरों को गूँजते हुए, आपकी नौकरी या कैरियर के लिए बहुत कम "आवश्यक" हो सकता है, लेकिन यह आपके स्वयं के काम, भाषा या प्रणाली के लाभ और सीमाओं को समझने में मदद करेगा जो आप उपयोग कर रहे हैं।


2

IMHO, लिनक्स / यूनिक्स को जानने वाले एक सक्षम प्रोग्रामर के लिए और भी महत्वपूर्ण यूनिक्स दर्शन के लिए एक शानदार कदम होगा


2

जब मैंने ऑपरेटिंग सिस्टम कंप्यूटर साइंस कोर्स लिया, तो हमने UNIX आधारित ऑपरेटिंग सिस्टम का अध्ययन किया और रेडहैट पर अपना काम किया क्योंकि यह खुला स्रोत था और क्योंकि हम कोड देख सकते थे और क्योंकि हम इसके साथ काम कर सकते थे जो अभी नहीं किया जा सका विंडोज।

मैं कहूंगा कि यदि आप यह जानने वाले हैं कि ऑपरेटिंग सिस्टम हूड के अंतर्गत कैसे काम करते हैं, तो आपको लिनक्स के साथ कुछ अनुभव होना चाहिए, भले ही यह शैक्षणिक माहौल में हो।

मैंने बस Ubuntu 10.04 से विंडोज 7 पर वापस स्विच किया। मैं बिना grep और कुछ अन्य कमांड लाइन टूल के बिना थोड़ा खो गया महसूस करता हूं। मैं लिनक्स वातावरण में विकसित करना पसंद करता हूं क्योंकि मुझे लगता है कि सिस्टम उपयोगकर्ताओं और डेवलपर्स के लिए अधिक अनुकूल है।

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

आप जिस पर ध्यान केंद्रित करते हैं, उसके न्यायाधीश होने चाहिए; तथापि। यदि वर्तमान में आपके लिए मोबाइल एप्लिकेशन विकसित करने का एक मार्ग है, और लिनक्स जानना वास्तव में आवश्यकता नहीं है, तो हो सकता है कि आप लिनक्स के बजाय मोबाइल एसडीके के बारे में अधिक जानने पर ध्यान केंद्रित करें। वहाँ सब कुछ के लिए एक व्यापार है, और ऐसा लगता है कि आप लिनक्स के लिए कुछ बुनियादी जोखिम है जहाँ आप इसके बारे में अधिक जान सकते हैं यदि आवश्यक हो।


2
मेरे पास हमेशा मेरे विंडोज बॉक्स पर grep et al है, वे एक आवश्यकता है।
परिक्रमा

1

निम्नलिखित में से कोई आपको परेशान करता है?

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

नौकरी के अवसरों और करियर के कई रास्ते हैं, जिनका आप अभी भी पीछा कर सकते हैं। मैं यह नहीं कह रहा हूं कि इनमें से किसी को भी 'परेशान' होना चाहिए। बस अपने आप के साथ ईमानदार रहें और सामान्य रूप से उद्योग में नज़र रखें और विशेष रूप से यह देखने के लिए कि क्या आपके रास्ते पार हो सकते हैं। इसमें कोई शक नहीं कि समय आने पर आप इसका पता लगा सकते हैं। कौन जानता है, कल एक लिनक्स परियोजना आपके रास्ते में आ सकती है।


1

मैंने हमेशा Windows वातावरण में कोडित किया है। मेरे लिए, लिनक्स सिर्फ एक और ओएस हुआ करता था, मेरे विंडोज के मुसीबत में पड़ने की स्थिति में मैं बैकअप के रूप में होता। मैं केवल बुनियादी आज्ञाओं को जानता था और इस पर मैंने जो कुछ भी करने की कोशिश की वह कठिन लग रहा था। लेकिन अब वेब डेवलपर के रूप में मेरी वर्तमान नौकरी में, हम सभी लिनक्स का उपयोग करते हैं इसलिए मुझे इसे सीखने और हर चीज के लिए उपयोग करने के लिए मजबूर किया जाता है। जितना अधिक मैं इसका उपयोग करता हूं, उतना ही मुझे यह पसंद है और मुझे लगता है कि यह बहुत अधिक उत्पादक और लचीला है। मुझे अफसोस है कि पहले लिनक्स के साथ अधिक गड़बड़ नहीं हुई थी। अब मैं बस पकड़ रहा हूं।

तो हाँ, आपको जब भी आप इसे सीख सकते हैं।


1

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

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


0

पर्याप्त जानें कि यदि आप किसी विशेष OS पर तैनात करने का इरादा रखते हैं , तो आप यह सुनिश्चित कर सकते हैं कि आपका एप्लिकेशन उस पर काम करता है, लेकिन अन्यथा ... आपको कुछ भी जानने की जरूरत नहीं है


यदि आप विकसित किए गए से भिन्न OS पर तैनात हैं, तो आपको नए OS के बारे में बहुत अधिक ज्ञान की आवश्यकता हो सकती है। एक बड़ा कारक यह है कि आपके आवेदन में निम्न स्तर की कार्यक्षमता कितनी है (यानी- किसी भी सीरियल पोर्ट-टाइप एक्सेस)
पैट्रिक

0

जब तक मैं .NET नहीं कर रहा हूं, मैं लिनक्स का उपयोग करना पसंद करता हूं। LAMP स्टैक WAMP की तुलना में मेरे लिए अधिक स्वाभाविक लगता है।

मैं निश्चित रूप से इसे सीखने की सिफारिश करूंगा यदि आपको Microsoft सामान के अलावा कुछ और सीखने में कोई दिलचस्पी है।

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