सबसे अधिक इस्तेमाल किया जाने वाला लिनक्स कमांड आपको पता होना चाहिए


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

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

बेहतर संगठन के लिए, इन आदेशों को तीन खंडों में बांटा गया है - फ़ाइल सिस्टम, नेटवर्किंग और सिस्टम जानकारी।

लिनक्स फाइल सिस्टम कमांड

इस खंड में, हम लिनक्स में फाइलों और निर्देशिकाओं से संबंधित कुछ उपयोगी कमांडों पर चर्चा करेंगे।

कैट कमांड का उपयोग मुख्य रूप से फ़ाइल सामग्री को प्रदर्शित करने के लिए किया जाता है। यह फ़ाइल की सामग्री को पढ़ता है और उन्हें मानक आउटपुट (stdout) पर प्रदर्शित करता है।

कैट कमांड का सामान्य सिंटैक्स है:

$ cat [OPTIONS] [FILE1] [FILE2] ...

आइए कैट कमांड का उपयोग करके/etc/os-release फ़ाइल की सामग्री प्रदर्शित करें:

$ cat /etc/os-release

इसके अतिरिक्त, हम सामग्री को लाइन नंबर के साथ प्रदर्शित करने के लिए कमांड के -n विकल्प का भी उपयोग कर सकते हैं:

$ cat -n /etc/os-release

सीपी कमांड फाइलों, फाइलों के समूहों और निर्देशिकाओं की प्रतिलिपि बनाने के लिए उपयोगी है।

सीपी कमांड का सामान्य सिंटैक्स है:

$ cp [OPTIONS]  

यहां, वर्ग कोष्ठक ([]) वैकल्पिक तर्कों का प्रतिनिधित्व करते हैं जबकि कोणीय कोष्ठक (<>) आवश्यक तर्कों का प्रतिनिधित्व करते हैं।

आइए /etc/os-release फ़ाइल को /tmp निर्देशिका में कॉपी करें:

$ cp /etc/os-release /tmp/new-file.txt

अब, यह सत्यापित करने के लिए फ़ाइल की सामग्री को प्रदर्शित करते हैं कि फ़ाइल की प्रतिलिपि बनाई गई है:

$ cat /tmp/new-file.txt

इसी तरह, हम cp कमांड का उपयोग करके डायरेक्टरी को कॉपी कर सकते हैं। आइए /tmp निर्देशिका के अंदर /etc/cron.d निर्देशिका की प्रतिलिपि बनाएँ:

$ cp -r /etc/cron.d /tmp

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

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

$ ls /tmp/cron.d
$ ls -l /tmp/cron.d

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

एलएस कमांड का सामान्य सिंटैक्स है:

$ ls [OPTIONS] [FILE1] [FILE2] ...

यदि हम ls कमांड को कोई तर्क प्रदान नहीं करते हैं तो यह वर्तमान निर्देशिका की सामग्री को सूचीबद्ध करता है।

$ ls

पिछले उदाहरण में, हमने /etc/cron.d निर्देशिका को /tmp निर्देशिका में कॉपी किया था। आइए सत्यापित करें कि वहां मौजूद है और इसमें आवश्यक फाइलें हैं:

$ ls /tmp/cron.d

हम अधिक विस्तृत जानकारी प्रदर्शित करने के लिए ls कमांड के साथ -l विकल्प का उपयोग कर सकते हैं जैसे - फ़ाइल अनुमतियां, स्वामी, टाइमस्टैम्प, आकार, आदि।

आइए /tmp/cron.d निर्देशिका में मौजूद फ़ाइलों के बारे में अधिक जानकारी प्राप्त करें:

$ ls -l /tmp/cron.d

हम अक्सर सामग्री को व्यवस्थित करने के लिए एक निर्देशिका संरचना बनाते हैं। लिनक्स में, हम निर्देशिका या एकाधिक निर्देशिका बनाने के लिए mkdir कमांड का उपयोग कर सकते हैं और निर्देशिकाओं के लिए सही अनुमतियां सेट कर सकते हैं।

Mkdir कमांड का सामान्य सिंटैक्स है:

$ mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> ...

