Linux in Hindi : Shell

  • Introduction to linux shell in Hindi
  • Common linux shells in Hindi
  • What is shell scripting in Hindi

Introduction to Linux Shell

Linux में आपको एक shell program provide किया जाता है। यह Linux core operating system (kernel) को use करने के लिए एक command based program होता है।

यह kernel का हिस्सा नहीं होता है। इसके द्वारा user kernel को उपयोग करता है और कई अलग अलग tasks perform करता है।

Shell को terminal द्वारा access किया जाता है। Terminal का प्रयोग shell को open करने और use करने के लिए किया जाता है।

जब भी user shell में कोई command type करता है तो shell उस command को kernel को pass करता है इसके बाद kernel उस command को execute करता है।

Shell user और linux kernel के बीच bridge का कार्य करता है। Shell operating system से interact करने का Non GUI way होता है। सभी operating systems में shell available होता है।

एक computer सिर्फ 0 और 1 की भाषा (binary language) को ही समझता है। Shell user से simple english के रूप में user से command लेता है और यदि वह command उचित होती है तो उसे binary में convert करके kernel को pass कर देता है।

Linux में available shells को देखने के लिए आप terminal में $cat/etc/shells command execute कर सकते है। Current shell को देखने के लिए आप $echo $SHELL command execute कर सकते है।

Mac Os पर available shells को देखने के लिए echo “$shell” command use कर सकते है।

Microsoft Disk Operating System (MS-DOS) में shell का नाम COMMAND.COM है। जिसे Command prompt के द्वारा access किया जा सकता है।

एक shell program को keyboard या mouse द्वारा commands दी जा सकती है। जब shell में commands keyboard द्वारा दी जाती है तो वह command line interface कहलाता है।

Common Linux Shells

Linux operating system में आपको कई shells available होते है। कुछ popular linux shells के बारे निचे बताया जा रहा है।

Unix की सबसे प्रथम shell Bourne shell थी जो Stephen R. Bourne के द्वारा 70 के दशक में Bell Labs में बनायीं गयी थी।

BASH (Bourne-Again Shell)

Bash एक unix shell है। इसे bourne shell को replace करने के लिए create किए गया था। यदि कारण है की इसका नाम bourne-again shell रखा गया है। इसे Brian Fox ने create किया था।

Unix के अलावा इसे linux और Mac OS पर भी default login shell के रूप में use किया गया है। Windows 10 के लिए भी इस shell का एक version उपलब्ध है।

C Shell

C shell भी एक unix shell है। इसे Bill Joy ने 1970 के दशक में create किया था। यह एक command process shell होती है। इसमें commands एक file को pass करके उसे भी process किया जा सकता है। जिसे script कहते है।

Korn Shell

Korn shell unix shell के आधार पर बनायीं गयी एक unix shell है। इसे David korn ने bell labs में develop किया था। इसमें कई features C shell से भी include किये गए है।

TCSH

Tee See Shell modern unix shell है। यह C shell पर आधारित है और उसके साथ कार्य करने में सक्ष्म है। इसे आप कुछ extra features (command line editing आदि) के साथ C shell ही समझ सकते है।

What is Shell Scripting

Shell scripting का अर्थ एक file में store की गयी list को commands को execute करना होता है। ये commands एक निश्चित task perform करने के लिए निश्चित order में execute की जाती है और task के अनुसार इनका order बदल सकता है।

Shell एक program होने के अलावा language भी होती है। यह C language में program create करके use execute करना जैसा है। C programming भी shell scripting का एक परिष्कृत रूप है।

Shell scripting में भी comments define किये जा सकते है और output देखा जा सकता है।

Linux in Hindi : Linux and Unix

  • Introduction to Linux and Unix in Hindi
  • Differences between Linux and Unix in Hindi
  • Similarities between Linux and Unix in Hindi

Introduction to Linux and Unix

Unix अब तक का सबसे powerful और robust operating system है। Linux भी unix के core structure को follow करता है इसलिए linux भी एक बहुत reliable operating system है।

Linux को unix operating system के आधार पर बनाया गया है। Linux और Unix में बहुत सी समानताएँ पायी जाती है। जैसे की linux का core operating system (kernel) unix से ही लिया गया है। यदि आप linux को operate करना सिख लें तो काफी हद तक unix को भी operate कर सकते है।

हालाँकि ये दोनों operating system एक ही structure को follow करते है लेकिन फिर भी ये दोनों एक जैसे नहीं है। इन दोनों में जितनी समानताएँ है उतनी ही इनमें असमानताएँ भी है।

इनमें से किसी भी operating system को उपयोग करते समय आपको इनके बीच की similarities और differences के बारे में पता होना चाहिए। इससे आपको इनके features और limitations के बारे में पता लग जाता है। इससे आप इनका बेहतर उपयोग कर सकते है।

Differences Between Linux and Unix

Linux और unix operating system के बीच पाए जाने वाले differences के बारे में आगे बताया जा रहा है।

Full vs. Half

Linux operating system सिर्फ एक kernel है। Linux को एक complete operating system नहीं माना जाता है। इसे complete बनाने के लिए linux में दूसरे vendors द्वारा provide किये गए software programs include किये जाते है।

जबकि unix एक full operating system होता है। Unix में A to Z सभी programs built-in आते है। Unix में किसी दूसरे program को include करने की आवश्यकता नहीं होती है।

Cost

सभी linux operating systems free of cost available होते है। आप internet से download कर सकते है।

लेकिन सभी unix operating systems free नहीं होते है। ज्यादातर unix operating systems commercial होते है और उन्हें setup और manage करना बहुत expensive होता है।

Graphical User Interface (GUI)

Linux में आपको कई GUI alternatives available होते है। जैसे की KDE, Gnom, Unity और Mate आदि कुछ common graphical user interfaces है जो linux में आपको available होते है।

शुरूआती तौर पर unix में एक command line interface ही available था। लेकिन उसके बाद Common Desktop Environment (GUI) को develop किया गया था। आज कल ज्यादातर unix operating systems Gnome को GUI interface के रूप में use करते है।

Development

