BCA / B.Tech 20 min read

Programmer Interface & File manipulation in Hindi

Programer Interface in Linux in Hindi | लिनक्स में प्रोग्रामर इंटरफेस हिंदी में :


  • लिनक्स ऑपरेटिंग सिस्टम एक ओपन-सोर्स प्लेटफ़ॉर्म है, जो अपनी लचीलापन और शक्ति के लिए जाना जाता है। यह प्रोग्रामर्स को कई स्तरों पर सिस्टम के साथ इंटरेक्ट करने के लिए कई इंटरफेस प्रदान करता है। प्रोग्रामर इंटरफेस वह माध्यम है जिसके जरिए प्रोग्रामर सीधे या अप्रत्यक्ष रूप से ऑपरेटिंग सिस्टम 
  • और हार्डवेयर के साथ संचार करता है। यह इंटरफेस विभिन्न उपकरणों, लाइब्रेरियों, और सिस्टम कॉल्स के रूप में आता है।
  • लिनक्स प्रोग्रामर्स को एक समृद्ध और विस्तृत प्रोग्रामिंग इंटरफेस प्रदान करता है, जिसमें सिस्टम कॉल्स, लाइब्रेरीज़, डिबगिंग टूल्स, और नेटवर्किंग जैसी सुविधाएँ शामिल हैं। इसका खुला स्रोत और मॉड्यूलर संरचना प्रोग्रामर्स को सिस्टम के निचले स्तर तक पहुंचने और अत्यधिक अनुकूलन योग्य एप्लिकेशन 
  • विकसित करने की स्वतंत्रता देती है।
यहां, हम लिनक्स में प्रोग्रामर इंटरफेस के विभिन्न हिस्सों और इसके महत्व को विस्तार से समझेंगे:

System Calls in Linux in Hindi |  सिस्टम कॉल्स : 

सिस्टम कॉल्स वह प्राइमरी इंटरफेस होता है जिसके माध्यम से प्रोग्राम ऑपरेटिंग सिस्टम के कर्नेल के साथ बातचीत करते हैं। जब एक प्रोग्राम को किसी हार्डवेयर संसाधन तक पहुंचने की आवश्यकता होती है, जैसे कि फ़ाइल पढ़ना/लिखना, मेमोरी मैनेजमेंट या इनपुट/आउटपुट ऑपरेशंस करना, तो वह सिस्टम कॉल्स का उपयोग करता है।

(i) सिस्टम कॉल्स के प्रकार:

  • फ़ाइल मैनेजमेंट (File Management): जैसे open(), read(), write(), close() फ़ाइल से संबंधित ऑपरेशंस को नियंत्रित करते हैं।
  • प्रोसेस कंट्रोल (Process Control): जैसे fork(), exec(), exit() जो प्रोसेस के निर्माण और उनके समाप्त होने से संबंधित हैं।
  • डिवाइस मैनेजमेंट (Device Management): डिवाइस से डेटा पढ़ने और लिखने के लिए ioctl(), read(), write() जैसे कॉल्स का उपयोग किया जाता है।
  • सूचना प्राप्त करना (Information Retrieval): जैसे getpid(), getuid() जिससे प्रोसेस या यूजर की जानकारी प्राप्त की जाती है।

(ii) सिस्टम कॉल्स का उपयोग:

सिस्टम कॉल्स आमतौर पर C भाषा में उपयोग किए जाते हैं, और वे प्रोग्राम को कर्नेल के विभिन्न सर्विसेज़ से जोड़ते हैं। उदाहरण:

#include
#include

int main() {
    int pid;
    pid = fork();  // fork() सिस्टम कॉल प्रोसेस को डुप्लिकेट करता है।
    
    if(pid == 0) {
        printf("यह बच्चा प्रोसेस है\n");
    } else {
        printf("यह पैरेंट प्रोसेस है\n");
    }
    return 0;
}
इस उदाहरण में, fork() सिस्टम कॉल का उपयोग करके एक नया प्रोसेस बनाया जाता है।

Programming Libraries in Linux in Hindi |  प्रोग्रामिंग लाइब्रेरीज़ : 

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

(i) glibc (GNU C Library)

  • glibc लिनक्स की मुख्य लाइब्रेरी है, जो C प्रोग्रामिंग भाषा के लिए आवश्यक सभी फंक्शन्स और सुविधाएँ प्रदान करती है। यह सिस्टम कॉल्स के लिए रैपर के रूप में कार्य करता है, जिससे प्रोग्रामर को सिस्टम के साथ इंटरेक्ट करना आसान हो जाता है। उदाहरण के लिए, फ़ाइल ऑपरेशंस के लिए C में fopen(), fclose() जैसी सुविधाएँ मिलती हैं।