आइए /tmp निर्देशिका में dir-1 नाम से एक निर्देशिका बनाएँ:

$ mkdir /tmp/dir-1

अब, सत्यापित करें कि निर्देशिका बनाई गई है:

$ ls /tmp/dir-1

यहां, हम देख सकते हैं कि ls कमांड किसी भी त्रुटि की रिपोर्ट नहीं करता है जिसका अर्थ है कि निर्देशिका वहां मौजूद है।

कभी-कभी, हमें बेहतर डेटा संगठन के लिए नेस्टेड निर्देशिका संरचना बनाने की आवश्यकता होती है। ऐसे मामलों में, हम /tmp/dir-1 निर्देशिका के अंतर्गत कुछ नेस्टेड निर्देशिका बनाने के लिए कमांड के -p विकल्प का उपयोग कर सकते हैं:

$ mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5

उपरोक्त उदाहरण में, हमने नेस्टेड निर्देशिकाओं के 4 स्तर बनाए हैं। आइए ls कमांड का उपयोग करके इसकी पुष्टि करें:

$ ls -R /tmp/dir-1

यहां, हमने निर्देशिका सामग्री को पुनरावर्ती तरीके से प्रदर्शित करने के लिए कमांड के साथ -R विकल्प का उपयोग किया है।

अंतिम निष्पादित कमांड का ऑडिट करने के लिए, आप इतिहास कमांड का उपयोग कर सकते हैं, जो टर्मिनल सत्र में अंतिम निष्पादित कमांड की सूची प्रदर्शित करता है।

$ history

टाइम स्टैम्प के साथ कमांड हिस्ट्री देखने के लिए, आपको टाइमस्टैम्प को बैश हिस्ट्री में सेट करना होगा, रन करें:

$ HISTTIMEFORMAT="%d/%m/%y %T "             #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T "      #Permanently set the history timestamp
$ history

आप उन शीर्ष 10 फाइलों की जांच कैसे करेंगे जो आपके डिस्क स्थान को खत्म कर रही हैं? डु कमांड से बनाई गई एक साधारण वन-लाइनर स्क्रिप्ट, जो मुख्य रूप से फ़ाइल स्थान उपयोग के लिए उपयोग की जाती है।

$ du -hsx * | sort -rh | head -10

उपरोक्त डु कमांड विकल्पों और स्विच की व्याख्या।

  • du - फ़ाइल स्थान उपयोग का अनुमान लगाएं।
  • -hsx - (-h) मानव पठनीय प्रारूप, (-s) सारांश आउटपुट, (-x) एक फ़ाइल स्वरूप, अन्य फ़ाइल स्वरूपों पर निर्देशिकाओं को छोड़ें।
  • सॉर्ट करें - टेक्स्ट फ़ाइल लाइनों को सॉर्ट करें।
  • -rh - (-r) मानव-पठनीय प्रारूप की तुलना करने के लिए तुलना के परिणाम को उलट दें, (-h)
  • head - फ़ाइल की पहली n पंक्तियों को आउटपुट करें।

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

$ stat anaconda-ks.cfg

लिनक्स नेटवर्किंग कमांड

इस खंड में, हम नेटवर्क से संबंधित कुछ समस्याओं के निवारण पर चर्चा करेंगे।

किसी भी नेटवर्क में किए जाने वाले बहुत ही सामान्य कार्यों में से एक यह जांचना है कि कोई विशेष होस्ट पहुंच योग्य है या नहीं। हम दूसरे होस्ट के साथ कनेक्टिविटी की जांच करने के लिए पिंग कमांड का उपयोग कर सकते हैं।

पिंग कमांड का सामान्य सिंटैक्स है:

$ ping [OPTIONS] <destination>

यहां, गंतव्य एक आईपी पता या पूरी तरह से योग्य डोमेन नाम (एफक्यूडीएन) जैसे google.com हो सकता है। आइए सत्यापित करें कि वर्तमान प्रणाली Google के साथ संचार कर सकती है:

$ ping -c 4 google.com

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

आइए उदाहरण देखें जब दो मेजबानों के बीच संचार टूट जाता है।