Linux operating को open source community द्वारा develop किया गया है। जिनमें कुछ independent programmers भी शामिल है।

लगभग पूरा unix operating system AT&T द्वारा ही develop किया गया है। कुछ organizations भी है जिन्होंने unix के development को support किया गया है। लेकिन ये सभी organization भी commercial ही है।

User

Linux operating system को आम आदमी से लेकर बड़ी organizations तक कोई भी उपयोग कर सकते है।

लेकिन unix operating system को बड़े servers और workstations के लिए design किया गया है। आम आदमी के लिए इसका कोई उपयोग नहीं है।

Similarities Between Linux and Unix

निचे Linux और unix operating systems के बीच पायी जाने वाली similarities के बारे में बताया जा रहा है।

Multi-tasking

Linux और unix दोनों ही operating systems multitasking में समर्थ है। हालाँकि यह feature linux को unix से ही मिला है।

Command Line & GUI

दोनों ही operating systems command line और GUI (graphical user interface) modes provide करते है।

Security

दोनों ही operating systems high level security provide करते है। जो की दूसरे किसी भी operating system से अलग है।

Multiple User Accounts

दोनों operating systems में multiple user accounts create किये जा सकते है। इनमें एक administrator account होता है जिसके पास operating system का full access होता है।

Linux in Hindi : Linux and Windows

  • Introduction to linux and windows in Hindi
  • Differences between linux and windows in Hindi
  • Similarities between linux and windows in Hindi

Introduction to Linux and Windows

यदि personal computers की बात की जाय तो Microsoft Windows सबसे popular operating system है। यह पूरी दुनिया में सबसे अधिक उपयोग किया जाने वाला operating system है। Programmers से लेकर आम जनता तक सभी इस operating system का प्रयोग करते है।

ज्यादातर ऐसे students जो linux को सिखने का प्रयास करते है वे घर या collage कँही ना कँही पर Windows अवश्य प्रयोग करते होंगे और हो सकता है की उन्हें linux थोड़ा अटपटा लगे। इसलिए linux के बारे में सीखते समय यह आवश्यक है की आपको Windows और linux के बीच की समानता और असमानता के बारे में पता हो, ताकि आप linux का बेहतर उपयोग कर सके।

इसी बात को ध्यान में रखते हुए यँहा linux और windows के बीच समानता और असमानता बताई जा रही है।

Differences Between Linux and Windows

निचे Windows और Linux operating system के बीच पायी जाने वाली असमानताएँ बताई जा रही है।

Costing

Linux एक free of cost operating system है। जबकि windows एक commercial software है। यही नहीं linux पर use होने वाले software programs भी free of costs ही होते है।

Open Source

Linux एक open source operating system है। इसका code download करने के लिए free of cost available है। कोई भी इसके development में योगदान कर सकता है। जैसा की मैने पहले कहा Windows एक commercial operating system है। इसका code सिर्फ Microsoft के pass available है।

कोई भी दूसरा programmer या community इसके development में योगदान नहीं कर सकते है। हालाँकि windows पर कोई भी open source या commercial software उपयोग किया जा सकता है।

Customization

Linux एक customizable operating system है। यानी की कोई भी person या community इसमें बदलाव करके खुद उपयोग के हिसाब से इसे उपयोग कर सकती है। Windows operating system में किसी भी प्रकार का बदलाव सिर्फ Microsoft ही कर सकती है।

Security

Linux एक बहुत ही secure operating system है। इसमें किसी प्रकार virus या malware attack का भी अधिक खतरा नहीं रहता है। जबकि Windows एक vulnerable operating system है, जिसमे virus और malware आदि attacks का अधिक खतरा रहता है।

Kernel

Linux operating system में monolithic kernel होता है। एक monolithic kernel एक single process के रूप में कार्य करता है, जिसमें सभी कार्य directly उसी process द्वारा perform किये जाते है। जबकि Windows operating system microkernel होता है जो separate processes के रूप में divided होता है जो अलग अलग tasks perform करने के लिए responsible होती है।

Slash

Linux में किसी भी directory आदि का path forward slash ()/ द्वारा define किया जाता है। जबकि Windows में ये black slash () द्वारा define किया जाता है।

File Names

Linux में file names case sensitive होते है। यानी की linux में age और AGE दोनों समान माने जाते है। जबकि Windows में file names case insensitive होते है। यानी की age और AGE दोनों अलग अलग नाम माने जाते है।

File Structure

Windows में जँहा disk को अलग अलग drives में बाँटा जाता है, वँही linux में सब कुछ एक tree structure में store किया जाता है। इसी tree में drives mount की जाती है और उनमें data store किया जाता है। Linux में files को tree structure में organize किया जाता है।

Similarities Between Linux and Windows

Differences के अलावा linux और windows operating systems के बीच कुछ similarities भी पायी जाती है। इनके बारे में आगे बताया जा रहा है।

User Accounts

Linux और windows दोनों ही operating system आपको multiple user accounts द्वारा operating system को use करने की ability provide करते है। आप एक से अधिक accounts द्वारा login कर सकते है। हर account का data separate store किया जाता है। Administrator account सभी accounts का data देख पाता है।

Development Tools

Linux और windows दोनों ही software development की ability के साथ आते है। आप windows और linux कोई सा भी operating system इस्तेमाल करके software development कर सकते है।

Hardware Support

Linux और windows दोनों ही बहुत से hardwares को बिना किसी additional program आदि के support करते है।

Web Services

Linux और windows दोनों में ही basic web services जैसे की email, web surfing, database आदि available होती है।

Automated Tasks

Linux और windows दोनों में ही tasks को automate करने के लिए programs available है। Linux में यह कार्य Cron द्वारा और windows में Task Scheduler द्वारा किया जाता है।

Update

Linux और windows दोनों ही operating system समय समय पर update किये जाते है।

Virus

Linux और windows दोनों ही operating system में virus आ सकते है। लेकिन फिर भी linux operating system windows से अधिक secure होता है।

Can Run on Same Hardware Simultaneously

