Linux ऑपरेटिंग सिस्टम अपनी सुरक्षा, स्टेबिलिटी और ओपन-सोर्स नेचर के लिए जाना जाता है। Linux को इस्तेमाल करने के लिए User और System के बीच एक माध्यम (Interface) की जरूरत होती है, जिसे हम GUI या CLI के रूप में उपयोग करते हैं। इन्हें नियंत्रित करने का मुख्य काम Shell का होता है। इस लेख में हम GUI और CLI का अंतर, Linux Shell क्या होती है, Shell के विभिन्न प्रकार, और Terminal का उपयोग – सब कुछ आसान भाषा में समझेंगे।
GUI और CLI में अंतर (Difference Between GUI and CLI)
Linux में सिस्टम को कण्ट्रोल करने के दो मुख्य तरीके होते हैं—GUI और CLI। दोनों एक Interface की तरह काम करते हैं, जिनके माध्यम से यूजर Linux से इंटरैक्ट करता है।
(A) GUI – Graphical User Interface
GUI (Graphical User Interface) एक ऐसा इंटरफ़ेस है, जिसमें यूजर आइकन, बटन, मेन्यू और विंडो जैसे ग्राफिकल एलिमेंट्स की मदद से कंप्यूटर को चला सकता है। इसे माउस, टचपैड या टचस्क्रीन से आसानी से कण्ट्रोल किया जाता है, इसलिए यह नए यूजर्स के लिए समझने और उपयोग करने में बहुत आसान है।
GUI की विशेषताएँ (Features of the GUI)
- ग्राफिकल विंडोज, आइकन और मेन्यू के जरिए काम।
- यूज़र-फ्रेंडली और विज़ुअली समझने में आसान।
- शुरुआती यूजर के लिए बेहतर।
- फाइलें मैनेज करना आसान—Drag and Drop की सुविधा।
- उदाहरण: GNOME, KDE Plasma, Cinnamon, MATE।
(B) CLI – Command Line Interface
CLI (Command Line Interface) एक टेक्स्ट-बेस्ड इंटरफ़ेस है, जहाँ यूज़र सीधे कमांड टाइप करके सिस्टम को कंट्रोल करता है। यह तरीका तेज़ होता है और कई काम कम समय में पूरा कर देता है, इसलिए Linux में इसका उपयोग अक्सर किया जाता है।
CLI की विशेषताएँ (Features of CLI)
- कीबोर्ड कमांड के माध्यम से काम।
- तेज़ रिस्पॉन्स और कम सिस्टम रिसोर्स का उपयोग।
- एडवांस यूज़र्स और डेवलपर के लिए उपयुक्त।
- एक ही कमांड में कठिन काम किया जा सकता है।
- उदाहरण: Terminal, Console, tty।
Linux Shell क्या है? (What is Linux Shell?)
Linux में Shell वह प्रोग्राम है, जो यूज़र द्वारा लिखी गई कमांड को Kernel तक पहुँचाता है और Kernel से प्राप्त आउटपुट को वापस यूजर तक दिखाता है। Shell Linux का बहुत महत्वपूर्ण हिस्सा है, क्योंकि इसी की मदद से यूजर CLI में कोई भी कमांड चला सकता है।
इसे आप Linux का कमांड इंटरप्रेटर भी कह सकते हैं। यह Shell यूजर और System Kernel के बीच एक पुल (Bridge) का काम करती है।
Shell क्यों जरूरी है? (Why is Shell important?)
- कमांड को प्रोसेस करने के लिए
- फाइल सिस्टम को कंट्रोल करने के लिए
- प्रोग्राम रन करने के लिए
- शेल स्क्रिप्टिंग (Automation) के लिए
- सिस्टम एडमिनिस्ट्रेशन के लिए
Shell के मुख्य कार्य (Main Functions of Shell)
- Command पढ़ना (Input लेना)
- Command को इंटरप्रिट (Understand) करना
- Kernel को निर्देश देना
- Output स्क्रीन पर दिखाना
- Errors को दिखाना
शेल का इतिहास (History of the shell)
शेल की शुरुआत Unix में 1970 के दशक में हुई, और बाद में Linux ने भी इसे अपनाया। 1977 में Stephen Bourne द्वारा बनाई गई Bourne Shell (sh) पहली लोकप्रिय शेल थी। इसी के आधार पर आगे चलकर Bash और अन्य आधुनिक शेल विकसित हुईं, जिन्हें आज Linux में सबसे ज्यादा उपयोग किया जाता है।
Shell के प्रकार (Types of Shell in Linux)
Shell एक कमांड-लाइन इंटरफ़ेस होती है जो उपयोगकर्ता द्वारा दिए गए कमांड को समझकर Kernel को प्रोसेसिंग के लिए भेजती है। Linux में कई प्रकार की Shell उपलब्ध हैं, जिनमें से कुछ Unix सिस्टम से विकसित होकर आईं और बाद में Linux में अपनाई गईं, जबकि कुछ सीधे Linux के लिए विकसित की गईं।
हर Shell की अपनी विशेषताएँ, सिंटैक्स, उपयोग का तरीका और scripting क्षमताएँ होती हैं। नीचे Linux/Unix में सबसे ज्यादा उपयोग की जाने वाली प्रमुख Shell का विस्तृत विवरण दिया गया है।
1. sh (Bourne Shell)
- उत्पत्ति: Unix में 1977
- आविष्कारक: Stephen Bourne
- डिफॉल्ट सिंबल: $ (सामान्य यूजर)
- Bourne Shell Unix की पहली लोकप्रिय Shell थी और कई अन्य Shell (जैसे Bash, Ksh) इसी पर आधारित हैं।
- Scripting के लिए बेहतरीन — सरल और स्थिर स्क्रिप्ट लिखने में उपयोगी।
- Simple commands और portability के लिए अच्छा विकल्प।
- Linux/Unix systems के लिए Base shell माना जाता है।
2. Bash (Bourne Again Shell)
- उत्पत्ति: Linux में 1989
- आविष्कारक: Brian Fox (for GNU)
- डिफॉल्ट सिंबल: $ (सामान्य यूजर), # (रुट यूजर)
- Bash Linux की सबसे लोकप्रिय Shell है और कई डिस्ट्रीब्यूशनों में डिफॉल्ट रूप से होती है।
- आसानी से सीखने योग्य और व्यापक documentation उपलब्ध।
- Command history और command-line editing सपोर्ट।
- Script automation में बेहतरीन; कई administrative स्क्रिप्ट Bash में लिखे जाते हैं।
- Powerful features — brace expansion, aliases, shell functions, arrays आदि।
- नोट: Bash में commands case-sensitive होते हैं (case-insensitive नहीं)।
3. Zsh (Z Shell)
- उत्पत्ति: लगभग 1990
- आविष्कारक: Paul Falstad
- डिफॉल्ट सिंबल: %
- Zsh एक एडवांस्ड और अत्यधिक कस्टमाइजेबल Shell है।
- Auto-completion बहुत स्मार्ट और extensible है।
- Powerful themes और प्लगइन सपोर्ट (जैसे Oh-My-Zsh)।
- Syntax highlighting और बेहतर prompts का समर्थन।
- Performance में तेज़ और scripting में advanced features।
4. csh (C Shell)
- उत्पत्ति: Unix में 1970s
- आविष्कारक: Bill Joy
- डिफॉल्ट सिंबल: %
- C Shell की सिंटैक्स C प्रोग्रामिंग जैसी होती है, इसलिए C प्रोग्रामर इसे जल्दी समझ लेते हैं।
- History mechanism और job control उपलब्ध है।
- Alias फीचर है।
- कई programmers के लिए उपयुक्त, पर scripting में कुछ incompatibilities के कारण आज कम उपयोग होती है।
5. Tcsh (TENEX C Shell)
- उत्पत्ति: csh का advanced version
- आविष्कारक: Ken Greer
- डिफॉल्ट सिंबल: %
- Command completion और command-line editing सपोर्ट।
- Built-in text editor उपलब्ध है।
- C-like syntax और csh के साथ compatibility।
6. Ksh (Korn Shell)
- उत्पत्ति: Unix में 1983
- आविष्कारक: David Korn
- डिफॉल्ट सिंबल: $
- Ksh, Bourne Shell और C Shell की विशेषताओं को मिलाकर बनाई गई है।
- Fast performance और script compatibility अच्छी है।
- Interactive features बेहतर और बड़ी systems के लिए उपयुक्त।
7. Fish Shell (Friendly Interactive Shell)
- उत्पत्ति: 2005
- आविष्कारक: Axel Liljencrantz
- डिफॉल्ट सिंबल: >
- Fish Shell यूज़र-फ्रेंडली और आधुनिक फीचर्स वाली Shell है।
- Colorful suggestions और inline auto-suggestions मिलते हैं।
- आसान और समझने में सरल सिंटैक्स।
- Beginners के लिए अच्छा विकल्प, पर traditional POSIX scripting से कुछ अलग व्यवहार कर सकती है।
नोट: ऊपर दिये गए डिफॉल्ट सिंबल सामान्य प्रैक्टिस के अनुसार दिए गए हैं; system configuration, theme या user preferences के कारण prompt सिंबल बदल सकता है।
Linux Interface and Shell - FAQs
👉 Korn Shell (ksh) → $ (Normal User), # (Root User)
👉 Fish Shell → >