इस परिदृश्य का अनुकरण करने के लिए, हम एक गैर-पहुंच योग्य आईपी पते तक पहुंचने का प्रयास करेंगे। इस मामले में, यह 192.168.10.100 है:

$ ping -c 4 192.168.10.100

यहां, हम देख सकते हैं कि हमें किसी भी नेटवर्क अनुरोध के लिए कोई प्रतिक्रिया नहीं मिली। इसलिए कमांड त्रुटि की रिपोर्ट करता है - डेस्टिनेशन होस्ट अगम्य।

कभी-कभी, हमें किसी विशेष डोमेन का आईपी पता खोजने की आवश्यकता होती है। इसे प्राप्त करने के लिए, हम होस्ट कमांड का उपयोग कर सकते हैं, जो एक DNS लुकअप करता है और FQDN को IP पते और इसके विपरीत में अनुवाद करता है।

होस्ट कमांड का सामान्य सिंटैक्स है:

$ host [OPTIONS] <destination>

यहां, गंतव्य एक आईपी पता या एफक्यूडीएन हो सकता है।

आइए होस्ट कमांड का उपयोग करके google.com के आईपी पते का पता लगाएं:

$ host google.com

पंजीकृत डोमेन के बारे में सभी विवरण केंद्रीकृत डेटाबेस में संग्रहीत किए जाते हैं और whois कमांड का उपयोग करके पूछताछ की जा सकती है, जो विशेष डोमेन के बारे में विवरण दिखाता है।

whois कमांड का सामान्य सिंटैक्स है:

$ whois [OPTIONS] <FQDN>

आइए जानें google.com का विवरण:

$ whois google.com

यहां, हम बहुत विस्तृत जानकारी देख सकते हैं जैसे - डोमेन पंजीकरण/नवीनीकरण/समाप्ति तिथि, डोमेन प्रदाता, और इसी तरह।

यह नोट करना महत्वपूर्ण है कि, whois कमांड सभी सिस्टम पर डिफ़ॉल्ट रूप से उपलब्ध नहीं है। हालाँकि, हम इसे पैकेज मैनेजर का उपयोग करके स्थापित कर सकते हैं। उदाहरण के लिए, उपयुक्त पैकेज मैनेजर पर:

$ sudo apt install whois

आरएचईएल-आधारित और अन्य वितरणों पर, आप इसे दिखाए अनुसार स्थापित कर सकते हैं।

$ sudo yum install whois         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/whois  [On Gentoo Linux]
$ sudo apk add whois             [On Alpine Linux]
$ sudo pacman -S whois           [On Arch Linux]
$ sudo zypper install whois      [On OpenSUSE]    

लिनक्स सिस्टम सूचना आदेश

इस खंड में, हम कुछ कमांडों पर चर्चा करेंगे जो वर्तमान सिस्टम के बारे में विवरण प्रदान कर सकते हैं।

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

आइए वर्तमान प्रणाली के अपटाइम का पता लगाएं:

$ uptime -p

12:10:57 up  2:00,  1 user,  load average: 0.48, 0.60, 0.45

इस उदाहरण में, हमने आउटपुट को सुंदर रूप में दिखाने के लिए -p विकल्प का उपयोग किया है।

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

$ free -m

यहाँ, हमने कमांड के साथ -m विकल्प का उपयोग किया है जो mebibytes में आउटपुट दिखाता है।

इसी तरह, हम -g, -t, और -p विकल्पों को गिबिबाइट्स, टेबिबाइट्स, और पेबिबाइट्स क्रमशः।

कंप्यूटर सिस्टम ब्लॉक डिवाइस पर डेटा स्टोर करते हैं। ब्लॉक डिवाइस के उदाहरण हार्ड डिस्क ड्राइव (HDD), सॉलिड स्टेट ड्राइव (SSD) आदि हैं। हम ब्लॉक उपकरणों के बारे में विस्तृत जानकारी प्रदर्शित करने के लिए lsblk कमांड का उपयोग कर सकते हैं:

$ lsblk

इस उदाहरण में, हम देख सकते हैं कि केवल एक ब्लॉक डिवाइस है और उसका नाम /dev/sda है। उस ब्लॉक डिवाइस पर तीन पार्टिशन बनाए गए हैं।

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