Linux और windows दोनों को एक ही hardware पर install  करके use किया जा सकता है। हालाँकि एक बार में एक ही operating system उपयोग किया जा सकता है।

Linux in Hindi : Distributions

  • Introduction to linux distributions in Hindi
  • Different linux distributions in Hindi

Introduction to Linux Distributions 

Linux एक open source operating system है। इसका code download के लिए freely available है। कोई भी उस code को download करके उसे अपनी आवश्यकतानुसार उपयोग कर सकता है।

Open source होने के अलावा linux customizable भी है। यानी की linux को कोई भी download करके अपने उपयोग के मुताबिक़ उसमे बदलाव कर सकता है।

कई अलग अलग communities ने linux को आवश्यकतानुसार customize करके launch किया है। यही कारण है की market में linux के इतने सारे variations available है। इन variations को linux distributions कहा जाता है।

हालाँकि linux के सैकड़ों की सँख्या में variations available है लेकिन फिर भी इन सब में core linux operating system (kernel) same ही होता है। Linux kernel में किसी प्रकार के बदलाव नहीं किये जाते है।

अलग अलग tasks को ध्यान में रखते हुए कई communities ने linux के अलग अलग distributions create किये है। आपको यह जानकार हैरानी होगी की Android operating system के भी core में linux ही कार्य कर रहा है।

Linux के कुछ popular distributions के बारे में आगे बताया जा रहा है।

Redhat Enterprise

यह linux distribution Red Hat organization द्वारा design किया गया है। इसे commercial purpose के लिए develop किया गया था। इसे RHEL के नाम से भी जाना जाता है। यह distribution desktop और server दो versions में release किया जाता है। इस distribution के servers में ARM64 और IBMZ आदि available है। 

Ubuntu

Ubuntu एक Debian based free और open source linux distribution है। Microsoft Windows और Apple Mac के बाद यह तीसरा सबसे popular operating system है। यह distribution desktop, server और cloud तीन versions में available है। Ubuntu 18.10 latest ubuntu version है। 

Fedora 

यह linux distribution community द्वारा support किये गए fedora project द्वारा बनाया गया है। इसे Red Hat enterprise द्वारा support किया गया है।

इस linux distribution में industry leading free और open source software programs available है। यह distribution भी काफी popular है। 

Debian 

Debian एक UNIX like operating system है। यह पूरी तरह free software packages के द्वारा nirmit है। यह project 1993 में lan murdock के द्वारा शुरू किया गया था।

Debian की stable release personal computers और network servers के लिए बहुत popular है। कई दूसरे distributions इस distribution के आधार पर बनाये गए है।

Linux Mint

Linux mint एक community द्वारा support किया गया linux distribution है। इसे Ubuntu और Debian के आधार पर बनाया गया है। यह एक आसानी से उपयोग किये जाने वाला operating system है।

यह distribution कुछ proprietary softwares के द्वारा multimedia के लिए पूरा support provide करता है। इसके अलावा इसमें कुछ free और open source programs भी include किये गए है।

Arch 

Arch linux X86-64 architecture पर based computers के लिए बनाया गया एक linux distribution है। यह free और open source software programs के combination से बना हुआ है। इसकी community में शामिल होकर कोई भी इसके लिए योगदान दे सकता है। 

Arch linux rolling release model पर कार्य है। इस model में updates चलती ही रहती है जो की system को continuous basis पर improve करती है। Arch linux developers के बीच काफी प्रसिद्ध है। 

CentOS

CentOS (Community Enterprise Operating System) एक free enterprise class linux operating system है। Enterprise class होने के अलावा यह community supported भी है। यह Red Hat Enterprise linux के साथ compatible है।

Gentoo

Gentoo linux एक ऐसा linux distribution है जिसे portage package management system द्वारा बनाया गया है। यह binary distribution की तरह ना होकर इसका source code user की सहूलियत के आधार पर locally compile किया जाता है। 

Speed और machine specific optimization ही gentoo linux के features है। 

OpenSUSE

यह linux SUSE linux GmbH और दूसरी companies द्वारा मिलकर develop किया गया है। इसे बनाने का उद्देश्य software developers और system administrator को एक open source tools का set provide करना था। इसके अलावा इस distribution में आपको एक user friendly desktop और multiple features वाला server environment प्राप्त होता है।

Slackware

यह distribution Patrick Volkerding द्वारा 1993 में create किया गया था। यह distribution Softlanding Linux System पर आधारित है। इस distribution के आधार पर कई दूसरे linux distributions create किये गए है। उदाहरण के लिए SUSE linux distribution slackware के आधार पर ही बनाया गया है। 

Linux in Hindi : Architecture

  • Introduction to linux architecture in Hindi
  • Linux kernel in Hindi
  • Linux system libraries in Hindi

Introduction to Linux Architecture

Linux एक open source, unix based operating system है। Linux operating system का architecture Unix operating system के आधार पर बनाया गया है।

Linux architecture कई components से मिलकर बना हुआ है। ये सभी components एक साथ मिलकर operating system कहलाते है।

Linux architecture में hardware को यदि operating system का हिस्सा न माने तो बाकी सभी components software होते है। सभी components अपने level पर अलग अलग tasks perform करने के लिए responsible होते है।

दूसरे level के कार्य के लिए ये components एक दूसरे से सम्पर्क भी करते है और एक साथ मिलकर कार्य करते है।

Linux architecture का एक सरल प्रारूप निचे प्रस्तुत किया गया है। इसमें hardware level से लेकर end user level तक के सभी components जो linux operating को बनाते है उनको दर्शाया गया है।

Linux-architecture-in-Hindi

Linux architecture के components के बारे में detail से आगे बताया जा रहा है।

Hardware

Linux architecture में सबसे lowest level पर hardware होता है। असल में hardware operating system का part नहीं होता है। Operating system और hardware अलग अलग होते है। Hardware द्वारा विभिन्न tasks perform करने के लिए ही operating system create किया जाता है।

Hardware में विभिन्न hardware devices होते है। जैसे की RAM, CPU, Input/Output devices आदि hardware होते है। इन सभी hardware devices से interact करने के लिए operating system में अलग अलग programs होते है। उदाहरण के लिए disk organizer program का कार्य disk को organize करना होता है।