(ii) POSIX लाइब्रेरी 

  • POSIX (Portable Operating System Interface) एक मानक है जो प्रोग्रामर्स को विभिन्न ऑपरेटिंग सिस्टम्स पर पोर्टेबल कोड लिखने की सुविधा प्रदान करता है। लिनक्स POSIX मानकों का पालन करता है, और इसका मुख्य उद्देश्य प्रोग्रामर्स को एक सामान्य इंटरफेस प्रदान करना है। इसमें सिस्टम कॉल्स, थ्रेड्स, और अन्य बेसिक सेवाओं के लिए नियम होते हैं।

उदाहरण:

#include
#include

void* myThreadFun(void* vargp) {
    printf("नया थ्रेड चल रहा है\n");
    return NULL;
}

int main() {
    pthread_t thread_id;
    printf("मुख्य थ्रेड\n");
    pthread_create(&thread_id, NULL, myThreadFun, NULL);
    pthread_join(thread_id, NULL);
    return 0;
}
यह कोड POSIX थ्रेडिंग लाइब्रेरी का उपयोग करके एक नया थ्रेड बनाता है।

Shell Interface in Linux in Hindi |  शेल इंटरफेस : 

लिनक्स शेल प्रोग्रामिंग का भी प्रोग्रामर्स द्वारा व्यापक रूप से उपयोग किया जाता है। शेल एक कमांड-लाइन इंटरफेस है जो प्रोग्रामर्स को स्क्रिप्टिंग और ऑपरेटिंग सिस्टम के साथ सीधे इंटरेक्ट करने की सुविधा देता है।

(i) शेल स्क्रिप्टिंग (Shell Scripting)

शेल स्क्रिप्ट्स प्रोग्रामर्स को विभिन्न कार्यों को स्वचालित (automate) करने की सुविधा देती हैं। शेल कमांड्स को एक स्क्रिप्ट के रूप में लिखा जा सकता है और उस स्क्रिप्ट को चलाने पर स्वचालित कार्य किए जा सकते हैं। उदाहरण:

#!/bin/bash
echo "यह एक सरल शेल स्क्रिप्ट है"
date
इस स्क्रिप्ट में echo कमांड स्क्रीन पर टेक्स्ट प्रिंट करेगा और date कमांड वर्तमान तिथि और समय दिखाएगा। शेल स्क्रिप्टिंग लिनक्स सिस्टम्स पर स्वचालन (automation) का एक महत्वपूर्ण हिस्सा है।

(ii) आम शेल कमांड्स (Common Shell Commands)

  • ls: फ़ाइल और डायरेक्टरी की सूची दिखाता है।
  • cd: डायरेक्टरी बदलने के लिए।
  • cat: फाइल की सामग्री को प्रिंट करता है।
  • grep: किसी फाइल में टेक्स्ट को ढूंढने के लिए।
  • chmod: फ़ाइलों और डायरेक्टरीज़ की अनुमतियाँ (permissions) बदलने के लिए।

Debugging and Development Tools in Operating System in Hindi | डेबगिंग और डवलपमेंट टूल्स :

लिनक्स प्रोग्रामर्स को कई प्रकार के डेवलपमेंट और डिबगिंग टूल्स प्रदान करता है, जो प्रोग्रामिंग के दौरान बहुत महत्वपूर्ण होते हैं।

(i) GCC (GNU Compiler Collection)

GCC लिनक्स में मुख्य C और C++ कंपाइलर है, जो ओपन-सोर्स है। इसका उपयोग कोड को कंपाइल करने और एक्जिक्यूटेबल फाइल्स बनाने के लिए किया जाता है। उदाहरण:

gcc program.c -o program
./program

(ii) GDB (GNU Debugger)

GDB एक शक्तिशाली डिबगिंग टूल है, जो प्रोग्राम में बग्स को ढूंढने और उन्हें ठीक करने के लिए उपयोग किया जाता है। इसका उपयोग आप किसी प्रोग्राम को रनटाइम पर ट्रैक करने, वैरिएबल्स की वैल्यू देखने और प्रोग्राम के कंट्रोल फ्लो का निरीक्षण करने के लिए कर सकते हैं।

उदाहरण:

gdb ./program
(iii) Make और CMake
लिनक्स में make और cmake जैसे टूल्स का उपयोग बड़ी प्रोजेक्ट्स के निर्माण (build) और प्रबंधन के लिए किया जाता है। यह प्रोग्रामर्स को ऑटोमेटेड कंपाइलिंग, लिंकिंग और टेस्टिंग प्रोसेस को सरल बनाने में मदद करता है। उदाहरण:

make 

API and Library Extensions in Linux in Hindi | API और लाइब्रेरी एक्सटेंशन : 

लिनक्स प्रोग्रामिंग को और अधिक उन्नत बनाने के लिए विभिन्न प्रकार के API और एक्सटेंशन लाइब्रेरीज़ का उपयोग किया जा सकता है। इनका उपयोग नेटवर्किंग, GUI विकास, और डेटाबेस प्रोग्रामिंग जैसी सुविधाओं के लिए किया जाता है।

(i) GTK+ और Qt :

इनका उपयोग GUI एप्लिकेशन बनाने के लिए किया जाता है। लिनक्स में विभिन्न टूलकिट्स और लाइब्रेरीज़ होती हैं जो प्रोग्रामर्स को ग्राफिकल यूजर इंटरफेस आधारित एप्लिकेशन बनाने की सुविधा देती हैं।

(ii) Sockets और Networking :

लिनक्स में नेटवर्किंग एप्लिकेशन के लिए प्रोग्रामर्स को सोकेट्स का समर्थन मिलता है। यह नेटवर्क पर डेटा भेजने और प्राप्त करने के लिए उपयोग किए जाते हैं। उदाहरण:

#include
#include
#include
#include

int main() {
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if(sockfd < 0) {
        printf("सोकेट बनाने में त्रुटि\n");
        exit(1);
    }
    printf("सोकेट सफलतापूर्वक बनाया गया\n");
    return 0;
}





File Manipulation in Linux in Hindi | लिनक्स में फ़ाइल मैनिपुलेशन हिंदी में :


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

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


File Manipulation Commands in Linux in Hindi |  फ़ाइल मैनिपुलेशन कमांड्स :

लिनक्स शेल में कई कमांड्स होते हैं, जो फ़ाइलों को बनाने, देखने, हटाने और बदलने के लिए उपयोग किए जाते हैं। कुछ महत्वपूर्ण फ़ाइल मैनिपुलेशन कमांड्स निम्नलिखित हैं:

(i) फ़ाइल बनाना (Creating Files)

लिनक्स में फ़ाइलें बनाने के कई तरीके होते हैं। उदाहरण के लिए:

touch: यह कमांड नई खाली फ़ाइल बनाने के लिए प्रयोग किया जाता है।

touch myfile.txt
cat: यह कमांड एक फ़ाइल बनाते समय उसमें सामग्री भी जोड़ सकता है।

cat > myfile.txt
यह मेरी फ़ाइल की सामग्री है
इसके बाद Ctrl+D दबाकर फ़ाइल को सेव कर सकते हैं।

(ii) फ़ाइल पढ़ना (Reading Files)

cat: यह कमांड फ़ाइल की सामग्री को पढ़ने और स्क्रीन पर प्रदर्शित करने के लिए उपयोग किया जाता है।

cat myfile.txt
less: यह कमांड बड़े फ़ाइलों को पेजिंग के रूप में पढ़ने के लिए प्रयोग किया जाता है। इसमें आप ऊपर-नीचे स्क्रॉल कर सकते हैं।

less myfile.txt
head: यह कमांड फ़ाइल की पहली कुछ पंक्तियों को दिखाता है।

head -n 10 myfile.txt  # पहली 10 लाइनें
tail: यह फ़ाइल की अंतिम कुछ पंक्तियों को प्रदर्शित करता है।

tail -n 10 myfile.txt  # अंतिम 10 लाइनें

(iii) फ़ाइल में लिखना (Writing to Files)

echo: यह कमांड टेक्स्ट को फ़ाइल में लिखने के लिए प्रयोग किया जाता है।

echo "नया टेक्स्ट" > myfile.txt
यह पुराने डेटा को हटा देगा और नया टेक्स्ट फ़ाइल में जोड़ देगा।

cat: आप cat कमांड का उपयोग करके फ़ाइल में टेक्स्ट लिख सकते हैं।

cat > myfile.txt
nano और vi: ये दोनों लोकप्रिय टेक्स्ट एडिटर्स हैं, जो फ़ाइलों को इंटरैक्टिव तरीके से संपादित करने की अनुमति देते हैं। उदाहरण:

nano myfile.txt
इसमें आप सीधे टेक्स्ट को संपादित कर सकते हैं और फिर फ़ाइल को सेव कर सकते हैं।

(iv) फ़ाइल हटाना (Deleting Files)

rm: फ़ाइल को हटाने के लिए यह सबसे सामान्य कमांड है।

rm myfile.txt
यदि आप सुनिश्चित करना चाहते हैं कि फ़ाइल स्थायी रूप से हटाई जाएगी, तो आप rm -f का उपयोग कर सकते हैं।

(v) फ़ाइल नाम बदलना (Renaming Files)

mv: यह कमांड फ़ाइलों और डायरेक्टरीज़ को नाम बदलने या उन्हें एक स्थान से दूसरे स्थान पर ले जाने के लिए उपयोग किया जाता है।

mv oldname.txt newname.txt

(vi) फ़ाइल कॉपी करना (Copying Files)

cp: यह कमांड एक फ़ाइल की कॉपी बनाने के लिए प्रयोग किया जाता है।

cp sourcefile.txt destinationfile.txt

(vii) फ़ाइल खोज करना (Searching Files)

find: यह कमांड एक विशेष पैटर्न से मेल खाने वाली फ़ाइलों को ढूंढने के लिए उपयोग किया जाता है।

find /path/to/search -name "filename"
grep: यह कमांड फ़ाइलों में टेक्स्ट खोजने के लिए उपयोग किया जाता है।

grep "search-term" myfile.txt

File Permissions in Linux in Hindi | फ़ाइलों की अनुमतियाँ :

लिनक्स में फ़ाइलों और डायरेक्टरीज़ पर अनुमतियाँ (permissions) सेट की जा सकती हैं, जो यह नियंत्रित करती हैं कि कौन सी फ़ाइलों को पढ़ सकता है, लिख सकता है, या चला सकता है। प्रत्येक फ़ाइल और डायरेक्टरी के लिए तीन प्रकार की अनुमतियाँ होती हैं:

  • पढ़ने की अनुमति (Read Permission): फ़ाइल को पढ़ने की अनुमति।
  • लिखने की अनुमति (Write Permission): फ़ाइल में बदलाव करने की अनुमति।
  • चलाने की अनुमति (Execute Permission): फ़ाइल को एक प्रोग्राम के रूप में चलाने की अनुमति।

(i) अनुमतियों का प्रतिनिधित्व (Representation of Permissions)

  • r : पढ़ने की अनुमति
  • w : लिखने की अनुमति
  • x : चलाने की अनुमति

उदाहरण के लिए, अगर किसी फ़ाइल की अनुमति rwxr-xr-- है, तो इसका अर्थ है:

  • मालिक के पास पढ़ने, लिखने और चलाने की अनुमति है।
  • समूह के पास पढ़ने और चलाने की अनुमति है।
  • अन्य के पास केवल पढ़ने की अनुमति है।

(ii) अनुमतियों को बदलना (Changing Permissions)

chmod: यह कमांड फ़ाइलों और डायरेक्टरीज़ की अनुमतियाँ बदलने के लिए प्रयोग किया जाता है।

chmod 755 myfile.txt
इस कमांड में, 755 का अर्थ है:

मालिक को सभी अनुमतियाँ (rwx)।
समूह और अन्य को केवल पढ़ने और चलाने की अनुमति (r-x)।

(iii) स्वामित्व बदलना (Changing Ownership)

chown: यह कमांड फ़ाइल या डायरेक्टरी का मालिक बदलने के लिए प्रयोग किया जाता है।

chown user:group myfile.txt

Links and Files in Linux in Hindi | लिंक और फ़ाइलें :

लिनक्स में हार्ड लिंक और सॉफ़्ट लिंक (सिंबॉलिक लिंक) दोनों प्रकार की लिंकिंग की सुविधा होती है।

(i) हार्ड लिंक (Hard Link)

हार्ड लिंक एक फ़ाइल की प्रतिलिपि नहीं होती, बल्कि यह उसी डेटा ब्लॉक की ओर इशारा करता है। जब आप एक हार्ड लिंक बनाते हैं, तो फ़ाइल का डेटा समान रहता है।

ln originalfile.txt hardlinkfile.txt

(ii) सॉफ़्ट लिंक (Soft Link)

सॉफ़्ट लिंक या सिम्बॉलिक लिंक फ़ाइल की प्रतिलिपि नहीं है, बल्कि यह फ़ाइल के पथ की ओर इशारा करता है। यह उसी प्रकार का लिंक होता है जैसे शॉर्टकट विंडोज़ में होते हैं।