Hardware level से directly operating system का kernel program connected रहता है।

Kernel

Kernel core operating system होता है। हालाँकि दूसरे components भी operating system का ही हिस्सा होते है। लेकिन सही मायनों में kernel ही असल operating system होता है। 
Kernel program ही hardware और दूसरे programs के बीच connection establish करता है। इस program की जिम्मेदारी hardware resources को manage करना होती है।

इसके अलावा device management, memory management, process management और system calls को handle करना जैसे कार्य भी इसी program द्वारा किये जाते है। 

Shell

Shell एक utility होती है जो user requests को process करती है। Command को read और process करना ही shell program की जिम्मेदारी होती है।

Shell program kernel से directly connected होता है। आपके द्वारा दी गयी command shell kernel को भेजता है जिसके आधार पर kernel resources का उपयोग allow करता है। 

System Libraries

System libraries वे programs होते है जो system को कार्यान्वित रखने के लिए आवश्यक होते है। System libraries के द्वारा ही kernel द्वारा कोई task perform करवाया जाता है। कोई भी task kernel खुद नहीं perform करता है बल्कि system libraries द्वारा system calls generate किये जाते है जिनके response में kernel वह task perform करता है।

Operating system की basic functioning के लिए system libraries ही responsible होती है। System libraries के बिना operating system कार्य नहीं कर सकता है। 

System Utilities

System utilities कुछ programs का set होता है। इन utilities का प्रयोग system के रखाव के लिए user द्वारा किया जा सकता है। जैसे की disk cleaner, device manager और disk optimizer आदि system tools ज्यादातर सभी operating systems में होते है।

Development Tools

Developement tools वे tools होते है जो जरुरत पड़ने पर operating system में बदलाव करने में सक्ष्म होते है। ये tools operating system को update और किसी error आदि के case में troubleshoot करने के लिए प्रयोग किये जाते है।

End User Tools

End user tools वे tools होते है जो user द्वारा primarily use किये जाते है। जैसे की browser, music player आदि end user tools होते है। 

Linux in Hindi : Introduction

  • Introduction to linux operating system in Hindi
  • History of linux operating system in Hindi
  • Features of linux operating system in Hindi

Introduction to Linux Operating System

Linux एक operating system है। जैसे की Windows, Macintosh और Android आदि operating systems है उसी प्रकार linux भी एक OS है।

Operating system एक software program होता है। यह कई software programs से मिलकर बना होता है। Operating system सभी कार्य hardware की मदद से करता है। एक operating system hardware और software के बीच communication establish करता है।

Operating system user द्वारा दी गयी commands को identify करके hardware की मदद से उसे implement करता है। इसके अलावा operating system hardware resources को manage करना, user की files को save करना आदि कार्य भी करता है।

Linux एक core operating system है। Linux में लगभग सभी कार्य commands द्वारा किये जाते है। Linux आपको बहुत अधिक graphical user interface नहीं provide करता है। 

जितने भी popular operating systems है जैसे की Windows और Mac आदि उन्हें user friendly बनाने के लिए उनको graphical user interface (GUI) द्वारा ढक दिया गया है। हालाँकि core level पर वे सभी linux की तरह ही कार्य करते है। 

Linux के साथ कार्य करके आप जानेंगे की असल में एक operating system कैसे कार्य करता है। क्योंकि दूसरे popular operating systems में सभी कार्य GUI elements द्वारा perform किये जाते है।

इसलिए user को पता नहीं रहता है की असल में हर GUI element (जैसे की button आदि) एक command के रूप में execute किया जा रहा है। 

Linux में आप किसी graphical user interface से अधिक ना interact करके direct operating system के मुख्य program kernel से interact करते है।  

Unix और linux में काफी समानता पायी जाती है। ऐसा माना जाता है की यदि आप इन दोनों में से कोई भी एक सिख लेते है तो दूसरा भी आप आसानी से उपयोग कर सकते है। Linux को unix standards के अनुरूप design किया गया है। 

History of Linux Operating System

Linux operating system Linus Torvalds द्वारा design किया गया था। वे एक computer science student थे और प्रतिभा के धनी थे।

Linus Torvalds Unix operating system पर कार्य करते थे तभी उन्हें लगा की Unix में कुछ improvements की आवश्यकता है। उन्होंने इस बात को Unix designer के समक्ष रखा। Unix designers को changes standards के अनुरूप नहीं लगे तो उन्होंने उस प्रस्ताव को ठुकरा दिया।

इसके बाद Linus ने सोचा की एक operating system create किया जा सकता है जो उनके द्वारा suggest किये गए changes के अनुरूप हो।

इसके बाद Linus ने Unix operating system के आधार पर ही 1991 एक kernel तैयार किया जिसे उन्होंने Linux नाम दिया। यह kernel Linus द्वारा suggest किये गए changes के अनुरूप था।

इसके बाद उन्होंने कई और programmers के साथ मिलकर कुछ programs develop किये जो Linux को कार्यन्वित करने के लिए आवश्यक थे। इस कार्य में उन्हें थोड़ा समय लगा। वर्ष 1991 से 1992 के आसपास तक Linux का एक working model market में launch कर दिया गया था।

Linux एक commercial OS ना होकर के open source था। यही कारण रहा की Linux कम समय में बहुत अधिक पॉपुलर हो गया। आज Linux के कई distributions market में available है।

Features of Linux Operating System

Linux operating system कुछ ऐसे महत्वपूर्ण features के साथ आता है जो इसे दूसरे operating systems से unique बनाते है। इन features के बारे में निचे बताया जा रहा है।

Linux is Portable 

Linux एक portable operating system है। यानी linux कई अलग अलग hardware platforms पर एक ही प्रकार से कार्य करता है। कुछ operating systems निश्चित hardware के साथ ही कार्य करते है इसलिए वे limited होते है। लेकिन linux को सभी प्रकार के hardware platforms पर use किया जा सकता है। 

Linux is Open Source

Linux एक open source operating system है। Linux का code freely download के लिए available है। कई communities और independent programmers एक साथ कार्य करके linux के development में योगदान देते है।

Linux is Multi-User Operating System

Linux सही मायनों में एक multi-user operating system है। एक साथ कई users एक ही operating system पर कार्य कर सकते है और resources जैसे की memory और disk space आदि को share कर सकते है। 

Linux is Multiprogramming Operating System 

आजकल के ज्यादातर सभी पॉपुलर operating systems की तरह linux भी एक multiprogramming operating system है। Linux में एक साथ कई applications कार्य कर सकती है। 

Linux is More Secure

Linux किसी भी दूसरे operating system से अधिक secure है। Network security से लेकर user authentication और file encryption तक सभी तरह के security features linux में available है।

Linux Have Hierarchical File System

Linux में files को hierarchical order में organize किया जाता है। इससे files को access करना और उनके साथ किसी भी तरह के operation perform करना और भी आसान और fast हो जाता है। यह programmers के लिए कई प्रकार से फायदेमंद होता है।

Linux Have Shell

Linux में Shell available है। Shell एक software program होता है। Shell के द्वारा आप operating system से interact कर सकते है। इसके लिए commands का प्रयोग किया जाता है। Shell के द्वारा आप operating system से कई प्रकार के कार्य करवा सकते है। जैसे की application programs को open करना और दूसरे operations आदि। 

Kotlin in Hindi : Destructuring Declarations

  • Introduction to Destructing declarations in Hindi
  • Kotlin destructuring maps in Hindi
  • Kotlin destructuring lambdas in Hindi

Introduction to Kotlin Destructuring Declarations

एक object structure बहुत से variables से मिलकर बना होता है। उन variables को object के नाम द्वारा ही access किया जाता है।

जिस प्रकार एक object structure variables से मिलकर बनता है उसी प्रकार object को destructure करके variables को extract किया जा सकता है। इस process को destructuring declarations के द्वारा perform किया जाता है।

कई बार ऐसा हो सकता है की एक object को कई variables के रूप में destructure करना आपके लिए महत्वपूर्ण हो। उदाहरण के लिए class में define किया गया कोई function सिर्फ एक ही value return कर सकता है।

लेकिन object को destructure करके आप उस class से सभी variables को extract कर सकते है फिर चाहे वे function में ही क्यों नहीं define किये गए हो।

Objects को destructure करने की ये ability programmers के लिए complex situations में भी solution प्राप्त करने की कई नयी possibilities generate करती है।

Syntax of Destructuring Declarations

Objects को destructure करने के लिए kotlin आपको special syntax provide करती है। यह syntax लगभग function call करने जैसा ही है।

val (variable1, variable2) = objectName

ऊपर दिया गया syntax आप एक object में से दो variables extract करने के लिए प्रयोग कर सकते है।

सबसे पहले आप आप यह बताते है की destructure होने वाले variables को mutable बनाना चाहते है या immutable बनाना चाहते है। यँहा पर ध्यान देने योग्य बात यह है की इससे कोई फर्क नहीं पड़ता है की class में variables mutable थे या immutable थे।

इसके बाद आप round brackets में comma से separate करके उन variables का नाम लिखते है जिन्हें आप destructure करना चाहते है। यह एक function में argument pass करने जैसा ही होता है।

इसके बाद आप assignment operator place करते है और object का नाम define करते है। यही declaration destructuring declaration कहलाता है। क्योंकि इसमें एक object को destructure किया जा सकता है। अब आप brackets में pass किये गए variables को independently use कर सकते है।

Component Functions

जब आप इस प्रकार एक object को destructure करते है तो compiler उसे निचे दी गयी form में translate करके execute करता है।

val variable1 = objectName.component1()
val variable2 = objectName.component2()

Component functions ही वे functions होते है जो object को destructure करते है। आप चाहे तो इस syntax द्वारा भी variables को extract कर सकते है। हर variable को extract करने के लिए आप एक component() function call करना होता है।

Data class के अंदर built in componentN() functions available होते है। इसलिए यदि आप किसी class के object को destructure करना चाहते है तो उसे data modifier के साथ define करते है। हालाँकि आप चाहे तो normal class भी define कर सकते है लेकिन तब आपको उस class में component functions को define करना होगा।

आपको एक बात और ध्यान रखनी चाहिए की जब आप एक class को data modifier के साथ define करते है तो आपको उसे कम से कम primary constructor में एक parameter के साथ define करना होता है।

data class myClass (val n: String, val a: Int)
{
    val Name: String = n
    val Age: Int = a
}

fun main(args: Array<String>)
{
    val myObj = myClass(“Best Hindi Tutorials”,3)
 
    val name = myObj.component1()
    val age = myObj.component2()

    println(name)
    println(age)
}

Underscore to Skip Variables

यदि आप destructuring declaration में किसी variable को include नहीं करना चाहते है तो इसके लिए आप उसकी जगह underscore(_) define करते है। Underscore से compiler को पता चलता है की आप उस variable को include नहीं करना चाहते है।

val(_, variable2) = objectName

ऊपर दिए गए code में underscore के माध्यम से यह बताया जा रहा है की variable1 को destructuring declaration में नहीं include किया जाना चाहिए।

Works with For Loops

Destructuring declarations का प्रयोग for loops में भी किया जा सकता है। एक बात आपको ध्यान रखनी चाहिए की destructure declaration के right side में कोई भी element हो सकता है लेकिन शर्त सिर्फ ये होती है की उस पर component functions call किये जाना संभव हो। 

उदाहरण के लिए एक collection में objects stored रहते है। ऐसे में for loop द्वारा आप collection के सभी items पर component method को call कर सकते है और उसकी value variable में store करके उसे independently use कर सकते है। 

for((a,b) in collection ) { … } 

Returning Two Values From Functions

Destructuring declarations के द्वारा आप एक function से दो values भी return कर सकते है। हालाँकि normally एक function से सिर्फ एक ही value return की जा सकती है।

data class myClass(val n: String, val a: Int)
{
   fun myFunction():myClass
   {
       val Name: String = n
       val Age: Int = a

       return myClass(Name, Age)
   }
}