ln -s originalfile.txt softlinkfile.txt

Advanced File Manipulation in Linux in Hindi | उन्नत फ़ाइल मैनिपुलेशन : 

(i) वाइल्डकार्ड्स का उपयोग (Using Wildcards)

लिनक्स शेल में वाइल्डकार्ड्स का उपयोग करके आप एक साथ कई फ़ाइलों के साथ कार्य कर सकते हैं। उदाहरण:

* : यह किसी भी संख्या के अक्षरों का प्रतिनिधित्व करता है।

rm *.txt  # सभी .txt फाइलें हटाएं
? : यह एकल अक्षर का प्रतिनिधित्व करता है।

rm file?.txt  # file1.txt, file2.txt जैसी फाइलें हटाएं

(ii) फ़ाइल सिस्टम क्वोटा (File System Quota)

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


File Archiving and Compression in Linux in Hindi | फ़ाइल आर्काइविंग और कम्प्रेशन : 

लिनक्स में बड़ी फ़ाइलों और फ़ोल्डर्स को संग्रहित (archive) करने और संपीड़ित (compress) करने के लिए विभिन्न टूल्स होते हैं:

  • (i) tar: यह कमांड कई फ़ाइलों और डायरेक्टरीज़ को एक फ़ाइल में संग्रहित करता है।

tar -cvf archive.tar /path/to/files

  • (ii) gzip: यह फ़ाइल को संपीड़ित करने के लिए प्रयोग किया जाता है।

gzip myfile.txt

  • (iii) unzip: यह संपीड़ित फाइलों को निकालने के लिए उपयोग किया जाता है।

unzip myfile.zip


In this Chapter

Programmer Interface & File manipulation in Hindi
Distributed System in Hindi
Real Time System in Hindi
System Calls in Hindi
System Program in Hindi
Structure of Operating System in Hindi
Layers Design of Structure in Hindi
Unix in Hindi
Virtual Machine in Hindi
Kernel-Based Operating System in Hindi
Process Concept in Hindi
Interacting Processes in Hindi
Threads in Hindi
Fundamental of Schedulling in Hindi
Scheduling Criteria in Hindi
Long Medium Short Term Scheduling in Hindi
Scheduling Algorithms in Hindi
Structure of Concurrent System in Hindi
Critical Region in Hindi
Critical Section in Hindi
Inter process Communication in Hindi
Monitor in Hindi
Semaphores in Hindi
Semaphores Implementation & Uses in Hindi
Logical and Physical Address in Hindi
Swapping in Hindi
Contiguous Allocation in Hindi
Segmentation in Hindi
Paging in Hindi
Paging with Segmentation in Hindi
kernel Memory Allocation in Hindi
Page Replacement Algorithms in Hindi
Virtual Memory in Hindi
Virtual Memory with demand Paging in Hindi
Deadlock & Characterization in Hindi
Methods for Handling Deadlocks in Hindi
Deadlock Thrashing in Hindi
Allocation of Frames in Hindi
Virtual Memory using Segmentation in Hindi
Interprocess Communication protocol in Hindi
Network Operating System in Hindi
Design Issues in Distributed File System in Hindi
Network Structure in Hindi
Structure Distributed System in Hindi
File System and Coordination in Hindi
Linux in Hindi
Commands of Linux in Hindi | लिनक्स के कमांड्स हिंदी में
Process control in Linux in Hindi
Linux Kernel & Signals in Hindi
File System in Linux in Hindi
block & inodes in Hindi
System Editor in Hindi
Character Transliteration in Hindi
ED in Hindi
Vi Editor & There Commands in Hindi
Shell Script in Hindi
Looping & Decision Making in Hindi
Variables & File name Expansion in Hindi
Array in Hindi OS
Sub Program in Hindi
C interface with Linux in Hindi
Simpel Shell Programs in Hindi
BCA Part-1 | Operating Systems | Semester-I | MDSU Exam Paper 2023 (Held in 2024)
What is Operating System (OS) in Hindi
Operating System (OS) All Important Questions and Answers in Hindi (MDSU)
BCA || Operating System 2025 Paper || MDSU Exam Paper
BCA | OS(Operating System) 2023 Paper | MDSU Exam Paper
Type of Operating System in Hindi
Goals of Operating System in Hindi
Operation of Operating system in Hindi
Resource Allocation & Functions in Hindi
class of Operating system in Hindi
Batch Processing in Hindi
Multi Processing in Hindi
Time Sharing in Hindi