fun main(args: Array<String>)
{
   val obj = myClass(“Best Hindi Tutorials”,3)
   val(Name, Age) = obj.myFunction()

   println(Name)
   println(Age)
}

Destructuring Declarations and Maps

Destructuring declarations का प्रयोग आप Maps के साथ भी कर सकते है। Map collection एक key और value का pair होता है।

Map के सभी items को एक sequence में store करके और उसके लिए iterator() function define करके आप for loop द्वारा सभी key और values को variables के रूप में store कर सकते है।

उदाहरण के लिए निचे दिए जा रहे code को देखिये।

for((key,value) in map) {
   // Use key and value here…
}

जैसा की आप ऊपर दिए गए code में देख सकते है destructuring declaration के साथ map को traverse किया जा रहा है और keys और values को individual values के रूप में use किया जा रहा है। 

Destructuring Declarations and Lambdas

Lambda (function के) parameters के लिए भी आप destructuring declarations का syntax उपयोग कर सकते है। यदि एक lambda में pair type के parameter है तो आप आसानी से destructuring declarations भी define कर सकते है और normal parameters भी define कर सकते है। 

{(a, b) –> …} // Destructuring declarations pair as lambda parameter

Previous: Kotlin Null Safety

Kotlin in Hindi : Null Safety

  • Introduction to kotlin null safety in Hindi
  • Kotlin references in Hindi
  • Kotlin safe call references in Hindi

Introduction to Kotlin Null Safety

Kotlin को null safety को ध्यान में रखते हुए design किया गया है। Kotlin compile time पर ही null reference को detect कर लेती है और या कोई ऐसा reference नहीं देने देती है जो की null है।

Java में null safety के लिए कोई कार्य प्रणाली उपलब्ध नहीं है। इसका नतीजा यह होता है की कई बार जब programmer unintentionally null से किसी function आदि को refer कर देता है तो null pointer exception generate हो जाती है और application crash हो जाती है।

Null safety इतनी महत्वपूर्ण है की यदि इस पर ध्यान ना दिया जाये तो इसकी वजह से बहुत अधिक नुक्सान हो सकता है। पहले भी कई organizations ने इस exception की वजह से बहुत नुक्सान उठाया है।

Kotlin द्वारा compile time पर null safety provide की जाती है। उदाहरण के लिए आप एक variable में null value नहीं store कर सकते है।

val x: String = “Best Hindi Tutorials”

x = null   // Compilation error 

ऊपर दिए गए code में x variable को null value assign की गयी है। यह declaration एक error generate करता है। यँहा पर x एक non nullable string type का variable है। यानी की x को compile time या run time कभी भी null value नहीं assign की जा सकती है।

ऐसी situation में यदि आप किसी variable को null value assign करना चाहते है तो इसके लिए आपको उसे nullable type का declare करना होगा। जैसा की आपको पता हर type का एक nullable version already kotlin में available है जो की ? से postfixed होता है।

val y: String? = “Best Hindi Tutorials”

y = null  // No error

ऊपर दिए गए code में y एक nullable string type का variable है। इसे null value assign की जा सकती है।

Kotlin References

Kotlin में दो प्रकार के references देखने को मिलते है। ये references nullable और non nullable होने से different होते है।

Non null reference 

ऊपर पहले उदाहरण में Non nullable string type का x variable create किया गया था। यदि इस variable द्वारा आप string objects के साथ available length property call करते है तो NullPointerException generate नहीं होगी क्योंकि run time पर भी x को null value assign नहीं की जा सकती है।

val x:String = “Best Hindi Tutorials”
print(x.length)  // Will not cause any exception

Nullable References

ऊपर दूसरे उदाहरण में nullable string type का y variable create किया गया था। यदि nullable type के variable से कोई property या function access किये जाते है तो वह safe नहीं होता है। ऐसे में compiler भी एक error (Only safe calls are allowed) generate करता है।

val y: String? = “Best Hindi Tutorials”
print(x.length) // Compiler generates error

लेकिन कई बार आपको nullable type के variables से भी property या functions को call करना जरुरी हो सकता है। ऐसे में kotlin आपको कई तरीके provide करती है जिनसे आप यह कार्य कर सकते है।

Checking For Null in Conditions

एक nullable type के object से refer करने के लिए आप पहले तरीके के रूप में null condition के लिए check कर सकते है। इस तरीके में आप दोनों conditions (null होने की और null नहीं होने की) के लिए अलग अलग code provide कर सकते है। 

if(y!=null)
{
   print(y.length)
}
else
{
   print(“null”)
}

आपके द्वारा perform किये जाने वाले condition check को compiler track करता है और if block के अंदर length property call को allow कर देता है।

एक बात आपको ध्यान रखनी चाहिए की ऐसा सिर्फ immutable objects के साथ ही होता है।

Kotlin Safe Call Operator (?.)

एक nullable type के object से किसी property को या function को safe तरीके से call करने के लिए kotlin आपको safe call operator (?.) provide करती है।

val z: String? = null
print(z?.length)

जैसा की आप ऊपर दिए गए code में देख सकते है, z variable में null value store की गयी है। इसके बाद safe call operator के द्वारा z से length property को call किया गया है। Safe call operator के साथ call करने की वजह से कोई exception generate नहीं होगी फिर चाहे object की value null हो या ना हो।

Safe call operators chains के लिए बहुत उपयोगी होते है। एक chain की सभी values को null के लिए check किया जाता है यदि chain में कोई भी object null है तो पूरी chain का result भी null होगा और यदि कोई भी object null नहीं है तो appropriate result प्राप्त होगा।

Elvis Operator (?:)

एक nullable reference में यदि null value होती है तो यह आवश्यक नहीं है की null value ही use की जाए। आप चाहे तो उसकी जगह कोई एक निश्चित value भी use कर सकते है।

ऐसा करने के लिए आप elvis operator उपयोग करते है। इस operator के left side में दिया गया expression यदि null नहीं है तो वही value उपयोग की जाएगी नहीं तो इस operator के right side में दी गयी value उपयोग की जाएगी।

val z: String? = null
print(z?.length ?: -1)

ऊपर दिए गए code में z को null assign किया गया है। लेकिन elvis operator की मदद से null की बजाय z की length को -1 print किया गया है।

Not-null Assertion Operator (!!)

Casting के लिए kotlin आपको एक और उपयोगी operator provide करती है। यह operator एक value को non null type में convert करता है और यदि value null होती है तो exception generate होती है। 

val z: String? = null
print(z!!.length)

ऊपर दिए गए code में क्योंकि z को null value assign की गयी है इसलिये second line के execute होने पर NullPointerException generate होगी।

Safe casting के बारे में विस्तृत जानकारी के लिए आप kotlin type checking and casting tutorial पढ़ सकते है।

Previous: Kotlin Type Checking and Casting
Next: Kotlin Destructuring Declarations

Python Tutorial in Hindi

Python Tutorial in Hindi

Python एक beginner friendly general purpose programming language है। हालाँकि python को बहुत सी programming languages के बाद create किया गया है। लेकिन फिर भी यदि programming सिखने की बात की जाय तो python सबसे अच्छी साबित होती है।

इसका मुख्य कारण है की python बहुत ही reable और simple है। इसमें सभी tasks common english words से बनी हुई commands के द्वारा perform किये जाते है। English words का इसमें इतना सटीक उपयोग किया गया है की programmer आसानी से program को लिख भी पाता है और समझ भी जाता है।

Python कई complex functionalities को भी बड़ी आसानी से implement करने की ability programmers को provide करती है। Python का प्रयोग सिर्फ सिखने तक ही नहीं है। यह एक तेजी से बढ़ती हुई programming language है। इसने market में अपनी reputation बना ली है जिसके कारण आज कई companies तो python projects ही कर रही है।

Python को सिख कर आप दूसरी programming languages भी सिख सकते है और एक programmer के रूप में भी कार्य कर सकते है। यदि आप एक python programmer बनने की सोच रहे है तो इससे अधिक बेहतर समय नहीं हो सकता है।

Python की खूबियों और popularity को ध्यान में रखते हुए Best Hindi Tutorials आपको python tutorials की आसानी से समझ आने योग्य Hindi भाषा में लिखी गयी tutorial series provide कर रही है। इस series की सभी tutorials में हर concept को आसान भाषा में उदाहरण सहित समझाया गया है।

Table of Contents 

  1. Python Introduction : Python कई important features provide करती है। इस tutorial में आप ऐसे ही कुछ python features के बारे जानेंगे। इसके अलावा आप यह जानेंगे की python को कँहा उपयोग किया जा सकता है। 
  2. Python Installation : Python में programming करने के लिए python interpreter का होना आवश्यक है। इस tutorial में आप python interpreter को install करना और programming के लिए ready करना सीखेंगे। 
  3. Python Interpreter : Python interpreter एक program है जो python commands को समझ कर उन्हें execute करता है। इस tutorial में आप python interpreter और उसके different modes के बारे में detail से जानेंगे। 
  4. Python Syntax : Python का syntax दूसरी programming languages से different है। इसमें indentations का बहुत महत्व होता है। इस tutorial में आप python indentations और python में comment करने के बारे में जानेंगे। 
  5. Python First Program : इस tutorial में आप अपना पहला python program create करना और उसे execute करना सीखेंगे। यह एक simplest program होता है। 
  6. Python Variables : Variables का प्रयोग data को store करने के लिए किया जाता है। इस tutorial में आप python में variables declare करना और उनके scopes के बारे में जानेंगे।  
  7. Python Numbers : Python में Number types का प्रयोग number variables create करने के लिए किया जाता है। इस tutorial में python Number types के बारे में जानेंगे और उन्हें उपयोग करना भी सीखेंगे। 
  8. Python Strings : String types का प्रयोग string variables create करने के लिए किया जाता है। इस tutorial में आप python में strings create करना और string operators और methods को use करना सीखेंगे। 
  9. Python Lists :  Lists एक items का ordered collection होता है। इस tutorial में आप python में list create करना और उसके साथ operations perform करना सीखेंगे। 
  10. Python Tuples : Tuples data items के ordered और unchangeable collections होते है। इस tutorial में आप python में tuples create करना और उसके methods को use करना सीखेंगे।  
  11. Python Dictionaries :  Dictionaries items का एक unordered collection होती है। इस tutorial में आप python dictionaries create करना और उन्हें access करना सीखेंगे। 
  12. Python Modules : Modules का प्रयोग कई python files को store करने के लिए किया जाता है। इस tutorial के बारे में आप standard modules और उन्हें उपयोग करने के तरीकों के बारे में सीखेंगे। 
  13. Python Packages :  Packages का प्रयोग अलग अलग modules को organize करने के लिए किया जाता है। इस tutorial में आप python packages को create और import करना सीखेंगे। 
  14. Python Functions : Functions का प्रयोग कुछ specific commands को program में कई जगह पर execute करने के लिए किया जाता है। इस tutorial में आप python functions, local symbol table और python function arguments के बारे में जानेंगे। 
  15. Python Loops : Loop का प्रयोग एक ही code को बार बार execute करने के लिए किया जाता है। इस tutorial में आप python loops और python loop control variables के बारे में जानेंगे। 
  16. Python Decision Making : Decision making statements का प्रयोग condition के अनुसार statements को execute करने के लिए किया जाता है। इस tutorial में आप अलग अलग python statements के बारे में जानेंगे। 
  17. Python Classes & Objects : Classes object oriented programming की सबसे महत्वपूर्ण functionality होती है। इस tutorial में आप python में classes create करना और उनके objects create करना सीखेंगे। 
  18. Python Date & Time : Python आपको date और time सम्बंधित जानकारी provide करने की ability provide करती है। इस tutorial में आप python में available date और time functions और उनके उपयोग के बारे में जानेंगे। 
  19. Python Errors & Exceptions : Errors और exceptions किसी program के execution को रोक देती है। इस tutorial में आप python में errors और exceptions को handle करना सीखेंगे। 
  20. Python Lambda Functions : Lambda functions बिना नाम के functions होते है। इस tutorial में आप lambda functions create करना सीखेंगे। 
  21. Python File Handling : ज्यादातर सभी programming languages file handling की ability provide करती है। इस tutorial में आप python के file handling mechanism के बारे में जानेंगे। 
  22. Python Iterators : Iterators का प्रयोग objects को iterate करने के लिए किया जाता है। इस tutorial में आप iterators implement करना और उन्हें उपयोग करना सीखेंगे। 
आशा है की Python tutorials की Hindi भाषा में provide की गयी यह series आपके लिए उपयोगी सिद्ध होगी। 

Kotlin in Hindi : Type Checking and Casting

  • Introduction to kotlin type checking in Hindi
  • Kotlin smart casts in Hindi 
  • Kotlin explicit casting in Hindi

Introduction to Kotlin Type Checking

कई popular programming languages type checking और casting के लिए functionalities provide करती है। Kotlin में भी यह feature उपलब्ध है।

Type of Object 

कई बार जब आप mixed types के साथ कार्य करते है तो run time पर यह जानना आवश्यक हो जाता है की एक object किस type (class) का है।

उदाहरण के लिए आप objectA का reference objectB को runtime पर assign करवा रहे है। ऐसे में पहले आपको यह check करना आवश्यक है की दोनों same type (class) के object है या नहीं। क्योंकि यदि दोनों object same type के नहीं है तो ऐसा नहीं किया जा सकता है।

is Operator 

इस कार्य के लिए kotlin आपको is operator provide करती है। इस operator के द्वारा आप compile time पर यह पता कर सकते है की एक object किस type का है।

val Message: String = “Hello reader!”

if(msg is String)
{
   print(“Message is a string object”)
}

ऊपर दिए गए code में Message एक string object है। If statement में is operator के माध्यम से यह confirm किया गया है।

Negated Form (!is)

Kotlin में is operator की एक negation form भी है। यह form negated सन्दर्भ में उपयोग की जाती है। 

val Message: String = “Hello reader!”

if(Message !is String)
{
   print(“Message is not string.”)
}

Kotlin Type Casting

जब आप किसी एक type के variable की value को किसी दूसरे type के variable को assign करना चाहते है तो ऐसा आप directly नहीं कर सकते है। इसके लिए पहले आपको उस value को cast करने की आवश्यकता होती है ताकि वह दूसरे type में store की जा सके।

Java में compatible types को आपस में cast करने के लिए cast () operator का प्रयोग किया जाता है। उदाहरण के लिए आप एक integer variable की value को string variable को assign करना चाहते है तो इसके लिए पहले आपको integer value को string में cast करना होगा।

int num = 5;
String value = (String) num;

ऊपर दिए गए code में num variable की value को string में cast करके string variable को assign किया गया है।

Kotlin Smart Casting 

Java के तरीके से हटकर kotlin आपको एक special type की casting ability provide करती है। जिसे kotlin में smart casting कहा जाता है।

Kotlin में is operator का type check करने के अलावा एक काम और भी है। जब आप किसी type को is operator द्वारा check करते है तो वह automatically उस type में cast हो जाता है।

उदाहरण के लिए निचे दिया code देखिये।

fun main(args: Array<String>)
{

val obj: Any = “Best Hindi Tutorials”;

if(obj is String)
{
    print(obj.length)
}

}

ऊपर दिए गए code में Any type के object को is operator द्वारा automatically string में cast किया गया है। यदि object cast नहीं किया गया होता तो उसके साथ length property का प्रयोग किया जाना संभव नहीं था।

Smart Casting Rules

Kotlin में smart casting सभी types के साथ possible नहीं है। यह केवल compiler द्वारा automatically तब ही perform की जाती है जब compiler को लगता है की casting और उसका उपयोग संभव है। निचे कुछ elements बताये जा रहे जिनके साथ smart casting संभव है 

  • val local variables – Val local variables के साथ smart casting हमेशा संभव है। लेकिन local delegated properties के साथ ऐसा नहीं किया जा सकता है। 
  • val properties – यदि property private या internal है और जँहा property को declare किया गया है वँही पर check perform किया गया है तो smart casting संभव है। Open properties या ऐसी properties जिनका custom getter declare किया गया है उनके साथ smart casting सम्भव नहीं है। 
  • var local variables – यदि variable check करने और use करने के बीच modify नहीं किया गया है, यदि उसे किसी lambda द्वारा नहीं catch किया गया है जो उसे modify नहीं करता है और यदि variable local delegated property नहीं है। 
  • var properties – Var properties के साथ smart casting possible नहीं है। 

Kotlin Explicit Casting

Kotlin में is operator द्वारा की गयी casting automatic होती है। लेकिन जैसा की आपको पता है इस प्रकार की casting हर संदर्भ में संभव नहीं होती है।

ऐसे में casting explicitly (manually) cast operator द्वारा perform की जाती है। Cast operator का concept कई programming languages में है लेकिन kotlin में cast operator अलग है।

Cast Operator as (Unsafe)

Kotlin आपको as cast operator provide करती है जो casting perform करने के लिए use किया जाता है। Compatible types के बीच casting आसानी से हो जाती है। यदि  types के बीच casting संभव नहीं होती है तो ClassCastException generate होती है। यही कारण है की इस operator को unsafe cast operator भी कहा जाता है।

val obj: Any = 555
val myValue: String = obj as String // Generates exception

ऊपर दिए गए उदाहरण में integer object को as operator द्वारा string में cast करने का प्रयास किया गया है।  यह code exception generate करता है क्योंकि integer को string में नहीं cast किया जा सकता है।

Cast Operator as? (Safe)

Kotlin में as operator की एक form as? है जो की as से safe casting perform करने के लिए प्रयोग की जाती है। यह operator compatible types के साथ आसानी से casting perform कर देता है और यदि दो types के बीच casting संभव नहीं होती है तो exception generate करने की बजाय यह operator null return करता है।

val obj: Any = 555
val myValue: String = obj as? String

print(myValue)   // It will print null

Previous: Kotlin Exceptions
Next: Kotlin Null Safety